public MainWindow()  //Fire to start app opens (look at window_loaded event for finer tuning)
        {
            InitiateTrace(); //Starts our console/debug trace
            try { InitializeComponent(); } //Try to load our pretty wpf
            catch { Trace.WriteLine("Failed to load .Net components. Please make sure you have .Net 4.5.2 installed"); }

            Trace.WriteLine(Cfg.Initial() ? @"Config loaded" : @"Config Defaulted"); //Grabs settings or defaults them

            GetLatestVersions();
            //CheckInstall(); //Checks if game is installed properly

            if (!Load())
            {
                Cfg.DefaultSettings();
                Load();
                Trace.WriteLine("Config values failed to load. Resetting...");
            }
            else
            {
                Trace.WriteLine("Config values loaded");
            }

            if (Cfg.GetConfigVariable("login_token =", null) != null)
            {
                UsernameBoxLabel.Content = "Name:  ";
                Setup();
            }
            else if (UsernameBox.Text != "")
            {
                StartTimer();
            }
        }
        private void GetLatestVersions()
        {
            var versionLines = new WebClient().DownloadString(UpdateServer + "version.txt")
                               .Split(new[] { "\r\n", "\n" }, StringSplitOptions.None); //Grab version number from the URL constant

            // Grab latest (line 1) or dev build (line 2)
            if (Cfg.GetConfigVariable("dev_build =", null, false) != "1")
            {
                _latestVersion = versionLines[0];
            }
            else
            {
                _latestVersion = versionLines[2] + "-Beta";
            }

            _latestLauncherVersion = versionLines[1]; //Latest launcher version from line 2 of version.txt

            //if (versionLines.Length == 3)
            //    _disableHalo2Download = true;
            //else
            //    _halo2DownloadUrl = versionLines[3]; //Halo 2 download url from line 3 of version.txt

            //Grab xlive.dll file version number. File doesn't exist? 0.0.0.0
            _localVersion = File.Exists(Cfg.InstallPath + @"\xlive.dll")
                ? FileVersionInfo.GetVersionInfo(Cfg.InstallPath + @"\xlive.dll").FileVersion
                : "0.0.0.0";
            //Grab halo2.exe file version number.
            _halo2Version = File.Exists(Cfg.InstallPath + @"\" + ProcessName + ".exe")
                ? FileVersionInfo.GetVersionInfo(Cfg.InstallPath + @"\" + ProcessName + ".exe").FileVersion
                : "0.0.0.0";
            _localLauncherVersion = Assembly.GetExecutingAssembly().GetName().Version.ToString(); //Grab launcher version

            Trace.WriteLine("Latest h2vonline: " + _latestVersion);
            Trace.WriteLine("Latest launcher: " + _latestLauncherVersion);
            Trace.WriteLine("Local h2vonline: " + _localVersion);
            Trace.WriteLine("Local launcher: " + _localLauncherVersion);
            Trace.WriteLine("Halo 2: " + _halo2Version);
            Trace.WriteLine(Cfg.InstallPath + @"\" + ProcessName + ".exe");

            if (_localLauncherVersion != null)
            {
                LauncherVersion.Foreground = _localLauncherVersion == _latestLauncherVersion
                  ? new SolidColorBrush(Colors.Lime)
                  : new SolidColorBrush(Colors.OrangeRed);
                LauncherVersion.Content = _localLauncherVersion;
            }

            if (_localVersion != null)
            {
                PcVersion.Foreground = _localVersion == _latestVersion
                  ? new SolidColorBrush(Colors.Lime)
                  : new SolidColorBrush(Colors.OrangeRed);
                PcVersion.Content = _localVersion;
            }
        }
 private bool Load()
 //TODO: Databind this
 {
     try
     {
         UsernameBox.Text   = Cfg.GetConfigVariable("name =", null);
         GameArguments.Text = Cfg.GetConfigVariable("arguments =", "");
         //CboxDebug.IsChecked = Convert.ToBoolean(Convert.ToInt32(Cfg.GetConfigVariable("debug_log =", "0")));
         Trace.WriteLine("Name: " + UsernameBox.Text); //Write Name
         //Trace.WriteLine("Debug: " + CboxDebug.IsChecked); //Write debug selection
         return(true);
     }
     catch { return(false); }
 }