From 08e192ce5f2452b7600789d951cb2a775e03f2cd Mon Sep 17 00:00:00 2001 From: Chris Forbes Date: Thu, 12 Nov 2009 00:25:48 +1300 Subject: [PATCH] fixes #94 --- OpenRa.Game/Graphics/OverlayRenderer.cs | 4 ++-- OpenRa.Game/Ore.cs | 14 ++++++++------ 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/OpenRa.Game/Graphics/OverlayRenderer.cs b/OpenRa.Game/Graphics/OverlayRenderer.cs index 1883146744..fabcf03fbe 100755 --- a/OpenRa.Game/Graphics/OverlayRenderer.cs +++ b/OpenRa.Game/Graphics/OverlayRenderer.cs @@ -58,8 +58,8 @@ namespace OpenRa.Game.Graphics var sprites = overlaySprites[o]; var spriteIndex = 0; if (Ore.overlayIsFence[o]) spriteIndex = NearbyFences(x, y); - else if (Ore.overlayIsOre[o]) spriteIndex = map.MapTiles[x,y].density; - else if (Ore.overlayIsGems[o]) spriteIndex = map.MapTiles[x,y].density; + else if (Ore.overlayIsOre[o]) spriteIndex = map.MapTiles[x,y].density - 1; + else if (Ore.overlayIsGems[o]) spriteIndex = map.MapTiles[x,y].density - 1; spriteRenderer.DrawSprite(sprites[spriteIndex], Game.CellSize * (float2)location, 0); } diff --git a/OpenRa.Game/Ore.cs b/OpenRa.Game/Ore.cs index 69e58b5feb..81a5559d0f 100644 --- a/OpenRa.Game/Ore.cs +++ b/OpenRa.Game/Ore.cs @@ -81,22 +81,24 @@ namespace OpenRa.Game static byte GetOreDensity(this Map map, int i, int j) { - // 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 (map.ContainsOre(i + u, j + v)) ++sum; - sum = sum * 3 / 2; - if (sum > 11) - return 11; + sum = (sum * 4 + 2) / 3; return (byte)sum; } static byte GetGemDensity(this Map map, int i, int j) { - return (byte)Math.Min(2, (AdjacentTiles(new int2(i, j)).Sum( - p => map.ContainsGem(p.X, p.Y) ? 1 : 0) / 3)); + int sum = 0; + for (var u = -1; u < 2; u++) + for (var v = -1; v < 2; v++) + if (map.ContainsGem(i + u, j + v)) + ++sum; + sum = (sum+2) / 3; /* 3 gem units/tile is full. */ + return (byte)sum; } public static bool HasOverlay(this Map map, int i, int j)