Support custom map previews.

Add map.png to the map archive.
This commit is contained in:
Paul Chote
2014-03-15 19:12:00 +13:00
parent 2106393122
commit 8fc78603bc
3 changed files with 7 additions and 1 deletions

View File

@@ -70,6 +70,7 @@ namespace OpenRA
public string Author;
public string Tileset;
public bool AllowStartUnitConfig = true;
public Bitmap CustomPreview;
[FieldLoader.LoadUsing("LoadOptions")]
public MapOptions Options;
@@ -226,6 +227,9 @@ namespace OpenRA
Save(path);
Uid = ComputeHash();
if (Container.Exists("map.png"))
CustomPreview = new Bitmap(Container.GetContent("map.png"));
}
public CPos[] GetSpawnPoints()

View File

@@ -107,7 +107,7 @@ namespace OpenRA
// the next render cycle.
// (d) Any partially written bytes from the next minimap is in an
// unallocated area, and will be committed in the next cycle.
var bitmap = Minimap.RenderMapPreview(p.Map, true);
var bitmap = p.CustomPreview ?? Minimap.RenderMapPreview(p.Map, true);
p.Minimap = sheetBuilder.Add(bitmap);
lock (syncRoot)

View File

@@ -33,6 +33,7 @@ namespace OpenRA
public int PlayerCount { get; private set; }
public List<CPos> SpawnPoints { get; private set; }
public Rectangle Bounds { get; private set; }
public Bitmap CustomPreview { get; private set; }
public Map Map { get; private set; }
public MapStatus Status { get; private set; }
@@ -85,6 +86,7 @@ namespace OpenRA
PlayerCount = m.Players.Count(x => x.Value.Playable);
Bounds = m.Bounds;
SpawnPoints = m.GetSpawnPoints().ToList();
CustomPreview = m.CustomPreview;
Status = MapStatus.Available;
}
}