From a203a5183be5f00cf58e3112b20787d9fa2d118b Mon Sep 17 00:00:00 2001 From: Chaouki Dhib Date: Sat, 8 May 2021 15:22:18 +0200 Subject: [PATCH] fix(Core/Movement): Fix strange teleport when rooting a fleeing NPC (#5555) --- .../MovementGenerators/PointMovementGenerator.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/server/game/Movement/MovementGenerators/PointMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/PointMovementGenerator.cpp index 83ab79000..c57fec141 100644 --- a/src/server/game/Movement/MovementGenerators/PointMovementGenerator.cpp +++ b/src/server/game/Movement/MovementGenerators/PointMovementGenerator.cpp @@ -17,6 +17,14 @@ template void PointMovementGenerator::DoInitialize(T* unit) { + if (unit->HasUnitState(UNIT_STATE_ROOT | UNIT_STATE_STUNNED)) + { + // the next line is to ensure that a new spline is created in DoUpdate() once the unit is no longer rooted/stunned + // todo: rename this flag to something more appropriate since it is set to true even without speed change now. + i_recalculateSpeed = true; + return; + } + if (!unit->IsStopped()) unit->StopMoving();