From b9dd59cd638ec08e4a43ce2e3090456fa4929c91 Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Wed, 7 Oct 2020 20:53:41 +0100 Subject: [PATCH] Remove BuildingInfluence from building adjacency check. --- .../Traits/Buildings/Building.cs | 21 +++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/OpenRA.Mods.Common/Traits/Buildings/Building.cs b/OpenRA.Mods.Common/Traits/Buildings/Building.cs index 7403cc41ab..396211958c 100644 --- a/OpenRA.Mods.Common/Traits/Buildings/Building.cs +++ b/OpenRA.Mods.Common/Traits/Buildings/Building.cs @@ -204,7 +204,6 @@ namespace OpenRA.Mods.Common.Traits var scanEnd = world.Map.Clamp(topLeft + buildingMaxBounds + new CVec(adjacent, adjacent)); var nearnessCandidates = new List(); - var bi = world.WorldActor.Trait(); var allyBuildEnabled = mapBuildRadius != null && mapBuildRadius.AllyBuildRadiusEnabled; for (var y = scanStart.Y; y < scanEnd.Y; y++) @@ -213,20 +212,20 @@ namespace OpenRA.Mods.Common.Traits { var pos = new CPos(x, y); - var buildingAtPos = bi.GetBuildingAt(pos); - - if (buildingAtPos == null) + foreach (var a in world.ActorMap.GetActorsAt(pos)) { - var unitsAtPos = world.ActorMap.GetActorsAt(pos).Where(a => a.IsInWorld - && (a.Owner == p || (allyBuildEnabled && a.Owner.Stances[p] == Stance.Ally)) - && ActorGrantsValidArea(a, requiresBuildableArea)); + if (!a.IsInWorld) + continue; - if (unitsAtPos.Any()) + if (a.Owner != p && (!allyBuildEnabled || a.Owner.Stances[p] != Stance.Ally)) + continue; + + if (ActorGrantsValidArea(a, requiresBuildableArea)) + { nearnessCandidates.Add(pos); + break; + } } - else if (buildingAtPos.IsInWorld && ActorGrantsValidArea(buildingAtPos, requiresBuildableArea) - && (buildingAtPos.Owner == p || (allyBuildEnabled && buildingAtPos.Owner.Stances[p] == Stance.Ally))) - nearnessCandidates.Add(pos); } }