From 10ac07bf9f7bad2b633e8fe448ea15e4ae0782be Mon Sep 17 00:00:00 2001 From: Gustas <37534529+Punsho@users.noreply.github.com> Date: Wed, 13 Jul 2022 22:37:14 +0300 Subject: [PATCH] Fix ChooseInitialMap --- OpenRA.Game/Map/MapCache.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/OpenRA.Game/Map/MapCache.cs b/OpenRA.Game/Map/MapCache.cs index cc868dd6b9..2e23e440a9 100644 --- a/OpenRA.Game/Map/MapCache.cs +++ b/OpenRA.Game/Map/MapCache.cs @@ -380,10 +380,12 @@ namespace OpenRA public string ChooseInitialMap(string initialUid, MersenneTwister random) { - if (string.IsNullOrEmpty(initialUid) || previews[initialUid].Status != MapStatus.Available) + UpdateMaps(); + var map = string.IsNullOrEmpty(initialUid) ? null : previews[initialUid]; + if (map == null || map.Status != MapStatus.Available || !map.Visibility.HasFlag(MapVisibility.Lobby) || (map.Class != MapClassification.System && map.Class != MapClassification.User)) { var selected = previews.Values.Where(IsSuitableInitialMap).RandomOrDefault(random) ?? - previews.Values.FirstOrDefault(m => m.Status == MapStatus.Available && m.Visibility.HasFlag(MapVisibility.Lobby)); + previews.Values.FirstOrDefault(m => m.Status == MapStatus.Available && m.Visibility.HasFlag(MapVisibility.Lobby) && (m.Class == MapClassification.System || m.Class == MapClassification.User)); return selected == null ? string.Empty : selected.Uid; }