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)
|
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();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user