diff --git a/OpenRA.Game/Map/MapCache.cs b/OpenRA.Game/Map/MapCache.cs index c55331e578..984afa5c4b 100644 --- a/OpenRA.Game/Map/MapCache.cs +++ b/OpenRA.Game/Map/MapCache.cs @@ -28,6 +28,7 @@ namespace OpenRA public static readonly MapPreview UnknownMap = new MapPreview(null, null, MapGridType.Rectangular, null); public IReadOnlyDictionary MapLocations => mapLocations; readonly Dictionary mapLocations = new Dictionary(); + public bool LoadPreviewImages = true; readonly Cache previews; readonly ModData modData; diff --git a/OpenRA.Game/Map/MapPreview.cs b/OpenRA.Game/Map/MapPreview.cs index c8fb42b352..6bae46f6f0 100644 --- a/OpenRA.Game/Map/MapPreview.cs +++ b/OpenRA.Game/Map/MapPreview.cs @@ -393,7 +393,7 @@ namespace OpenRA newData.SetCustomRules(modData, this, yaml); - if (p.Contains("map.png")) + if (cache.LoadPreviewImages && p.Contains("map.png")) using (var dataStream = p.GetStream("map.png")) newData.Preview = new Png(dataStream); @@ -435,14 +435,17 @@ namespace OpenRA spawns[j / 2] = new CPos(r.spawnpoints[j], r.spawnpoints[j + 1]); newData.SpawnPoints = spawns; newData.GridType = r.map_grid_type; - try + if (cache.LoadPreviewImages) { - newData.Preview = new Png(new MemoryStream(Convert.FromBase64String(r.minimap))); - } - catch (Exception e) - { - Log.Write("debug", "Failed parsing mapserver minimap response: {0}", e); - newData.Preview = null; + try + { + newData.Preview = new Png(new MemoryStream(Convert.FromBase64String(r.minimap))); + } + catch (Exception e) + { + Log.Write("debug", "Failed parsing mapserver minimap response: {0}", e); + newData.Preview = null; + } } var playersString = Encoding.UTF8.GetString(Convert.FromBase64String(r.players_block)); diff --git a/OpenRA.Server/Program.cs b/OpenRA.Server/Program.cs index 5a0df84ca3..2da9237ca0 100644 --- a/OpenRA.Server/Program.cs +++ b/OpenRA.Server/Program.cs @@ -83,6 +83,7 @@ namespace OpenRA.Server { // HACK: The engine code *still* assumes that Game.ModData is set var modData = Game.ModData = new ModData(mods[modID], mods); + modData.MapCache.LoadPreviewImages = false; // PERF: Server doesn't need previews, save memory by not loading them. modData.MapCache.LoadMaps(); settings.Map = modData.MapCache.ChooseInitialMap(settings.Map, new MersenneTwister());