diff options
| author | joschiwald <joschiwald.trinity@gmail.com> | 2014-11-06 02:59:59 +0100 |
|---|---|---|
| committer | joschiwald <joschiwald.trinity@gmail.com> | 2014-11-06 02:59:59 +0100 |
| commit | db7c07246a9eff609c711971d6f98413d38be97f (patch) | |
| tree | d0a969ee81385de55ef4ff69ec14577f4d6609be /src/server/game/Server/Packets | |
| parent | 3cb4b7359e51aa22b58591ca55112b9b19ca71ef (diff) | |
Core/NetworkIO: updated CMSG_REORDER_CHARACTERS packet and other opcode values
Diffstat (limited to 'src/server/game/Server/Packets')
| -rw-r--r-- | src/server/game/Server/Packets/CharacterPackets.cpp | 19 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/CharacterPackets.h | 16 |
2 files changed, 35 insertions, 0 deletions
diff --git a/src/server/game/Server/Packets/CharacterPackets.cpp b/src/server/game/Server/Packets/CharacterPackets.cpp index 4b73b48aa76..500799989fc 100644 --- a/src/server/game/Server/Packets/CharacterPackets.cpp +++ b/src/server/game/Server/Packets/CharacterPackets.cpp @@ -17,6 +17,7 @@ #include "CharacterPackets.h" #include "ObjectMgr.h" +#include "World.h" WorldPackets::Character::CharEnumResult::CharacterInfo::CharacterInfo(Field* fields) { @@ -240,6 +241,24 @@ WorldPacket const* WorldPackets::Character::CharacterDeleteResponse::Write() return &_worldPacket; } +WorldPackets::Character::ReorderCharacters::ReorderCharacters(WorldPacket&& packet) + : ClientPacket(std::move(packet)) +{ + ASSERT(_worldPacket.GetOpcode() == CMSG_REORDER_CHARACTERS); +} + +void WorldPackets::Character::ReorderCharacters::Read() +{ + uint32 count = std::min<uint32>(_worldPacket.ReadBits(9), sWorld->getIntConfig(CONFIG_CHARACTERS_PER_REALM)); + while (count--) + { + ReorderInfo reorderInfo; + _worldPacket >> reorderInfo.PlayerGUID; + _worldPacket >> reorderInfo.NewPosition; + Entries.emplace_back(reorderInfo); + } +} + WorldPackets::Character::UndeleteCharacter::UndeleteCharacter(WorldPacket&& packet) : ClientPacket(std::move(packet)) { diff --git a/src/server/game/Server/Packets/CharacterPackets.h b/src/server/game/Server/Packets/CharacterPackets.h index 465b1ee8ffb..4bb97d8a2d2 100644 --- a/src/server/game/Server/Packets/CharacterPackets.h +++ b/src/server/game/Server/Packets/CharacterPackets.h @@ -203,6 +203,22 @@ namespace WorldPackets uint8 Code = 0; ///< Result code @see enum ResponseCodes }; + class ReorderCharacters final : public ClientPacket + { + public: + struct ReorderInfo + { + ObjectGuid PlayerGUID; + uint8 NewPosition = 0; + }; + + ReorderCharacters(WorldPacket&& packet); + + void Read() override; + + std::list<ReorderInfo> Entries; + }; + class UndeleteCharacter final : public ClientPacket { public: |
