diff options
author | Shauren <shauren.trinity@gmail.com> | 2019-07-28 14:42:36 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2019-07-28 16:14:14 +0200 |
commit | 176cb72b709c6bd56b74fadb290672279348dc93 (patch) | |
tree | 2b1baa9e8bdc0c1271570afff8aba5c6b678648a | |
parent | 2e8d7194a9122d80a2f1291491a5e3c73e2960c4 (diff) |
Core/PacketIO: Fixed SMSG_INSPECT_RESULT structure
-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 |