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"); LoadActors(file, "INFANTRY");
SpawnPoints = file.GetSection("Waypoints") 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))) .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) .Where(a => a.First < 8)
.Select(a => a.Second) .Select(a => a.Second)

View File

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

View File

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