aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/TradeHandler.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2016-07-10 14:41:18 +0200
committerShauren <shauren.trinity@gmail.com>2016-07-10 14:41:18 +0200
commit452cae0c0b343597c3e6721fd5aa57fd787a06c9 (patch)
tree6c736a54f8cc17fb1d0fe8abcc93b679d1c097e3 /src/server/game/Handlers/TradeHandler.cpp
parentee2abfba9102ca4acce334de00a0bca0ae5c624c (diff)
Core/Items: Fixed saving gem bonuses
Diffstat (limited to 'src/server/game/Handlers/TradeHandler.cpp')
-rw-r--r--src/server/game/Handlers/TradeHandler.cpp19
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;
}
}