aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorkaelima <jeppo_meyer@msn.com>2011-04-11 21:24:02 +0200
committerkaelima <jeppo_meyer@msn.com>2011-04-11 21:24:02 +0200
commit384ca58b62d491e4c55346c9e7b80b268239941c (patch)
treeec8c9d4e60981199f71dad1db2d89652869f846b /src
parent6f9a02a10c634375a3dae1d1300376c68007a87f (diff)
Core/PacketIO: Add support for receiving CMSG_UPDATE_PROJECTILE_POSITION
Diffstat (limited to 'src')
-rwxr-xr-xsrc/server/game/Server/Protocol/Handlers/SpellHandler.cpp25
-rwxr-xr-xsrc/server/game/Server/Protocol/Opcodes.cpp2
-rwxr-xr-xsrc/server/game/Server/WorldSession.h1
3 files changed, 27 insertions, 1 deletions
diff --git a/src/server/game/Server/Protocol/Handlers/SpellHandler.cpp b/src/server/game/Server/Protocol/Handlers/SpellHandler.cpp
index 862a2ed0e27..013c32abba4 100755
--- a/src/server/game/Server/Protocol/Handlers/SpellHandler.cpp
+++ b/src/server/game/Server/Protocol/Handlers/SpellHandler.cpp
@@ -644,3 +644,28 @@ void WorldSession::HandleMirrrorImageDataRequest(WorldPacket & recv_data)
SendPacket(&data);
}
+
+void WorldSession::HandleUpdateProjectilePosition(WorldPacket& recvPacket)
+{
+ sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: CMSG_UPDATE_PROJECTILE_POSITION");
+
+ uint64 casterGuid;
+ uint32 spellId;
+ uint8 castCount;
+ float x, y, z; // Position of missile hit
+
+ recvPacket.readPackGUID(casterGuid);
+ recvPacket >> spellId;
+ recvPacket >> castCount;
+ recvPacket >> x;
+ recvPacket >> y;
+ recvPacket >> z;
+
+ WorldPacket data(SMSG_SET_PROJECTILE_POSITION, 21);
+ data << uint64(casterGuid);
+ data << uint8(castCount);
+ data << float(x);
+ data << float(y);
+ data << float(z);
+ SendPacket(&data);
+}
diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp
index 7ba68d1b573..27bd2872f7e 100755
--- a/src/server/game/Server/Protocol/Opcodes.cpp
+++ b/src/server/game/Server/Protocol/Opcodes.cpp
@@ -1240,7 +1240,7 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
/*0x4BB*/ { "SMSG_CALENDAR_ACTION_PENDING", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide },
/*0x4BC*/ { "SMSG_EQUIPMENT_SET_LIST", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide },
/*0x4BD*/ { "CMSG_EQUIPMENT_SET_SAVE", STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleEquipmentSetSave },
- /*0x4BE*/ { "CMSG_UPDATE_PROJECTILE_POSITION", STATUS_UNHANDLED,PROCESS_INPLACE, &WorldSession::Handle_NULL },
+ /*0x4BE*/ { "CMSG_UPDATE_PROJECTILE_POSITION", STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleUpdateProjectilePosition },
/*0x4BF*/ { "SMSG_SET_PROJECTILE_POSITION", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide },
/*0x4C0*/ { "SMSG_TALENTS_INFO", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide },
/*0x4C1*/ { "CMSG_LEARN_PREVIEW_TALENTS", STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleLearnPreviewTalents },
diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h
index a8817797d93..82e8aa20919 100755
--- a/src/server/game/Server/WorldSession.h
+++ b/src/server/game/Server/WorldSession.h
@@ -859,6 +859,7 @@ class WorldSession
void HandleQuestPOIQuery(WorldPacket& recv_data);
void HandleEjectPassenger(WorldPacket &data);
void HandleEnterPlayerVehicle(WorldPacket &data);
+ void HandleUpdateProjectilePosition(WorldPacket& recvPacket);
private:
void ProcessQueryCallbacks();