diff --git a/OpenRA.Game/Graphics/WorldRenderer.cs b/OpenRA.Game/Graphics/WorldRenderer.cs index b16c2c03ff..0ee9217d89 100644 --- a/OpenRA.Game/Graphics/WorldRenderer.cs +++ b/OpenRA.Game/Graphics/WorldRenderer.cs @@ -126,8 +126,7 @@ namespace OpenRA.Graphics bounds.Offset((int)Game.viewport.Location.X, (int)Game.viewport.Location.Y); - var foos = world.Actors; - var bars = world.FindUnits( + var foos = world.FindUnits( new float2(bounds.Left, bounds.Top), new float2(bounds.Right, bounds.Bottom)); @@ -154,19 +153,6 @@ namespace OpenRA.Graphics renderer.Device.DisableScissor(); - foreach (var bar in bars) - { - var baz = bar.GetBounds(true); - - var a = new float2(baz.Left, baz.Top); - var b = new float2(baz.Right - a.X, 0); - var c = new float2(0, baz.Bottom - a.Y); - lineRenderer.DrawLine(a, a + b, Color.Green, Color.Green); - lineRenderer.DrawLine(a + b, a + b + c, Color.Green, Color.Green); - lineRenderer.DrawLine(a + b + c, a + c, Color.Green, Color.Green); - lineRenderer.DrawLine(a, a + c, Color.Green, Color.Green); - } - { var a = new float2(bounds.Left, bounds.Top); var b = new float2(bounds.Right - a.X, 0); @@ -176,7 +162,8 @@ namespace OpenRA.Graphics lineRenderer.DrawLine(a + b + c, a + c, Color.Red, Color.Red); lineRenderer.DrawLine(a, a + c, Color.Red, Color.Red); - bounds = GetBoundsRect(); + bounds = world.LocalPlayer.Shroud.bounds.Value; + a = new float2(bounds.Left, bounds.Top); b = new float2(bounds.Right - a.X, 0); c = new float2(0, bounds.Bottom - a.Y); @@ -187,7 +174,7 @@ namespace OpenRA.Graphics } { - for (var j = 0; j < Game.world.Map.MapSize; + for (var j = 0; j < Game.world.Map.MapSize; j += Game.world.WorldActor.Info.Traits.Get().BinSize) { lineRenderer.DrawLine(new float2(0, j * 24), new float2(Game.world.Map.MapSize * 24, j * 24), Color.Black, Color.Black); diff --git a/OpenRA.Game/Traits/World/SpatialBins.cs b/OpenRA.Game/Traits/World/SpatialBins.cs index d8c71ef649..6cab4b4ffc 100644 --- a/OpenRA.Game/Traits/World/SpatialBins.cs +++ b/OpenRA.Game/Traits/World/SpatialBins.cs @@ -66,7 +66,7 @@ namespace OpenRA.Traits { var r = RectangleF.FromLTRB(a.X, a.Y, b.X, b.Y); - return ActorsInBins(a.X / scale, a.Y / scale, b.X / scale, b.Y / scale) + return ActorsInBins(a.X / scale, b.X / scale, a.Y / scale, b.Y / scale) .Distinct() .Where(u => u.GetBounds(true).IntersectsWith(r)); } diff --git a/mods/cnc/system.yaml b/mods/cnc/system.yaml index 597b23d94d..598c8940a3 100644 --- a/mods/cnc/system.yaml +++ b/mods/cnc/system.yaml @@ -222,4 +222,5 @@ World: UnitLost: unitlost.aud NavalUnitLost: unitlost.aud PrimaryBuildingSelected: pribldg1.aud - SpatialBins: \ No newline at end of file + SpatialBins: + BinSize: 4 \ No newline at end of file diff --git a/mods/ra/rules.yaml b/mods/ra/rules.yaml index be5e0e20b4..dc1466583b 100755 --- a/mods/ra/rules.yaml +++ b/mods/ra/rules.yaml @@ -273,6 +273,7 @@ World: SpawnDefaultUnits: EvaAlerts: SpatialBins: + BinSize: 4 MGG: GeneratesGap: