public CreatureObject GetNearest(CreatureObject Source, List<CreatureObject> Creatures)
{
AreaObject SourceArea = Source.Area;
Vector3 SourcePos = Source.Position;
CreatureObject RetValue = null;
if (Creatures.Count == 0) return RetValue;
float ShortestDistance = -1.0f;
foreach (CreatureObject Target in Creatures)
{
// Only interested in objects in the same area.
if (SourceArea != Target.Area)
continue;
Vector3 TargetPos = Target.Position;
float Distance = MathOps.DistanceSq(SourcePos, TargetPos);
if ((ShortestDistance < 0) || (Distance < ShortestDistance))
{
ShortestDistance = Distance;
RetValue = Target;
}
}
return RetValue;
}