private void SaveOptionSettings()
        {
            MySettings.GameClientUpdateThrottleCache = (int)(Enum.Parse(typeof(ThreadSpeed), (string)this.optioncomboBoxThrottleCache.SelectedItem));
            MySettings.GameClientUpdateCache         = this.optioncheckboxpso2updatecache.Checked;
            MySettings.MinimizeNetworkUsage          = this.optioncheckBoxMinimizeNetworkUsage.Checked;
            MySettings.ReshadeSupport                = this.checkBoxSupportReshade.Checked;
            MySettings.UseExternalLauncher           = this.checkBoxExternalLauncher.Checked;
            MySettings.ExternalLauncherUseStrictMode = this.radioButtonExLauncherStrict.Checked;
            MySettings.ExternalLauncherEXE           = this.textBoxExLauncherEXE.Text;
            MySettings.ExternalLauncherArgs          = this.textBoxExLauncherArgs.Text;
            MySettings.SteamMode        = this.checkBoxoptionSteamMode.Checked;
            MySettings.CheckForPrepatch = this.checkboxoptionPrepatch.Checked;

            if (this._appearenceChanged)
            {
                MySettings.LauncherBGColor     = new Nullable <Color>(optionbuttonPickBackColor.BackColor);
                MySettings.LauncherForeColor   = new Nullable <Color>(optionbuttonPickForeColor.BackColor);
                MySettings.HighlightTexts      = this.optioncheckboxHighlightText.Checked;
                MySettings.LauncherBGlocation  = optiontextBoxBGlocation.Text;
                MySettings.LauncherSizeScale   = optionSliderFormScale.Value;
                MySettings.LauncherBGImgLayout = (ImageLayout)Enum.Parse(typeof(ImageLayout), (string)this.optioncomboBoxBGImgMode.SelectedItem, true);
            }
            if (this._displaylanguageChanged)
            {
                if (this.optioncomboBoxLanguage.Text.IndexOf(".") > -1)
                {
                    this.optioncomboBoxLanguage.Text = System.IO.Path.GetFileNameWithoutExtension(this.optioncomboBoxLanguage.Text);
                }
                string languageFile = System.IO.Path.Combine(DefaultValues.MyInfo.Directory.LanguageFolder, this.optioncomboBoxLanguage.Text + ".ini");
                if (!System.IO.File.Exists(languageFile))
                {
                    if (MetroMessageBox.Show(this, LanguageManager.GetMessageText("ConfirmGenerateLanguageFile", "The display language you have just set is not found. Do you want to generate one?"), "Confirm", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        LanguageManager.GenerateLangFile(languageFile);
                    }
                }
                MySettings.Language = this.optioncomboBoxLanguage.Text;
            }
            if (this._appearenceChanged || this._displaylanguageChanged)
            {
                string msgString = string.Empty;
                if (this._appearenceChanged)
                {
                    msgString = string.Concat(msgString, "\r\n- ", LanguageManager.GetMessageText("OptionAppearenceApplyNextBoot", "The appearence changes in your settings will be applied at next startup."));
                }
                if (this._displaylanguageChanged)
                {
                    msgString = string.Concat(msgString, "\r\n- ", LanguageManager.GetMessageText("OptionLanguageApplyNextBoot", "The display language settings will be applied at next startup."));
                }
                this._appearenceChanged      = false;
                this._displaylanguageChanged = false;
                MetroMessageBox.Show(this, msgString.TrimStart(), "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }