From 0d4b0e76b9eca71e87f015b47dff86771c6ba16a Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 4 Nov 2009 21:21:49 +1300 Subject: [PATCH] Perf fix, wrt Ore growth. --- OpenRa.FileFormats/Map.cs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/OpenRa.FileFormats/Map.cs b/OpenRa.FileFormats/Map.cs index 6a66731639..93d150baf2 100644 --- a/OpenRa.FileFormats/Map.cs +++ b/OpenRa.FileFormats/Map.cs @@ -91,8 +91,16 @@ namespace OpenRa.FileFormats byte GetOreDensity(int i, int j) { - return (byte)Math.Min(11, (3 * AdjacentTiles(new int2(i, j)).Sum( - p => ContainsOre(p.X, p.Y) ? 1 : 0) / 2)); + // perf fix. it's ugly, i know :( + int sum = 0; + for( var u = -1 ; u < 2 ; u++ ) + for( var v = -1 ; v < 2 ; v++ ) + if( ContainsOre( i + u, j + v ) ) + ++sum; + sum = sum * 3 / 2; + if( sum > 11 ) + return 11; + return (byte)sum; } byte GetGemDensity(int i, int j)