public void UpdateProfile(MainForm mainForm)
        {
            GameIndex = mainForm.GameComboBox.SelectedIndex - 1;

            switch (mainForm.DirectXComboBox.SelectedIndex)
            {
                case 0:
                    DXLevel = 80;
                    break;
                case 1:
                    DXLevel = 81;
                    break;
                case 2:
                    DXLevel = 90;
                    break;
                case 3:
                    DXLevel = 95;
                    break;
                case 4:
                default:
                    DXLevel = 98;
                    break;
            }

            Config = mainForm.ConfigComboBox.SelectedIndex == 0 ? "" : mainForm.ConfigComboBox.Text;

            CheckedListBox.CheckedItemCollection customCheckedItems = mainForm.CustomCheckedListBox.CheckedItems;
            customItems = new string[customCheckedItems.Count];

            for (int i = 0; i < customCheckedItems.Count; i++)
                customItems[i] = (string)customCheckedItems[i];

            TgaPath = mainForm.TgaTextBox.Text;
            VideoPath = mainForm.VideoTextBox.Text;
            CodecIndex = mainForm.CodecComboBox.SelectedIndex;

            EnableRecording = mainForm.EnableRecordingToolStripMenuItem.Checked;
            EnableBinds = mainForm.EnableBindsToolStripMenuItem.Checked;
            ConfigExecutionOnRecord = mainForm.ConfigExecutionOnRecordToolStripMenuItem.Checked;
            WireframeWorkaround = mainForm.WireframeWorkaroundToolStripMenuItem.Checked;
            DemoPlaybackFeatures = mainForm.DemoPlaybackFeaturesToolStripMenuItem.Checked;
            ThirdPersonFeatures = mainForm.ThirdPersonFeaturesToolStripMenuItem.Checked;
            CompileOnGameExit = mainForm.CompileOnGameExitToolStripMenuItem.Checked;
            CreateBackups = mainForm.EnableBackupsToolStripMenuItem.Checked;
        }
        private void InternalUpdateForm(MainForm mainForm)
        {
            mainForm.GameComboBox.SelectedIndex = GameIndex + 1;

            switch (DXLevel)
            {
                case 80:
                    mainForm.DirectXComboBox.SelectedIndex = 0;
                    break;
                case 81:
                    mainForm.DirectXComboBox.SelectedIndex = 1;
                    break;
                case 90:
                    mainForm.DirectXComboBox.SelectedIndex = 2;
                    break;
                case 95:
                    mainForm.DirectXComboBox.SelectedIndex = 3;
                    break;
                case 98:
                default:
                    mainForm.DirectXComboBox.SelectedIndex = 4;
                    break;
            }

            mainForm.ResolutionComboBox.Text = Width + "x" + Height;
            mainForm.FramerateComboBox.Text = Framerate.ToString();

            if (Config == "")
                mainForm.ConfigComboBox.SelectedIndex = 0;
            else
                mainForm.ConfigComboBox.SelectedItem = Config;

            CheckedListBox.ObjectCollection customItemsCollection = mainForm.CustomCheckedListBox.Items;
            for (int i = 0; i < customItemsCollection.Count; i++)
            {
                string currentItem = (string)customItemsCollection[i];
                bool found = false;

                for (int j = 0; j < customItems.Length; j++)
                {
                    if (currentItem == customItems[j])
                    {
                        found = true;
                        break;
                    }
                }

                if (found)
                    mainForm.CustomCheckedListBox.SetItemChecked(i, true);
                else
                    mainForm.CustomCheckedListBox.SetItemChecked(i, false);
            }

            if (Skyname == "")
                mainForm.SkyboxPictureBox.Image = Properties.Resources.defaultskybox;
            else
                mainForm.SkyboxPictureBox.Image = SRTSkybox.FindSkyboxByName(Skyname).PreviewImage;

            mainForm.TgaTextBox.Text = TgaPath;
            mainForm.VideoTextBox.Text = VideoPath;
            mainForm.CodecComboBox.SelectedIndex = CodecIndex;

            switch (TGAFPSDetectMode)
            {
                case 0:
                    mainForm.AbsoluteToolStripMenuItem.PerformClick();
                    break;
                case 1:
                    mainForm.AbsoluteRoundedToolStripMenuItem.PerformClick();
                    break;
                case 2:
                    mainForm.LinearToolStripMenuItem.PerformClick();
                    break;
                case 3:
                default:
                    mainForm.ExponentialToolStripMenuItem.PerformClick();
                    break;
            }

            switch (DefaultCinematicMode)
            {
                case 0:
                default:
                    mainForm.OffToolStripMenuItem.PerformClick();
                    break;
                case 1:
                    mainForm.NormalToolStripMenuItem.PerformClick();
                    break;
                case 2:
                    mainForm.ExtremeToolStripMenuItem.PerformClick();
                    break;
            }

            mainForm.EnableRecordingToolStripMenuItem.Checked = EnableRecording;

            if (!EnableRecording)
                mainForm.EnableRecordingToolStripMenuItem_CheckedChanged(null, null);

            mainForm.EnableBindsToolStripMenuItem.Checked = EnableBinds;

            if (!EnableBinds)
                mainForm.EnableBindsToolStripMenuItem_CheckedChanged(null, null);

            mainForm.ConfigExecutionOnRecordToolStripMenuItem.Checked = ConfigExecutionOnRecord;
            mainForm.WireframeWorkaroundToolStripMenuItem.Checked = WireframeWorkaround;
            mainForm.DemoPlaybackFeaturesToolStripMenuItem.Checked = DemoPlaybackFeatures;
            mainForm.ThirdPersonFeaturesToolStripMenuItem.Checked = ThirdPersonFeatures;
            mainForm.CompileOnGameExitToolStripMenuItem.Checked = CompileOnGameExit;

            switch (AfterRecording)
            {
                case 0:
                default:
                    mainForm.DoNothingToolStripMenuItem.PerformClick();
                    break;
                case 1:
                    mainForm.CloseApplicationToolStripMenuItem.PerformClick();
                    break;
                case 2:
                    mainForm.StandbyToolStripMenuItem.PerformClick();
                    break;
                case 3:
                    mainForm.HibernateToolStripMenuItem.PerformClick();
                    break;
                case 4:
                    mainForm.ShutDownToolStripMenuItem.PerformClick();
                    break;
            }

            mainForm.EnableBackupsToolStripMenuItem.Checked = CreateBackups;

            if (!CreateBackups)
                mainForm.CreateBackupsToolStripMenuItem_CheckedChanged(null, null);

            switch (BackupMode)
            {
                case 0:
                    mainForm.OnceToolStripMenuItem.PerformClick();
                    break;
                case 1:
                default:
                    mainForm.DailyToolStripMenuItem.PerformClick();
                    break;
                case 2:
                    mainForm.EverytimeToolStripMenuItem.PerformClick();
                    break;
            }

            if (mainForm.GameComboBox.SelectedIndex == -1)
                mainForm.GameComboBox.SelectedIndex = 0;

            if (mainForm.DirectXComboBox.SelectedIndex == -1)
                mainForm.DirectXComboBox.SelectedIndex = 4;

            if (mainForm.ConfigComboBox.SelectedIndex == -1)
                mainForm.ConfigComboBox.SelectedIndex = 0;

            if (mainForm.CodecComboBox.SelectedIndex == -1)
                mainForm.CodecComboBox.SelectedIndex = 0;
        }
 public void UpdateForm(MainForm mainForm)
 {
     try
     {
         InternalUpdateForm(mainForm);
     }
     catch
     {
         LoadDefault(true);
         InternalUpdateForm(mainForm);
     }
 }