Fix ChooseInitialMap

This commit is contained in:
Gustas
2022-07-13 22:37:14 +03:00
committed by Matthias Mailänder
parent 8339c6843e
commit 10ac07bf9f

View File

@@ -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;
}