From 147fb64185255016c191766cde5bc93a4be1382b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Thu, 5 Dec 2013 19:14:00 +0100 Subject: [PATCH] don't crash map preview when the tileset can not be found fixes #3033 --- OpenRA.Game/Widgets/MapPreviewWidget.cs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/OpenRA.Game/Widgets/MapPreviewWidget.cs b/OpenRA.Game/Widgets/MapPreviewWidget.cs index 5ef3181b6a..538ac9453a 100644 --- a/OpenRA.Game/Widgets/MapPreviewWidget.cs +++ b/OpenRA.Game/Widgets/MapPreviewWidget.cs @@ -183,12 +183,16 @@ namespace OpenRA.Widgets } } + bool compatibleTileset; + void GeneratePreview() { var m = Map(); if (m == null) return; + compatibleTileset = Rules.TileSets.Values.Any(t => t.Id == m.Tileset); + var status = Status(m); if (status == PreviewStatus.Uncached) lock (syncRoot) @@ -201,7 +205,7 @@ namespace OpenRA.Widgets } } - static PreviewStatus Status(Map m) + PreviewStatus Status(Map m) { if (m == null) return PreviewStatus.Invalid; @@ -213,6 +217,9 @@ namespace OpenRA.Widgets if (cacheUids.Contains(m.Uid)) return PreviewStatus.Generating; + + if (!compatibleTileset) + return PreviewStatus.Invalid; } return PreviewStatus.Uncached; }