OSDN Git Service

#36776 Config画面の変数を追加、ドラムのみパネルを仮設置。(完全ではないので落ちるはず)
authorkairera0467 <gennsou76573@gmail.com>
Tue, 10 Jan 2017 13:35:53 +0000 (22:35 +0900)
committerkairera0467 <gennsou76573@gmail.com>
Tue, 10 Jan 2017 13:35:53 +0000 (22:35 +0900)
#36776 演奏画面での処理を仮実装。(未テスト)

DTXManiaプロジェクト/コード/ステージ/04.コンフィグ/CActConfigList.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/CStage演奏画面共通.cs

index fcffd30..25f6f74 100644 (file)
@@ -754,6 +754,13 @@ namespace DTXMania
                                "It becomes MISS to hit pad without chip." );
                        this.list項目リスト.Add( this.iDrumsTight );
 
+            this.iDrumsJust = new CItemList("JUST", CItemBase.Eパネル種別.通常, (int)CDTXMania.ConfigIni.eJUST.Drums,
+                "ON   :PERFECT以外の判定を全てミス扱いにします。\n" +
+                "GREAT:GOOD以下の判定を全てミス扱いにします。\n",
+                "",
+                new string[] { "OFF", "ON", "GREAT" });
+            this.list項目リスト.Add(this.iDrumsLaneDispType);
+
                        #region [ Position ]
             #region[ LaneType ]
             this.iDrumsLaneType = new CItemList("LaneType", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eLaneType,
@@ -2866,7 +2873,8 @@ namespace DTXMania
                private CItemToggle iBassB;                                                     //
                private CItemToggle iBassPick;                                          //
                private CItemToggle iBassW;                                                     //
-       
+
+        private CItemList iBassJust;
                private CItemToggle iBassLeft;
                private CItemToggle iBassLight;
                private CItemList iBassPosition;
@@ -2894,6 +2902,7 @@ namespace DTXMania
                private CItemToggle iDrumsHiHat;
         private CItemInteger iDrumsJudgeLinePos;
         private CItemInteger iDrumsJudgeLineOffset;
+        private CItemList iDrumsJust;
         private CItemList iDrumsLaneType;
                private CItemToggle iDrumsLeftBassDrum;
                private CItemToggle iDrumsLeftCymbal;
@@ -2922,6 +2931,7 @@ namespace DTXMania
                private CItemToggle iGuitarPick;                                        //
                private CItemToggle iGuitarW;                                           //
 
+        private CItemList iGuitarJust;
                private CItemToggle iGuitarLeft;
                private CItemToggle iGuitarLight;
                private CItemList iGuitarPosition;
@@ -3105,6 +3115,7 @@ namespace DTXMania
             CDTXMania.ConfigIni.nLaneDispType.Bass = this.iBassLaneDispType.n現在選択されている項目番号;
             CDTXMania.ConfigIni.bJudgeLineDisp.Bass = this.iBassJudgeLineDisp.bON;
             CDTXMania.ConfigIni.bGraph.Bass = this.iBassGraph.bON;
+            CDTXMania.ConfigIni.eJUST.Bass = (EJust)this.iBassJust.n現在選択されている項目番号;
                }
                private void tConfigIniへ記録する_Drums()
                {
@@ -3157,6 +3168,7 @@ namespace DTXMania
             CDTXMania.ConfigIni.nLaneDispType.Drums = this.iDrumsLaneDispType.n現在選択されている項目番号;
             CDTXMania.ConfigIni.bJudgeLineDisp.Drums = this.iDrumsJudgeLineDisp.bON;
             CDTXMania.ConfigIni.bLaneFlush.Drums = this.iDrumsLaneFlush.bON;
+            CDTXMania.ConfigIni.eJUST.Drums = (EJust)this.iDrumsJust.n現在選択されている項目番号;
                }
                private void tConfigIniへ記録する_Guitar()
                {
@@ -3189,6 +3201,7 @@ namespace DTXMania
             CDTXMania.ConfigIni.nLaneDispType.Guitar = this.iGuitarLaneDispType.n現在選択されている項目番号;
             CDTXMania.ConfigIni.bJudgeLineDisp.Guitar = this.iGuitarJudgeLineDisp.bON;
             CDTXMania.ConfigIni.bGraph.Guitar = this.iGuitarGraph.bON;
+            CDTXMania.ConfigIni.eJUST.Guitar = (EJust)this.iGuitarJust.n現在選択されている項目番号;
                }
                //-----------------
                #endregion
index 228aee9..04ee64b 100644 (file)
@@ -1367,6 +1367,21 @@ namespace DTXMania
             int nInputAdjustTime = bPChipIsAutoPlay && bIsPerfectGhost ? 0 : this.nInputAdjustTimeMs[(int)pChip.e楽器パート];
             eJudgeResult = (bCorrectLane) ? this.e指定時刻からChipのJUDGEを返す(nHitTime, pChip, nInputAdjustTime) : E判定.Miss;
 
+            // 2017.01.10 kairera0467 #36776
+            for( int i = 0; i < 3; i++ )
+            {
+                if( CDTXMania.ConfigIni.eJUST[ i ] == EJust.JUST )
+                {
+                    if( !( eJudgeResult == E判定.Perfect || eJudgeResult == E判定.XPerfect ) )
+                        eJudgeResult = E判定.Miss;
+                }
+                else if( CDTXMania.ConfigIni.eJUST[ i ] == EJust.GREAT )
+                {
+                    if( !( eJudgeResult == E判定.Perfect || eJudgeResult == E判定.Great || eJudgeResult == E判定.XPerfect ) )
+                        eJudgeResult = E判定.Miss;
+                }
+            }
+
             if( pChip.e楽器パート != E楽器パート.UNKNOWN )
             {
                 int nChannel = -1;