diff options
author | ccrs <ccrs@users.noreply.github.com> | 2018-06-15 12:56:33 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2021-09-29 00:01:23 +0200 |
commit | 6d9e544c2072b6fba2bf978066edbd3f5c519034 (patch) | |
tree | 9046d6e4dc96cb3912403cf2c49a4155b51a66a6 /src | |
parent | 4487933bd078c2d0087610de967f69f46cf4da60 (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.cpp | 5 |
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) |