aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/CharacterHandler.cpp
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/Handlers/CharacterHandler.cpp
parent3cb4b7359e51aa22b58591ca55112b9b19ca71ef (diff)
Core/NetworkIO: updated CMSG_REORDER_CHARACTERS packet and other opcode values
Diffstat (limited to 'src/server/game/Handlers/CharacterHandler.cpp')
-rw-r--r--src/server/game/Handlers/CharacterHandler.cpp39
1 files changed, 6 insertions, 33 deletions
diff --git a/src/server/game/Handlers/CharacterHandler.cpp b/src/server/game/Handlers/CharacterHandler.cpp
index 3a083bb0a03..797f7de6210 100644
--- a/src/server/game/Handlers/CharacterHandler.cpp
+++ b/src/server/game/Handlers/CharacterHandler.cpp
@@ -2190,43 +2190,16 @@ void WorldSession::HandleRandomizeCharNameOpcode(WorldPacket& recvData)
SendPacket(&data);
}
-void WorldSession::HandleReorderCharacters(WorldPacket& recvData)
+void WorldSession::HandleReorderCharacters(WorldPackets::Character::ReorderCharacters& reorderChars)
{
- uint32 charactersCount = std::min<uint32>(recvData.ReadBits(10), sWorld->getIntConfig(CONFIG_CHARACTERS_PER_REALM));
-
- std::vector<ObjectGuid> guids(charactersCount);
- uint8 position;
-
- for (uint8 i = 0; i < charactersCount; ++i)
- {
- guids[i][1] = recvData.ReadBit();
- guids[i][4] = recvData.ReadBit();
- guids[i][5] = recvData.ReadBit();
- guids[i][3] = recvData.ReadBit();
- guids[i][0] = recvData.ReadBit();
- guids[i][7] = recvData.ReadBit();
- guids[i][6] = recvData.ReadBit();
- guids[i][2] = recvData.ReadBit();
- }
-
SQLTransaction trans = CharacterDatabase.BeginTransaction();
- for (uint8 i = 0; i < charactersCount; ++i)
- {
- recvData.ReadByteSeq(guids[i][6]);
- recvData.ReadByteSeq(guids[i][5]);
- recvData.ReadByteSeq(guids[i][1]);
- recvData.ReadByteSeq(guids[i][4]);
- recvData.ReadByteSeq(guids[i][0]);
- recvData.ReadByteSeq(guids[i][3]);
-
- recvData >> position;
-
- recvData.ReadByteSeq(guids[i][2]);
- recvData.ReadByteSeq(guids[i][7]);
+ for (WorldPackets::Character::ReorderCharacters::ReorderInfo const& reorderInfo : reorderChars.Entries)
+ {
PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHAR_LIST_SLOT);
- stmt->setUInt8(0, position);
- stmt->setUInt64(1, guids[i].GetCounter());
+ stmt->setUInt8(0, reorderInfo.NewPosition);
+ stmt->setUInt64(1, reorderInfo.PlayerGUID.GetCounter());
+ stmt->setUInt32(2, GetAccountId());
trans->Append(stmt);
}