From 3e040d66889102fcdb0320ff1abcc64d08715be3 Mon Sep 17 00:00:00 2001 From: hondacrx Date: Wed, 29 Sep 2021 19:25:46 -0400 Subject: [PATCH] Core/Movement: shield ChaseMovementGenerator against a potential crash Port From (https://github.com/TrinityCore/TrinityCore/commit/6d9e544c2072b6fba2bf978066edbd3f5c519034) --- .../Movement/Generators/ChaseMovementGenerator.cs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Source/Game/Movement/Generators/ChaseMovementGenerator.cs b/Source/Game/Movement/Generators/ChaseMovementGenerator.cs index 7bba568b9..717f81a0e 100644 --- a/Source/Game/Movement/Generators/ChaseMovementGenerator.cs +++ b/Source/Game/Movement/Generators/ChaseMovementGenerator.cs @@ -223,7 +223,11 @@ namespace Game.Movement if (target.GetMotionMaster().GetCurrentMovementGeneratorType() != MovementGeneratorType.Chase) return false; - return ((ChaseMovementGenerator)target.GetMotionMaster().GetCurrentMovementGenerator())._abstractFollower.GetTarget() == owner; + ChaseMovementGenerator movement = target.GetMotionMaster().GetCurrentMovementGenerator() as ChaseMovementGenerator; + if (movement != null) + return movement.GetTarget() == owner; + + return false; } static bool PositionOkay(Unit owner, Unit target, float? minDistance, float? maxDistance, ChaseAngle? angle) @@ -245,5 +249,10 @@ namespace Game.Movement if (creatureOwner.IsAIEnabled && creatureOwner.GetAI() != null) creatureOwner.GetAI().MovementInform(MovementGeneratorType.Chase, (uint)target.GetGUID().GetCounter()); } + + public Unit GetTarget() + { + return _abstractFollower.GetTarget(); + } } }