From 0de1adf2812a4fa896dc5cd21314e596b44457b9 Mon Sep 17 00:00:00 2001 From: Shauren Date: Sat, 18 Jun 2016 23:03:16 +0200 Subject: Core/PacketIO: Updated equipment set packets and implemented saving transmog outfits (even if transmog itself isnt updated) --- src/server/game/Server/Packets/EquipmentSetPackets.cpp | 18 ++++++++++++++++-- src/server/game/Server/Packets/EquipmentSetPackets.h | 1 + 2 files changed, 17 insertions(+), 2 deletions(-) (limited to 'src/server/game/Server/Packets') diff --git a/src/server/game/Server/Packets/EquipmentSetPackets.cpp b/src/server/game/Server/Packets/EquipmentSetPackets.cpp index 783def93e88..dbc40c63e7d 100644 --- a/src/server/game/Server/Packets/EquipmentSetPackets.cpp +++ b/src/server/game/Server/Packets/EquipmentSetPackets.cpp @@ -20,6 +20,7 @@ WorldPacket const* WorldPackets::EquipmentSet::EquipmentSetID::Write() { _worldPacket << uint64(GUID); + _worldPacket << int32(Type); _worldPacket << uint32(SetID); return &_worldPacket; @@ -31,12 +32,18 @@ WorldPacket const* WorldPackets::EquipmentSet::LoadEquipmentSet::Write() for (EquipmentSetInfo::EquipmentSetData const* equipSet : SetData) { + _worldPacket << int32(equipSet->Type); _worldPacket << uint64(equipSet->Guid); _worldPacket << uint32(equipSet->SetID); _worldPacket << uint32(equipSet->IgnoreMask); - for (ObjectGuid const& guid : equipSet->Pieces) - _worldPacket << guid; + for (std::size_t i = 0; i < EQUIPMENT_SLOT_END; ++i) + { + _worldPacket << equipSet->Pieces[i]; + _worldPacket << int32(equipSet->Appearances[i]); + } + + _worldPacket.append(equipSet->Enchants.data(), equipSet->Enchants.size()); _worldPacket.WriteBits(equipSet->SetName.length(), 8); _worldPacket.WriteBits(equipSet->SetIcon.length(), 9); @@ -51,12 +58,19 @@ WorldPacket const* WorldPackets::EquipmentSet::LoadEquipmentSet::Write() void WorldPackets::EquipmentSet::SaveEquipmentSet::Read() { + Set.Type = EquipmentSetInfo::EquipmentSetType(_worldPacket.read()); _worldPacket >> Set.Guid; _worldPacket >> Set.SetID; _worldPacket >> Set.IgnoreMask; for (uint8 i = 0; i < EQUIPMENT_SLOT_END; ++i) + { _worldPacket >> Set.Pieces[i]; + _worldPacket >> Set.Appearances[i]; + } + + _worldPacket >> Set.Enchants[0]; + _worldPacket >> Set.Enchants[1]; uint32 setNameLength = _worldPacket.ReadBits(8); uint32 setIconLength = _worldPacket.ReadBits(9); diff --git a/src/server/game/Server/Packets/EquipmentSetPackets.h b/src/server/game/Server/Packets/EquipmentSetPackets.h index e33b6a6cdca..42f6fd5df05 100644 --- a/src/server/game/Server/Packets/EquipmentSetPackets.h +++ b/src/server/game/Server/Packets/EquipmentSetPackets.h @@ -33,6 +33,7 @@ namespace WorldPackets WorldPacket const* Write() override; uint64 GUID = 0; ///< Set Identifier + int32 Type = 0; uint32 SetID = 0; ///< Index }; -- cgit v1.2.3