diff --git a/OpenRA.Game/Traits/World/ActorMap.cs b/OpenRA.Game/Traits/World/ActorMap.cs index f6b8dc4a1d..ef489335d8 100644 --- a/OpenRA.Game/Traits/World/ActorMap.cs +++ b/OpenRA.Game/Traits/World/ActorMap.cs @@ -194,7 +194,7 @@ namespace OpenRA.Traits public IEnumerable GetUnitsAt(CPos a) { - if (!map.Contains(a)) + if (!influence.Contains(a)) yield break; for (var i = influence[a]; i != null; i = i.Next) @@ -204,7 +204,7 @@ namespace OpenRA.Traits public IEnumerable GetUnitsAt(CPos a, SubCell sub) { - if (!map.Contains(a)) + if (!influence.Contains(a)) yield break; for (var i = influence[a]; i != null; i = i.Next) @@ -249,7 +249,7 @@ namespace OpenRA.Traits // NOTE: always includes transients with influence public bool AnyUnitsAt(CPos a) { - if (!map.Contains(a)) + if (!influence.Contains(a)) return false; return influence[a] != null; @@ -258,7 +258,7 @@ namespace OpenRA.Traits // NOTE: can not check aircraft public bool AnyUnitsAt(CPos a, SubCell sub, bool checkTransient = true) { - if (!map.Contains(a)) + if (!influence.Contains(a)) return false; var always = sub == SubCell.FullCell || sub == SubCell.Any; @@ -281,7 +281,7 @@ namespace OpenRA.Traits // NOTE: can not check aircraft public bool AnyUnitsAt(CPos a, SubCell sub, Func withCondition) { - if (!map.Contains(a)) + if (!influence.Contains(a)) return false; var always = sub == SubCell.FullCell || sub == SubCell.Any; @@ -296,7 +296,7 @@ namespace OpenRA.Traits { foreach (var c in ios.OccupiedCells()) { - if (!map.Contains(c.First)) + if (!influence.Contains(c.First)) continue; influence[c.First] = new InfluenceNode { Next = influence[c.First], SubCell = c.Second, Actor = self }; @@ -312,7 +312,7 @@ namespace OpenRA.Traits { foreach (var c in ios.OccupiedCells()) { - if (!map.Contains(c.First)) + if (!influence.Contains(c.First)) continue; var temp = influence[c.First]; @@ -381,7 +381,7 @@ namespace OpenRA.Traits foreach (var c in cells) { - if (!map.Contains(c)) + if (!influence.Contains(c)) continue; if (!cellTriggerInfluence.ContainsKey(c)) diff --git a/OpenRA.Mods.Common/Traits/Buildings/BuildingInfluence.cs b/OpenRA.Mods.Common/Traits/Buildings/BuildingInfluence.cs index fe8894f491..e8da7eb8c7 100644 --- a/OpenRA.Mods.Common/Traits/Buildings/BuildingInfluence.cs +++ b/OpenRA.Mods.Common/Traits/Buildings/BuildingInfluence.cs @@ -36,7 +36,7 @@ namespace OpenRA.Mods.Common.Traits return; foreach (var u in FootprintUtils.Tiles(map.Rules, a.Info.Name, b.Info, a.Location)) - if (map.Contains(u) && influence[u] == null) + if (influence.Contains(u) && influence[u] == null) influence[u] = a; }; @@ -47,14 +47,14 @@ namespace OpenRA.Mods.Common.Traits return; foreach (var u in FootprintUtils.Tiles(map.Rules, a.Info.Name, b.Info, a.Location)) - if (map.Contains(u) && influence[u] == a) + if (influence.Contains(u) && influence[u] == a) influence[u] = null; }; } public Actor GetBuildingAt(CPos cell) { - if (!map.Contains(cell)) + if (!influence.Contains(cell)) return null; return influence[cell]; diff --git a/OpenRA.Mods.Common/Traits/World/BridgeLayer.cs b/OpenRA.Mods.Common/Traits/World/BridgeLayer.cs index 85579f6c36..7794545cce 100644 --- a/OpenRA.Mods.Common/Traits/World/BridgeLayer.cs +++ b/OpenRA.Mods.Common/Traits/World/BridgeLayer.cs @@ -27,14 +27,12 @@ namespace OpenRA.Mods.Common.Traits class BridgeLayer : IWorldLoaded { readonly BridgeLayerInfo info; - readonly World world; Dictionary> bridgeTypes = new Dictionary>(); CellLayer bridges; public BridgeLayer(Actor self, BridgeLayerInfo info) { this.info = info; - this.world = self.World; } public void WorldLoaded(World w, WorldRenderer wr) @@ -81,6 +79,7 @@ namespace OpenRA.Mods.Common.Traits }).Trait(); var subTiles = new Dictionary(); + var mapTiles = w.Map.MapTiles.Value; // For each subtile in the template for (byte ind = 0; ind < template.Size.X * template.Size.Y; ind++) @@ -89,8 +88,7 @@ namespace OpenRA.Mods.Common.Traits var subtile = new CPos(ni + ind % template.Size.X, nj + ind / template.Size.X); // This isn't the bridge you're looking for - if (!w.Map.Contains(subtile) || w.Map.MapTiles.Value[subtile].Type != tile || - w.Map.MapTiles.Value[subtile].Index != ind) + if (!mapTiles.Contains(subtile) || mapTiles[subtile].Type != tile || mapTiles[subtile].Index != ind) continue; subTiles.Add(subtile, ind); @@ -103,7 +101,7 @@ namespace OpenRA.Mods.Common.Traits // Used to check for neighbouring bridges public Bridge GetBridge(CPos cell) { - if (!world.Map.Contains(cell)) + if (!bridges.Contains(cell)) return null; return bridges[cell]; diff --git a/OpenRA.Mods.Common/Traits/World/DomainIndex.cs b/OpenRA.Mods.Common/Traits/World/DomainIndex.cs index d716461489..cc5bd6ca19 100644 --- a/OpenRA.Mods.Common/Traits/World/DomainIndex.cs +++ b/OpenRA.Mods.Common/Traits/World/DomainIndex.cs @@ -72,7 +72,7 @@ namespace OpenRA.Mods.Common.Traits public bool IsPassable(CPos p1, CPos p2) { - if (!map.Contains(p1) || !map.Contains(p2)) + if (!domains.Contains(p1) || !domains.Contains(p2)) return false; if (domains[p1] == domains[p2])