Core/Movement: shield ChaseMovementGenerator against a potential crash
Port From (https://github.com/TrinityCore/TrinityCore/commit/6d9e544c2072b6fba2bf978066edbd3f5c519034)
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user