diff --git a/OpenRA.Game/WorldUtils.cs b/OpenRA.Game/WorldUtils.cs index 5a1276ddc7..95be68d72c 100755 --- a/OpenRA.Game/WorldUtils.cs +++ b/OpenRA.Game/WorldUtils.cs @@ -74,7 +74,8 @@ namespace OpenRA public static int2 ClampToWorld( this World world, int2 xy ) { - return xy.Clamp(world.Map.Bounds); + var r = world.Map.Bounds; + return xy.Clamp(new Rectangle(r.X,r.Y,r.Width-1, r.Height-1)); } public static int2 ChooseRandomEdgeCell(this World w) diff --git a/OpenRA.Mods.RA/Air/Helicopter.cs b/OpenRA.Mods.RA/Air/Helicopter.cs index cce3d0d348..1e5a267af5 100755 --- a/OpenRA.Mods.RA/Air/Helicopter.cs +++ b/OpenRA.Mods.RA/Air/Helicopter.cs @@ -74,7 +74,7 @@ namespace OpenRA.Mods.RA.Air if (order.OrderString == "Move") { - var target = order.TargetLocation.Clamp(self.World.Map.Bounds); + var target = self.World.ClampToWorld(order.TargetLocation); self.SetTargetLine(Target.FromCell(target), Color.Green); self.CancelActivity(); diff --git a/OpenRA.Mods.RA/Air/Plane.cs b/OpenRA.Mods.RA/Air/Plane.cs index 3afd6a852a..aa57cd71f9 100755 --- a/OpenRA.Mods.RA/Air/Plane.cs +++ b/OpenRA.Mods.RA/Air/Plane.cs @@ -85,7 +85,7 @@ namespace OpenRA.Mods.RA.Air { UnReserve(); - var target = order.TargetLocation.Clamp(self.World.Map.Bounds); + var target = self.World.ClampToWorld(order.TargetLocation); self.SetTargetLine(Target.FromCell(target), Color.Green); self.CancelActivity(); self.QueueActivity(Fly.ToCell(target)); diff --git a/OpenRA.Mods.RA/Move/Mobile.cs b/OpenRA.Mods.RA/Move/Mobile.cs index 7c6f4f0a00..8f3f0c86cc 100755 --- a/OpenRA.Mods.RA/Move/Mobile.cs +++ b/OpenRA.Mods.RA/Move/Mobile.cs @@ -276,7 +276,7 @@ namespace OpenRA.Mods.RA.Move { if (order.OrderString == "Move") { - var target = order.TargetLocation.Clamp(self.World.Map.Bounds); + var target = self.World.ClampToWorld(order.TargetLocation); PerformMove(self, target, order.Queued && !self.IsIdle); }