fixes #94
This commit is contained in:
@@ -58,8 +58,8 @@ namespace OpenRa.Game.Graphics
|
|||||||
var sprites = overlaySprites[o];
|
var sprites = overlaySprites[o];
|
||||||
var spriteIndex = 0;
|
var spriteIndex = 0;
|
||||||
if (Ore.overlayIsFence[o]) spriteIndex = NearbyFences(x, y);
|
if (Ore.overlayIsFence[o]) spriteIndex = NearbyFences(x, y);
|
||||||
else if (Ore.overlayIsOre[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;
|
else if (Ore.overlayIsGems[o]) spriteIndex = map.MapTiles[x,y].density - 1;
|
||||||
spriteRenderer.DrawSprite(sprites[spriteIndex],
|
spriteRenderer.DrawSprite(sprites[spriteIndex],
|
||||||
Game.CellSize * (float2)location, 0);
|
Game.CellSize * (float2)location, 0);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -81,22 +81,24 @@ namespace OpenRa.Game
|
|||||||
|
|
||||||
static byte GetOreDensity(this Map map, int i, int j)
|
static byte GetOreDensity(this Map map, int i, int j)
|
||||||
{
|
{
|
||||||
// perf fix. it's ugly, i know :(
|
|
||||||
int sum = 0;
|
int sum = 0;
|
||||||
for (var u = -1; u < 2; u++)
|
for (var u = -1; u < 2; u++)
|
||||||
for (var v = -1; v < 2; v++)
|
for (var v = -1; v < 2; v++)
|
||||||
if (map.ContainsOre(i + u, j + v))
|
if (map.ContainsOre(i + u, j + v))
|
||||||
++sum;
|
++sum;
|
||||||
sum = sum * 3 / 2;
|
sum = (sum * 4 + 2) / 3;
|
||||||
if (sum > 11)
|
|
||||||
return 11;
|
|
||||||
return (byte)sum;
|
return (byte)sum;
|
||||||
}
|
}
|
||||||
|
|
||||||
static byte GetGemDensity(this Map map, int i, int j)
|
static byte GetGemDensity(this Map map, int i, int j)
|
||||||
{
|
{
|
||||||
return (byte)Math.Min(2, (AdjacentTiles(new int2(i, j)).Sum(
|
int sum = 0;
|
||||||
p => map.ContainsGem(p.X, p.Y) ? 1 : 0) / 3));
|
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)
|
public static bool HasOverlay(this Map map, int i, int j)
|
||||||
|
|||||||
Reference in New Issue
Block a user