aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Server/Packet.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Server/Packet.cpp')
-rw-r--r--src/server/game/Server/Packet.cpp158
1 files changed, 158 insertions, 0 deletions
diff --git a/src/server/game/Server/Packet.cpp b/src/server/game/Server/Packet.cpp
index 10b472bee67..61d626b8228 100644
--- a/src/server/game/Server/Packet.cpp
+++ b/src/server/game/Server/Packet.cpp
@@ -17,6 +17,164 @@
#include "Packet.h"
+inline bool IsInstanceOnlyOpcode(uint32 opcode)
+{
+ // TODO: Use names when known
+ switch (opcode)
+ {
+ case 0x000F: // Client
+ case 0x0111: // Client
+ case 0x03E4: // Client
+ case 0x0549: // Client
+ case 0x054C: // Client
+ case 0x055A: // Client
+ case 0x056C: // Client
+ case 0x057A: // Client
+ case 0x057B: // Client
+ case 0x05CC: // Client
+ case 0x05EA: // Client
+ case 0x05EC: // Client
+ case 0x05F9: // Client
+ case 0x05FB: // Client
+ case 0x074C: // Client
+ case 0x075B: // Client
+ case 0x076C: // Client
+ case 0x077B: // Client
+ case 0x077C: // Client
+ case 0x07CC: // Client
+ case 0x07DB: // Client
+ case 0x07EC: // Client
+ case 0x07FB: // Client
+ case 0x07FC: // Client
+ case 0x0827: // Client
+ case 0x0935: // Client
+ case 0x0F0C: // ClientSpell
+ case 0x0F10: // ClientSpell
+ case 0x0F1B: // ClientSpell
+ case 0x0F1C: // ClientSpell
+ case 0x0F20: // ClientSpell
+ case 0x0F2C: // ClientSpell
+ case 0x0F2F: // ClientSpell
+ case 0x0F3B: // ClientSpell
+ case 0x0F8B: // ClientSpell
+ case 0x0F8C: // ClientSpell
+ case 0x0F90: // ClientSpell
+ case 0x0F9F: // ClientSpell
+ case 0x0FA0: // ClientSpell
+ case 0x1382: // Client
+ case 0x14C9: // Client
+ case 0x154A: // Client
+ case 0x155A: // Client
+ case 0x155C: // Client
+ case 0x1567: // ClientQuest
+ case 0x156A: // Client
+ case 0x156B: // Client
+ case 0x157A: // Client
+ case 0x157B: // Client
+ case 0x15DC: // Client
+ case 0x15EB: // Client
+ case 0x15FB: // Client
+ case 0x170C: // ClientSpell
+ case 0x171C: // ClientSpell
+ case 0x171F: // ClientSpell
+ case 0x172C: // ClientSpell
+ case 0x172F: // ClientSpell
+ case 0x173C: // ClientSpell
+ case 0x173F: // ClientSpell
+ case 0x1740: // ClientSpell
+ case 0x1790: // ClientSpell
+ case 0x179B: // ClientSpell
+ case 0x179F: // ClientSpell
+ case 0x1D3E: // Client
+ case 0x1D82: // ClientQuest
+ case 0x1D83: // ClientQuest
+ case 0x1D85: // ClientQuest
+ case 0x1D87: // ClientQuest
+ case 0x1D93: // ClientQuest
+ case 0x1D96: // ClientQuest
+ case 0x1D97: // ClientQuest
+ case 0x1DA1: // ClientQuest
+ case 0x1DA2: // ClientQuest
+ case 0x1DA3: // ClientQuest
+ case 0x1DA4: // ClientQuest
+ case 0x1DA5: // ClientQuest
+ case 0x1DA7: // ClientQuest
+ case 0x1DB0: // Client
+ case 0x1DC2: // ClientQuest
+ case 0x1DC6: // ClientQuest
+ case 0x1DC7: // ClientQuest
+ case 0x1DD2: // ClientQuest
+ case 0x1DD3: // ClientQuest
+ case 0x1DD6: // ClientQuest
+ case 0x1DD7: // ClientQuest
+ case 0x1DD8: // ClientQuest
+ case 0x1DE4: // ClientQuest
+ case 0x1DE5: // ClientQuest
+ case 0x1DE7: // ClientQuest
+ case 0x1F02: // ClientQuest
+ case 0x1F06: // ClientQuest
+ case 0x1F07: // ClientQuest
+ case 0x1F0C: // ClientSpell
+ case 0x1F12: // ClientQuest
+ case 0x1F13: // ClientQuest
+ case 0x1F16: // ClientQuest
+ case 0x1F17: // ClientQuest
+ case 0x1F18: // ClientQuest
+ case 0x1F1C: // ClientSpell
+ case 0x1F1F: // ClientSpell
+ case 0x1F24: // ClientQuest
+ case 0x1F25: // ClientQuest
+ case 0x1F27: // ClientQuest
+ case 0x1F2C: // ClientSpell
+ case 0x1F2F: // ClientSpell
+ case 0x1F3C: // ClientSpell
+ case 0x1F3F: // ClientSpell
+ case 0x1F40: // ClientSpell
+ case 0x1F44: // ClientQuest
+ case 0x1F48: // ClientQuest
+ case 0x1F51: // ClientQuest
+ case 0x1F55: // ClientQuest
+ case 0x1F57: // ClientQuest
+ case 0x1F61: // ClientQuest
+ case 0x1F63: // ClientQuest
+ case 0x1F64: // ClientQuest
+ case 0x1F65: // ClientQuest
+ case 0x1F67: // ClientQuest
+ case 0x1F85: // ClientQuest
+ case 0x1F86: // ClientQuest
+ case 0x1F87: // ClientQuest
+ case 0x1F90: // ClientSpell
+ case 0x1F92: // ClientQuest
+ case 0x1F94: // ClientQuest
+ case 0x1F96: // ClientQuest
+ case 0x1F97: // ClientQuest
+ case 0x1F9B: // ClientSpell
+ case 0x1F9F: // ClientSpell
+ case 0x1FA1: // ClientQuest
+ case 0x1FA2: // ClientQuest
+ case 0x1FA3: // ClientQuest
+ case 0x1FA4: // ClientQuest
+ case 0x1FA5: // ClientQuest
+ case 0x1FA7: // ClientQuest
+ case 0x1FC2: // ClientQuest
+ case 0x1FC6: // ClientQuest
+ case 0x1FC7: // ClientQuest
+ case 0x1FD2: // ClientQuest
+ case 0x1FD3: // ClientQuest
+ case 0x1FD6: // ClientQuest
+ case 0x1FD7: // ClientQuest
+ case 0x1FD8: // ClientQuest
+ case 0x1FE4: // ClientQuest
+ case 0x1FE5: // ClientQuest
+ case 0x1FE7: // ClientQuest
+ return true;
+ default:
+ return false;
+ }
+}
+
WorldPackets::ServerPacket::ServerPacket(OpcodeServer opcode, size_t initialSize /*= 200*/) : Packet(WorldPacket(opcode, initialSize))
{
+ if (IsInstanceOnlyOpcode(opcode))
+ _connectionIndex = CONNECTION_TYPE_INSTANCE;
}