aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/TradeHandler.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2016-07-19 19:31:54 +0200
committerShauren <shauren.trinity@gmail.com>2016-07-19 19:31:54 +0200
commit836221aaf5420afe8ff4719780426251c222b87d (patch)
tree12a66ff491e38f75bb922c21616b93fd24b85ddf /src/server/game/Handlers/TradeHandler.cpp
parentcc07a491f64fa958c8a27079bd2def84c577f816 (diff)
parentd463273ab1c8efb9dd6000ee5cb8f780574cdd1e (diff)
Merge branch 'legion' into 6.x
Diffstat (limited to 'src/server/game/Handlers/TradeHandler.cpp')
-rw-r--r--src/server/game/Handlers/TradeHandler.cpp17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/server/game/Handlers/TradeHandler.cpp b/src/server/game/Handlers/TradeHandler.cpp
index c7e75300c99..ae263301fc9 100644
--- a/src/server/game/Handlers/TradeHandler.cpp
+++ b/src/server/game/Handlers/TradeHandler.cpp
@@ -64,14 +64,13 @@ void WorldSession::SendUpdateTrade(bool trader_data /*= true*/)
{
WorldPackets::Trade::TradeUpdated::TradeItem tradeItem;
tradeItem.Slot = i;
- tradeItem.EntryID = item->GetEntry();
+ tradeItem.Item.Initialize(item);
tradeItem.StackCount = item->GetCount();
tradeItem.GiftCreator = item->GetGuidValue(ITEM_FIELD_GIFTCREATOR);
if (!item->HasFlag(ITEM_FIELD_FLAGS, ITEM_FIELD_FLAG_WRAPPED))
{
tradeItem.Unwrapped = boost::in_place();
- tradeItem.Unwrapped->Item.Initialize(item);
tradeItem.Unwrapped->EnchantID = item->GetEnchantmentId(PERM_ENCHANTMENT_SLOT);
tradeItem.Unwrapped->OnUseEnchantmentID = item->GetEnchantmentId(USE_ENCHANTMENT_SLOT);
tradeItem.Unwrapped->Creator = item->GetGuidValue(ITEM_FIELD_CREATOR);
@@ -80,8 +79,18 @@ void WorldSession::SendUpdateTrade(bool trader_data /*= true*/)
tradeItem.Unwrapped->MaxDurability = item->GetUInt32Value(ITEM_FIELD_MAXDURABILITY);
tradeItem.Unwrapped->Durability = item->GetUInt32Value(ITEM_FIELD_DURABILITY);
- for (uint32 s = SOCK_ENCHANTMENT_SLOT; s < MAX_GEM_SOCKETS; ++s)
- tradeItem.Unwrapped->SocketEnchant[s] = item->GetEnchantmentId(EnchantmentSlot(s + SOCK_ENCHANTMENT_SLOT));
+ uint8 i = 0;
+ for (ItemDynamicFieldGems const& gemData : item->GetGems())
+ {
+ if (gemData.ItemId)
+ {
+ WorldPackets::Item::ItemGemInstanceData gem;
+ gem.Slot = i;
+ gem.Item.Initialize(&gemData);
+ tradeItem.Unwrapped->Gems.push_back(gem);
+ }
+ ++i;
+ }
}
tradeUpdated.Items.push_back(tradeItem);