aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/MiscHandler.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2012-07-12 01:02:45 +0200
committerShauren <shauren.trinity@gmail.com>2012-07-12 01:02:45 +0200
commitb0f6311fe99671351e9b8fb08d61d365a483a570 (patch)
tree3e209f0f13cafe1fde15f46060a1bdc89a0783fc /src/server/game/Handlers/MiscHandler.cpp
parentadc22685f26f6e62744c71973fce97d2dd43bced (diff)
Core/PacketIO: More structure updates (SMSG_DB_REPLY, CMSG_REQUEST_HOTFIX) and enabled opcodes with verified structures
Diffstat (limited to 'src/server/game/Handlers/MiscHandler.cpp')
-rwxr-xr-xsrc/server/game/Handlers/MiscHandler.cpp45
1 files changed, 28 insertions, 17 deletions
diff --git a/src/server/game/Handlers/MiscHandler.cpp b/src/server/game/Handlers/MiscHandler.cpp
index 1ff10abc36b..7e72dd5e646 100755
--- a/src/server/game/Handlers/MiscHandler.cpp
+++ b/src/server/game/Handlers/MiscHandler.cpp
@@ -1764,32 +1764,36 @@ void WorldSession::HandleInstanceLockResponse(WorldPacket& recvPacket)
void WorldSession::HandleRequestHotfix(WorldPacket& recvPacket)
{
- recvPacket.rfinish();
- return;
-
uint32 type, count;
- recvPacket >> type >> count;
+ recvPacket >> type;
+
+ count = recvPacket.ReadBits(23);
- ByteBuffer* guidBytes = new ByteBuffer[count];
+ ObjectGuid* guids = new ObjectGuid[count];
for (uint32 i = 0; i < count; ++i)
{
- guidBytes[i].resize(8); // damn c++ not allowing to use non-default constructor with new[]
+ guids[i][0] = recvPacket.ReadBit();
+ guids[i][4] = recvPacket.ReadBit();
+ guids[i][7] = recvPacket.ReadBit();
+ guids[i][2] = recvPacket.ReadBit();
+ guids[i][5] = recvPacket.ReadBit();
+ guids[i][3] = recvPacket.ReadBit();
+ guids[i][6] = recvPacket.ReadBit();
+ guids[i][1] = recvPacket.ReadBit();
}
uint32 entry;
- uint64 guid;
for (uint32 i = 0; i < count; ++i)
{
+ recvPacket.ReadByteSeq(guids[i][5]);
+ recvPacket.ReadByteSeq(guids[i][6]);
+ recvPacket.ReadByteSeq(guids[i][7]);
+ recvPacket.ReadByteSeq(guids[i][0]);
+ recvPacket.ReadByteSeq(guids[i][1]);
+ recvPacket.ReadByteSeq(guids[i][3]);
+ recvPacket.ReadByteSeq(guids[i][4]);
recvPacket >> entry;
- //recvPacket.ReadXorByte(mask[i][7], guidBytes[i][2]);
- //recvPacket.ReadXorByte(mask[i][4], guidBytes[i][6]);
- //recvPacket.ReadXorByte(mask[i][1], guidBytes[i][3]);
- //recvPacket.ReadXorByte(mask[i][2], guidBytes[i][0]);
- //recvPacket.ReadXorByte(mask[i][3], guidBytes[i][5]);
- //recvPacket.ReadXorByte(mask[i][0], guidBytes[i][7]);
- //recvPacket.ReadXorByte(mask[i][6], guidBytes[i][1]);
- //recvPacket.ReadXorByte(mask[i][5], guidBytes[i][4]);
- //guid = BitConverter::ToUInt64(guidBytes[i]);
+ recvPacket.ReadByteSeq(guids[i][2]);
switch (type)
{
@@ -1804,7 +1808,7 @@ void WorldSession::HandleRequestHotfix(WorldPacket& recvPacket)
}
}
- delete[] guidBytes;
+ delete[] guids;
}
void WorldSession::HandleUpdateMissileTrajectory(WorldPacket& recvPacket)
@@ -1850,3 +1854,10 @@ void WorldSession::HandleUpdateMissileTrajectory(WorldPacket& recvPacket)
HandleMovementOpcodes(recvPacket);
}
}
+ void WorldSession::HandleViolenceLevel(WorldPacket& recvPacket)
+ {
+ uint8 violenceLevel;
+ recvPacket >> violenceLevel;
+
+ // do something?
+ }