diff --git a/OpenRA.Mods.Common/Effects/RallyPointIndicator.cs b/OpenRA.Mods.Common/Effects/RallyPointIndicator.cs index c5ca73243d..efb8846a7f 100644 --- a/OpenRA.Mods.Common/Effects/RallyPointIndicator.cs +++ b/OpenRA.Mods.Common/Effects/RallyPointIndicator.cs @@ -23,16 +23,14 @@ namespace OpenRA.Mods.Common.Effects readonly RallyPoint rp; readonly Animation flag; readonly Animation circles; - readonly ExitInfo[] exits; List targetLineNodes = new List { }; List cachedLocations; - public RallyPointIndicator(Actor building, RallyPoint rp, ExitInfo[] exits) + public RallyPointIndicator(Actor building, RallyPoint rp) { this.building = building; this.rp = rp; - this.exits = exits; if (rp.Info.Image != null) { @@ -73,21 +71,8 @@ namespace OpenRA.Mods.Common.Effects if (targetLineNodes.Count == 0) return; - var exitPos = building.CenterPosition; - - // Find closest exit - var dist = int.MaxValue; - foreach (var exit in exits) - { - var ep = building.CenterPosition + exit.SpawnOffset; - var len = (targetLineNodes[0] - ep).Length; - if (len < dist) - { - dist = len; - exitPos = ep; - } - } - + var exit = building.NearestExitOrDefault(targetLineNodes[0]); + var exitPos = exit != null ? building.World.Map.CenterOfCell(building.Location + exit.Info.ExitCell) : building.CenterPosition; targetLineNodes.Insert(0, exitPos); } diff --git a/OpenRA.Mods.Common/Traits/Buildings/RallyPoint.cs b/OpenRA.Mods.Common/Traits/Buildings/RallyPoint.cs index cd035638e7..d0acfedb9d 100644 --- a/OpenRA.Mods.Common/Traits/Buildings/RallyPoint.cs +++ b/OpenRA.Mods.Common/Traits/Buildings/RallyPoint.cs @@ -75,13 +75,7 @@ namespace OpenRA.Mods.Common.Traits void INotifyCreated.Created(Actor self) { - // Display only the first level of priority - var priorityExits = self.Info.TraitInfos() - .GroupBy(e => e.Priority) - .FirstOrDefault(); - - var exits = priorityExits != null ? priorityExits.ToArray() : new ExitInfo[0]; - self.World.Add(new RallyPointIndicator(self, this, exits)); + self.World.Add(new RallyPointIndicator(self, this)); } public void OnOwnerChanged(Actor self, Player oldOwner, Player newOwner)