From 399d2f73e8d1640bfde14573de11f07c84bbd162 Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Thu, 4 Mar 2010 20:57:55 +1300 Subject: [PATCH] Fix minimap size/render issues (still needs palette fix). --- OpenRA.FileFormats/Map.cs | 1 + OpenRA.Game/Chrome.cs | 9 +++++---- OpenRA.Game/Graphics/Minimap.cs | 11 +++++------ 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/OpenRA.FileFormats/Map.cs b/OpenRA.FileFormats/Map.cs index b1d631bb97..fdf7b65fc2 100644 --- a/OpenRA.FileFormats/Map.cs +++ b/OpenRA.FileFormats/Map.cs @@ -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) diff --git a/OpenRA.Game/Chrome.cs b/OpenRA.Game/Chrome.cs index 31d4e9985f..41d313cece 100644 --- a/OpenRA.Game/Chrome.cs +++ b/OpenRA.Game/Chrome.cs @@ -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 visibleTabs = new List(); @@ -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); diff --git a/OpenRA.Game/Graphics/Minimap.cs b/OpenRA.Game/Graphics/Minimap.cs index 156c30f94c..76efa6d24b 100644 --- a/OpenRA.Game/Graphics/Minimap.cs +++ b/OpenRA.Game/Graphics/Minimap.cs @@ -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)