public void StartGame(Battle battle) { if (!IsRunning) { List <Battle.GrPlayer> players; talker = new Talker(); talker.SpringEvent += talker_SpringEvent; string configName = "springie" + Program.main.AutoHost.config.HostingPort + ".txt"; ConfigMaker.Generate(path + configName, battle, talker.LoopbackPort, out players); talker.SetPlayers(players); process = new Process(); process.StartInfo.CreateNoWindow = true; process.StartInfo.Arguments += configName; process.StartInfo.WorkingDirectory = path; process.StartInfo.FileName = path + ExecutableName; process.StartInfo.UseShellExecute = false; process.Exited += springProcess_Exited; process.Start(); gameStarted = DateTime.Now; if (IsRunning && SpringStarted != null) { SpringStarted(this, EventArgs.Empty); } Thread.Sleep(1000); ProcessPriority = Program.main.config.HostingProcessPriority; } }
public void StartGame(Battle battle) { if (!IsRunning) { List <Battle.GrPlayer> players; talker = new Talker(); readyPlayers.Clear(); talker.SpringEvent += talker_SpringEvent; string configName = Path.Combine(Program.WorkPath, "springie" + Program.main.AutoHost.config.HostingPort + ".txt").Replace('\\', '/'); ConfigMaker.Generate(configName, battle, talker.LoopbackPort, out players); talker.SetPlayers(players); process = new Process(); process.StartInfo.CreateNoWindow = true; process.StartInfo.Arguments += configName; process.StartInfo.FileName = Program.main.config.ExecutableName; process.StartInfo.WorkingDirectory = Path.GetDirectoryName(Program.main.config.ExecutableName); process.StartInfo.UseShellExecute = false; process.Exited += springProcess_Exited; process.EnableRaisingEvents = true; PlanetWarsMessages = new Dictionary <string, int>(); process.Start(); gameStarted = DateTime.Now; Thread.Sleep(1000); if (!Program.IsLinux && IsRunning) { process.PriorityClass = Program.main.config.HostingProcessPriority; } if (IsRunning && SpringStarted != null) { SpringStarted(this, EventArgs.Empty); } } }
// SPRING.EXE functions public void StartGame(Battle battle) { if (!IsRunning) { ConfigMaker.Generate(path + "springie.txt", battle, out players); process = new Process(); process.StartInfo.CreateNoWindow = true; if (Program.main.config.SpringStartsMinimized) { process.StartInfo.Arguments = "/minimise "; } else { process.StartInfo.Arguments = ""; } process.StartInfo.Arguments += "springie.txt"; process.StartInfo.RedirectStandardOutput = true; process.StartInfo.WorkingDirectory = path; process.StartInfo.FileName = path + ExecutableName; process.StartInfo.UseShellExecute = false; Thread.Sleep(1000); // give time to user's spring to start and ignore upcoming registry hax PrepareRegistry(); process.Start(); gameStarted = DateTime.Now; process.Exited += new EventHandler(springProcess_Exited); process.WaitForInputIdle(); outputReader = new Thread(SpringOutputReader); outputReader.Name = "SpringOutputReader"; outputReader.Start(this); talker = new Talker(process); RestoreRegistry(); if (!process.HasExited) { if (SpringStarted != null) { SpringStarted(this, EventArgs.Empty); } } else if (SpringExited != null) { SpringExited(this, EventArgs.Empty); } SpringWindowHidden = Program.main.config.SpringStartsHidden; System.Threading.Thread.Sleep(1000); ProcessPriority = Program.main.config.HostingProcessPriority; } }
// SPRING.EXE functions public void StartGame(TasClient.Battle battle) { if (!IsRunning) { joinedPlayers = new List <string>(); lostPlayers = new List <string>(); ConfigMaker.Generate(path + "springie.txt", battle); PrepareRegistry(); process = new Process(); process.StartInfo.CreateNoWindow = true; if (Program.main.config.SpringStartsHidden) { process.StartInfo.Arguments = "/minimise "; } else { process.StartInfo.Arguments = ""; } process.StartInfo.Arguments += "springie.txt"; process.StartInfo.RedirectStandardOutput = true; process.StartInfo.WorkingDirectory = path; process.StartInfo.FileName = path + ExecutableName; process.StartInfo.UseShellExecute = false; process.Start(); gameStarted = DateTime.Now; process.Exited += new EventHandler(springProcess_Exited); process.WaitForInputIdle(); SpringWindowHidden = Program.main.config.SpringStartsHidden; Thread.Sleep(1000); RestoreRegistry(); outputReader = new Thread(SpringOutputReader); outputReader.Name = "SpringOutputReader"; outputReader.Start(this); talker = new Talker(process); if (!process.HasExited && SpringStarted != null) { SpringStarted(this, new EventArgs()); } ProcessPriority = Program.main.config.HostingProcessPriority; } }