diff --git a/OpenRA.Game/CPos.cs b/OpenRA.Game/CPos.cs index 02e117c220..82b17d3d8b 100644 --- a/OpenRA.Game/CPos.cs +++ b/OpenRA.Game/CPos.cs @@ -21,8 +21,6 @@ namespace OpenRA public readonly int X, Y; public CPos(int x, int y) { X = x; Y = y; } - public CPos(WPos a) { X = a.X / 1024; Y = a.Y / 1024; } - public static readonly CPos Zero = new CPos(0, 0); public static explicit operator CPos(int2 a) { return new CPos(a.X, a.Y); } @@ -71,4 +69,9 @@ namespace OpenRA public static CPos TopLeftAsCPos(this Rectangle r) { return new CPos(r.Left, r.Top); } public static CPos BottomRightAsCPos(this Rectangle r) { return new CPos(r.Right, r.Bottom); } } -} + + public static class WPosExtensions + { + public static CPos ToCPos(this WPos a) { return new CPos(a.X / 1024, a.Y / 1024); } + } +} \ No newline at end of file diff --git a/OpenRA.Game/Graphics/ContrailRenderable.cs b/OpenRA.Game/Graphics/ContrailRenderable.cs index 9ef43b1813..a33cedd6b2 100644 --- a/OpenRA.Game/Graphics/ContrailRenderable.cs +++ b/OpenRA.Game/Graphics/ContrailRenderable.cs @@ -60,13 +60,13 @@ namespace OpenRA.Graphics // Start of the first line segment is the tail of the list - don't smooth it. var curPos = trail[idx(next - skip - 1)]; - var curCell = new CPos(curPos); + var curCell = curPos.ToCPos(); var curColor = color; for (var i = 0; i < length - skip - 4; i++) { var j = next - skip - i - 2; var nextPos = WPos.Average(trail[idx(j)], trail[idx(j-1)], trail[idx(j-2)], trail[idx(j-3)]); - var nextCell = new CPos(nextPos); + var nextCell = nextPos.ToCPos(); var nextColor = Exts.ColorLerp(i * 1f / (length - 4), color, Color.Transparent); if (!world.FogObscures(curCell) && !world.FogObscures(nextCell)) diff --git a/OpenRA.Mods.RA/Effects/Parachute.cs b/OpenRA.Mods.RA/Effects/Parachute.cs index 97ac756ce8..bc20073810 100644 --- a/OpenRA.Mods.RA/Effects/Parachute.cs +++ b/OpenRA.Mods.RA/Effects/Parachute.cs @@ -36,7 +36,7 @@ namespace OpenRA.Mods.RA.Effects parachuteOffset = pai.Offset; // Adjust x,y to match the target subcell - cargo.Trait().SetPosition(cargo, new CPos(dropPosition)); + cargo.Trait().SetPosition(cargo, dropPosition.ToCPos()); var cp = cargo.CenterPosition; pos = new WPos(cp.X, cp.Y, dropPosition.Z); } diff --git a/OpenRA.Mods.RA/SmokeTrailWhenDamaged.cs b/OpenRA.Mods.RA/SmokeTrailWhenDamaged.cs index eabdfee99d..4678af3399 100644 --- a/OpenRA.Mods.RA/SmokeTrailWhenDamaged.cs +++ b/OpenRA.Mods.RA/SmokeTrailWhenDamaged.cs @@ -43,7 +43,7 @@ namespace OpenRA.Mods.RA { var position = self.CenterPosition; if (position.Z > 0 && self.GetDamageState() >= info.MinDamage && - !self.World.FogObscures(new CPos(position))) + !self.World.FogObscures(position.ToCPos())) { var offset = info.Offset.Rotate(body.QuantizeOrientation(self, self.Orientation)); var pos = position + body.LocalToWorld(offset);