aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorccrs <ccrs@users.noreply.github.com>2018-06-15 12:56:33 +0200
committerShauren <shauren.trinity@gmail.com>2021-09-29 00:01:23 +0200
commit6d9e544c2072b6fba2bf978066edbd3f5c519034 (patch)
tree9046d6e4dc96cb3912403cf2c49a4155b51a66a6 /src
parent4487933bd078c2d0087610de967f69f46cf4da60 (diff)
Core/Movement: shield ChaseMovementGenerator against a potential crash
Since GenericMovementGenerator can be built with any MOTION_TYPE (cherry picked from commit 98fd8d4c748942cc7d7acde97610b7b0688472de)
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Movement/MovementGenerators/ChaseMovementGenerator.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/server/game/Movement/MovementGenerators/ChaseMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/ChaseMovementGenerator.cpp
index ef0571cbdf0..8f84f248cbd 100644
--- a/src/server/game/Movement/MovementGenerators/ChaseMovementGenerator.cpp
+++ b/src/server/game/Movement/MovementGenerators/ChaseMovementGenerator.cpp
@@ -31,7 +31,10 @@ static bool IsMutualChase(Unit* owner, Unit* target)
if (target->GetMotionMaster()->GetCurrentMovementGeneratorType() != CHASE_MOTION_TYPE)
return false;
- return (dynamic_cast<ChaseMovementGenerator const*>(target->GetMotionMaster()->GetCurrentMovementGenerator())->GetTarget() == owner);
+ if (ChaseMovementGenerator* movement = dynamic_cast<ChaseMovementGenerator*>(target->GetMotionMaster()->GetCurrentMovementGenerator()))
+ return movement->GetTarget() == owner;
+
+ return false;
}
static bool PositionOkay(Unit* owner, Unit* target, Optional<float> minDistance, Optional<float> maxDistance, Optional<ChaseAngle> angle)