diff options
author | Treeston <treeston.mmoc@gmail.com> | 2018-08-19 20:22:45 +0200 |
---|---|---|
committer | Treeston <treeston.mmoc@gmail.com> | 2018-08-19 20:22:45 +0200 |
commit | 86bba6421baf4be501dd523890ce691de3914e2f (patch) | |
tree | 4b0fbf2129e8c1560956350803f1822256f97c62 /src | |
parent | f95a383293e32eeae514899c132e901174f4207e (diff) |
Core/Movement: Prevent NO_PATH evades from incorrectly happening in a few places. Closes #22226.
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Movement/MovementGenerators/ChaseMovementGenerator.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
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*/) |