diff options
| author | ccrs <ccrs@users.noreply.github.com> | 2018-06-15 12:56:33 +0200 |
|---|---|---|
| committer | ccrs <ccrs@users.noreply.github.com> | 2018-06-15 12:56:33 +0200 |
| commit | 98fd8d4c748942cc7d7acde97610b7b0688472de (patch) | |
| tree | bc88d6619c8d0ee9e68343e86756cfe040f78013 /src/server | |
| parent | 24a9598e2c2d8c39f7b8f5b3f900b61466c8652a (diff) | |
Core/Movement: shield ChaseMovementGenerator against a potential crash
Since GenericMovementGenerator can be built with any MOTION_TYPE
Diffstat (limited to 'src/server')
| -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 efe80345bd7..f83c7e8b16a 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) |
