diff options
| author | Shauren <shauren.trinity@gmail.com> | 2015-08-12 23:05:36 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2015-08-12 23:05:36 +0200 |
| commit | 81abfe93bb96e5a769dc855f06fdc7578b352b39 (patch) | |
| tree | 66e5231c62ec9dfc180cceb80a714632afaf93a3 /src/server/game/Server | |
| parent | f4724badb65a6471df37ef249929548861f86362 (diff) | |
Core/Void Storage: Implemented saving item upgrade and bonuses for items deposited in void storage
Diffstat (limited to 'src/server/game/Server')
| -rw-r--r-- | src/server/game/Server/Packets/ItemPackets.cpp | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/src/server/game/Server/Packets/ItemPackets.cpp b/src/server/game/Server/Packets/ItemPackets.cpp index 26dda8e646e..7d54ebe3ec6 100644 --- a/src/server/game/Server/Packets/ItemPackets.cpp +++ b/src/server/game/Server/Packets/ItemPackets.cpp @@ -185,14 +185,13 @@ void WorldPackets::Item::ItemInstance::Initialize(::Item const* item) ItemBonus->Context = item->GetUInt32Value(ITEM_FIELD_CONTEXT); } - uint32 mask = item->GetUInt32Value(ITEM_FIELD_MODIFIERS_MASK); - if (mask != 0) - Modifications = WorldPackets::CompactArray<int32>(); - - for (size_t i = 0; mask != 0; mask >>= 1, ++i) + if (uint32 mask = item->GetUInt32Value(ITEM_FIELD_MODIFIERS_MASK)) { - if ((mask & 1) != 0) - Modifications->Insert(i, item->GetModifier(ItemModifier(i))); + Modifications = boost::in_place(); + + for (size_t i = 0; mask != 0; mask >>= 1, ++i) + if ((mask & 1) != 0) + Modifications->Insert(i, item->GetModifier(ItemModifier(i))); } } @@ -216,6 +215,17 @@ void WorldPackets::Item::ItemInstance::Initialize(::VoidStorageItem const* voidI ItemID = voidItem->ItemEntry; RandomPropertiesID = voidItem->ItemRandomPropertyId; RandomPropertiesSeed = voidItem->ItemSuffixFactor; + if (voidItem->ItemUpgradeId) + { + Modifications = boost::in_place(); + Modifications->Insert(ITEM_MODIFIER_UPGRADE_ID, voidItem->ItemUpgradeId); + } + + if (!voidItem->BonusListIDs.empty()) + { + ItemBonus = boost::in_place(); + ItemBonus->BonusListIDs = voidItem->BonusListIDs; + } } WorldPacket const* WorldPackets::Item::InventoryChangeFailure::Write() |
