Fix default difficulty not being serialised

This commit is contained in:
Scott_NZ
2012-12-11 14:31:17 +13:00
parent 988a68dae5
commit a8dbedd486
2 changed files with 8 additions and 4 deletions

View File

@@ -498,6 +498,12 @@ namespace OpenRA.Mods.RA.Server
.Select(p => MakeSlotFromPlayerReference(p.Value))
.Where(s => s != null)
.ToDictionary(s => s.PlayerReference, s => s);
if (server.Map.Difficulties != null && server.Map.Difficulties.Any())
if (!server.Map.Difficulties.Contains(server.lobbyInfo.GlobalSettings.Difficulty))
server.lobbyInfo.GlobalSettings.Difficulty = server.Map.Difficulties.First();
else
server.lobbyInfo.GlobalSettings.Difficulty = null;
}
}
}

View File

@@ -159,12 +159,12 @@ namespace OpenRA.Mods.RA.Widgets.Logic
var difficulty = lobby.Get<DropDownButtonWidget>("DIFFICULTY_DROPDOWNBUTTON");
difficulty.IsVisible = () => Map != null && Map.Difficulties != null && Map.Difficulties.Any();
difficulty.IsDisabled = () => !Game.IsHost || gameStarting || orderManager.LocalClient == null || orderManager.LocalClient.IsReady;
difficulty.GetText = () => orderManager.LobbyInfo.GlobalSettings.Difficulty ?? "";
difficulty.GetText = () => orderManager.LobbyInfo.GlobalSettings.Difficulty;
difficulty.OnMouseDown = _ =>
{
var options = Map.Difficulties.Select(d => new DifficultyDropDownOption
{
Title = d ?? "",
Title = d,
IsSelected = () => orderManager.LobbyInfo.GlobalSettings.Difficulty == d,
OnClick = () => orderManager.IssueOrder(Order.Command("difficulty {0}".F(d)))
});
@@ -270,8 +270,6 @@ namespace OpenRA.Mods.RA.Widgets.Logic
var title = Ui.Root.Get<LabelWidget>("TITLE");
title.Text = orderManager.LobbyInfo.GlobalSettings.ServerName;
orderManager.LobbyInfo.GlobalSettings.Difficulty = Map.Difficulties != null && Map.Difficulties.Any() ? Map.Difficulties.First() : null;
}
void UpdatePlayerList()