diff options
-rw-r--r-- | src/server/game/Server/Packets/InspectPackets.cpp | 25 | ||||
-rw-r--r-- | src/server/game/Server/Packets/InspectPackets.h | 12 |
2 files changed, 24 insertions, 13 deletions
diff --git a/src/server/game/Server/Packets/InspectPackets.cpp b/src/server/game/Server/Packets/InspectPackets.cpp index fe950bff5b1..9442a6e0b73 100644 --- a/src/server/game/Server/Packets/InspectPackets.cpp +++ b/src/server/game/Server/Packets/InspectPackets.cpp @@ -32,12 +32,23 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Inspect::InspectEnchantDa return data; } +ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Inspect::AzeriteEssenceData const& azeriteEssenceData) +{ + data << uint32(azeriteEssenceData.Index); + data << uint32(azeriteEssenceData.AzeriteEssenceID); + data << uint32(azeriteEssenceData.Rank); + data.WriteBit(azeriteEssenceData.SlotUnlocked); + data.FlushBits(); + + return data; +} + ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Inspect::InspectItemData const& itemData) { data << itemData.CreatorGUID; data << uint8(itemData.Index); data << uint32(itemData.AzeritePowers.size()); - data << uint32(itemData.Essences.size()); + data << uint32(itemData.AzeriteEssences.size()); if (!itemData.AzeritePowers.empty()) data.append(itemData.AzeritePowers.data(), itemData.AzeritePowers.size()); @@ -48,14 +59,14 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Inspect::InspectItemData data.WriteBits(itemData.Gems.size(), 2); data.FlushBits(); - for (size_t i = 0; i < itemData.Enchants.size(); ++i) - data << itemData.Enchants[i]; + for (WorldPackets::Inspect::AzeriteEssenceData const& azeriteEssenceData : itemData.AzeriteEssences) + data << azeriteEssenceData; - for (auto const& gem : itemData.Gems) - data << gem; + for (WorldPackets::Inspect::InspectEnchantData const& enchantData : itemData.Enchants) + data << enchantData; - if (!itemData.Essences.empty()) - data.append(itemData.Essences.data(), itemData.Essences.size()); + for (WorldPackets::Item::ItemGemData const& gem : itemData.Gems) + data << gem; return data; } diff --git a/src/server/game/Server/Packets/InspectPackets.h b/src/server/game/Server/Packets/InspectPackets.h index 10e1dfeb0e9..e13251964fa 100644 --- a/src/server/game/Server/Packets/InspectPackets.h +++ b/src/server/game/Server/Packets/InspectPackets.h @@ -48,13 +48,13 @@ namespace WorldPackets uint8 Index = 0; }; - struct InspectEssenceData + struct AzeriteEssenceData { uint32 Index = 0; - uint32 EssenceId = 0; - uint32 EssenceLevel = 0; - uint8 Unk820 = 0; - } + uint32 AzeriteEssenceID = 0; + uint32 Rank = 0; + bool SlotUnlocked = false; + }; struct InspectItemData { @@ -67,7 +67,7 @@ namespace WorldPackets std::vector<InspectEnchantData> Enchants; std::vector<Item::ItemGemData> Gems; std::vector<int32> AzeritePowers; - std::vector<InspectEssenceData> Essences; + std::vector<AzeriteEssenceData> AzeriteEssences; }; struct PlayerModelDisplayInfo |