Beispiel #1
0
        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;
            }
        }
Beispiel #2
0
        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);
                }
            }
        }
Beispiel #3
0
        // 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;
            }
        }
Beispiel #4
0
        // 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;
            }
        }