diff --git a/OpenRA.Game/GameRules/Settings.cs b/OpenRA.Game/GameRules/Settings.cs index 0f877400a0..a913ea7797 100755 --- a/OpenRA.Game/GameRules/Settings.cs +++ b/OpenRA.Game/GameRules/Settings.cs @@ -27,6 +27,7 @@ namespace OpenRA.GameRules public bool AdvertiseOnline = true; public string MasterServer = "http://master.open-ra.org/"; public bool AllowCheats = false; + public string LastMap = null; } public class DebugSettings diff --git a/OpenRA.Mods.Cnc/Widgets/CncLobbyLogic.cs b/OpenRA.Mods.Cnc/Widgets/CncLobbyLogic.cs index 577cf0a459..90b5333388 100755 --- a/OpenRA.Mods.Cnc/Widgets/CncLobbyLogic.cs +++ b/OpenRA.Mods.Cnc/Widgets/CncLobbyLogic.cs @@ -199,6 +199,8 @@ namespace OpenRA.Mods.Cnc.Widgets var onSelect = new Action(m => { orderManager.IssueOrder(Order.Command("map " + m.Uid)); + Game.Settings.Server.LastMap = m.Uid; + Game.Settings.Save(); Widget.CloseWindow(); }); diff --git a/OpenRA.Mods.Cnc/Widgets/CncServerCreationLogic.cs b/OpenRA.Mods.Cnc/Widgets/CncServerCreationLogic.cs index bf305d9185..f53dcc8582 100644 --- a/OpenRA.Mods.Cnc/Widgets/CncServerCreationLogic.cs +++ b/OpenRA.Mods.Cnc/Widgets/CncServerCreationLogic.cs @@ -46,13 +46,16 @@ namespace OpenRA.Mods.Cnc.Widgets }); }; - map = Game.modData.AvailableMaps.FirstOrDefault(m => m.Value.Selectable).Value; + if (string.IsNullOrEmpty(Game.Settings.Server.LastMap) || !Game.modData.AvailableMaps.TryGetValue(Game.Settings.Server.LastMap, out map)) + map = Game.modData.AvailableMaps.FirstOrDefault(m => m.Value.Selectable).Value; + panel.GetWidget("MAP_PREVIEW").Map = () => map; panel.GetWidget("MAP_NAME").GetText = () => map.Title; panel.GetWidget("SERVER_NAME").Text = settings.Server.Name ?? ""; panel.GetWidget("LISTEN_PORT").Text = settings.Server.ListenPort.ToString(); - + advertiseOnline = Game.Settings.Server.AdvertiseOnline; + var externalPort = panel.GetWidget("EXTERNAL_PORT"); externalPort.Text = settings.Server.ExternalPort.ToString(); externalPort.IsDisabled = () => !advertiseOnline; @@ -60,6 +63,10 @@ namespace OpenRA.Mods.Cnc.Widgets var advertiseCheckbox = panel.GetWidget("ADVERTISE_CHECKBOX"); advertiseCheckbox.IsChecked = () => advertiseOnline; advertiseCheckbox.OnClick = () => advertiseOnline ^= true; + + // Disable these until we have some logic behind them + panel.GetWidget("SERVER_DESC").IsDisabled = () => true; + panel.GetWidget("SERVER_PASSWORD").IsDisabled = () => true; } void CreateAndJoin() @@ -68,6 +75,7 @@ namespace OpenRA.Mods.Cnc.Widgets Game.Settings.Server.ListenPort = int.Parse(panel.GetWidget("LISTEN_PORT").Text); Game.Settings.Server.ExternalPort = int.Parse(panel.GetWidget("EXTERNAL_PORT").Text); Game.Settings.Server.AdvertiseOnline = advertiseOnline; + Game.Settings.Server.LastMap = map.Uid; Game.Settings.Save(); Game.CreateServer(Game.Settings, map.Uid); diff --git a/mods/cnc/chrome/createserver.yaml b/mods/cnc/chrome/createserver.yaml index 61589cfed5..8e3133243a 100644 --- a/mods/cnc/chrome/createserver.yaml +++ b/mods/cnc/chrome/createserver.yaml @@ -71,7 +71,6 @@ Container@CREATESERVER_PANEL: Width:275 MaxLength:50 Height:25 - Text:Describe your server here Label@SERVER_PASSWORD_LABEL: X:15 Y:84 diff --git a/mods/cnc/chrome/lobby.yaml b/mods/cnc/chrome/lobby.yaml index 1cd291e810..74b222c3e9 100644 --- a/mods/cnc/chrome/lobby.yaml +++ b/mods/cnc/chrome/lobby.yaml @@ -309,22 +309,6 @@ Container@SERVER_LOBBY: Text:Ready Align:Left Bold:True - CncTextField@CHAT_TEXTFIELD: - Id:CHAT_TEXTFIELD - X:15 - Y:PARENT_BOTTOM - HEIGHT - 15 - Width:PARENT_RIGHT - 30 - Height:25 - LeftMargin:50 - Background: panel-darkred - Children: - Label@LABEL_CHATTYPE: - Id:LABEL_CHATTYPE - Y:0-1 - Width:45 - Height:25 - Align:Right - Text:Chat: CncScrollPanel@CHAT_DISPLAY: Id:CHAT_DISPLAY X:15 @@ -357,6 +341,22 @@ Container@SERVER_LOBBY: Height:14 Width:PARENT_RIGHT - 100 - 10 WordWrap:true + CncTextField@CHAT_TEXTFIELD: + Id:CHAT_TEXTFIELD + X:15 + Y:PARENT_BOTTOM - HEIGHT - 15 + Width:PARENT_RIGHT - 30 + Height:25 + LeftMargin:50 + Background: panel-darkred + Children: + Label@LABEL_CHATTYPE: + Id:LABEL_CHATTYPE + Y:0-1 + Width:45 + Height:25 + Align:Right + Text:Chat: CncMenuButton@DISCONNECT_BUTTON: Id:DISCONNECT_BUTTON X:0