From 86bba6421baf4be501dd523890ce691de3914e2f Mon Sep 17 00:00:00 2001 From: Treeston Date: Sun, 19 Aug 2018 20:22:45 +0200 Subject: Core/Movement: Prevent NO_PATH evades from incorrectly happening in a few places. Closes #22226. --- .../game/Movement/MovementGenerators/ChaseMovementGenerator.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src') diff --git a/src/server/game/Movement/MovementGenerators/ChaseMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/ChaseMovementGenerator.cpp index 28928cdeacb..973921aafe1 100644 --- a/src/server/game/Movement/MovementGenerators/ChaseMovementGenerator.cpp +++ b/src/server/game/Movement/MovementGenerators/ChaseMovementGenerator.cpp @@ -103,6 +103,8 @@ bool ChaseMovementGenerator::Update(Unit* owner, uint32 diff) { owner->StopMoving(); _lastTargetPosition.reset(); + if (Creature* cOwner = owner->ToCreature()) + cOwner->SetCannotReachTarget(false); return true; } @@ -137,6 +139,8 @@ bool ChaseMovementGenerator::Update(Unit* owner, uint32 diff) if (owner->HasUnitState(UNIT_STATE_CHASE_MOVE) && owner->movespline->Finalized()) { _path = nullptr; + if (Creature* cOwner = owner->ToCreature()) + cOwner->SetCannotReachTarget(false); owner->ClearUnitState(UNIT_STATE_CHASE_MOVE); owner->SetInFront(target); DoMovementInform(owner, target); @@ -219,6 +223,8 @@ void ChaseMovementGenerator::Deactivate(Unit* owner) { AddFlag(MOVEMENTGENERATOR_FLAG_DEACTIVATED); owner->ClearUnitState(UNIT_STATE_CHASE_MOVE); + if (Creature* cOwner = owner->ToCreature()) + cOwner->SetCannotReachTarget(false); } void ChaseMovementGenerator::Finalize(Unit* owner, bool active, bool/* movementInform*/) -- cgit v1.2.3