예제 #1
0
파일: Unit.cs 프로젝트: nkodama/HoI2Editor
        /// <summary>
        ///     編集済みフラグを設定する
        /// </summary>
        /// <param name="id">項目ID</param>
        public void SetDirty(UnitClassItemId id)
        {
            _dirtyFlags[(int) id] = true;
            _dirtyFlag = true;
            SetEntity();

            switch (id)
            {
                case UnitClassItemId.MaxSpeedStep: // 最大生産速度
                case UnitClassItemId.Detachable: // 旅団が着脱可能か
                    _dirtyFileFlag = true;
                    Units.SetDirty();
                    break;

                case UnitClassItemId.Name:
                case UnitClassItemId.ShortName:
                case UnitClassItemId.Desc:
                case UnitClassItemId.ShortDesc:
                    // 文字列のみの更新となるのでユニット定義ファイルの更新は必要ない
                    break;

                case UnitClassItemId.Eyr: // 統計グループ
                case UnitClassItemId.Sprite: // スプライトの種類
                case UnitClassItemId.Transmute: // 生産不可能な時に使用するクラス
                case UnitClassItemId.GfxPrio: // 画像の優先度
                case UnitClassItemId.Vaule: // 軍事力
                case UnitClassItemId.ListPrio: // リストの優先度
                case UnitClassItemId.UiPrio: // UI優先度
                case UnitClassItemId.RealType: // 実ユニット種類
                case UnitClassItemId.Productable: // 初期状態で生産可能かどうか
                case UnitClassItemId.Cag: // 空母航空隊かどうか
                case UnitClassItemId.Escort: // 護衛戦闘機かどうか
                case UnitClassItemId.Engineer: // 工兵かどうか
                case UnitClassItemId.DefaultType: // 標準の生産タイプかどうか
                    if (Organization == UnitOrganization.Division)
                    {
                        Units.SetDirtyDivisionTypes();
                    }
                    else
                    {
                        Units.SetDirtyBrigadeTypes();
                    }
                    break;

                case UnitClassItemId.Branch: // ユニットの兵科
                    switch (Game.Type)
                    {
                        case GameType.ArsenalOfDemocracy:
                            // AoDの場合ユニット定義ファイルで師団/旅団ともに編集可能
                            _dirtyFileFlag = true;
                            Units.SetDirty();
                            break;

                        case GameType.DarkestHour:
                            // DHの場合師団/旅団定義ファイルで編集可能
                            if (Organization == UnitOrganization.Division)
                            {
                                Units.SetDirtyDivisionTypes();
                            }
                            else
                            {
                                Units.SetDirtyBrigadeTypes();
                            }
                            break;
                    }
                    break;

                case UnitClassItemId.MaxAllowedBrigades: // 最大旅団数
                    switch (Game.Type)
                    {
                        case GameType.ArsenalOfDemocracy:
                            // AoDの場合艦船ユニットのみMisc側で設定するためここでは何もしない
                            break;

                        case GameType.DarkestHour:
                            // DHの場合はユニット定義ファイルで編集可能
                            _dirtyFileFlag = true;
                            Units.SetDirty();
                            break;
                    }
                    break;
            }
        }
예제 #2
0
파일: Unit.cs 프로젝트: nkodama/HoI2Editor
 /// <summary>
 ///     項目が編集済みかどうかを取得する
 /// </summary>
 /// <param name="id">項目ID</param>
 /// <returns>編集済みならばtrueを返す</returns>
 public bool IsDirty(UnitClassItemId id)
 {
     return _dirtyFlags[(int) id];
 }