Пример #1
0
        private void newProfileToolStripMenuItem_Click(object sender, EventArgs e)
        {
            TextBoxForm form    = CreateProfileTextBoxForm("New Profile", true);
            bool        success = false;

            while (!success && form.ShowDialog(this) == DialogResult.OK)
            {
                success = IsValidProfileName(-1, form.DisplayText.Trim(), out string error);

                if (success)
                {
                    GameProfile gameProfile = new GameProfile(GameFile.GameFileID.Value, form.DisplayText);

                    GameProfile.ApplyDefaultsToProfile(gameProfile, m_appConfig);
                    if (form.CheckBoxChecked)
                    {
                        UpdateGameProfile(gameProfile);
                    }

                    m_adapter.InsertGameProfile(gameProfile);

                    cmbProfiles.SelectedIndexChanged -= CmbProfiles_SelectedIndexChanged;
                    var profiles = LoadProfiles();
                    cmbProfiles.SelectedIndexChanged += CmbProfiles_SelectedIndexChanged;
                    cmbProfiles.SelectedValue         = profiles.Max(x => x.GameProfileID);
                }
                else
                {
                    MessageBox.Show(this, error, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
Пример #2
0
        public void SetGameProfile(IGameProfile gameProfile)
        {
            SetIwadInfoLabel();

            UnregisterEvents();
            m_handler = new FileLoadHandler(m_adapter, GameFile, gameProfile);

            SetDefaultSelections();
            GameProfile.ApplyDefaultsToProfile(gameProfile, m_appConfig);
            cmbProfiles.SelectedValue = gameProfile.GameProfileID;

            if (GameFile != null)
            {
                chkSaveStats.Checked      = gameProfile.SettingsStat;
                chkLoadLatestSave.Checked = gameProfile.SettingsLoadLatestSave;

                if (gameProfile.SourcePortID.HasValue)
                {
                    SelectedSourcePort = m_adapter.GetSourcePort(gameProfile.SourcePortID.Value);
                }

                // Selected GameFile is an IWAD so lock the IWAD selection
                if (IsIwad(GameFile))
                {
                    cmbIwad.Enabled = false;
                    SelectedIWad    = GameFile;
                }
                else if (gameProfile.IWadID.HasValue)
                {
                    SelectedIWad = m_adapter.GetGameFileIWads().FirstOrDefault(x => x.IWadID == gameProfile.IWadID);
                }

                if (!string.IsNullOrEmpty(gameProfile.SettingsMap))
                {
                    SelectedMap = gameProfile.SettingsMap;
                }
                if (!string.IsNullOrEmpty(gameProfile.SettingsSkill))
                {
                    SelectedSkill = gameProfile.SettingsSkill;
                }
                if (!string.IsNullOrEmpty(gameProfile.SettingsExtraParams))
                {
                    ExtraParameters = gameProfile.SettingsExtraParams;
                }
                if (!string.IsNullOrEmpty(gameProfile.SettingsSpecificFiles))
                {
                    SpecificFiles = Util.SplitString(gameProfile.SettingsSpecificFiles);
                }
            }

            bool reset = ShouldRecalculateAdditionalFiles();

            HandleSourcePortSelectionChange(reset);
            HandleIwadSelectionChanged(reset);
            SetAdditionalFiles(reset);
            HandleDemoChange();
            RegisterEvents();
        }