Support loopback servers for solo play

This commit is contained in:
Paul Chote
2011-05-10 17:29:32 +12:00
parent b1a6eec3d3
commit 33a4f5e29e
6 changed files with 50 additions and 45 deletions

View File

@@ -71,14 +71,24 @@ namespace OpenRA.Mods.Cnc.Widgets
void CreateAndJoin()
{
Game.Settings.Server.Name = panel.GetWidget<TextFieldWidget>("SERVER_NAME").Text;
Game.Settings.Server.ListenPort = int.Parse(panel.GetWidget<TextFieldWidget>("LISTEN_PORT").Text);
Game.Settings.Server.ExternalPort = int.Parse(panel.GetWidget<TextFieldWidget>("EXTERNAL_PORT").Text);
var name = panel.GetWidget<TextFieldWidget>("SERVER_NAME").Text;
int listenPort, externalPort;
if (!int.TryParse(panel.GetWidget<TextFieldWidget>("LISTEN_PORT").Text, out listenPort))
listenPort = 1234;
if (!int.TryParse(panel.GetWidget<TextFieldWidget>("EXTERNAL_PORT").Text, out externalPort))
externalPort = 1234;
// Save new settings
Game.Settings.Server.Name = name;
Game.Settings.Server.ListenPort = listenPort;
Game.Settings.Server.ExternalPort = externalPort;
Game.Settings.Server.AdvertiseOnline = advertiseOnline;
Game.Settings.Server.LastMap = map.Uid;
Game.Settings.Save();
Game.CreateServer(Game.Settings, map.Uid);
// Create and join the server
Game.CreateServer(listenPort, name, map.Uid);
Widget.CloseWindow();
CncConnectingLogic.Connect(IPAddress.Loopback.ToString(), Game.Settings.Server.ListenPort, onCreate, onExit);
}