From b1b8b2c14ae9dc2fbbb36eebf6ffc1ccd3a11e1f Mon Sep 17 00:00:00 2001 From: Chris Forbes Date: Mon, 23 Aug 2010 18:19:36 +1200 Subject: [PATCH] remove N params from ServerMain --- OpenRA.Game/Server/Server.cs | 20 +++++----- .../Delegates/CreateServerMenuDelegate.cs | 40 +++++++++---------- 2 files changed, 27 insertions(+), 33 deletions(-) diff --git a/OpenRA.Game/Server/Server.cs b/OpenRA.Game/Server/Server.cs index 1c3544129d..f701a6f687 100644 --- a/OpenRA.Game/Server/Server.cs +++ b/OpenRA.Game/Server/Server.cs @@ -18,6 +18,7 @@ using System.Net; using System.Net.Sockets; using System.Threading; using OpenRA.FileFormats; +using OpenRA.GameRules; namespace OpenRA.Server { @@ -46,25 +47,24 @@ namespace OpenRA.Server static ModData ModData; static Map Map; - public static void ServerMain(bool internetServer, string masterServerUrl, string name, int port, int extport, - string[] mods, string map, bool cheats, ModData modData) + public static void ServerMain(ModData modData, UserSettings settings, string map) { Log.AddChannel("server", "server.log"); isInitialPing = true; - Server.masterServerUrl = masterServerUrl; - isInternetServer = internetServer; - listener = new TcpListener(IPAddress.Any, port); - Name = name; - ExternalPort = extport; + Server.masterServerUrl = settings.MasterServer; + isInternetServer = settings.AdvertiseOnline; + listener = new TcpListener(IPAddress.Any, settings.ListenPort); + Name = settings.LastServerTitle; + ExternalPort = settings.ExternalPort; randomSeed = (int)DateTime.Now.ToBinary(); ModData = modData; lobbyInfo = new Session(); - lobbyInfo.GlobalSettings.Mods = mods; + lobbyInfo.GlobalSettings.Mods = settings.InitialMods; lobbyInfo.GlobalSettings.RandomSeed = randomSeed; lobbyInfo.GlobalSettings.Map = map; - lobbyInfo.GlobalSettings.AllowCheats = cheats; + lobbyInfo.GlobalSettings.AllowCheats = settings.AllowCheats; LoadMap(); // populates the Session's slots, too. @@ -73,8 +73,6 @@ namespace OpenRA.Server Log.Write("server","- {0}", m); Log.Write("server", "Initial map: {0}",lobbyInfo.GlobalSettings.Map); - - try { diff --git a/OpenRA.Game/Widgets/Delegates/CreateServerMenuDelegate.cs b/OpenRA.Game/Widgets/Delegates/CreateServerMenuDelegate.cs index 3d4f8004a5..c347450445 100644 --- a/OpenRA.Game/Widgets/Delegates/CreateServerMenuDelegate.cs +++ b/OpenRA.Game/Widgets/Delegates/CreateServerMenuDelegate.cs @@ -17,6 +17,8 @@ namespace OpenRA.Widgets.Delegates { public CreateServerMenuDelegate() { + var settings = Game.Settings; + var r = Widget.RootWidget; var cs = r.GetWidget("CREATESERVER_BG"); r.GetWidget("MAINMENU_BUTTON_CREATE").OnMouseUp = mi => { @@ -32,38 +34,32 @@ namespace OpenRA.Widgets.Delegates cs.GetWidget("BUTTON_START").OnMouseUp = mi => { r.OpenWindow("SERVER_LOBBY"); - // TODO: Get this from a map chooser - string map = Game.modData.AvailableMaps.Keys.FirstOrDefault(); + var map = Game.modData.AvailableMaps.Keys.FirstOrDefault(); - // TODO: Get this from a mod chooser - var mods = Game.LobbyInfo.GlobalSettings.Mods; - - Game.Settings.LastServerTitle = cs.GetWidget("GAME_TITLE").Text; - Game.Settings.ListenPort = int.Parse(cs.GetWidget("LISTEN_PORT").Text); - Game.Settings.ExternalPort = int.Parse(cs.GetWidget("EXTERNAL_PORT").Text); - Game.Settings.Save(); + settings.LastServerTitle = cs.GetWidget("GAME_TITLE").Text; + settings.ListenPort = int.Parse(cs.GetWidget("LISTEN_PORT").Text); + settings.ExternalPort = int.Parse(cs.GetWidget("EXTERNAL_PORT").Text); + settings.Save(); - Server.Server.ServerMain(Game.Settings.AdvertiseOnline, Game.Settings.MasterServer, Game.Settings.LastServerTitle, - Game.Settings.ListenPort, Game.Settings.ExternalPort, mods, map, Game.Settings.AllowCheats, - Game.modData); + Server.Server.ServerMain(Game.modData, settings, map); - Game.JoinServer(IPAddress.Loopback.ToString(), Game.Settings.ListenPort); + Game.JoinServer(IPAddress.Loopback.ToString(), settings.ListenPort); return true; }; - cs.GetWidget("GAME_TITLE").Text = Game.Settings.LastServerTitle; - cs.GetWidget("LISTEN_PORT").Text = Game.Settings.ListenPort.ToString(); - cs.GetWidget("EXTERNAL_PORT").Text = Game.Settings.ExternalPort.ToString(); - cs.GetWidget("CHECKBOX_ONLINE").Checked = () => Game.Settings.AdvertiseOnline; + cs.GetWidget("GAME_TITLE").Text = settings.LastServerTitle; + cs.GetWidget("LISTEN_PORT").Text = settings.ListenPort.ToString(); + cs.GetWidget("EXTERNAL_PORT").Text = settings.ExternalPort.ToString(); + cs.GetWidget("CHECKBOX_ONLINE").Checked = () => settings.AdvertiseOnline; cs.GetWidget("CHECKBOX_ONLINE").OnMouseDown = mi => { - Game.Settings.AdvertiseOnline ^= true; - Game.Settings.Save(); + settings.AdvertiseOnline ^= true; + settings.Save(); return true; }; - cs.GetWidget("CHECKBOX_CHEATS").Checked = () => Game.Settings.AllowCheats; + cs.GetWidget("CHECKBOX_CHEATS").Checked = () => settings.AllowCheats; cs.GetWidget("CHECKBOX_CHEATS").OnMouseDown = mi => { - Game.Settings.AllowCheats ^=true; - Game.Settings.Save(); + settings.AllowCheats ^=true; + settings.Save(); return true; }; }