Core/Movement: shield ChaseMovementGenerator against a potential crash

Port From (https://github.com/TrinityCore/TrinityCore/commit/6d9e544c2072b6fba2bf978066edbd3f5c519034)
This commit is contained in:
hondacrx
2021-09-29 19:25:46 -04:00
parent 8d052d7d51
commit 3e040d6688
@@ -223,7 +223,11 @@ namespace Game.Movement
if (target.GetMotionMaster().GetCurrentMovementGeneratorType() != MovementGeneratorType.Chase) if (target.GetMotionMaster().GetCurrentMovementGeneratorType() != MovementGeneratorType.Chase)
return false; 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) 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) if (creatureOwner.IsAIEnabled && creatureOwner.GetAI() != null)
creatureOwner.GetAI().MovementInform(MovementGeneratorType.Chase, (uint)target.GetGUID().GetCounter()); creatureOwner.GetAI().MovementInform(MovementGeneratorType.Chase, (uint)target.GetGUID().GetCounter());
} }
public Unit GetTarget()
{
return _abstractFollower.GetTarget();
}
} }
} }