Merge pull request #4235 from Mailaender/map-preview-crash

Don't crash map preview when loading a map with bogus tileset
This commit is contained in:
Paul Chote
2014-01-03 13:43:54 -08:00

View File

@@ -183,12 +183,16 @@ namespace OpenRA.Widgets
} }
} }
bool compatibleTileset;
void GeneratePreview() void GeneratePreview()
{ {
var m = Map(); var m = Map();
if (m == null) if (m == null)
return; return;
compatibleTileset = Rules.TileSets.Values.Any(t => t.Id == m.Tileset);
var status = Status(m); var status = Status(m);
if (status == PreviewStatus.Uncached) if (status == PreviewStatus.Uncached)
lock (syncRoot) lock (syncRoot)
@@ -201,7 +205,7 @@ namespace OpenRA.Widgets
} }
} }
static PreviewStatus Status(Map m) PreviewStatus Status(Map m)
{ {
if (m == null) if (m == null)
return PreviewStatus.Invalid; return PreviewStatus.Invalid;
@@ -213,6 +217,9 @@ namespace OpenRA.Widgets
if (cacheUids.Contains(m.Uid)) if (cacheUids.Contains(m.Uid))
return PreviewStatus.Generating; return PreviewStatus.Generating;
if (!compatibleTileset)
return PreviewStatus.Invalid;
} }
return PreviewStatus.Uncached; return PreviewStatus.Uncached;
} }