Пример #1
0
        /// <summary>
        ///     フォームクローズ時の処理
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OnFormClosing(object sender, FormClosingEventArgs e)
        {
            // 編集済みでなければフォームを閉じる
            if (!HoI2EditorController.IsDirty())
            {
                return;
            }

            // 保存するかを問い合わせる
            DialogResult result = MessageBox.Show(Resources.ConfirmSaveMessage, Text, MessageBoxButtons.YesNoCancel,
                                                  MessageBoxIcon.Question);

            switch (result)
            {
            case DialogResult.Cancel:
                e.Cancel = true;
                break;

            case DialogResult.Yes:
                HoI2EditorController.Save();
                break;

            case DialogResult.No:
                HoI2EditorController.SaveCanceled = true;
                break;
            }
        }
Пример #2
0
        /// <summary>
        ///     ゲームフォルダ名文字列変更時の処理
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OnGameFolderTextBoxTextChanged(object sender, EventArgs e)
        {
            // ゲームフォルダ名が変更なければ戻る
            if (gameFolderTextBox.Text.Equals(Game.FolderName))
            {
                return;
            }

            // 言語モードを記憶する
            LanguageMode prev = Config.LangMode;

            // ゲームフォルダ名を変更する
            Game.FolderName = gameFolderTextBox.Text;

            // 言語モードが変更されたら言語リストを更新する
            if (Config.LangMode != prev)
            {
                UpdateLanguage();
            }

            // ゲームフォルダ名が有効でなければデータ編集を無効化する
            if (!Game.IsGameFolderActive)
            {
                editGroupBox.Enabled = false;
                return;
            }

            // 他のエディタプロセスで使われていなければ、データ編集を有効化する
            editGroupBox.Enabled = HoI2EditorController.LockMutex(Game.FolderName);
        }
Пример #3
0
        /// <summary>
        ///     フォーム読み込み時の処理
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OnMainFormLoad(object sender, EventArgs e)
        {
            // バージョン文字列を更新する
            Text = HoI2EditorController.Version;

            // ログレベルを初期化する
            logLevelComboBox.SelectedIndex = Log.Level;

            // ログ初期化前にゲームの種類が確定している時にはここでログ出力する
            if (Game.Type != GameType.None)
            {
                Game.OutputGameType();
                Game.OutputGameVersion();
            }

            // マップ読み込みの禁止チェックボックスを初期化する
            mapLoadCheckBox.Checked = Maps.ForbidLoad;

            // 初期状態のゲームフォルダ名を設定する
            if (!string.IsNullOrEmpty(Game.FolderName))
            {
                gameFolderTextBox.Text = HoI2EditorController.Settings.Main.GameFolder;
                Log.Error("Game Folder: {0}", HoI2EditorController.Settings.Main.GameFolder);

                if (!string.IsNullOrEmpty(HoI2EditorController.Settings.Main.ModFolder))
                {
                    modTextBox.Text = HoI2EditorController.Settings.Main.ModFolder;
                    Log.Error("MOD Name: {0}", HoI2EditorController.Settings.Main.ModFolder);
                }
                if (!string.IsNullOrEmpty(HoI2EditorController.Settings.Main.ExportFolder))
                {
                    exportFolderTextBox.Text = HoI2EditorController.Settings.Main.ExportFolder;
                    Log.Error("Export Name: {0}", HoI2EditorController.Settings.Main.ExportFolder);
                }

                // 言語リストを更新する
                UpdateLanguage();

                // ゲームフォルダ名が有効でなければデータ編集を無効化する
                if (!Game.IsGameFolderActive)
                {
                    editGroupBox.Enabled = false;
                    return;
                }

                // 他のエディタプロセスで使われていなければ、データ編集を有効化する
                editGroupBox.Enabled = HoI2EditorController.LockMutex(Game.FolderName);
            }
            else
            {
                SetFolderName(Environment.CurrentDirectory);
            }
        }
Пример #4
0
        /// <summary>
        ///     再読み込みボタン押下時の処理
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OnReloadButtonClick(object sender, EventArgs e)
        {
            // 編集済みならば保存するかを問い合わせる
            if (HoI2EditorController.IsDirty())
            {
                DialogResult result = MessageBox.Show(Resources.ConfirmSaveMessage, Text, MessageBoxButtons.YesNoCancel,
                                                      MessageBoxIcon.Question);
                switch (result)
                {
                case DialogResult.Cancel:
                    return;

                case DialogResult.Yes:
                    HoI2EditorController.Save();
                    break;
                }
            }

            HoI2EditorController.Reload();
        }
