diff options
author | MaxtorCoder <warsongkiller.s8@gmail.com> | 2019-07-28 10:34:51 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2019-07-28 16:14:14 +0200 |
commit | 2e8d7194a9122d80a2f1291491a5e3c73e2960c4 (patch) | |
tree | fbabf35c21d309119196b8cbca3093eecc77f980 | |
parent | f2ef5f878df7c9536736684251fe86f456fc7590 (diff) |
Core/PacketIO: Fixed inspect client crash
-rw-r--r-- | src/server/game/Server/Packets/InspectPackets.cpp | 9 | ||||
-rw-r--r-- | src/server/game/Server/Packets/InspectPackets.h | 9 |
2 files changed, 16 insertions, 2 deletions
diff --git a/src/server/game/Server/Packets/InspectPackets.cpp b/src/server/game/Server/Packets/InspectPackets.cpp index d356b495d3e..fe950bff5b1 100644 --- a/src/server/game/Server/Packets/InspectPackets.cpp +++ b/src/server/game/Server/Packets/InspectPackets.cpp @@ -37,6 +37,8 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Inspect::InspectItemData data << itemData.CreatorGUID; data << uint8(itemData.Index); data << uint32(itemData.AzeritePowers.size()); + data << uint32(itemData.Essences.size()); + if (!itemData.AzeritePowers.empty()) data.append(itemData.AzeritePowers.data(), itemData.AzeritePowers.size()); @@ -46,11 +48,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 (auto const& gem : itemData.Gems) data << gem; - for (size_t i = 0; i < itemData.Enchants.size(); ++i) - data << itemData.Enchants[i]; + if (!itemData.Essences.empty()) + data.append(itemData.Essences.data(), itemData.Essences.size()); return data; } diff --git a/src/server/game/Server/Packets/InspectPackets.h b/src/server/game/Server/Packets/InspectPackets.h index 86ac8f286c4..10e1dfeb0e9 100644 --- a/src/server/game/Server/Packets/InspectPackets.h +++ b/src/server/game/Server/Packets/InspectPackets.h @@ -48,6 +48,14 @@ namespace WorldPackets uint8 Index = 0; }; + struct InspectEssenceData + { + uint32 Index = 0; + uint32 EssenceId = 0; + uint32 EssenceLevel = 0; + uint8 Unk820 = 0; + } + struct InspectItemData { InspectItemData(::Item const* item, uint8 index); @@ -59,6 +67,7 @@ namespace WorldPackets std::vector<InspectEnchantData> Enchants; std::vector<Item::ItemGemData> Gems; std::vector<int32> AzeritePowers; + std::vector<InspectEssenceData> Essences; }; struct PlayerModelDisplayInfo |