diff --git a/OpenRA.Game/Map/Map.cs b/OpenRA.Game/Map/Map.cs index f8f315cc19..b8597f7203 100644 --- a/OpenRA.Game/Map/Map.cs +++ b/OpenRA.Game/Map/Map.cs @@ -550,5 +550,11 @@ namespace OpenRA var tileSet = Rules.TileSets[Tileset]; return tileSet[GetTerrainIndex(cell)]; } + + public CPos Clamp(CPos xy) + { + var r = Bounds; + return xy.Clamp(new Rectangle(r.X, r.Y, r.Width - 1, r.Height - 1)); + } } } diff --git a/OpenRA.Game/WorldUtils.cs b/OpenRA.Game/WorldUtils.cs index 756f55477c..f421a6ec0d 100644 --- a/OpenRA.Game/WorldUtils.cs +++ b/OpenRA.Game/WorldUtils.cs @@ -88,12 +88,6 @@ namespace OpenRA public const int MaxRange = 50; static List[] TilesByDistance = InitTilesByDistance(MaxRange); - public static CPos ClampToWorld(this World world, CPos xy) - { - var r = world.Map.Bounds; - return xy.Clamp(new Rectangle(r.X,r.Y,r.Width-1, r.Height-1)); - } - public static CPos ChooseRandomEdgeCell(this World w) { var isX = w.SharedRandom.Next(2) == 0; diff --git a/OpenRA.Mods.RA/Air/Helicopter.cs b/OpenRA.Mods.RA/Air/Helicopter.cs index f6e22e1b98..37a34453fd 100755 --- a/OpenRA.Mods.RA/Air/Helicopter.cs +++ b/OpenRA.Mods.RA/Air/Helicopter.cs @@ -50,7 +50,7 @@ namespace OpenRA.Mods.RA.Air if (order.OrderString == "Move") { - var cell = self.World.ClampToWorld(order.TargetLocation); + var cell = self.World.Map.Clamp(order.TargetLocation); var t = Target.FromCell(cell); self.SetTargetLine(t, Color.Green); diff --git a/OpenRA.Mods.RA/Air/Plane.cs b/OpenRA.Mods.RA/Air/Plane.cs index a154ecc6be..e9c7cb08e1 100755 --- a/OpenRA.Mods.RA/Air/Plane.cs +++ b/OpenRA.Mods.RA/Air/Plane.cs @@ -52,7 +52,7 @@ namespace OpenRA.Mods.RA.Air { UnReserve(); - var cell = self.World.ClampToWorld(order.TargetLocation); + var cell = self.World.Map.Clamp(order.TargetLocation); var t = Target.FromCell(cell); self.SetTargetLine(t, Color.Green); self.CancelActivity(); diff --git a/OpenRA.Mods.RA/Buildings/Building.cs b/OpenRA.Mods.RA/Buildings/Building.cs index ca18c8d8b2..72b21c42b9 100644 --- a/OpenRA.Mods.RA/Buildings/Building.cs +++ b/OpenRA.Mods.RA/Buildings/Building.cs @@ -69,8 +69,8 @@ namespace OpenRA.Mods.RA.Buildings if (buildingTraits.Contains() && !(buildingTraits.Get().HasMinibib)) buildingMaxBounds += new CVec(0, 1); - var scanStart = world.ClampToWorld(topLeft - new CVec(Adjacent, Adjacent)); - var scanEnd = world.ClampToWorld(topLeft + buildingMaxBounds + new CVec(Adjacent, Adjacent)); + var scanStart = world.Map.Clamp(topLeft - new CVec(Adjacent, Adjacent)); + var scanEnd = world.Map.Clamp(topLeft + buildingMaxBounds + new CVec(Adjacent, Adjacent)); var nearnessCandidates = new List(); diff --git a/OpenRA.Mods.RA/Move/Mobile.cs b/OpenRA.Mods.RA/Move/Mobile.cs index 56c8587514..4b78a192f9 100755 --- a/OpenRA.Mods.RA/Move/Mobile.cs +++ b/OpenRA.Mods.RA/Move/Mobile.cs @@ -385,7 +385,7 @@ namespace OpenRA.Mods.RA.Move public void ResolveOrder(Actor self, Order order) { if (order.OrderString == "Move") - PerformMove(self, self.World.ClampToWorld(order.TargetLocation), + PerformMove(self, self.World.Map.Clamp(order.TargetLocation), order.Queued && !self.IsIdle); if (order.OrderString == "Stop")