Move MapVisibility to MapPreview.

This commit is contained in:
Paul Chote
2016-02-05 08:23:16 +00:00
parent 6aac8c5f70
commit 7a5678ec39
6 changed files with 9 additions and 6 deletions

View File

@@ -445,7 +445,7 @@ namespace OpenRA
static string ChooseShellmap() static string ChooseShellmap()
{ {
var shellmaps = ModData.MapCache var shellmaps = ModData.MapCache
.Where(m => m.Status == MapStatus.Available && m.Map.Visibility.HasFlag(MapVisibility.Shellmap)) .Where(m => m.Status == MapStatus.Available && m.Visibility.HasFlag(MapVisibility.Shellmap))
.Select(m => m.Uid); .Select(m => m.Uid);
if (!shellmaps.Any()) if (!shellmaps.Any())

View File

@@ -68,6 +68,7 @@ namespace OpenRA
public Map Map { get; private set; } public Map Map { get; private set; }
public MapStatus Status { get; private set; } public MapStatus Status { get; private set; }
public MapClassification Class { get; private set; } public MapClassification Class { get; private set; }
public MapVisibility Visibility { get; private set; }
public bool SuitableForInitialMap { get; private set; } public bool SuitableForInitialMap { get; private set; }
public MapRuleStatus RuleStatus { get; private set; } public MapRuleStatus RuleStatus { get; private set; }
@@ -111,6 +112,7 @@ namespace OpenRA
GridType = gridType; GridType = gridType;
Status = MapStatus.Unavailable; Status = MapStatus.Unavailable;
Class = MapClassification.Unknown; Class = MapClassification.Unknown;
Visibility = MapVisibility.Lobby;
} }
public void UpdateFromMap(Map m, MapClassification classification) public void UpdateFromMap(Map m, MapClassification classification)
@@ -126,6 +128,7 @@ namespace OpenRA
CustomPreview = m.CustomPreview; CustomPreview = m.CustomPreview;
Status = MapStatus.Available; Status = MapStatus.Available;
Class = classification; Class = classification;
Visibility = m.Visibility;
var players = new MapPlayers(m.PlayerDefinitions).Players; var players = new MapPlayers(m.PlayerDefinitions).Players;
PlayerCount = players.Count(x => x.Value.Playable); PlayerCount = players.Count(x => x.Value.Playable);
@@ -135,7 +138,7 @@ namespace OpenRA
bool EvaluateUserFriendliness(Dictionary<string, PlayerReference> players) bool EvaluateUserFriendliness(Dictionary<string, PlayerReference> players)
{ {
if (Status != MapStatus.Available || !Map.Visibility.HasFlag(MapVisibility.Lobby)) if (Status != MapStatus.Available || !Visibility.HasFlag(MapVisibility.Lobby))
return false; return false;
// Other map types may have confusing settings or gameplay // Other map types may have confusing settings or gameplay

View File

@@ -255,7 +255,7 @@ namespace OpenRA.Widgets
if (string.IsNullOrEmpty(initialUid) || Game.ModData.MapCache[initialUid].Status != MapStatus.Available) if (string.IsNullOrEmpty(initialUid) || Game.ModData.MapCache[initialUid].Status != MapStatus.Available)
{ {
var selected = Game.ModData.MapCache.Where(x => x.SuitableForInitialMap).RandomOrDefault(Game.CosmeticRandom) ?? var selected = Game.ModData.MapCache.Where(x => x.SuitableForInitialMap).RandomOrDefault(Game.CosmeticRandom) ??
Game.ModData.MapCache.First(m => m.Status == MapStatus.Available && m.Map.Visibility.HasFlag(MapVisibility.Lobby)); Game.ModData.MapCache.First(m => m.Status == MapStatus.Available && m.Visibility.HasFlag(MapVisibility.Lobby));
return selected.Uid; return selected.Uid;
} }

View File

@@ -104,7 +104,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
var hasCampaign = Game.ModData.Manifest.Missions.Any(); var hasCampaign = Game.ModData.Manifest.Missions.Any();
var hasMissions = Game.ModData.MapCache var hasMissions = Game.ModData.MapCache
.Any(p => p.Status == MapStatus.Available && p.Map.Visibility.HasFlag(MapVisibility.MissionSelector)); .Any(p => p.Status == MapStatus.Available && p.Visibility.HasFlag(MapVisibility.MissionSelector));
missionsButton.Disabled = !hasCampaign && !hasMissions; missionsButton.Disabled = !hasCampaign && !hasMissions;

View File

@@ -143,7 +143,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
void RefreshMaps(MapClassification tab, MapVisibility filter) void RefreshMaps(MapClassification tab, MapVisibility filter)
{ {
tabMaps[tab] = Game.ModData.MapCache.Where(m => m.Status == MapStatus.Available && tabMaps[tab] = Game.ModData.MapCache.Where(m => m.Status == MapStatus.Available &&
m.Class == tab && (m.Map.Visibility & filter) != 0).ToArray(); m.Class == tab && (m.Visibility & filter) != 0).ToArray();
} }
void SetupMapTab(MapClassification tab, MapVisibility filter, string tabButtonName, string tabContainerName, ScrollItemWidget itemTemplate) void SetupMapTab(MapClassification tab, MapVisibility filter, string tabButtonName, string tabContainerName, ScrollItemWidget itemTemplate)

View File

@@ -114,7 +114,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
// Add an additional group for loose missions // Add an additional group for loose missions
var looseMissions = modData.MapCache var looseMissions = modData.MapCache
.Where(p => p.Status == MapStatus.Available && p.Map.Visibility.HasFlag(MapVisibility.MissionSelector) && !allMaps.Contains(p.Map)) .Where(p => p.Status == MapStatus.Available && p.Visibility.HasFlag(MapVisibility.MissionSelector) && !allMaps.Contains(p.Map))
.Select(p => p.Map); .Select(p => p.Map);
if (looseMissions.Any()) if (looseMissions.Any())