diff options
author | Shauren <shauren.trinity@gmail.com> | 2016-07-10 14:41:18 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2016-07-10 14:41:18 +0200 |
commit | 452cae0c0b343597c3e6721fd5aa57fd787a06c9 (patch) | |
tree | 6c736a54f8cc17fb1d0fe8abcc93b679d1c097e3 /src/server/game/Handlers/TradeHandler.cpp | |
parent | ee2abfba9102ca4acce334de00a0bca0ae5c624c (diff) |
Core/Items: Fixed saving gem bonuses
Diffstat (limited to 'src/server/game/Handlers/TradeHandler.cpp')
-rw-r--r-- | src/server/game/Handlers/TradeHandler.cpp | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/src/server/game/Handlers/TradeHandler.cpp b/src/server/game/Handlers/TradeHandler.cpp index 7c672b86137..ae263301fc9 100644 --- a/src/server/game/Handlers/TradeHandler.cpp +++ b/src/server/game/Handlers/TradeHandler.cpp @@ -79,16 +79,17 @@ void WorldSession::SendUpdateTrade(bool trader_data /*= true*/) tradeItem.Unwrapped->MaxDurability = item->GetUInt32Value(ITEM_FIELD_MAXDURABILITY); tradeItem.Unwrapped->Durability = item->GetUInt32Value(ITEM_FIELD_DURABILITY); - for (std::size_t i = 0; i < item->GetDynamicValues(ITEM_DYNAMIC_FIELD_GEMS).size(); ++i) + uint8 i = 0; + for (ItemDynamicFieldGems const& gemData : item->GetGems()) { - uint32 gemItemId = item->GetDynamicValue(ITEM_DYNAMIC_FIELD_GEMS, i); - if (!gemItemId) - continue; - - WorldPackets::Item::ItemGemInstanceData gem; - gem.Slot = i; - gem.Item.ItemID = gemItemId; - tradeItem.Unwrapped->Gems.push_back(gem); + if (gemData.ItemId) + { + WorldPackets::Item::ItemGemInstanceData gem; + gem.Slot = i; + gem.Item.Initialize(&gemData); + tradeItem.Unwrapped->Gems.push_back(gem); + } + ++i; } } |