diff --git a/OpenRA.Mods.RA/AppearsOnRadar.cs b/OpenRA.Mods.RA/AppearsOnRadar.cs index 45492063b5..9e7d7f72a1 100755 --- a/OpenRA.Mods.RA/AppearsOnRadar.cs +++ b/OpenRA.Mods.RA/AppearsOnRadar.cs @@ -15,16 +15,29 @@ using OpenRA.Traits; namespace OpenRA.Mods.RA { - public class AppearsOnRadarInfo : TraitInfo {} + public class AppearsOnRadarInfo : TraitInfo + { + public readonly bool UseLocation = false; + } + public class AppearsOnRadar : IRadarSignature - { + { + AppearsOnRadarInfo info; IOccupySpace Space; public IEnumerable RadarSignatureCells(Actor self) { - if (Space == null) - Space = self.Trait(); - return Space.OccupiedCells(); + if (info == null) + info = self.Info.Traits.Get(); + + if (info.UseLocation) + return new int2[] { self.Location }; + else + { + if (Space == null) + Space = self.Trait(); + return Space.OccupiedCells(); + } } public Color RadarSignatureColor(Actor self) diff --git a/mods/cnc/rules/defaults.yaml b/mods/cnc/rules/defaults.yaml index 6dcb2ec9f5..4ebb78981e 100644 --- a/mods/cnc/rules/defaults.yaml +++ b/mods/cnc/rules/defaults.yaml @@ -58,6 +58,7 @@ ^Helicopter: AppearsOnRadar: + UseLocation: yes Targetable: TargetTypes: Air Selectable: @@ -135,6 +136,7 @@ ^Plane: AppearsOnRadar: + UseLocation: yes Selectable: Voice: GenericVoice Targetable: diff --git a/mods/ra/rules/defaults.yaml b/mods/ra/rules/defaults.yaml index 67ad1d277f..7641e300f7 100644 --- a/mods/ra/rules/defaults.yaml +++ b/mods/ra/rules/defaults.yaml @@ -104,6 +104,7 @@ ^Plane: AppearsOnRadar: + UseLocation: yes Selectable: Voice: GenericVoice TargetableAircraft: