mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-15 23:20:36 +01:00
Core/Movement: Handle move stop embedded in spell cast requests
This commit is contained in:
@@ -289,8 +289,11 @@ void WorldSession::HandleMoveTeleportAck(WorldPackets::Movement::MoveTeleportAck
|
||||
|
||||
void WorldSession::HandleMovementOpcodes(WorldPackets::Movement::ClientPlayerMovement& packet)
|
||||
{
|
||||
OpcodeClient opcode = packet.GetOpcode();
|
||||
HandleMovementOpcode(packet.GetOpcode(), packet.movementInfo);
|
||||
}
|
||||
|
||||
void WorldSession::HandleMovementOpcode(OpcodeClient opcode, MovementInfo& movementInfo)
|
||||
{
|
||||
Unit* mover = _player->m_unitMovedByMe;
|
||||
|
||||
ASSERT(mover != nullptr); // there must always be a mover
|
||||
@@ -301,9 +304,7 @@ void WorldSession::HandleMovementOpcodes(WorldPackets::Movement::ClientPlayerMov
|
||||
if (plrMover && plrMover->IsBeingTeleported())
|
||||
return;
|
||||
|
||||
GetPlayer()->ValidateMovementInfo(&packet.movementInfo);
|
||||
|
||||
MovementInfo& movementInfo = packet.movementInfo;
|
||||
GetPlayer()->ValidateMovementInfo(&movementInfo);
|
||||
|
||||
// prevent tampered movement data
|
||||
if (movementInfo.guid != mover->GetGUID())
|
||||
|
||||
@@ -301,6 +301,9 @@ void WorldSession::HandleCastSpellOpcode(WorldPackets::Spells::CastSpell& cast)
|
||||
spellInfo = actualSpellInfo;
|
||||
}
|
||||
|
||||
if (cast.Cast.MoveUpdate)
|
||||
HandleMovementOpcode(CMSG_MOVE_STOP, *cast.Cast.MoveUpdate);
|
||||
|
||||
Spell* spell = new Spell(caster, spellInfo, TRIGGERED_NONE, ObjectGuid::Empty, false);
|
||||
|
||||
WorldPackets::Spells::SpellPrepare spellPrepare;
|
||||
|
||||
@@ -1262,6 +1262,7 @@ class TC_GAME_API WorldSession
|
||||
void HandleSuspendTokenResponse(WorldPackets::Movement::SuspendTokenResponse& suspendTokenResponse);
|
||||
|
||||
void HandleMovementOpcodes(WorldPackets::Movement::ClientPlayerMovement& packet);
|
||||
void HandleMovementOpcode(OpcodeClient opcode, MovementInfo& movementInfo);
|
||||
void HandleSetActiveMoverOpcode(WorldPackets::Movement::SetActiveMover& packet);
|
||||
void HandleMoveDismissVehicle(WorldPackets::Vehicle::MoveDismissVehicle& moveDismissVehicle);
|
||||
void HandleRequestVehiclePrevSeat(WorldPackets::Vehicle::RequestVehiclePrevSeat& requestVehiclePrevSeat);
|
||||
|
||||
Reference in New Issue
Block a user