aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Server/Packets
diff options
context:
space:
mode:
authorjoschiwald <joschiwald.trinity@gmail.com>2014-11-06 02:59:59 +0100
committerjoschiwald <joschiwald.trinity@gmail.com>2014-11-06 02:59:59 +0100
commitdb7c07246a9eff609c711971d6f98413d38be97f (patch)
treed0a969ee81385de55ef4ff69ec14577f4d6609be /src/server/game/Server/Packets
parent3cb4b7359e51aa22b58591ca55112b9b19ca71ef (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.cpp19
-rw-r--r--src/server/game/Server/Packets/CharacterPackets.h16
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: