aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTreeston <treeston.mmoc@gmail.com>2018-08-19 20:22:45 +0200
committerShauren <shauren.trinity@gmail.com>2021-10-22 00:42:04 +0200
commit6f0e58cce0088dd030d5bf85ae03e9d942241800 (patch)
treee651e866034025dfd6c86f76bf72cf955479996c
parent0c3690db917016461f4c94b7e75bd16e67b5b0f0 (diff)
Core/Movement: Prevent NO_PATH evades from incorrectly happening in a few places. Closes #22226.
(cherry picked from commit 86bba6421baf4be501dd523890ce691de3914e2f)
-rw-r--r--src/server/game/Movement/MovementGenerators/ChaseMovementGenerator.cpp6
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*/)