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();