diff options
| author | Treeston <treeston.mmoc@gmail.com> | 2018-08-19 20:22:45 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2021-10-22 00:42:04 +0200 |
| commit | 6f0e58cce0088dd030d5bf85ae03e9d942241800 (patch) | |
| tree | e651e866034025dfd6c86f76bf72cf955479996c /src | |
| parent | 0c3690db917016461f4c94b7e75bd16e67b5b0f0 (diff) | |
Core/Movement: Prevent NO_PATH evades from incorrectly happening in a few places. Closes #22226.
(cherry picked from commit 86bba6421baf4be501dd523890ce691de3914e2f)
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 07430d78ddc..91bb0e3540c 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*/) |
