Files
OpenRA/OpenRA.Mods.Common/ShroudExts.cs
RoosterDragon 62ab6ae6f1 OccupiedCells and TargetableCells must return arrays, not just enumerables.
This allows callers to efficiently enumerate these returned collections without the allocation and overhead imposed by the IEnumerable interface. All implementations were already returning arrays, so this only required a signature change.
2017-12-07 20:39:30 +02:00

41 lines
1008 B
C#

#region Copyright & License Information
/*
* Copyright 2007-2017 The OpenRA Developers (see AUTHORS)
* This file is part of OpenRA, which is free software. It is made
* available to you under the terms of the GNU General Public License
* as published by the Free Software Foundation, either version 3 of
* the License, or (at your option) any later version. For more
* information, see COPYING.
*/
#endregion
using System.Collections.Generic;
using OpenRA.Primitives;
using OpenRA.Traits;
namespace OpenRA.Mods.Common
{
public static class ShroudExts
{
public static bool AnyExplored(this Shroud shroud, Pair<CPos, SubCell>[] cells)
{
// PERF: Avoid LINQ.
foreach (var cell in cells)
if (shroud.IsExplored(cell.First))
return true;
return false;
}
public static bool AnyVisible(this Shroud shroud, Pair<CPos, SubCell>[] cells)
{
// PERF: Avoid LINQ.
foreach (var cell in cells)
if (shroud.IsVisible(cell.First))
return true;
return false;
}
}
}