Пример #5
0
 /// <summary>
 ///     フォームクローズ後の処理
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void OnFormClosed(object sender, FormClosedEventArgs e)
 {
     HoI2EditorController.OnUnitNameEditorFormClosed();
 }
Пример #6
0
 /// <summary>
 ///     遅延読み込み完了時の処理
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private static void OnWorkerRunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
 {
     // 遅延読み込み完了時の処理
     HoI2EditorController.OnLoadingCompleted();
 }
Пример #7
0
        /// <summary>
        ///     他のフォームに更新を通知する
        /// </summary>
        /// <param name="id">項目ID</param>
        private void NotifyItemChange(MiscItemId id)
        {
            switch (id)
            {
            case MiscItemId.TpMaxAttach:     // 輸送艦最大付属装備数
                if (Units.IsLoaded())
                {
                    Units.Items[(int)UnitType.Transport].SetDirty(UnitClassItemId.MaxAllowedBrigades);
                }
                HoI2EditorController.OnItemChanged(EditorItemId.MaxAllowedBrigades, this);
                break;

            case MiscItemId.SsMaxAttach:     // 潜水艦最大付属装備数
                if (Units.IsLoaded())
                {
                    Units.Items[(int)UnitType.Submarine].SetDirty(UnitClassItemId.MaxAllowedBrigades);
                }
                HoI2EditorController.OnItemChanged(EditorItemId.MaxAllowedBrigades, this);
                break;

            case MiscItemId.SsnMaxAttach:     // 原子力潜水艦最大付属装備数
                if (Units.IsLoaded())
                {
                    Units.Items[(int)UnitType.NuclearSubmarine].SetDirty(UnitClassItemId.MaxAllowedBrigades);
                }
                HoI2EditorController.OnItemChanged(EditorItemId.MaxAllowedBrigades, this);
                break;

            case MiscItemId.DdMaxAttach:     // 駆逐艦最大付属装備数
                if (Units.IsLoaded())
                {
                    Units.Items[(int)UnitType.Destroyer].SetDirty(UnitClassItemId.MaxAllowedBrigades);
                }
                HoI2EditorController.OnItemChanged(EditorItemId.MaxAllowedBrigades, this);
                break;

            case MiscItemId.ClMaxAttach:     // 軽巡洋艦最大付属装備数
                if (Units.IsLoaded())
                {
                    Units.Items[(int)UnitType.LightCruiser].SetDirty(UnitClassItemId.MaxAllowedBrigades);
                }
                HoI2EditorController.OnItemChanged(EditorItemId.MaxAllowedBrigades, this);
                break;

            case MiscItemId.CaMaxAttach:     // 重巡洋艦最大付属装備数
                if (Units.IsLoaded())
                {
                    Units.Items[(int)UnitType.HeavyCruiser].SetDirty(UnitClassItemId.MaxAllowedBrigades);
                }
                HoI2EditorController.OnItemChanged(EditorItemId.MaxAllowedBrigades, this);
                break;

            case MiscItemId.BcMaxAttach:     // 巡洋戦艦最大付属装備数
                if (Units.IsLoaded())
                {
                    Units.Items[(int)UnitType.BattleCruiser].SetDirty(UnitClassItemId.MaxAllowedBrigades);
                }
                HoI2EditorController.OnItemChanged(EditorItemId.MaxAllowedBrigades, this);
                break;

            case MiscItemId.BbMaxAttach:     // 戦艦最大付属装備数
                if (Units.IsLoaded())
                {
                    Units.Items[(int)UnitType.BattleShip].SetDirty(UnitClassItemId.MaxAllowedBrigades);
                }
                HoI2EditorController.OnItemChanged(EditorItemId.MaxAllowedBrigades, this);
                break;

            case MiscItemId.CvlMaxAttach:     // 軽空母最大付属装備数
                if (Units.IsLoaded())
                {
                    Units.Items[(int)UnitType.EscortCarrier].SetDirty(UnitClassItemId.MaxAllowedBrigades);
                }
                HoI2EditorController.OnItemChanged(EditorItemId.MaxAllowedBrigades, this);
                break;

            case MiscItemId.CvMaxAttach:     // 空母最大付属装備数
                if (Units.IsLoaded())
                {
                    Units.Items[(int)UnitType.Carrier].SetDirty(UnitClassItemId.MaxAllowedBrigades);
                }
                HoI2EditorController.OnItemChanged(EditorItemId.MaxAllowedBrigades, this);
                break;
            }
        }
