diff --git a/src/server/game/Movement/MovementGenerators/PointMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/PointMovementGenerator.cpp index 146d12136..317f8c2a9 100644 --- a/src/server/game/Movement/MovementGenerators/PointMovementGenerator.cpp +++ b/src/server/game/Movement/MovementGenerators/PointMovementGenerator.cpp @@ -99,12 +99,22 @@ bool PointMovementGenerator::DoUpdate(T* unit, uint32 /*diff*/) if (!unit) return false; - if (unit->HasUnitState(UNIT_STATE_NOT_MOVE) || unit->IsMovementPreventedByCasting()) + if (unit->IsMovementPreventedByCasting()) { unit->StopMoving(); return true; } + if (unit->HasUnitState(UNIT_STATE_NOT_MOVE)) + { + if (!unit->HasUnitState(UNIT_STATE_CHARGING)) + { + unit->StopMoving(); + } + + return true; + } + unit->AddUnitState(UNIT_STATE_ROAMING_MOVE); if (i_recalculateSpeed && !unit->movespline->Finalized())