diff options
| author | Shauren <shauren.trinity@gmail.com> | 2012-08-23 01:54:06 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2012-08-23 01:54:06 +0200 |
| commit | 7c8671489561e53d7878852c1e8917863d7459b5 (patch) | |
| tree | 9a8c0f6c72b2f787b4967e4e116034ed1ab4653a /src/server/game/Handlers/CharacterHandler.cpp | |
| parent | da9480557b3f191efab08d6aaf75a21a62512252 (diff) | |
Core/PacketIO: Corrected character reordering
Diffstat (limited to 'src/server/game/Handlers/CharacterHandler.cpp')
| -rw-r--r-- | src/server/game/Handlers/CharacterHandler.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/server/game/Handlers/CharacterHandler.cpp b/src/server/game/Handlers/CharacterHandler.cpp index c86bd363c98..649f09ad212 100644 --- a/src/server/game/Handlers/CharacterHandler.cpp +++ b/src/server/game/Handlers/CharacterHandler.cpp @@ -2137,8 +2137,8 @@ void WorldSession::HandleReorderCharacters(WorldPacket& recvData) { uint32 charactersCount = recvData.ReadBits(10); - ObjectGuid guids[charactersCount]; - uint8 positions[charactersCount]; + std::vector<ObjectGuid> guids(charactersCount); + uint8 position; for (uint8 i = 0; i < charactersCount; ++i) { @@ -2162,13 +2162,16 @@ void WorldSession::HandleReorderCharacters(WorldPacket& recvData) recvData.ReadByteSeq(guids[i][0]); recvData.ReadByteSeq(guids[i][3]); - recvData >> positions[i]; - positions[i] /= 10; + recvData >> position; recvData.ReadByteSeq(guids[i][2]); recvData.ReadByteSeq(guids[i][7]); - trans->PAppend("UPDATE characters SET slot = '%u' WHERE guid = '%u'", positions[i], uint64(guids[i])); + PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHAR_LIST_SLOT); + stmt->setUInt8(0, position); + stmt->setUInt32(1, GUID_LOPART(guids[i])); + trans->Append(stmt); } + CharacterDatabase.CommitTransaction(trans); } |