Пример #8
0
 /// <summary>
 ///     フォームクローズ後の処理
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void OnFormClosed(object sender, FormClosedEventArgs e)
 {
     HoI2EditorController.OnRandomLeaderEditorFormClosed();
 }
Пример #9
0
 /// <summary>
 ///     フォームクローズ後の処理
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void OnFormClosed(object sender, FormClosedEventArgs e)
 {
     HoI2EditorController.OnResearchViewerFormClosed();
 }
Пример #10
0
 /// <summary>
 ///     シナリオボタン押下時の処理
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void OnScenarioButtonClick(object sender, EventArgs e)
 {
     HoI2EditorController.LaunchScenarioEditorForm();
 }
Пример #11
0
 /// <summary>
 ///     研究速度ボタン押下時の処理
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void OnResearchButtonClick(object sender, EventArgs e)
 {
     HoI2EditorController.LaunchResearchViewerForm();
 }
Пример #12
0
 /// <summary>
 ///     ランダム指揮官名ボタン押下時の処理
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void OnRandomLeaderButtonClick(object sender, EventArgs e)
 {
     HoI2EditorController.LaunchRandomLeaderEditorForm();
 }
Пример #13
0
 /// <summary>
 ///     モデル名ボタン押下時の処理
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void OnModelNameButtonClick(object sender, EventArgs e)
 {
     HoI2EditorController.LaunchModelNameEditorForm();
 }
Пример #14
0
 /// <summary>
 ///     ゲーム設定ボタン押下時の処理
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void OnMiscButtonClick(object sender, EventArgs e)
 {
     HoI2EditorController.LaunchMiscEditorForm();
 }
Пример #15
0
 /// <summary>
 ///     プロヴィンスボタン押下時の処理
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void OnProvinceButtonClick(object sender, EventArgs e)
 {
     HoI2EditorController.LaunchProvinceEditorForm();
 }
Пример #16
0
 /// <summary>
 ///     保存ボタン押下時の処理
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void OnSaveButtonClick(object sender, EventArgs e)
 {
     HoI2EditorController.Save();
 }
Пример #17
0
        /// <summary>
        ///     編集項目テキストボックスフォーカス移動後の処理
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OnItemTextBoxValidated(object sender, EventArgs e)
        {
            // 選択中の国家がなければ戻る
            if (countryListBox.SelectedIndex < 0)
            {
                return;
            }
            Country country = Countries.Tags[countryListBox.SelectedIndex];

            // 選択中のユニット名種類がなければ戻る
            UnitClass unit = typeListBox.SelectedItem as UnitClass;

            if (unit == null)
            {
                return;
            }

            TextBox textBox = sender as TextBox;

            if (textBox == null)
            {
                return;
            }
            int index = (int)textBox.Tag;

            if (unit.ExistsModelName(index, country))
            {
                // 値に変化がなければ何もしない
                if (textBox.Text.Equals(unit.GetCountryModelName(index, country)))
                {
                    return;
                }
                if (string.IsNullOrEmpty(textBox.Text))
                {
                    // 変更後の文字列が空ならば国別のモデル名を削除する
                    unit.RemoveModelName(index, country);
                }
                else
                {
                    // 値を更新する
                    unit.SetModelName(index, country, textBox.Text);
                }
            }
            else
            {
                // 値に変化がなければ何もしない
                if (string.IsNullOrEmpty(textBox.Text))
                {
                    return;
                }
                // 値を更新する
                unit.SetModelName(index, country, textBox.Text);
            }

            // 編集済みフラグを設定する
            UnitModel model = unit.Models[index];

            model.SetDirtyName(country);
            Units.SetDirtyModelName(country, unit.Type);

            // 文字色を変更する
            textBox.ForeColor = Color.Red;

            // 編集済みフラグが更新されるため国家リストボックスの表示を更新する
            countryListBox.Refresh();
            typeListBox.Refresh();

            // ユニットモデル名の更新を通知する
            HoI2EditorController.OnItemChanged(EditorItemId.CountryModelName, this);
        }