Fix minimap size/render issues (still needs palette fix).

This commit is contained in:
Paul Chote
2010-03-04 20:57:55 +13:00
parent 65783c369a
commit 399d2f73e8
3 changed files with 11 additions and 10 deletions

View File

@@ -93,6 +93,7 @@ namespace OpenRA.FileFormats
LoadActors(file, "INFANTRY");
SpawnPoints = file.GetSection("Waypoints")
.Where(kv => int.Parse(kv.Value) > 0)
.Select(kv => Pair.New(int.Parse(kv.Key), new int2(int.Parse(kv.Value) % MapSize, int.Parse(kv.Value) / MapSize)))
.Where(a => a.First < 8)
.Select(a => a.Second)

View File

@@ -139,8 +139,6 @@ namespace OpenRA
ready = new Animation("pips");
ready.PlayRepeating("ready");
clock = new Animation("clock");
mapChooserSheet = new Sheet(r, new Size(128, 128));
}
List<string> visibleTabs = new List<string>();
@@ -301,6 +299,9 @@ namespace OpenRA
if (mapPreviewDirty)
{
if (mapChooserSheet == null || mapChooserSheet.Size.Width != currentMap.Map.MapSize)
mapChooserSheet = new Sheet(renderer, new Size(currentMap.Map.MapSize, currentMap.Map.MapSize));
var b = Minimap.RenderTerrainBitmapWithSpawnPoints(currentMap.Map, Game.world.TileSet); // tileset -> hack
mapChooserSheet.Texture.SetData(b);
mapChooserSprite = new Sprite(mapChooserSheet,
@@ -427,8 +428,8 @@ namespace OpenRA
DrawDialogBackground(r, "dialog");
DrawCentered("OpenRA Multiplayer Lobby", new int2(r.Left + w / 2, r.Top + 20), Color.White);
DrawDialogBackground(new Rectangle(r.Right - 324, r.Top + 43, 304, 244),"dialog2");
var minimapRect = new Rectangle(r.Right - 322, r.Top + 45, 300, 240);
DrawDialogBackground(new Rectangle(r.Right - 264, r.Top + 43, 244, 244),"dialog2");
var minimapRect = new Rectangle(r.Right - 262, r.Top + 45, 240, 240);
world.Minimap.Update();
world.Minimap.Draw(minimapRect, true);

View File

@@ -47,8 +47,8 @@ namespace OpenRA.Graphics
public Minimap(World world, Renderer r)
{
this.world = world;
sheet = new Sheet(r, new Size(128, 128));
mapOnlySheet = new Sheet(r, new Size(128, 128));
sheet = new Sheet(r, new Size(world.Map.MapSize, world.Map.MapSize));
mapOnlySheet = new Sheet(r, new Size(world.Map.MapSize, world.Map.MapSize));
lineRenderer = new LineRenderer(r);
rgbaRenderer = new SpriteRenderer(r, true, r.RgbaSpriteShader);
@@ -105,14 +105,13 @@ namespace OpenRA.Graphics
public static Bitmap RenderTerrainBitmapWithSpawnPoints(Map map, TileSet tileset)
{
/* todo: do this a bit nicer */
var terrain = RenderTerrainBitmap(map, tileset);
//foreach (var sp in map.SpawnPoints)
// terrain.SetPixel(sp.X, sp.Y, Color.White);
foreach (var sp in map.SpawnPoints)
terrain.SetPixel(sp.X, sp.Y, Color.White);
return terrain;
}
public void Update()
{
if (terrain == null)