aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/CharacterHandler.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2012-08-23 01:54:06 +0200
committerShauren <shauren.trinity@gmail.com>2012-08-23 01:54:06 +0200
commit7c8671489561e53d7878852c1e8917863d7459b5 (patch)
tree9a8c0f6c72b2f787b4967e4e116034ed1ab4653a /src/server/game/Handlers/CharacterHandler.cpp
parentda9480557b3f191efab08d6aaf75a21a62512252 (diff)
Core/PacketIO: Corrected character reordering
Diffstat (limited to 'src/server/game/Handlers/CharacterHandler.cpp')
-rw-r--r--src/server/game/Handlers/CharacterHandler.cpp13
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);
}