Use Contains method on Selection when possible.

This allows the set to be utilized for a fast check, rather than degrading to a linear search via LINQ.
This commit is contained in:
RoosterDragon
2016-04-19 21:19:36 +01:00
parent d7f140d5a3
commit 178fcfaf8c
3 changed files with 4 additions and 4 deletions

View File

@@ -192,7 +192,7 @@ namespace OpenRA.Graphics
{
foreach (var g in World.ActorsHavingTrait<Selectable>().Where(a => !a.Disposed
&& !World.FogObscures(a)
&& !World.Selection.Actors.Contains(a)))
&& !World.Selection.Contains(a)))
{
if (Game.Settings.Game.StatusBars == StatusBarsType.Standard)
new SelectionBarsRenderable(g, false, false).Render(this);

View File

@@ -81,7 +81,7 @@ namespace OpenRA.Mods.Common.Effects
if (!building.IsInWorld || !building.Owner.IsAlliedWith(building.World.LocalPlayer))
return SpriteRenderable.None;
if (!building.World.Selection.Actors.Contains(building))
if (!building.World.Selection.Contains(building))
return SpriteRenderable.None;
return RenderInner(wr);

View File

@@ -215,7 +215,7 @@ namespace OpenRA.Mods.Common.Widgets
}
var next = bases
.SkipWhile(b => !world.Selection.Actors.Contains(b))
.SkipWhile(b => !world.Selection.Contains(b))
.Skip(1)
.FirstOrDefault();
@@ -240,7 +240,7 @@ namespace OpenRA.Mods.Common.Widgets
return true;
var next = facilities
.SkipWhile(b => !world.Selection.Actors.Contains(b))
.SkipWhile(b => !world.Selection.Contains(b))
.Skip(1)
.FirstOrDefault();