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/Handlers/CharacterHandler.cpp | |
parent | 3cb4b7359e51aa22b58591ca55112b9b19ca71ef (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.cpp | 39 |
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); } |