From 59eebb6c9b81a575421ebb034a147bc23221b550 Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 12 Apr 2010 13:42:08 +1200 Subject: [PATCH] Speed up FindUnitsInCircle --- OpenRA.Game/WorldUtils.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/OpenRA.Game/WorldUtils.cs b/OpenRA.Game/WorldUtils.cs index fc05084bc0..b0c6a8b1dc 100755 --- a/OpenRA.Game/WorldUtils.cs +++ b/OpenRA.Game/WorldUtils.cs @@ -96,9 +96,11 @@ namespace OpenRA var min = a - new float2(r, r); var max = a + new float2(r, r); + var actors = world.FindUnits( min, max ); + var rect = new RectangleF(min.X, min.Y, max.X - min.X, max.Y - min.Y); - var inBox = world.Actors.Where(x => x.GetBounds(false).IntersectsWith(rect)); + var inBox = actors.Where(x => x.GetBounds(false).IntersectsWith(rect)); return inBox.Where(x => (x.CenterLocation - a).LengthSquared < r * r); }