aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Server/Packets
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2016-06-18 23:03:16 +0200
committerShauren <shauren.trinity@gmail.com>2016-06-18 23:03:16 +0200
commit0de1adf2812a4fa896dc5cd21314e596b44457b9 (patch)
treec414e3a08e01293edad3993b760604d7a1399b3e /src/server/game/Server/Packets
parent49d0823b7062fba05725d27c406dbbe1a88a40f3 (diff)
Core/PacketIO: Updated equipment set packets and implemented saving transmog outfits (even if transmog itself isnt updated)
Diffstat (limited to 'src/server/game/Server/Packets')
-rw-r--r--src/server/game/Server/Packets/EquipmentSetPackets.cpp18
-rw-r--r--src/server/game/Server/Packets/EquipmentSetPackets.h1
2 files changed, 17 insertions, 2 deletions
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<int32>());
_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
};