Skip to content

Commit db69411

Browse files
committed
Core/Movement: Fixed players keeping mount speed buff when dismounted while handling speed change ack packet
Closes #29475
1 parent fd57ff4 commit db69411

1 file changed

Lines changed: 4 additions & 2 deletions

File tree

src/server/game/Handlers/MovementHandler.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -531,13 +531,15 @@ void WorldSession::HandleForceSpeedChangeAck(WorldPacket &recvData)
531531

532532
/* the client data has been verified. let's do the actual change now */
533533
movementInfo.time = AdjustClientMovementTime(movementInfo.time);
534-
535534
mover->m_movementInfo = movementInfo;
536-
mover->UpdatePosition(movementInfo.pos);
537535

538536
float newSpeedRate = speedSent / (mover->IsControlledByPlayer() ? playerBaseMoveSpeed[move_type] : baseMoveSpeed[move_type]);
539537
mover->SetSpeedRateReal(move_type, newSpeedRate);
540538
MovementPacketSender::SendSpeedChangeToObservers(mover, move_type, speedSent);
539+
540+
// Update position after updating known serverside speed
541+
// this can interrupt aura granting us the speed boost so it needs see updated value in Unit::m_speed_rate
542+
mover->UpdatePosition(movementInfo.pos);
541543
}
542544

543545
void WorldSession::HandleSetActiveMoverOpcode(WorldPacket &recvData)

0 commit comments

Comments
 (0)