Move MapVisibility to MapPreview.
This commit is contained in:
@@ -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())
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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())
|
||||||
|
|||||||
Reference in New Issue
Block a user