mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-23 10:26:28 +01:00
Core/Packets: Fix player movement client packets
This commit is contained in:
@@ -2004,7 +2004,7 @@ void WorldSession::HandleUpdateMissileTrajectory(WorldPacket& recvPacket)
|
||||
uint32 opcode;
|
||||
recvPacket >> opcode;
|
||||
recvPacket.SetOpcode(CMSG_MOVE_STOP); // always set to CMSG_MOVE_STOP in client SetOpcode
|
||||
HandleMovementOpcodes(recvPacket);
|
||||
//HandleMovementOpcodes(recvPacket);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
#include "ObjectMgr.h"
|
||||
#include "MovementStructures.h"
|
||||
#include "Vehicle.h"
|
||||
#include "MovementPackets.h"
|
||||
|
||||
#define MOVEMENT_PACKET_TIME_DELAY 0
|
||||
|
||||
@@ -264,26 +265,23 @@ void WorldSession::HandleMoveTeleportAck(WorldPacket& recvPacket)
|
||||
GetPlayer()->ProcessDelayedOperations();
|
||||
}
|
||||
|
||||
void WorldSession::HandleMovementOpcodes(WorldPacket& recvPacket)
|
||||
void WorldSession::HandleMovementOpcodes(WorldPackets::Movement::ClientPlayerMovement& packet)
|
||||
{
|
||||
uint16 opcode = recvPacket.GetOpcode();
|
||||
OpcodeClient opcode = packet.GetOpcode();
|
||||
|
||||
Unit* mover = _player->m_mover;
|
||||
|
||||
ASSERT(mover != NULL); // there must always be a mover
|
||||
ASSERT(mover != nullptr); // there must always be a mover
|
||||
|
||||
Player* plrMover = mover->ToPlayer();
|
||||
|
||||
// ignore, waiting processing in WorldSession::HandleMoveWorldportAckOpcode and WorldSession::HandleMoveTeleportAck
|
||||
if (plrMover && plrMover->IsBeingTeleported())
|
||||
{
|
||||
recvPacket.rfinish(); // prevent warnings spam
|
||||
return;
|
||||
}
|
||||
|
||||
/* extract packet */
|
||||
MovementInfo movementInfo;
|
||||
GetPlayer()->ReadMovementInfo(recvPacket, &movementInfo);
|
||||
MovementInfo& movementInfo = packet.movementInfo;
|
||||
|
||||
// prevent tampered movement data
|
||||
if (movementInfo.guid != mover->GetGUID())
|
||||
@@ -308,14 +306,12 @@ void WorldSession::HandleMovementOpcodes(WorldPacket& recvPacket)
|
||||
// (also received at zeppelin leave by some reason with t_* as absolute in continent coordinates, can be safely skipped)
|
||||
if (movementInfo.transport.pos.GetPositionX() > 50 || movementInfo.transport.pos.GetPositionY() > 50 || movementInfo.transport.pos.GetPositionZ() > 50)
|
||||
{
|
||||
recvPacket.rfinish(); // prevent warnings spam
|
||||
return;
|
||||
}
|
||||
|
||||
if (!Trinity::IsValidMapCoord(movementInfo.pos.GetPositionX() + movementInfo.transport.pos.GetPositionX(), movementInfo.pos.GetPositionY() + movementInfo.transport.pos.GetPositionY(),
|
||||
movementInfo.pos.GetPositionZ() + movementInfo.transport.pos.GetPositionZ(), movementInfo.pos.GetOrientation() + movementInfo.transport.pos.GetOrientation()))
|
||||
{
|
||||
recvPacket.rfinish(); // prevent warnings spam
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -387,7 +383,8 @@ void WorldSession::HandleMovementOpcodes(WorldPacket& recvPacket)
|
||||
|
||||
mover->UpdatePosition(movementInfo.pos);
|
||||
|
||||
WorldPacket data(SMSG_PLAYER_MOVE, recvPacket.size());
|
||||
// TODO:
|
||||
/*WorldPacket data(SMSG_PLAYER_MOVE, recvPacket.size());
|
||||
mover->WriteMovementInfo(data);
|
||||
mover->SendMessageToSet(&data, _player);
|
||||
|
||||
@@ -418,7 +415,7 @@ void WorldSession::HandleMovementOpcodes(WorldPacket& recvPacket)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
void WorldSession::HandleForceSpeedChangeAck(WorldPacket &recvData)
|
||||
|
||||
@@ -52,8 +52,8 @@ void WorldSession::HandleClientCastFlags(WorldPacket& recvPacket, uint8 castFlag
|
||||
|
||||
uint8 hasMovementData;
|
||||
recvPacket >> hasMovementData;
|
||||
if (hasMovementData)
|
||||
HandleMovementOpcodes(recvPacket);
|
||||
//if (hasMovementData)
|
||||
// HandleMovementOpcodes(recvPacket);
|
||||
}
|
||||
else if (castFlags & 0x8) // Archaeology
|
||||
{
|
||||
|
||||
89
src/server/game/Server/Packets/MovementPackets.cpp
Normal file
89
src/server/game/Server/Packets/MovementPackets.cpp
Normal file
@@ -0,0 +1,89 @@
|
||||
/*
|
||||
* Copyright (C) 2008-2014 TrinityCore <http://www.trinitycore.org/>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
* Free Software Foundation; either version 2 of the License, or (at your
|
||||
* option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "MovementPackets.h"
|
||||
|
||||
void WorldPackets::Movement::ClientPlayerMovement::Read()
|
||||
{
|
||||
_worldPacket >> movementInfo.guid;
|
||||
_worldPacket >> movementInfo.time;
|
||||
_worldPacket >> movementInfo.pos.m_positionX;
|
||||
_worldPacket >> movementInfo.pos.m_positionY;
|
||||
_worldPacket >> movementInfo.pos.m_positionZ;
|
||||
_worldPacket >> movementInfo.pos.m_orientation;
|
||||
_worldPacket >> movementInfo.pitch;
|
||||
_worldPacket >> movementInfo.splineElevation;
|
||||
|
||||
uint32 removeMovementForcesCount;
|
||||
_worldPacket >> removeMovementForcesCount;
|
||||
|
||||
uint32 int168;
|
||||
_worldPacket >> int168;
|
||||
|
||||
for (uint32 i = 0; i < removeMovementForcesCount; ++i)
|
||||
{
|
||||
ObjectGuid guid;
|
||||
_worldPacket >> guid;
|
||||
}
|
||||
|
||||
// ResetBitReader
|
||||
|
||||
movementInfo.flags = _worldPacket.ReadBits(30);
|
||||
movementInfo.flags2 = _worldPacket.ReadBits(15);
|
||||
|
||||
bool hasTransport = _worldPacket.ReadBit();
|
||||
bool hasFall = _worldPacket.ReadBit();
|
||||
|
||||
_worldPacket.ReadBit(); // HeightChangeFailed
|
||||
_worldPacket.ReadBit(); // RemoteTimeValid
|
||||
|
||||
if (hasTransport)
|
||||
{
|
||||
_worldPacket >> movementInfo.transport.guid;
|
||||
_worldPacket >> movementInfo.transport.pos.m_positionX;
|
||||
_worldPacket >> movementInfo.transport.pos.m_positionY;
|
||||
_worldPacket >> movementInfo.transport.pos.m_positionZ;
|
||||
_worldPacket >> movementInfo.transport.pos.m_orientation;
|
||||
_worldPacket >> movementInfo.transport.seat;
|
||||
_worldPacket >> movementInfo.transport.time;
|
||||
|
||||
bool hasPrevTime = _worldPacket.ReadBit();
|
||||
bool hasVehicleId = _worldPacket.ReadBit();
|
||||
|
||||
if (hasPrevTime)
|
||||
_worldPacket >> movementInfo.transport.prevTime;
|
||||
|
||||
if (hasVehicleId)
|
||||
_worldPacket >> movementInfo.transport.vehicleId;
|
||||
}
|
||||
|
||||
if (hasFall)
|
||||
{
|
||||
_worldPacket >> movementInfo.jump.fallTime;
|
||||
_worldPacket >> movementInfo.jump.zspeed;
|
||||
|
||||
// ResetBitReader
|
||||
|
||||
bool hasFallDirection = _worldPacket.ReadBit();
|
||||
if (hasFallDirection)
|
||||
{
|
||||
_worldPacket >> movementInfo.jump.sinAngle;
|
||||
_worldPacket >> movementInfo.jump.cosAngle;
|
||||
_worldPacket >> movementInfo.jump.xyspeed;
|
||||
}
|
||||
}
|
||||
}
|
||||
39
src/server/game/Server/Packets/MovementPackets.h
Normal file
39
src/server/game/Server/Packets/MovementPackets.h
Normal file
@@ -0,0 +1,39 @@
|
||||
/*
|
||||
* Copyright (C) 2008-2014 TrinityCore <http://www.trinitycore.org/>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
* Free Software Foundation; either version 2 of the License, or (at your
|
||||
* option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef MovementPackets_h__
|
||||
#define MovementPackets_h__
|
||||
|
||||
#include "Packet.h"
|
||||
|
||||
namespace WorldPackets
|
||||
{
|
||||
namespace Movement
|
||||
{
|
||||
class ClientPlayerMovement final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
ClientPlayerMovement(WorldPacket&& packet) : ClientPacket(std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
MovementInfo movementInfo;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
#endif // MovementPackets_h__
|
||||
@@ -23,6 +23,7 @@
|
||||
#include "Packets/TradePackets.h"
|
||||
#include "Packets/MiscPackets.h"
|
||||
#include "Packets/QueryPackets.h"
|
||||
#include "Packets/MovementPackets.h"
|
||||
|
||||
template<class PacketClass, void(WorldSession::*HandlerFunction)(PacketClass&)>
|
||||
class PacketHandler : public OpcodeHandler
|
||||
@@ -418,8 +419,8 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MINIGAME_MOVE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MINIMAP_PING, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleMinimapPingOpcode );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MOUNTSPECIAL_ANIM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleMountSpecialAnimOpcode );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_CHNG_TRANSPORT, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_FALL_RESET, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
|
||||
DEFINE_HANDLER(CMSG_MOVE_CHNG_TRANSPORT, STATUS_LOGGEDIN, PROCESS_THREADSAFE, WorldPackets::Movement::ClientPlayerMovement, &WorldSession::HandleMovementOpcodes);
|
||||
DEFINE_HANDLER(CMSG_MOVE_FALL_RESET, STATUS_LOGGEDIN, PROCESS_THREADSAFE, WorldPackets::Movement::ClientPlayerMovement, &WorldSession::HandleMovementOpcodes);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_FEATHER_FALL_ACK, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleFeatherFallAck );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_FORCE_FLIGHT_BACK_SPEED_CHANGE_ACK, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleForceSpeedChangeAck );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_FORCE_FLIGHT_SPEED_CHANGE_ACK, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleForceSpeedChangeAck );
|
||||
@@ -432,38 +433,38 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_FORCE_WALK_SPEED_CHANGE_ACK, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleForceSpeedChangeAck );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_GRAVITY_DISABLE_ACK, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_GRAVITY_ENABLE_ACK, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_HEARTBEAT, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
|
||||
DEFINE_HANDLER(CMSG_MOVE_HEARTBEAT, STATUS_LOGGEDIN, PROCESS_THREADSAFE, WorldPackets::Movement::ClientPlayerMovement, &WorldSession::HandleMovementOpcodes);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_HOVER_ACK, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleMoveHoverAck );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_FALL_LAND, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
|
||||
DEFINE_HANDLER(CMSG_MOVE_FALL_LAND, STATUS_LOGGEDIN, PROCESS_THREADSAFE, WorldPackets::Movement::ClientPlayerMovement, &WorldSession::HandleMovementOpcodes);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_KNOCK_BACK_ACK, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMoveKnockBackAck );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_JUMP, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
|
||||
DEFINE_HANDLER(CMSG_MOVE_JUMP, STATUS_LOGGEDIN, PROCESS_THREADSAFE, WorldPackets::Movement::ClientPlayerMovement, &WorldSession::HandleMovementOpcodes);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_NOT_ACTIVE_MOVER, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMoveNotActiveMover );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_SET_CAN_FLY, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
|
||||
DEFINE_HANDLER(CMSG_MOVE_SET_CAN_FLY, STATUS_LOGGEDIN, PROCESS_THREADSAFE, WorldPackets::Movement::ClientPlayerMovement, &WorldSession::HandleMovementOpcodes);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_SET_CAN_FLY_ACK, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMoveSetCanFlyAckOpcode );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_SET_CAN_TRANSITION_BETWEEN_SWIM_AND_FLY_ACK, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_SET_COLLISION_HEIGHT_ACK, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleSetCollisionHeightAck );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_SET_FACING, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_SET_PITCH, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
|
||||
DEFINE_HANDLER(CMSG_MOVE_SET_FACING, STATUS_LOGGEDIN, PROCESS_THREADSAFE, WorldPackets::Movement::ClientPlayerMovement, &WorldSession::HandleMovementOpcodes);
|
||||
DEFINE_HANDLER(CMSG_MOVE_SET_PITCH, STATUS_LOGGEDIN, PROCESS_THREADSAFE, WorldPackets::Movement::ClientPlayerMovement, &WorldSession::HandleMovementOpcodes);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_SET_RUN_MODE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_SET_WALK_MODE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_SPLINE_DONE, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMoveSplineDoneOpcode );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_START_ASCEND, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_START_BACKWARD, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_START_DESCEND, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_START_FORWARD, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_START_PITCH_DOWN, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_START_PITCH_UP, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_START_STRAFE_LEFT, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_START_STRAFE_RIGHT, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_START_SWIM, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_START_TURN_LEFT, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_START_TURN_RIGHT, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_STOP, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_STOP_ASCEND, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_STOP_PITCH, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_STOP_STRAFE, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_STOP_SWIM, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_STOP_TURN, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
|
||||
DEFINE_HANDLER(CMSG_MOVE_START_ASCEND, STATUS_LOGGEDIN, PROCESS_THREADSAFE, WorldPackets::Movement::ClientPlayerMovement, &WorldSession::HandleMovementOpcodes);
|
||||
DEFINE_HANDLER(CMSG_MOVE_START_BACKWARD, STATUS_LOGGEDIN, PROCESS_THREADSAFE, WorldPackets::Movement::ClientPlayerMovement, &WorldSession::HandleMovementOpcodes);
|
||||
DEFINE_HANDLER(CMSG_MOVE_START_DESCEND, STATUS_LOGGEDIN, PROCESS_THREADSAFE, WorldPackets::Movement::ClientPlayerMovement, &WorldSession::HandleMovementOpcodes);
|
||||
DEFINE_HANDLER(CMSG_MOVE_START_FORWARD, STATUS_LOGGEDIN, PROCESS_THREADSAFE, WorldPackets::Movement::ClientPlayerMovement, &WorldSession::HandleMovementOpcodes);
|
||||
DEFINE_HANDLER(CMSG_MOVE_START_PITCH_DOWN, STATUS_LOGGEDIN, PROCESS_THREADSAFE, WorldPackets::Movement::ClientPlayerMovement, &WorldSession::HandleMovementOpcodes);
|
||||
DEFINE_HANDLER(CMSG_MOVE_START_PITCH_UP, STATUS_LOGGEDIN, PROCESS_THREADSAFE, WorldPackets::Movement::ClientPlayerMovement, &WorldSession::HandleMovementOpcodes);
|
||||
DEFINE_HANDLER(CMSG_MOVE_START_STRAFE_LEFT, STATUS_LOGGEDIN, PROCESS_THREADSAFE, WorldPackets::Movement::ClientPlayerMovement, &WorldSession::HandleMovementOpcodes);
|
||||
DEFINE_HANDLER(CMSG_MOVE_START_STRAFE_RIGHT, STATUS_LOGGEDIN, PROCESS_THREADSAFE, WorldPackets::Movement::ClientPlayerMovement, &WorldSession::HandleMovementOpcodes);
|
||||
DEFINE_HANDLER(CMSG_MOVE_START_SWIM, STATUS_LOGGEDIN, PROCESS_THREADSAFE, WorldPackets::Movement::ClientPlayerMovement, &WorldSession::HandleMovementOpcodes);
|
||||
DEFINE_HANDLER(CMSG_MOVE_START_TURN_LEFT, STATUS_LOGGEDIN, PROCESS_THREADSAFE, WorldPackets::Movement::ClientPlayerMovement, &WorldSession::HandleMovementOpcodes);
|
||||
DEFINE_HANDLER(CMSG_MOVE_START_TURN_RIGHT, STATUS_LOGGEDIN, PROCESS_THREADSAFE, WorldPackets::Movement::ClientPlayerMovement, &WorldSession::HandleMovementOpcodes);
|
||||
DEFINE_HANDLER(CMSG_MOVE_STOP, STATUS_LOGGEDIN, PROCESS_THREADSAFE, WorldPackets::Movement::ClientPlayerMovement, &WorldSession::HandleMovementOpcodes);
|
||||
DEFINE_HANDLER(CMSG_MOVE_STOP_ASCEND, STATUS_LOGGEDIN, PROCESS_THREADSAFE, WorldPackets::Movement::ClientPlayerMovement, &WorldSession::HandleMovementOpcodes);
|
||||
DEFINE_HANDLER(CMSG_MOVE_STOP_PITCH, STATUS_LOGGEDIN, PROCESS_THREADSAFE, WorldPackets::Movement::ClientPlayerMovement, &WorldSession::HandleMovementOpcodes);
|
||||
DEFINE_HANDLER(CMSG_MOVE_STOP_STRAFE, STATUS_LOGGEDIN, PROCESS_THREADSAFE, WorldPackets::Movement::ClientPlayerMovement, &WorldSession::HandleMovementOpcodes);
|
||||
DEFINE_HANDLER(CMSG_MOVE_STOP_SWIM, STATUS_LOGGEDIN, PROCESS_THREADSAFE, WorldPackets::Movement::ClientPlayerMovement, &WorldSession::HandleMovementOpcodes);
|
||||
DEFINE_HANDLER(CMSG_MOVE_STOP_TURN, STATUS_LOGGEDIN, PROCESS_THREADSAFE, WorldPackets::Movement::ClientPlayerMovement, &WorldSession::HandleMovementOpcodes);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_TIME_SKIPPED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleMoveTimeSkippedOpcode );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_WATER_WALK_ACK, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMoveWaterWalkAck );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_WORLDPORT_ACK, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleMoveWorldportAckOpcode );
|
||||
|
||||
@@ -115,6 +115,11 @@ namespace WorldPackets
|
||||
{
|
||||
class QueryCreature;
|
||||
}
|
||||
|
||||
namespace Movement
|
||||
{
|
||||
class ClientPlayerMovement;
|
||||
}
|
||||
}
|
||||
|
||||
enum AccountDataType
|
||||
@@ -591,7 +596,7 @@ class WorldSession
|
||||
void HandleMoveWorldportAckOpcode(WorldPacket& recvPacket);
|
||||
void HandleMoveWorldportAckOpcode(); // for server-side calls
|
||||
|
||||
void HandleMovementOpcodes(WorldPacket& recvPacket);
|
||||
void HandleMovementOpcodes(WorldPackets::Movement::ClientPlayerMovement& packet);
|
||||
void HandleSetActiveMoverOpcode(WorldPacket& recvData);
|
||||
void HandleMoveNotActiveMover(WorldPacket& recvData);
|
||||
void HandleDismissControlledVehicle(WorldPacket& recvData);
|
||||
|
||||
Reference in New Issue
Block a user