This commit is contained in:
Chris Forbes
2009-11-12 00:25:48 +13:00
parent 74a085867f
commit 08e192ce5f
2 changed files with 10 additions and 8 deletions

View File

@@ -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);
}

View File

@@ -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)