spawn points! bugs: minimap lags by one, 1-8 always valid

This commit is contained in:
Alli
2010-02-06 20:07:26 +13:00
parent c0d51601a1
commit df00694c83
6 changed files with 96 additions and 20 deletions

View File

@@ -5,6 +5,7 @@ using OpenRa.Traits;
using OpenRa.FileFormats;
using System.Drawing.Imaging;
using IjwFramework.Collections;
using System.Collections.Generic;
namespace OpenRa.Graphics
{
@@ -62,6 +63,7 @@ namespace OpenRa.Graphics
static Color shroudColor;
public void InvalidateOre() { oreLayer = null; }
public void InvalidateSpawnPoints() { spawnPointsLayer = null; }
public static Bitmap RenderTerrainBitmap(Map map, TileSet tileset)
{
@@ -78,8 +80,8 @@ namespace OpenRa.Graphics
public static Bitmap RenderTerrainBitmapWithSpawnPoints(Map map, TileSet tileset)
{
var terrain = RenderTerrainBitmap(map, tileset);
foreach (var point in map.SpawnPoints)
terrain.SetPixel(point.X, point.Y, Color.White);
foreach (var sp in map.SpawnPoints)
terrain.SetPixel(sp.X, sp.Y, Color.White);
return terrain;
}
@@ -105,9 +107,19 @@ namespace OpenRa.Graphics
if (spawnPointsLayer == null)
{
spawnPointsLayer = new Bitmap(terrain);
foreach (var point in world.Map.SpawnPoints){
spawnPointsLayer.SetPixel(point.X, point.Y, Color.White);
var available = Game.world.Map.SpawnPoints.ToList();
foreach (var player in Game.world.players.Values)
{
if (player.SpawnPointIndex != 0)
{
int2 sp = Game.world.Map.SpawnPoints.ElementAt(player.SpawnPointIndex - 1);
spawnPointsLayer.SetPixel(sp.X, sp.Y, player.Color);
available.Remove(sp);
}
}
foreach (var sp in available)
spawnPointsLayer.SetPixel(sp.X, sp.Y, Color.White);
}
mapSpawnPointSheet.Texture.SetData(spawnPointsLayer);