diff --git a/.editorconfig b/.editorconfig index 5f68dd247f..c9d9ee5f33 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1109,6 +1109,9 @@ dotnet_diagnostic.RCS1225.severity = warning # Add paragraph to documentation comment. dotnet_diagnostic.RCS1226.severity = warning +# Validate arguments correctly. +dotnet_diagnostic.RCS1227.severity = warning + # Unnecessary explicit use of enumerator. dotnet_diagnostic.RCS1230.severity = warning diff --git a/OpenRA.Game/Map/Map.cs b/OpenRA.Game/Map/Map.cs index f506b2e733..f6c0ba46c8 100644 --- a/OpenRA.Game/Map/Map.cs +++ b/OpenRA.Game/Map/Map.cs @@ -1353,13 +1353,18 @@ namespace OpenRA throw new ArgumentOutOfRangeException(nameof(maxRange), $"The requested range ({maxRange}) cannot exceed the value of MaximumTileSearchRange ({Grid.MaximumTileSearchRange})"); - for (var i = minRange; i <= maxRange; i++) + return FindTilesInAnnulus(); + + IEnumerable FindTilesInAnnulus() { - foreach (var offset in Grid.TilesByDistance[i]) + for (var i = minRange; i <= maxRange; i++) { - var t = offset + center; - if (allowOutsideBounds ? Tiles.Contains(t) : Contains(t)) - yield return t; + foreach (var offset in Grid.TilesByDistance[i]) + { + var t = offset + center; + if (allowOutsideBounds ? Tiles.Contains(t) : Contains(t)) + yield return t; + } } } }