diff --git a/OpenRA.Game/Widgets/Delegates/CreateServerMenuDelegate.cs b/OpenRA.Game/Widgets/Delegates/CreateServerMenuDelegate.cs index 5705817607..001985807d 100644 --- a/OpenRA.Game/Widgets/Delegates/CreateServerMenuDelegate.cs +++ b/OpenRA.Game/Widgets/Delegates/CreateServerMenuDelegate.cs @@ -30,17 +30,18 @@ namespace OpenRA.Widgets.Delegates public CreateServerMenuDelegate() { var r = Chrome.rootWidget; + var cs = Chrome.rootWidget.GetWidget("CREATESERVER_BG"); r.GetWidget("MAINMENU_BUTTON_CREATE").OnMouseUp = mi => { r.OpenWindow("CREATESERVER_BG"); return true; }; - r.GetWidget("CREATESERVER_BUTTON_CANCEL").OnMouseUp = mi => { + cs.GetWidget("BUTTON_CANCEL").OnMouseUp = mi => { r.CloseWindow(); return true; }; - r.GetWidget("CREATESERVER_BUTTON_START").OnMouseUp = mi => { + cs.GetWidget("BUTTON_START").OnMouseUp = mi => { r.OpenWindow("SERVER_LOBBY"); Log.Write("debug", "Creating server"); @@ -50,19 +51,23 @@ namespace OpenRA.Widgets.Delegates // TODO: Get this from a mod chooser var mods = Game.Settings.InitialMods; - var gameName = r.GetWidget("GAME_TITLE").Text; + var gameName = cs.GetWidget("GAME_TITLE").Text; + int listenPort = int.Parse(cs.GetWidget("LISTEN_PORT").Text); + int extPort = int.Parse(cs.GetWidget("EXTERNAL_PORT").Text); + Server.Server.ServerMain(AdvertiseServerOnline, Game.Settings.MasterServer, - gameName, Game.Settings.ListenPort, - Game.Settings.ExternalPort, mods, map); + gameName, listenPort, extPort, mods, map); Log.Write("debug", "Joining server"); Game.JoinServer(IPAddress.Loopback.ToString(), Game.Settings.ListenPort); return true; }; - r.GetWidget("CREATESERVER_CHECKBOX_ONLINE").Checked = () => {return AdvertiseServerOnline;}; - r.GetWidget("CREATESERVER_CHECKBOX_ONLINE").OnMouseDown = mi => { + cs.GetWidget("LISTEN_PORT").Text = Game.Settings.ListenPort.ToString(); + cs.GetWidget("EXTERNAL_PORT").Text = Game.Settings.ExternalPort.ToString(); + r.GetWidget("CHECKBOX_ONLINE").Checked = () => {return AdvertiseServerOnline;}; + r.GetWidget("CHECKBOX_ONLINE").OnMouseDown = mi => { AdvertiseServerOnline = !AdvertiseServerOnline; return true; }; diff --git a/OpenRA.Game/Widgets/Delegates/ServerBrowserDelegate.cs b/OpenRA.Game/Widgets/Delegates/ServerBrowserDelegate.cs index 4574708c4a..22f6c77c77 100644 --- a/OpenRA.Game/Widgets/Delegates/ServerBrowserDelegate.cs +++ b/OpenRA.Game/Widgets/Delegates/ServerBrowserDelegate.cs @@ -151,7 +151,7 @@ namespace OpenRA.Widgets.Delegates return true; }; - r.GetWidget("BUTTON_CANCEL").OnMouseUp = mi => { + dc.GetWidget("BUTTON_CANCEL").OnMouseUp = mi => { r.CloseWindow(); return r.GetWidget("MAINMENU_BUTTON_JOIN").OnMouseUp(mi); }; diff --git a/mods/cnc/menus.yaml b/mods/cnc/menus.yaml index e356d63576..7bf94f4a32 100644 --- a/mods/cnc/menus.yaml +++ b/mods/cnc/menus.yaml @@ -73,11 +73,11 @@ Container: X:(WINDOW_RIGHT - WIDTH)/2 Y:(WINDOW_BOTTOM - HEIGHT)/2 Width:400 - Height:180 + Height:210 Visible:false Children: - Label@CREATESERVER_LABEL_TITLE: - Id:CREATESERVER_LABEL_TITLE + Label@LABEL_TITLE: + Id:LABEL_TITLE X:0 Y:20 Width:400 @@ -85,7 +85,7 @@ Container: Text:Create Server Align:Center Bold:True - Label@GAME_TITLE: + Label@GAME_TITLE_LABEL: Id:GAME_TITLE_LABEL X:50 Y:59 @@ -97,27 +97,58 @@ Container: Id:GAME_TITLE X:150 Y:60 - Width:200 + Width:210 MaxLength:50 Height:25 Text:OpenRA Game - Checkbox@CREATESERVER_CHECKBOX_ONLINE: - Id:CREATESERVER_CHECKBOX_ONLINE + Label@EXTERNAL_PORT_LABEL: + Id:EXTERNAL_PORT_LABEL + X:50 + Y:94 + Width:95 + Height:25 + Align: Right + Text:External Port: + TextField@EXTERNAL_PORT: + Id:EXTERNAL_PORT X:150 - Y:100 + Y:95 + Width:50 + MaxLength:5 + Height:25 + Text:OpenRA Game + Label@LISTEN_PORT_LABEL: + Id:LISTEN_PORT_LABEL + X:210 + Y:94 + Width:95 + Height:25 + Align: Right + Text:Listen Port: + TextField@LISTEN_PORT: + Id:LISTEN_PORT + X:310 + Y:95 + Width:50 + MaxLength:5 + Height:25 + Checkbox@CHECKBOX_ONLINE: + Id:CHECKBOX_ONLINE + X:165 + Y:130 Width:300 Height:20 Text:Advertise game Online - Button@CREATESERVER_BUTTON_START: - Id:CREATESERVER_BUTTON_START + Button@BUTTON_START: + Id:BUTTON_START X:130 Y:PARENT_BOTTOM - 45 Width:120 Height:25 Text:Create Bold:True - Button@CREATESERVER_BUTTON_CANCEL: - Id:CREATESERVER_BUTTON_CANCEL + Button@BUTTON_CANCEL: + Id:BUTTON_CANCEL X:260 Y:PARENT_BOTTOM - 45 Width:120