OSDN Git Service

#24063 Gt/Bs譜面入れ替えに対応。
authoryyagi <yyagi@16f42ceb-6dc6-49c8-ba94-f2d53467949d>
Tue, 25 Jan 2011 12:26:58 +0000 (12:26 +0000)
committeryyagi <yyagi@16f42ceb-6dc6-49c8-ba94-f2d53467949d>
Tue, 25 Jan 2011 12:26:58 +0000 (12:26 +0000)
#24239 InputAdjustでpoor連発という方がいらしたので、試しに最近傍チップの検索にもInpuutAdjustの値を反映してみた。
[未発行] ギター/ベースのスクロール速度をAUTO演奏中でも変更可能とした。

git-svn-id: http://svn.osdn.jp/svnroot/dtxmania/trunk@93 16f42ceb-6dc6-49c8-ba94-f2d53467949d

DTXManiaプロジェクト/コード/スコア、曲/CDTX.cs
DTXManiaプロジェクト/コード/ステージ/05.選曲/CStage選曲.cs
DTXManiaプロジェクト/コード/ステージ/06.曲読み込み/CStage曲読み込み.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/ギター画面/CStage演奏ギター画面.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/ドラム画面/CStage演奏ドラム画面.cs

index cddd86a..2bc7a81 100644 (file)
@@ -2971,6 +2971,32 @@ namespace DTXMania
                        }\r
                }\r
 \r
+               /// <summary>\r
+               /// Swap notes between Guitar and Bass\r
+               /// </summary>\r
+               public void SwapGuitarBassNotes()                                               // #24063 2011.1.24 yyagi ギターとベースのチップ入替\r
+               {\r
+                       for (int i = this.listChip.Count - 1; i >= 0; i--) {\r
+                               if (listChip[i].e楽器パート == E楽器パート.BASS) {\r
+                                       listChip[i].e楽器パート = E楽器パート.GUITAR;\r
+                                       listChip[i].nチャンネル番号 -= ( 0xA0 - 0x20 );\r
+                               }\r
+                               else if ( listChip[i].e楽器パート == E楽器パート.GUITAR )\r
+                               {\r
+                                       listChip[i].e楽器パート = E楽器パート.BASS;\r
+                                       listChip[i].nチャンネル番号 += ( 0xA0 - 0x20 );\r
+                               }\r
+                       }\r
+\r
+                       int t = this.LEVEL.Bass;\r
+                       this.LEVEL.Bass = this.LEVEL.Guitar;\r
+                       this.LEVEL.Guitar = t;\r
+\r
+                       bool ts = this.bチップがある.Bass;\r
+                       this.bチップがある.Bass = this.bチップがある.Guitar;\r
+                       this.bチップがある.Guitar = ts;\r
+               }\r
+\r
                // CActivity 実装\r
 \r
                public override void On活性化()\r
index 1055075..0976d40 100644 (file)
@@ -436,6 +436,7 @@ Debug.WriteLine( "ギターとベースの入れ替え1" );
                                                                CDTXMania.Skin.sound変更音.t再生する();\r
                                                                // ギターとベースのキーを入れ替え\r
                                                                CDTXMania.ConfigIni.SwapGuitarBassKeyAssign();\r
+                                                               //CDTXMania.ConfigIni.bIsSwappedGuitarBass = !CDTXMania.ConfigIni.bIsSwappedGuitarBass;\r
                                                        }\r
                                                }\r
                                                if ( CDTXMania.Pad.b押された( E楽器パート.BASS, Eパッド.Pick )  && !CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.G ) )\r
index 3765585..9ff7811 100644 (file)
@@ -243,6 +243,10 @@ namespace DTXMania
                                                Trace.TraceInformation( "FILE: {0}", new object[] { CDTXMania.DTX.strファイル名の絶対パス } );\r
                                                Trace.TraceInformation( "---------------------------" );\r
 \r
+                                               if ( CDTXMania.ConfigIni.bIsSwappedGuitarBass ) // #24063 2011.1.24 yyagi Gt/Bsのチップ入れ替え\r
+                                               {\r
+                                                       CDTXMania.DTX.SwapGuitarBassNotes();\r
+                                               }\r
                                                if( CDTXMania.bコンパクトモード )\r
                                                        CDTXMania.DTX.MIDIレベル = 1;\r
                                                else\r
index 7ecb510..a621880 100644 (file)
@@ -161,6 +161,13 @@ namespace DTXMania
                                Bass.最終更新日時 = DateTime.Now.ToString();\r
                                Bass.Hash = CScoreIni.t演奏セクションのMD5を求めて返す( Bass );\r
                        }\r
+                       if ( CDTXMania.ConfigIni.bIsSwappedGuitarBass )         // #24063 2011.1.24 yyagi Gt/Bsを入れ替えていたなら、演奏結果も入れ替える\r
+                       {\r
+                               CScoreIni.C演奏記録 t;\r
+                               t = Guitar;\r
+                               Guitar = Bass;\r
+                               Bass = t;\r
+                       }\r
                }\r
                \r
 \r
@@ -210,6 +217,9 @@ namespace DTXMania
                        this.nInputAdjustTimeMs.Drums = CDTXMania.ConfigIni.nInputAdjustTimeMs.Drums;           // #23580 2011.1.3 yyagi\r
             this.nInputAdjustTimeMs.Guitar = CDTXMania.ConfigIni.nInputAdjustTimeMs.Guitar;            //        2011.1.7 ikanick 修正\r
                        this.nInputAdjustTimeMs.Bass = CDTXMania.ConfigIni.nInputAdjustTimeMs.Bass;                     //\r
+                       this.bIsAutoPlay.Drums = false;\r
+                       this.bIsAutoPlay.Guitar = CDTXMania.ConfigIni.bAutoPlay.Guitar;\r
+                       this.bIsAutoPlay.Bass = CDTXMania.ConfigIni.bAutoPlay.Bass;\r
                }\r
                public override void OnManagedリソースの作成()\r
                {\r
@@ -604,6 +614,7 @@ namespace DTXMania
                private CTexture txヒットバー;\r
                private CTexture tx背景;\r
                private STDGBVALUE<int> nInputAdjustTimeMs;             // #23580 2011.1.3 yyagi\r
+               private STDGBVALUE<bool> bIsAutoPlay;                           // #24239 2011.1.23 yyagi\r
 \r
                private E判定 e指定時刻からChipのJUDGEを返す( long nTime, CDTX.CChip pChip, int nInputAdjustTime )\r
                {\r
@@ -642,8 +653,10 @@ namespace DTXMania
                        }\r
                        return null;\r
                }\r
-               private CDTX.CChip r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( long nTime, int nChannelFlag )\r
+               private CDTX.CChip r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( long nTime, int nChannelFlag, int nInputAdjustTime )\r
                {\r
+                       nTime += nInputAdjustTime;\r
+       \r
                        int num5;\r
                        if( this.n現在のトップChip == -1 )\r
                        {\r
@@ -731,12 +744,18 @@ namespace DTXMania
                        }\r
                        return chip3;\r
                }\r
-               private CDTX.CChip r指定時刻に一番近い未ヒットChip( long nTime, int nChannelFlag )\r
-               {\r
-                       return this.r指定時刻に一番近い未ヒットChip( nTime, nChannelFlag, 0 );\r
-               }\r
-               private CDTX.CChip r指定時刻に一番近い未ヒットChip( long nTime, int nChannelFlag, int n検索範囲時間ms )\r
+//             private CDTX.CChip r指定時刻に一番近い未ヒットChip( long nTime, int nChannelFlag )\r
+//             {\r
+//                     return this.r指定時刻に一番近い未ヒットChip( nTime, nChannelFlag, 0, 0 );\r
+//             }\r
+//             private CDTX.CChip r指定時刻に一番近い未ヒットChip( long nTime, int nChannelFlag, int nInputAdjustTime )\r
+//             {\r
+//                     return this.r指定時刻に一番近い未ヒットChip( nTime, nChannelFlag, 0, nInputAdjustTime );\r
+//             }\r
+               private CDTX.CChip r指定時刻に一番近い未ヒットChip( long nTime, int nChannelFlag, int nInputAdjustTime, int n検索範囲時間ms )\r
                {\r
+                       nTime += nInputAdjustTime;\r
+\r
                        int num5;\r
                        int num6;\r
                        if( this.n現在のトップChip == -1 )\r
@@ -830,12 +849,14 @@ namespace DTXMania
                }\r
                private CDTX.CChip r次にくるギターChipを更新して返す()\r
                {\r
-                       this.r次にくるギターChip = this.r指定時刻に一番近い未ヒットChip( CDTXMania.Timer.n現在時刻, 0x2f, 500 );\r
+                       int nInputAdjustTime = this.bIsAutoPlay.Guitar ? 0 : this.nInputAdjustTimeMs.Guitar;\r
+                       this.r次にくるギターChip = this.r指定時刻に一番近い未ヒットChip( CDTXMania.Timer.n現在時刻, 0x2f, nInputAdjustTime, 500 );\r
                        return this.r次にくるギターChip;\r
                }\r
                private CDTX.CChip r次にくるベースChipを更新して返す()\r
                {\r
-                       this.r次にくるベースChip = this.r指定時刻に一番近い未ヒットChip( CDTXMania.Timer.n現在時刻, 0xaf, 500 );\r
+                       int nInputAdjustTime = this.bIsAutoPlay.Bass ? 0 : this.nInputAdjustTimeMs.Bass;\r
+                       this.r次にくるベースChip = this.r指定時刻に一番近い未ヒットChip( CDTXMania.Timer.n現在時刻, 0xaf, nInputAdjustTime, 500 );\r
                        return this.r次にくるベースChip;\r
                }\r
                private void tサウンド再生( CDTX.CChip rChip, long n再生開始システム時刻ms, E楽器パート part )\r
@@ -2004,9 +2025,18 @@ namespace DTXMania
                }\r
                private void t入力処理・ギター()\r
                {\r
-                       if( CDTXMania.ConfigIni.bGuitar有効 && CDTXMania.DTX.bチップがある.Guitar )\r
+                       if ( CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.Decide ) && CDTXMania.Pad.b押された( E楽器パート.GUITAR, Eパッド.B ) )\r
+                       {\r
+                               CDTXMania.ConfigIni.n譜面スクロール速度.Guitar = Math.Min( CDTXMania.ConfigIni.n譜面スクロール速度.Guitar + 1, 0x7cf );\r
+                       }\r
+                       if ( CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.Decide ) && CDTXMania.Pad.b押された( E楽器パート.GUITAR, Eパッド.R ) )\r
+                       {\r
+                               CDTXMania.ConfigIni.n譜面スクロール速度.Guitar = Math.Max( CDTXMania.ConfigIni.n譜面スクロール速度.Guitar - 1, 0 );\r
+                       }\r
+\r
+                       if ( CDTXMania.ConfigIni.bGuitar有効 && CDTXMania.DTX.bチップがある.Guitar )\r
                        {\r
-                               if( CDTXMania.ConfigIni.bAutoPlay.Guitar )\r
+                               if( bIsAutoPlay.Guitar )\r
                                {\r
                                        CDTX.CChip chip = this.r次にくるギターChipを更新して返す();\r
                                        if( chip != null )\r
@@ -2030,37 +2060,29 @@ namespace DTXMania
                                }\r
                                else\r
                                {\r
-                                       if( CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.CY ) && CDTXMania.Pad.b押された( E楽器パート.GUITAR, Eパッド.BD ) )\r
-                                       {\r
-                                               CDTXMania.ConfigIni.n譜面スクロール速度.Guitar = Math.Min( CDTXMania.ConfigIni.n譜面スクロール速度.Guitar + 1, 0x7cf );\r
-                                       }\r
-                                       if( CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.CY ) && CDTXMania.Pad.b押された( E楽器パート.GUITAR, Eパッド.HH ) )\r
-                                       {\r
-                                               CDTXMania.ConfigIni.n譜面スクロール速度.Guitar = Math.Max( CDTXMania.ConfigIni.n譜面スクロール速度.Guitar - 1, 0 );\r
-                                       }\r
-                                       int num = CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.HH ) ? 4 : 0;\r
+                                       int flagR = CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.R ) ? 4 : 0;\r
                                        this.t入力メソッド記憶( E楽器パート.GUITAR );\r
-                                       int num2 = CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.SD ) ? 2 : 0;\r
+                                       int flagG = CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.G ) ? 2 : 0;\r
                                        this.t入力メソッド記憶( E楽器パート.GUITAR );\r
-                                       int num3 = CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.BD ) ? 1 : 0;\r
+                                       int flagB = CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.B ) ? 1 : 0;\r
                                        this.t入力メソッド記憶( E楽器パート.GUITAR );\r
-                                       int num4 = ( num | num2 ) | num3;\r
-                                       if( num != 0 )\r
+                                       int flagRGB = flagR | flagG | flagB;\r
+                                       if( flagR != 0 )\r
                                        {\r
                                                this.actLaneFlushGB.Start( 0 );\r
                                                this.actRGB.Push( 0 );\r
                                        }\r
-                                       if( num2 != 0 )\r
+                                       if( flagG != 0 )\r
                                        {\r
                                                this.actLaneFlushGB.Start( 1 );\r
                                                this.actRGB.Push( 1 );\r
                                        }\r
-                                       if( num3 != 0 )\r
+                                       if( flagB != 0 )\r
                                        {\r
                                                this.actLaneFlushGB.Start( 2 );\r
                                                this.actRGB.Push( 2 );\r
                                        }\r
-                                       List<STInputEvent> events = CDTXMania.Pad.GetEvents( E楽器パート.GUITAR, Eパッド.HT );\r
+                                       List<STInputEvent> events = CDTXMania.Pad.GetEvents( E楽器パート.GUITAR, Eパッド.Pick );\r
                                        if( ( events != null ) && ( events.Count > 0 ) )\r
                                        {\r
                                                foreach( STInputEvent event2 in events )\r
@@ -2072,32 +2094,32 @@ namespace DTXMania
                                                        }\r
                                                        this.t入力メソッド記憶( E楽器パート.GUITAR );\r
                                                        long nTime = event2.nTimeStamp - CDTXMania.Timer.n前回リセットした時のシステム時刻;\r
-                                                       CDTX.CChip pChip = this.r指定時刻に一番近い未ヒットChip( nTime, 0x2f );\r
+                                                       CDTX.CChip pChip = this.r指定時刻に一番近い未ヒットChip( nTime, 0x2f, this.nInputAdjustTimeMs.Guitar, 0 );\r
                                                        E判定 e判定 = this.e指定時刻からChipのJUDGEを返す(nTime, pChip, this.nInputAdjustTimeMs.Guitar);\r
-                                                       if (((pChip != null) && ((pChip.nチャンネル番号 & 15) == num4)) && (e判定 != E判定.Miss))\r
+                                                       if (((pChip != null) && ((pChip.nチャンネル番号 & 15) == flagRGB)) && (e判定 != E判定.Miss))\r
                                                        {\r
-                                                               if( ( num != 0 ) || ( num4 == 0 ) )\r
+                                                               if( ( flagR != 0 ) || ( flagRGB == 0 ) )\r
                                                                {\r
                                                                        this.actChipFire.Start( 0 );\r
                                                                }\r
-                                                               if( ( num2 != 0 ) || ( num4 == 0 ) )\r
+                                                               if( ( flagG != 0 ) || ( flagRGB == 0 ) )\r
                                                                {\r
                                                                        this.actChipFire.Start( 1 );\r
                                                                }\r
-                                                               if( ( num3 != 0 ) || ( num4 == 0 ) )\r
+                                                               if( ( flagB != 0 ) || ( flagRGB == 0 ) )\r
                                                                {\r
                                                                        this.actChipFire.Start( 2 );\r
                                                                }\r
                                                                this.tチップのヒット処理( nTime, pChip );\r
                                                                this.tサウンド再生( pChip, CDTXMania.Timer.nシステム時刻, E楽器パート.GUITAR, CDTXMania.ConfigIni.n手動再生音量, CDTXMania.ConfigIni.b演奏音を強調する.Guitar, e判定 == E判定.Poor );\r
-                                                               CDTX.CChip item = this.r指定時刻に一番近い未ヒットChip( nTime, 40, 140 );\r
+                                                               CDTX.CChip item = this.r指定時刻に一番近い未ヒットChip( nTime, 40, this.nInputAdjustTimeMs.Guitar, 140 );\r
                                                                if( item != null )\r
                                                                {\r
                                                                        this.queWailing.Guitar.Enqueue( item );\r
                                                                }\r
                                                                continue;\r
                                                        }\r
-                                                       if( ( ( chip4 = this.r現在の空うちギターChip ) != null ) || ( ( chip4 = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, 0x2f ) ) != null ) )\r
+                                                       if( ( ( chip4 = this.r現在の空うちギターChip ) != null ) || ( ( chip4 = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, 0x2f, this.nInputAdjustTimeMs.Guitar ) ) != null ) )\r
                                                        {\r
                                                                this.tサウンド再生( chip4, CDTXMania.Timer.nシステム時刻, E楽器パート.GUITAR, CDTXMania.ConfigIni.n手動再生音量, CDTXMania.ConfigIni.b演奏音を強調する.Guitar, true );\r
                                                        }\r
@@ -2107,7 +2129,7 @@ namespace DTXMania
                                                        }\r
                                                }\r
                                        }\r
-                                       List<STInputEvent> list2 = CDTXMania.Pad.GetEvents( E楽器パート.GUITAR, Eパッド.LT );\r
+                                       List<STInputEvent> list2 = CDTXMania.Pad.GetEvents( E楽器パート.GUITAR, Eパッド.Wail );\r
                                        if( ( list2 != null ) && ( list2.Count > 0 ) )\r
                                        {\r
                                                foreach( STInputEvent event3 in list2 )\r
@@ -2124,9 +2146,9 @@ namespace DTXMania
                                                                {\r
                                                                        chip5.bHit = true;\r
                                                                        this.actWailingBonus.Start( E楽器パート.GUITAR, this.r現在の歓声Chip.Guitar );\r
-                                                                       if( !CDTXMania.ConfigIni.bAutoPlay.Guitar )\r
+                                                                       if( !bIsAutoPlay.Guitar )\r
                                                                        {\r
-                                                                               this.actScore.Set( E楽器パート.DRUMS, this.actScore.Get( E楽器パート.DRUMS ) + ( this.actCombo.n現在のコンボ数.Guitar * 0xbb8L ) );\r
+                                                                               this.actScore.Set( E楽器パート.GUITAR, this.actScore.Get( E楽器パート.GUITAR) + ( this.actCombo.n現在のコンボ数.Guitar * 3000L ) );    // #24245 2011.1.24 yyagi changed: DRUMS->GUITAR\r
                                                                        }\r
                                                                }\r
                                                        }\r
@@ -2137,9 +2159,18 @@ namespace DTXMania
                }\r
                private void t入力処理・ベース()\r
                {\r
-                       if( CDTXMania.ConfigIni.bGuitar有効 && CDTXMania.DTX.bチップがある.Bass )\r
+                       if ( CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.Decide ) && CDTXMania.Pad.b押された( E楽器パート.BASS, Eパッド.B ) )\r
+                       {\r
+                               CDTXMania.ConfigIni.n譜面スクロール速度.Bass = Math.Min( CDTXMania.ConfigIni.n譜面スクロール速度.Bass + 1, 0x7cf );\r
+                       }\r
+                       if ( CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.Decide ) && CDTXMania.Pad.b押された( E楽器パート.BASS, Eパッド.R ) )\r
                        {\r
-                               if( CDTXMania.ConfigIni.bAutoPlay.Bass )\r
+                               CDTXMania.ConfigIni.n譜面スクロール速度.Bass = Math.Max( CDTXMania.ConfigIni.n譜面スクロール速度.Bass - 1, 0 );\r
+                       }\r
+\r
+                       if ( CDTXMania.ConfigIni.bGuitar有効 && CDTXMania.DTX.bチップがある.Bass )\r
+                       {\r
+                               if( bIsAutoPlay.Bass )\r
                                {\r
                                        CDTX.CChip chip = this.r次にくるベースChipを更新して返す();\r
                                        if( chip != null )\r
@@ -2163,37 +2194,29 @@ namespace DTXMania
                                }\r
                                else\r
                                {\r
-                                       if( CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.CY ) && CDTXMania.Pad.b押された( E楽器パート.BASS, Eパッド.BD ) )\r
-                                       {\r
-                                               CDTXMania.ConfigIni.n譜面スクロール速度.Bass = Math.Min( CDTXMania.ConfigIni.n譜面スクロール速度.Bass + 1, 0x7cf );\r
-                                       }\r
-                                       if( CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.CY ) && CDTXMania.Pad.b押された( E楽器パート.BASS, Eパッド.HH ) )\r
-                                       {\r
-                                               CDTXMania.ConfigIni.n譜面スクロール速度.Bass = Math.Max( CDTXMania.ConfigIni.n譜面スクロール速度.Bass - 1, 0 );\r
-                                       }\r
-                                       int num = CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.HH ) ? 4 : 0;\r
+                                       int flagR = CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.R ) ? 4 : 0;\r
                                        this.t入力メソッド記憶( E楽器パート.BASS );\r
-                                       int num2 = CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.SD ) ? 2 : 0;\r
+                                       int flagG = CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.G ) ? 2 : 0;\r
                                        this.t入力メソッド記憶( E楽器パート.BASS );\r
-                                       int num3 = CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.BD ) ? 1 : 0;\r
+                                       int flagB = CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.B ) ? 1 : 0;\r
                                        this.t入力メソッド記憶( E楽器パート.BASS );\r
-                                       int num4 = ( num | num2 ) | num3;\r
-                                       if( num != 0 )\r
+                                       int flagRGB = flagR | flagG | flagB;\r
+                                       if( flagR != 0 )\r
                                        {\r
                                                this.actLaneFlushGB.Start( 3 );\r
                                                this.actRGB.Push( 3 );\r
                                        }\r
-                                       if( num2 != 0 )\r
+                                       if( flagG != 0 )\r
                                        {\r
                                                this.actLaneFlushGB.Start( 4 );\r
                                                this.actRGB.Push( 4 );\r
                                        }\r
-                                       if( num3 != 0 )\r
+                                       if( flagB != 0 )\r
                                        {\r
                                                this.actLaneFlushGB.Start( 5 );\r
                                                this.actRGB.Push( 5 );\r
                                        }\r
-                                       List<STInputEvent> events = CDTXMania.Pad.GetEvents( E楽器パート.BASS, Eパッド.HT );\r
+                                       List<STInputEvent> events = CDTXMania.Pad.GetEvents( E楽器パート.BASS, Eパッド.Pick );\r
                                        if( ( events != null ) && ( events.Count > 0 ) )\r
                                        {\r
                                                foreach( STInputEvent event2 in events )\r
@@ -2205,32 +2228,32 @@ namespace DTXMania
                                                        }\r
                                                        this.t入力メソッド記憶( E楽器パート.BASS );\r
                                                        long nTime = event2.nTimeStamp - CDTXMania.Timer.n前回リセットした時のシステム時刻;\r
-                                                       CDTX.CChip pChip = this.r指定時刻に一番近い未ヒットChip( nTime, 0xaf );\r
+                                                       CDTX.CChip pChip = this.r指定時刻に一番近い未ヒットChip( nTime, 0xaf, this.nInputAdjustTimeMs.Bass, 0 );\r
                                                        E判定 e判定 = this.e指定時刻からChipのJUDGEを返す(nTime, pChip, this.nInputAdjustTimeMs.Bass);\r
-                                                       if (((pChip != null) && ((pChip.nチャンネル番号 & 15) == num4)) && (e判定 != E判定.Miss))\r
+                                                       if (((pChip != null) && ((pChip.nチャンネル番号 & 15) == flagRGB)) && (e判定 != E判定.Miss))\r
                                                        {\r
-                                                               if( ( num != 0 ) || ( num4 == 0 ) )\r
+                                                               if( ( flagR != 0 ) || ( flagRGB == 0 ) )\r
                                                                {\r
                                                                        this.actChipFire.Start( 3 );\r
                                                                }\r
-                                                               if( ( num2 != 0 ) || ( num4 == 0 ) )\r
+                                                               if( ( flagG != 0 ) || ( flagRGB == 0 ) )\r
                                                                {\r
                                                                        this.actChipFire.Start( 4 );\r
                                                                }\r
-                                                               if( ( num3 != 0 ) || ( num4 == 0 ) )\r
+                                                               if( ( flagB != 0 ) || ( flagRGB == 0 ) )\r
                                                                {\r
                                                                        this.actChipFire.Start( 5 );\r
                                                                }\r
                                                                this.tチップのヒット処理( nTime, pChip );\r
                                                                this.tサウンド再生( pChip, CDTXMania.Timer.nシステム時刻, E楽器パート.BASS, CDTXMania.ConfigIni.n手動再生音量, CDTXMania.ConfigIni.b演奏音を強調する.Bass, e判定 == E判定.Poor );\r
-                                                               CDTX.CChip item = this.r指定時刻に一番近い未ヒットChip( nTime, 0xa8, 140 );\r
+                                                               CDTX.CChip item = this.r指定時刻に一番近い未ヒットChip( nTime, 0xa8, this.nInputAdjustTimeMs.Bass, 140 );\r
                                                                if( item != null )\r
                                                                {\r
                                                                        this.queWailing.Bass.Enqueue( item );\r
                                                                }\r
                                                                continue;\r
                                                        }\r
-                                                       if( ( ( chip4 = this.r現在の空うちベースChip ) != null ) || ( ( chip4 = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, 0xaf ) ) != null ) )\r
+                                                       if( ( ( chip4 = this.r現在の空うちベースChip ) != null ) || ( ( chip4 = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, 0xaf, this.nInputAdjustTimeMs.Bass ) ) != null ) )\r
                                                        {\r
                                                                this.tサウンド再生( chip4, CDTXMania.Timer.nシステム時刻, E楽器パート.BASS, CDTXMania.ConfigIni.n手動再生音量, CDTXMania.ConfigIni.b演奏音を強調する.Bass, true );\r
                                                        }\r
@@ -2240,7 +2263,7 @@ namespace DTXMania
                                                        }\r
                                                }\r
                                        }\r
-                                       List<STInputEvent> list2 = CDTXMania.Pad.GetEvents( E楽器パート.BASS, Eパッド.LT );\r
+                                       List<STInputEvent> list2 = CDTXMania.Pad.GetEvents( E楽器パート.BASS, Eパッド.Wail );\r
                                        if( ( list2 != null ) && ( list2.Count > 0 ) )\r
                                        {\r
                                                foreach( STInputEvent event3 in list2 )\r
@@ -2257,9 +2280,9 @@ namespace DTXMania
                                                                {\r
                                                                        chip5.bHit = true;\r
                                                                        this.actWailingBonus.Start( E楽器パート.BASS, this.r現在の歓声Chip.Bass );\r
-                                                                       if( !CDTXMania.ConfigIni.bAutoPlay.Bass )\r
+                                                                       if( !bIsAutoPlay.Bass )\r
                                                                        {\r
-                                                                               this.actScore.Set( E楽器パート.DRUMS, this.actScore.Get( E楽器パート.DRUMS ) + ( this.actCombo.n現在のコンボ数.Bass * 0xbb8L ) );\r
+                                                                               this.actScore.Set( E楽器パート.BASS, this.actScore.Get( E楽器パート.BASS ) + ( this.actCombo.n現在のコンボ数.Bass * 3000L ) ); // #24245 2011.1.24 yyagi changed: DRUMS->GUITAR\r
                                                                        }\r
                                                                }\r
                                                        }\r
index 35fa67b..e8b3859 100644 (file)
@@ -239,9 +239,16 @@ namespace DTXMania
                                r空打ちドラムチップ[ i ] = this.r空うちChip( E楽器パート.DRUMS, (Eパッド) i );\r
                                if( r空打ちドラムチップ[ i ] == null )\r
                                {\r
-                                       r空打ちドラムチップ[ i ] = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( CDTXMania.Timer.n現在時刻, this.nパッド0Atoチャンネル0A[ i ] );\r
+                                       r空打ちドラムチップ[ i ] = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( CDTXMania.Timer.n現在時刻, this.nパッド0Atoチャンネル0A[ i ], this.nInputAdjustTimeMs.Drums );\r
                                }\r
                        }\r
+                       if ( CDTXMania.ConfigIni.bIsSwappedGuitarBass )         // #24063 2011.1.24 yyagi Gt/Bsを入れ替えていたなら、演奏結果も入れ替える\r
+                       {\r
+                               CScoreIni.C演奏記録 t;\r
+                               t = Guitar;\r
+                               Guitar = Bass;\r
+                               Bass = t;\r
+                       }\r
                }\r
 \r
 \r
@@ -295,9 +302,10 @@ namespace DTXMania
                        this.nInputAdjustTimeMs.Drums = CDTXMania.ConfigIni.nInputAdjustTimeMs.Drums;           // #23580 2011.1.3 yyagi\r
                        this.nInputAdjustTimeMs.Guitar = CDTXMania.ConfigIni.nInputAdjustTimeMs.Guitar;         //        2011.1.7 ikanick 修正\r
                        this.nInputAdjustTimeMs.Bass = CDTXMania.ConfigIni.nInputAdjustTimeMs.Bass;                     //\r
+                       this.bIsAutoPlay = CDTXMania.ConfigIni.bAutoPlay;                                                                       // #24239 2011.1.23 yyagi\r
 \r
             Cスコア cスコア = CDTXMania.stage選曲.r確定されたスコア;            // #24074 2011.01.23 add ikanick\r
-            this.actGraph.dbグラフ値目標_渡 = cスコア.譜面情報.最大スキル[0];   //\r
+            this.actGraph.dbグラフ値目標_渡 = cスコア.譜面情報.最大スキル[0];\r
                }\r
                public override void On非活性化()\r
                {\r
@@ -644,6 +652,8 @@ namespace DTXMania
                private CTexture txレーンフレームGB;\r
                private CTexture tx背景;\r
                private STDGBVALUE<int> nInputAdjustTimeMs;                     // #23580 2011.1.3 yyagi\r
+               private CConfigIni.STAUTOPLAY bIsAutoPlay;                      // #24239 2011.1.23 yyagi\r
+\r
                private bool bフィルイン区間の最後のChipである( CDTX.CChip pChip )\r
                {\r
                        if( pChip == null )\r
@@ -811,8 +821,10 @@ namespace DTXMania
                        }\r
                        return null;\r
                }\r
-               private CDTX.CChip r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( long nTime, int nChannelFlag )\r
+               private CDTX.CChip r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( long nTime, int nChannelFlag, int nInputAdjustTime )\r
                {\r
+                       nTime += nInputAdjustTime;                                              // #24239 2011.1.23 yyagi InputAdjust\r
+       \r
                        int num5;\r
                        if( this.n現在のトップChip == -1 )\r
                        {\r
@@ -836,7 +848,7 @@ namespace DTXMania
                                        }\r
                                        num5 = num2;\r
                                }\r
-                               else if( ( ( nChannelFlag == 0x2f ) && ( chip.e楽器パート == E楽器パート.GUITAR ) ) || ( ( ( nChannelFlag >= 0x20 ) && ( nChannelFlag <= 40 ) ) && ( chip.nチャンネル番号 == nChannelFlag ) ) )\r
+                               else if( ( ( nChannelFlag == 0x2f ) && ( chip.e楽器パート == E楽器パート.GUITAR ) ) || ( ( ( nChannelFlag >= 0x20 ) && ( nChannelFlag <= 0x28 ) ) && ( chip.nチャンネル番号 == nChannelFlag ) ) )\r
                                {\r
                                        if( chip.n発声時刻ms > nTime )\r
                                        {\r
@@ -844,7 +856,7 @@ namespace DTXMania
                                        }\r
                                        num5 = num2;\r
                                }\r
-                               else if( ( ( nChannelFlag == 0xaf ) && ( chip.e楽器パート == E楽器パート.BASS ) ) || ( ( ( nChannelFlag >= 160 ) && ( nChannelFlag <= 0xa8 ) ) && ( chip.nチャンネル番号 == nChannelFlag ) ) )\r
+                               else if( ( ( nChannelFlag == 0xaf ) && ( chip.e楽器パート == E楽器パート.BASS ) ) || ( ( ( nChannelFlag >= 0xa0 ) && ( nChannelFlag <= 0xa8 ) ) && ( chip.nチャンネル番号 == nChannelFlag ) ) )\r
                                {\r
                                        if( chip.n発声時刻ms > nTime )\r
                                        {\r
@@ -867,12 +879,12 @@ namespace DTXMania
                                }\r
                                else if( ( ( nChannelFlag == 0x2f ) && ( chip2.e楽器パート == E楽器パート.GUITAR ) ) || ( ( ( nChannelFlag >= 0x20 ) && ( nChannelFlag <= 40 ) ) && ( chip2.nチャンネル番号 == nChannelFlag ) ) )\r
                                {\r
-                                       if( ( chip2.nチャンネル番号 >= 0x20 ) && ( chip2.nチャンネル番号 <= 40 ) )\r
+                                       if( ( chip2.nチャンネル番号 >= 0x20 ) && ( chip2.nチャンネル番号 <= 0x28 ) )\r
                                        {\r
                                                break;\r
                                        }\r
                                }\r
-                               else if( ( ( ( nChannelFlag == 0xaf ) && ( chip2.e楽器パート == E楽器パート.BASS ) ) || ( ( ( nChannelFlag >= 160 ) && ( nChannelFlag <= 0xa8 ) ) && ( chip2.nチャンネル番号 == nChannelFlag ) ) ) && ( ( chip2.nチャンネル番号 >= 160 ) && ( chip2.nチャンネル番号 <= 0xa8 ) ) )\r
+                               else if( ( ( ( nChannelFlag == 0xaf ) && ( chip2.e楽器パート == E楽器パート.BASS ) ) || ( ( ( nChannelFlag >= 0xa0 ) && ( nChannelFlag <= 0xa8 ) ) && ( chip2.nチャンネル番号 == nChannelFlag ) ) ) && ( ( chip2.nチャンネル番号 >= 0xa0 ) && ( chip2.nチャンネル番号 <= 0xa8 ) ) )\r
                                {\r
                                        break;\r
                                }\r
@@ -900,12 +912,14 @@ namespace DTXMania
                        }\r
                        return chip3;\r
                }\r
-               private CDTX.CChip r指定時刻に一番近い未ヒットChip( long nTime, int nChannelFlag )\r
+               private CDTX.CChip r指定時刻に一番近い未ヒットChip( long nTime, int nChannelFlag, int nInputAdjustTime )\r
                {\r
-                       return this.r指定時刻に一番近い未ヒットChip( nTime, nChannelFlag, 0 );\r
+                       return this.r指定時刻に一番近い未ヒットChip( nTime, nChannelFlag, nInputAdjustTime, 0 );\r
                }\r
-               private CDTX.CChip r指定時刻に一番近い未ヒットChip( long nTime, int nChannelFlag, int n検索範囲時間ms )\r
+               private CDTX.CChip r指定時刻に一番近い未ヒットChip( long nTime, int nChannelFlag, int nInputAdjustTime, int n検索範囲時間ms )\r
                {\r
+                       nTime += nInputAdjustTime;\r
+\r
                        int num5;\r
                        int num6;\r
                        if( this.n現在のトップChip == -1 )\r
@@ -999,12 +1013,14 @@ namespace DTXMania
                }\r
                private CDTX.CChip r次にくるギターChipを更新して返す()\r
                {\r
-                       this.r次にくるギターChip = this.r指定時刻に一番近い未ヒットChip( CDTXMania.Timer.n現在時刻, 0x2f, 500 );\r
+                       int nInputAdjustTime = this.bIsAutoPlay.Guitar ? 0 : this.nInputAdjustTimeMs.Guitar;\r
+                       this.r次にくるギターChip = this.r指定時刻に一番近い未ヒットChip( CDTXMania.Timer.n現在時刻, 0x2f, nInputAdjustTime, 500 );\r
                        return this.r次にくるギターChip;\r
                }\r
                private CDTX.CChip r次にくるベースChipを更新して返す()\r
                {\r
-                       this.r次にくるベースChip = this.r指定時刻に一番近い未ヒットChip( CDTXMania.Timer.n現在時刻, 0xaf, 500 );\r
+                       int nInputAdjustTime = this.bIsAutoPlay.Bass? 0 : this.nInputAdjustTimeMs.Bass;\r
+                       this.r次にくるベースChip = this.r指定時刻に一番近い未ヒットChip( CDTXMania.Timer.n現在時刻, 0xaf, nInputAdjustTime, 500 );\r
                        return this.r次にくるベースChip;\r
                }\r
                private void tサウンド再生( CDTX.CChip rChip, long n再生開始システム時刻ms, E楽器パート part )\r
@@ -1124,7 +1140,7 @@ namespace DTXMania
                private E判定 tチップのヒット処理( long nHitTime, CDTX.CChip pChip )\r
                {\r
                        pChip.bHit = true;\r
-                       bool bIsAutoPlay = false;\r
+                       bool bPChipIsAutoPlay = false;\r
                        if( (\r
                                        ( ( pChip.e楽器パート == E楽器パート.DRUMS ) && CDTXMania.ConfigIni.bAutoPlay[ this.nチャンネル0Atoレーン07[ pChip.nチャンネル番号 - 0x11 ] ] ) ||\r
                                        ( ( pChip.e楽器パート == E楽器パート.GUITAR ) && CDTXMania.ConfigIni.bAutoPlay.Guitar )\r
@@ -1132,7 +1148,7 @@ namespace DTXMania
                                        ( ( pChip.e楽器パート == E楽器パート.BASS ) && CDTXMania.ConfigIni.bAutoPlay.Bass )\r
                          )\r
                        {\r
-                               bIsAutoPlay = true;\r
+                               bPChipIsAutoPlay = true;\r
                        }\r
                        else\r
                        {\r
@@ -1142,21 +1158,30 @@ namespace DTXMania
                        switch (pChip.e楽器パート)\r
                        {\r
                                case E楽器パート.DRUMS:\r
-                                       eJudgeResult = this.e指定時刻からChipのJUDGEを返す(nHitTime, pChip, bIsAutoPlay? 0 : this.nInputAdjustTimeMs.Drums);\r
-                                       this.actJudgeString.Start(this.nチャンネル0Atoレーン07[pChip.nチャンネル番号 - 0x11], bIsAutoPlay ? E判定.Auto : eJudgeResult);\r
+                                       {\r
+                                               int nInputAdjustTime = bIsAutoPlay[ this.nチャンネル0Atoレーン07[ pChip.nチャンネル番号 - 0x11 ] ] ? 0 : this.nInputAdjustTimeMs.Drums;\r
+                                               eJudgeResult = this.e指定時刻からChipのJUDGEを返す( nHitTime, pChip, nInputAdjustTime );\r
+                                               this.actJudgeString.Start( this.nチャンネル0Atoレーン07[ pChip.nチャンネル番号 - 0x11 ], bIsAutoPlay[ this.nチャンネル0Atoレーン07[ pChip.nチャンネル番号 - 0x11 ] ] ? E判定.Auto : eJudgeResult );\r
+                                       }\r
                                        break;\r
 \r
                                case E楽器パート.GUITAR:\r
-                                       eJudgeResult = this.e指定時刻からChipのJUDGEを返す(nHitTime, pChip, bIsAutoPlay? 0 : this.nInputAdjustTimeMs.Guitar);\r
-                                       this.actJudgeString.Start(10, bIsAutoPlay ? E判定.Auto : eJudgeResult);\r
+                                       {\r
+                                               int nInputAdjustTime = bIsAutoPlay.Guitar ? 0 : this.nInputAdjustTimeMs.Guitar;\r
+                                               eJudgeResult = this.e指定時刻からChipのJUDGEを返す( nHitTime, pChip, nInputAdjustTime );\r
+                                               this.actJudgeString.Start( 10, bIsAutoPlay.Guitar ? E判定.Auto : eJudgeResult );\r
+                                       }\r
                                        break;\r
 \r
                                case E楽器パート.BASS:\r
-                                       eJudgeResult = this.e指定時刻からChipのJUDGEを返す(nHitTime, pChip, bIsAutoPlay? 0 : this.nInputAdjustTimeMs.Bass);\r
-                                       this.actJudgeString.Start(11, bIsAutoPlay ? E判定.Auto : eJudgeResult);\r
+                                       {\r
+                                               int nInputAdjustTime = bIsAutoPlay.Bass ? 0 : this.nInputAdjustTimeMs.Bass;\r
+                                               eJudgeResult = this.e指定時刻からChipのJUDGEを返す( nHitTime, pChip, nInputAdjustTime );\r
+                                               this.actJudgeString.Start( 11, bIsAutoPlay.Bass ? E判定.Auto : eJudgeResult );\r
+                                       }\r
                                        break;\r
                        }\r
-                       if( !bIsAutoPlay && ( pChip.e楽器パート != E楽器パート.UNKNOWN ) )\r
+                       if( !bPChipIsAutoPlay && ( pChip.e楽器パート != E楽器パート.UNKNOWN ) )\r
                        {\r
                                this.t判定にあわせてゲージを増減する( pChip.e楽器パート, eJudgeResult );\r
                        }\r
@@ -1168,21 +1193,21 @@ namespace DTXMania
                                                case E判定.Miss:\r
                                                case E判定.Bad:\r
                                                        this.nヒット数・Auto含む.Drums.Miss++;\r
-                                                       if ( !bIsAutoPlay )\r
+                                                       if ( !bPChipIsAutoPlay )\r
                                                        {\r
                                                                this.nヒット数・Auto含まない.Drums.Miss++;\r
                                                        }\r
                                                        break;\r
                                                default:\r
                                                        this.nヒット数・Auto含む.Drums[ (int) eJudgeResult ]++;\r
-                                                       if ( !bIsAutoPlay )\r
+                                                       if ( !bPChipIsAutoPlay )\r
                                                        {\r
                                                                this.nヒット数・Auto含まない.Drums[ (int) eJudgeResult ]++;\r
                                                        }\r
                                                        break;\r
                                        }\r
 \r
-                                       if (CDTXMania.ConfigIni.bドラムが全部オートプレイである || !bIsAutoPlay)\r
+                                       if (CDTXMania.ConfigIni.bドラムが全部オートプレイである || !bPChipIsAutoPlay)\r
                                        {\r
                                                switch (eJudgeResult)\r
                                                {\r
@@ -1205,14 +1230,14 @@ namespace DTXMania
                                                case E判定.Miss:\r
                                                case E判定.Bad:\r
                                                        this.nヒット数・Auto含む.Guitar.Miss++;\r
-                                                       if ( !bIsAutoPlay )\r
+                                                       if ( !bIsAutoPlay.Guitar )\r
                                                        {\r
                                                                this.nヒット数・Auto含まない.Guitar.Miss++;\r
                                                        }\r
                                break;\r
                                                default:    // #24068 2011.1.10 ikanick changed\r
                                                        this.nヒット数・Auto含む.Guitar[ (int) eJudgeResult ]++;\r
-                                                       if ( !bIsAutoPlay )\r
+                                                       if ( !bIsAutoPlay.Guitar )\r
                                                        {\r
                                                                this.nヒット数・Auto含まない.Guitar[ (int) eJudgeResult ]++;\r
                                                        }\r
@@ -1238,14 +1263,14 @@ namespace DTXMania
                                                case E判定.Miss:\r
                                                case E判定.Bad:\r
                                                        this.nヒット数・Auto含む.Bass.Miss++;\r
-                                                       if ( !bIsAutoPlay )\r
+                                                       if ( !bIsAutoPlay.Bass )\r
                                                        {\r
                                                                this.nヒット数・Auto含まない.Bass.Miss++;\r
                                                        }\r
                                                        break;\r
                                                default:    // #24068 2011.1.10 ikanick changed\r
                                                        this.nヒット数・Auto含む.Bass[ (int) eJudgeResult ]++;\r
-                                                       if ( !bIsAutoPlay )\r
+                                                       if ( !bIsAutoPlay.Bass )\r
                                                        {\r
                                                                this.nヒット数・Auto含まない.Bass[ (int) eJudgeResult ]++;\r
                                                        }\r
@@ -1269,7 +1294,7 @@ namespace DTXMania
                                default:\r
                                        break;\r
                        }\r
-                       if( ( !bIsAutoPlay && ( pChip.e楽器パート != E楽器パート.UNKNOWN ) ) && ( ( eJudgeResult != E判定.Miss ) && ( eJudgeResult != E判定.Bad ) ) )\r
+                       if( ( !bPChipIsAutoPlay && ( pChip.e楽器パート != E楽器パート.UNKNOWN ) ) && ( ( eJudgeResult != E判定.Miss ) && ( eJudgeResult != E判定.Bad ) ) )\r
                        {\r
                                int nCombos = 0;\r
                                switch (pChip.e楽器パート) {\r
@@ -1296,7 +1321,7 @@ namespace DTXMania
                                this.actScore.Set( pChip.e楽器パート, nScore );\r
                        }\r
             // #24074 2011.01.23 add ikanick\r
-            this.actGraph.dbグラフ値現在_渡 = CScoreIni.t演奏型スキルを計算して返す(CDTXMania.DTX.n可視チップ数.Drums, this.nヒット数・Auto含まない.Drums.Perfect, this.nヒット数・Auto含まない.Drums.Great, this.nヒット数・Auto含まない.Drums.Good, this.nヒット数・Auto含まない.Drums.Poor, this.nヒット数・Auto含まない.Drums.Miss);\r
+                       this.actGraph.dbグラフ値現在_渡 = CScoreIni.t演奏型スキルを計算して返す( CDTXMania.DTX.n可視チップ数.Drums, this.nヒット数・Auto含まない.Drums.Perfect, this.nヒット数・Auto含まない.Drums.Great, this.nヒット数・Auto含まない.Drums.Good, this.nヒット数・Auto含まない.Drums.Poor, this.nヒット数・Auto含まない.Drums.Miss );\r
 \r
             return eJudgeResult;\r
                }\r
@@ -1335,7 +1360,9 @@ namespace DTXMania
                        {\r
                                return false;\r
                        }\r
-                       E判定 e判定 = this.e指定時刻からChipのJUDGEを返す( nHitTime, pChip, nInputAdjustTimeMs.Drums );\r
+                       bool bPChipIsAutoPlay = bIsAutoPlay[ this.nチャンネル0Atoレーン07[ pChip.nチャンネル番号 - 0x11 ] ];\r
+                       int nInputAdjustTime = bPChipIsAutoPlay ? 0 : this.nInputAdjustTimeMs.Drums;\r
+                       E判定 e判定 = this.e指定時刻からChipのJUDGEを返す( nHitTime, pChip, nInputAdjustTime );\r
                        if( e判定 == E判定.Miss )\r
                        {\r
                                return false;\r
@@ -1396,7 +1423,7 @@ namespace DTXMania
                                        {\r
                                                hH = Eパッド.HH;\r
                                        }\r
-                                       rChip = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nHitTime, this.nパッド0Atoチャンネル0A[ (int) hH ] );\r
+                                       rChip = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nHitTime, this.nパッド0Atoチャンネル0A[ (int) hH ], nInputAdjustTime );\r
                                        if( rChip == null )\r
                                        {\r
                                                rChip = pChip;\r
@@ -1640,8 +1667,9 @@ namespace DTXMania
         // #24074 2011.01.23 add ikanick\r
         private void t進行描画・グラフ()        \r
         {\r
-            if (!CDTXMania.ConfigIni.bストイックモード && !CDTXMania.ConfigIni.bドラムが全部オートプレイである && CDTXMania.ConfigIni.bGraph.Drums)\r
-            {\r
+                       if ( !CDTXMania.ConfigIni.bストイックモード && !CDTXMania.ConfigIni.bドラムが全部オートプレイである && CDTXMania.ConfigIni.bGraph.Drums )\r
+//                     if ( !CDTXMania.ConfigIni.bストイックモード && CDTXMania.ConfigIni.bGraph.Drums )\r
+                       {\r
                 this.actGraph.On進行描画();\r
             }\r
         }\r
@@ -1700,7 +1728,7 @@ namespace DTXMania
                                        continue;\r
                                }\r
 \r
-                               bool bIsAutoPlay = false;\r
+                               bool bPChipIsAutoPlay = false;\r
                                if ((\r
                                                ((pChip.e楽器パート == E楽器パート.DRUMS) && CDTXMania.ConfigIni.bAutoPlay[this.nチャンネル0Atoレーン07[pChip.nチャンネル番号 - 0x11]]) ||\r
                                                ((pChip.e楽器パート == E楽器パート.GUITAR) && CDTXMania.ConfigIni.bAutoPlay.Guitar)\r
@@ -1709,11 +1737,11 @@ namespace DTXMania
                                  )\r
 //                             if ((pChip.e楽器パート == E楽器パート.DRUMS) && CDTXMania.ConfigIni.bAutoPlay[this.nチャンネル0Atoレーン07[pChip.nチャンネル番号 - 0x11]])\r
                                {\r
-                                       bIsAutoPlay = true;\r
+                                       bPChipIsAutoPlay = true;\r
                                }\r
 \r
                                int nInputAdjustTime = 0;\r
-                               if (bIsAutoPlay)\r
+                               if (bPChipIsAutoPlay)\r
                                {\r
                                        //nInputAdjustTime = 0;\r
                                }\r
@@ -2714,9 +2742,18 @@ namespace DTXMania
                }\r
                private void t入力処理・ギター()\r
                {\r
-                       if( CDTXMania.ConfigIni.bGuitar有効 && CDTXMania.DTX.bチップがある.Guitar )\r
+                       if ( CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.Decide ) && CDTXMania.Pad.b押された( E楽器パート.GUITAR, Eパッド.B ) )\r
+                       {\r
+                               CDTXMania.ConfigIni.n譜面スクロール速度.Guitar = Math.Min( CDTXMania.ConfigIni.n譜面スクロール速度.Guitar + 1, 0x7cf );\r
+                       }\r
+                       if ( CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.Decide ) && CDTXMania.Pad.b押された( E楽器パート.GUITAR, Eパッド.R ) )\r
+                       {\r
+                               CDTXMania.ConfigIni.n譜面スクロール速度.Guitar = Math.Max( CDTXMania.ConfigIni.n譜面スクロール速度.Guitar - 1, 0 );\r
+                       }\r
+\r
+                       if ( CDTXMania.ConfigIni.bGuitar有効 && CDTXMania.DTX.bチップがある.Guitar )\r
                        {\r
-                               if( CDTXMania.ConfigIni.bAutoPlay.Guitar )\r
+                               if ( bIsAutoPlay.Guitar )\r
                                {\r
                                        CDTX.CChip chip = this.r次にくるギターChipを更新して返す();\r
                                        if( chip != null )\r
@@ -2740,37 +2777,29 @@ namespace DTXMania
                                }\r
                                else\r
                                {\r
-                                       if( CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.CY ) && CDTXMania.Pad.b押された( E楽器パート.GUITAR, Eパッド.BD ) )\r
-                                       {\r
-                                               CDTXMania.ConfigIni.n譜面スクロール速度.Guitar = Math.Min( CDTXMania.ConfigIni.n譜面スクロール速度.Guitar + 1, 0x7cf );\r
-                                       }\r
-                                       if( CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.CY ) && CDTXMania.Pad.b押された( E楽器パート.GUITAR, Eパッド.HH ) )\r
-                                       {\r
-                                               CDTXMania.ConfigIni.n譜面スクロール速度.Guitar = Math.Max( CDTXMania.ConfigIni.n譜面スクロール速度.Guitar - 1, 0 );\r
-                                       }\r
-                                       int num = CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.HH ) ? 4 : 0;\r
+                                       int flagR = CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.R) ? 4 : 0;\r
                                        this.t入力メソッド記憶( E楽器パート.GUITAR );\r
-                                       int num2 = CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.SD ) ? 2 : 0;\r
+                                       int flagG = CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.G ) ? 2 : 0;\r
                                        this.t入力メソッド記憶( E楽器パート.GUITAR );\r
-                                       int num3 = CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.BD ) ? 1 : 0;\r
+                                       int flagB = CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.B ) ? 1 : 0;\r
                                        this.t入力メソッド記憶( E楽器パート.GUITAR );\r
-                                       int num4 = ( num | num2 ) | num3;\r
-                                       if( num != 0 )\r
+                                       int flagRGB =  flagR | flagG  | flagB;\r
+                                       if( flagR != 0 )\r
                                        {\r
                                                this.actLaneFlushGB.Start( 0 );\r
                                                this.actRGB.Push( 0 );\r
                                        }\r
-                                       if( num2 != 0 )\r
+                                       if( flagG != 0 )\r
                                        {\r
                                                this.actLaneFlushGB.Start( 1 );\r
                                                this.actRGB.Push( 1 );\r
                                        }\r
-                                       if( num3 != 0 )\r
+                                       if( flagB != 0 )\r
                                        {\r
                                                this.actLaneFlushGB.Start( 2 );\r
                                                this.actRGB.Push( 2 );\r
                                        }\r
-                                       List<STInputEvent> events = CDTXMania.Pad.GetEvents( E楽器パート.GUITAR, Eパッド.HT );\r
+                                       List<STInputEvent> events = CDTXMania.Pad.GetEvents( E楽器パート.GUITAR, Eパッド.Pick );\r
                                        if( ( events != null ) && ( events.Count > 0 ) )\r
                                        {\r
                                                this.t入力メソッド記憶( E楽器パート.GUITAR );\r
@@ -2782,32 +2811,32 @@ namespace DTXMania
                                                                continue;\r
                                                        }\r
                                                        long nTime = event2.nTimeStamp - CDTXMania.Timer.n前回リセットした時のシステム時刻;\r
-                                                       CDTX.CChip pChip = this.r指定時刻に一番近い未ヒットChip( nTime, 0x2f );\r
+                                                       CDTX.CChip pChip = this.r指定時刻に一番近い未ヒットChip( nTime, 0x2f, this.nInputAdjustTimeMs.Guitar );\r
                                                        E判定 e判定 = this.e指定時刻からChipのJUDGEを返す( nTime, pChip, this.nInputAdjustTimeMs.Guitar );\r
-                                                       if( ( ( pChip != null ) && ( ( pChip.nチャンネル番号 & 15 ) == num4 ) ) && ( e判定 != E判定.Miss ) )\r
+                                                       if( ( ( pChip != null ) && ( ( pChip.nチャンネル番号 & 15 ) == flagRGB ) ) && ( e判定 != E判定.Miss ) )\r
                                                        {\r
-                                                               if( ( num != 0 ) || ( num4 == 0 ) )\r
+                                                               if( ( flagR != 0 ) || ( flagRGB == 0 ) )\r
                                                                {\r
                                                                        this.actChipFireGB.Start( 0 );\r
                                                                }\r
-                                                               if( ( num2 != 0 ) || ( num4 == 0 ) )\r
+                                                               if( ( flagG != 0 ) || ( flagRGB == 0 ) )\r
                                                                {\r
                                                                        this.actChipFireGB.Start( 1 );\r
                                                                }\r
-                                                               if( ( num3 != 0 ) || ( num4 == 0 ) )\r
+                                                               if( ( flagB != 0 ) || ( flagRGB == 0 ) )\r
                                                                {\r
                                                                        this.actChipFireGB.Start( 2 );\r
                                                                }\r
                                                                this.tチップのヒット処理( nTime, pChip );\r
                                                                this.tサウンド再生( pChip, CDTXMania.Timer.nシステム時刻, E楽器パート.GUITAR, CDTXMania.ConfigIni.n手動再生音量, CDTXMania.ConfigIni.b演奏音を強調する.Guitar, e判定 == E判定.Poor );\r
-                                                               CDTX.CChip item = this.r指定時刻に一番近い未ヒットChip( nTime, 40, 140 );\r
+                                                               CDTX.CChip item = this.r指定時刻に一番近い未ヒットChip( nTime, 40, this.nInputAdjustTimeMs.Guitar, 140 );\r
                                                                if( item != null )\r
                                                                {\r
                                                                        this.queWailing.Guitar.Enqueue( item );\r
                                                                }\r
                                                                continue;\r
                                                        }\r
-                                                       if( ( ( chip4 = this.r現在の空うちギターChip ) != null ) || ( ( chip4 = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, 0x2f ) ) != null ) )\r
+                                                       if( ( ( chip4 = this.r現在の空うちギターChip ) != null ) || ( ( chip4 = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, 0x2f, this.nInputAdjustTimeMs.Guitar ) ) != null ) )\r
                                                        {\r
                                                                this.tサウンド再生( chip4, CDTXMania.Timer.nシステム時刻, E楽器パート.GUITAR, CDTXMania.ConfigIni.n手動再生音量, CDTXMania.ConfigIni.b演奏音を強調する.Guitar, true );\r
                                                        }\r
@@ -2817,7 +2846,7 @@ namespace DTXMania
                                                        }\r
                                                }\r
                                        }\r
-                                       List<STInputEvent> list2 = CDTXMania.Pad.GetEvents( E楽器パート.GUITAR, Eパッド.LT );\r
+                                       List<STInputEvent> list2 = CDTXMania.Pad.GetEvents( E楽器パート.GUITAR, Eパッド.Wail );\r
                                        if( ( list2 != null ) && ( list2.Count > 0 ) )\r
                                        {\r
                                                foreach( STInputEvent event3 in list2 )\r
@@ -2834,9 +2863,9 @@ namespace DTXMania
                                                                {\r
                                                                        chip5.bHit = true;\r
                                                                        this.actWailingBonus.Start( E楽器パート.GUITAR, this.r現在の歓声Chip.Guitar );\r
-                                                                       if( !CDTXMania.ConfigIni.bAutoPlay.Guitar )\r
+                                                                       if( !bIsAutoPlay.Guitar )\r
                                                                        {\r
-                                                                               this.actScore.Set( E楽器パート.GUITAR, this.actScore.Get( E楽器パート.GUITAR ) + ( this.actCOMBO.n現在のコンボ数.Guitar * 0xbb8L ) );\r
+                                                                               this.actScore.Set( E楽器パート.GUITAR, this.actScore.Get( E楽器パート.GUITAR ) + ( this.actCOMBO.n現在のコンボ数.Guitar * 3000L ) );\r
                                                                        }\r
                                                                }\r
                                                        }\r
@@ -2908,6 +2937,8 @@ namespace DTXMania
                                                        continue;\r
 \r
                                                long nTime = event2.nTimeStamp - CDTXMania.Timer.n前回リセットした時のシステム時刻;\r
+                                               int nInputAdjustTime = bIsAutoPlay[ this.nチャンネル0Atoレーン07[ (int)nPad ] ] ? 0 : nInputAdjustTimeMs.Drums;\r
+\r
                                                bool flag = false;\r
 \r
 \r
@@ -2918,214 +2949,216 @@ namespace DTXMania
                                                        case Eパッド.HH:\r
                                                                #region [ *** ]\r
                                                                //-----------------------------\r
-                                                               if( event2.nVelocity <= CDTXMania.ConfigIni.nハイハット切り捨て下限Velocity )\r
-                                                                       continue;       // 電子ドラムによる意図的なクロストークを無効にする\r
-\r
-                                                               CDTX.CChip chipHC = this.r指定時刻に一番近い未ヒットChip( nTime, 0x11 );   // HiHat Close\r
-                                                               CDTX.CChip chipHO = this.r指定時刻に一番近い未ヒットChip( nTime, 0x18 );   // HiHat Open\r
-                                                               CDTX.CChip chipLC = this.r指定時刻に一番近い未ヒットChip( nTime, 0x1a );   // LC\r
-                                                               E判定 e判定HC = (chipHC != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipHC, this.nInputAdjustTimeMs.Drums) : E判定.Miss;\r
-                                                               E判定 e判定HO = (chipHO != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipHO, this.nInputAdjustTimeMs.Drums) : E判定.Miss;\r
-                                                               E判定 e判定LC = (chipLC != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipLC, this.nInputAdjustTimeMs.Drums) : E判定.Miss;\r
-                                                               switch( eHHGroup )\r
                                                                {\r
-                                                                       case EHHGroup.ハイハットのみ打ち分ける:\r
-                                                                               #region [ *** ]\r
-                                                                               //-----------------------------\r
-                                                                               if( ( e判定HC != E判定.Miss ) && ( e判定LC != E判定.Miss ) )\r
-                                                                               {\r
-                                                                                       if( chipHC.n発声位置 < chipLC.n発声位置 )\r
+                                                                       if ( event2.nVelocity <= CDTXMania.ConfigIni.nハイハット切り捨て下限Velocity )\r
+                                                                               continue;       // 電子ドラムによる意図的なクロストークを無効にする\r
+\r
+                                                                       CDTX.CChip chipHC = this.r指定時刻に一番近い未ヒットChip( nTime, 0x11, nInputAdjustTime ); // HiHat Close\r
+                                                                       CDTX.CChip chipHO = this.r指定時刻に一番近い未ヒットChip( nTime, 0x18, nInputAdjustTime ); // HiHat Open\r
+                                                                       CDTX.CChip chipLC = this.r指定時刻に一番近い未ヒットChip( nTime, 0x1a, nInputAdjustTime ); // LC\r
+                                                                       E判定 e判定HC = ( chipHC != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipHC, nInputAdjustTime ) : E判定.Miss;\r
+                                                                       E判定 e判定HO = ( chipHO != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipHO, nInputAdjustTime ) : E判定.Miss;\r
+                                                                       E判定 e判定LC = ( chipLC != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipLC, nInputAdjustTime ) : E判定.Miss;\r
+                                                                       switch ( eHHGroup )\r
+                                                                       {\r
+                                                                               case EHHGroup.ハイハットのみ打ち分ける:\r
+                                                                                       #region [ *** ]\r
+                                                                                       //-----------------------------\r
+                                                                                       if ( ( e判定HC != E判定.Miss ) && ( e判定LC != E判定.Miss ) )\r
                                                                                        {\r
-                                                                                               this.tドラムヒット処理( nTime, Eパッド.HH, chipHC, event2.nVelocity );\r
+                                                                                               if ( chipHC.n発声位置 < chipLC.n発声位置 )\r
+                                                                                               {\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.HH, chipHC, event2.nVelocity );\r
+                                                                                               }\r
+                                                                                               else if ( chipHC.n発声位置 > chipLC.n発声位置 )\r
+                                                                                               {\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.HH, chipLC, event2.nVelocity );\r
+                                                                                               }\r
+                                                                                               else\r
+                                                                                               {\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.HH, chipHC, event2.nVelocity );\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.HH, chipLC, event2.nVelocity );\r
+                                                                                               }\r
+                                                                                               flag = true;\r
                                                                                        }\r
-                                                                                       else if( chipHC.n発声位置 > chipLC.n発声位置 )\r
+                                                                                       else if ( e判定HC != E判定.Miss )\r
                                                                                        {\r
-                                                                                               this.tドラムヒット処理( nTime, Eパッド.HH, chipLC, event2.nVelocity );\r
+                                                                                               this.tドラムヒット処理( nTime, Eパッド.HH, chipHC, event2.nVelocity );\r
+                                                                                               flag = true;\r
                                                                                        }\r
-                                                                                       else\r
+                                                                                       else if ( e判定LC != E判定.Miss )\r
                                                                                        {\r
-                                                                                               this.tドラムヒット処理( nTime, Eパッド.HH, chipHC, event2.nVelocity );\r
                                                                                                this.tドラムヒット処理( nTime, Eパッド.HH, chipLC, event2.nVelocity );\r
+                                                                                               flag = true;\r
                                                                                        }\r
-                                                                                       flag = true;\r
-                                                                               }\r
-                                                                               else if( e判定HC != E判定.Miss )\r
-                                                                               {\r
-                                                                                       this.tドラムヒット処理( nTime, Eパッド.HH, chipHC, event2.nVelocity );\r
-                                                                                       flag = true;\r
-                                                                               }\r
-                                                                               else if( e判定LC != E判定.Miss )\r
-                                                                               {\r
-                                                                                       this.tドラムヒット処理( nTime, Eパッド.HH, chipLC, event2.nVelocity );\r
-                                                                                       flag = true;\r
-                                                                               }\r
-                                                                               if( !flag )\r
-                                                                                       break;\r
-                                                                               continue;\r
-                                                                       //-----------------------------\r
-                                                                               #endregion\r
-\r
-                                                                       case EHHGroup.左シンバルのみ打ち分ける:\r
-                                                                               #region [ *** ]\r
+                                                                                       if ( !flag )\r
+                                                                                               break;\r
+                                                                                       continue;\r
                                                                                //-----------------------------\r
-                                                                               if( ( e判定HC != E判定.Miss ) && ( e判定HO != E判定.Miss ) )\r
-                                                                               {\r
-                                                                                       if( chipHC.n発声位置 < chipHO.n発声位置 )\r
+                                                                                       #endregion\r
+\r
+                                                                               case EHHGroup.左シンバルのみ打ち分ける:\r
+                                                                                       #region [ *** ]\r
+                                                                                       //-----------------------------\r
+                                                                                       if ( ( e判定HC != E判定.Miss ) && ( e判定HO != E判定.Miss ) )\r
                                                                                        {\r
-                                                                                               this.tドラムヒット処理( nTime, Eパッド.HH, chipHC, event2.nVelocity );\r
+                                                                                               if ( chipHC.n発声位置 < chipHO.n発声位置 )\r
+                                                                                               {\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.HH, chipHC, event2.nVelocity );\r
+                                                                                               }\r
+                                                                                               else if ( chipHC.n発声位置 > chipHO.n発声位置 )\r
+                                                                                               {\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.HH, chipHO, event2.nVelocity );\r
+                                                                                               }\r
+                                                                                               else\r
+                                                                                               {\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.HH, chipHC, event2.nVelocity );\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.HH, chipHO, event2.nVelocity );\r
+                                                                                               }\r
+                                                                                               flag = true;\r
                                                                                        }\r
-                                                                                       else if( chipHC.n発声位置 > chipHO.n発声位置 )\r
+                                                                                       else if ( e判定HC != E判定.Miss )\r
                                                                                        {\r
-                                                                                               this.tドラムヒット処理( nTime, Eパッド.HH, chipHO, event2.nVelocity );\r
+                                                                                               this.tドラムヒット処理( nTime, Eパッド.HH, chipHC, event2.nVelocity );\r
+                                                                                               flag = true;\r
                                                                                        }\r
-                                                                                       else\r
+                                                                                       else if ( e判定HO != E判定.Miss )\r
                                                                                        {\r
-                                                                                               this.tドラムヒット処理( nTime, Eパッド.HH, chipHC, event2.nVelocity );\r
                                                                                                this.tドラムヒット処理( nTime, Eパッド.HH, chipHO, event2.nVelocity );\r
+                                                                                               flag = true;\r
                                                                                        }\r
-                                                                                       flag = true;\r
-                                                                               }\r
-                                                                               else if( e判定HC != E判定.Miss )\r
-                                                                               {\r
-                                                                                       this.tドラムヒット処理( nTime, Eパッド.HH, chipHC, event2.nVelocity );\r
-                                                                                       flag = true;\r
-                                                                               }\r
-                                                                               else if( e判定HO != E判定.Miss )\r
-                                                                               {\r
-                                                                                       this.tドラムヒット処理( nTime, Eパッド.HH, chipHO, event2.nVelocity );\r
-                                                                                       flag = true;\r
-                                                                               }\r
-                                                                               if( !flag )\r
-                                                                                       break;\r
-                                                                               continue;\r
-                                                                       //-----------------------------\r
-                                                                               #endregion\r
-\r
-                                                                       case EHHGroup.全部共通:\r
-                                                                               #region [ *** ]\r
+                                                                                       if ( !flag )\r
+                                                                                               break;\r
+                                                                                       continue;\r
                                                                                //-----------------------------\r
-                                                                               if( ( ( e判定HC != E判定.Miss ) && ( e判定HO != E判定.Miss ) ) && ( e判定LC != E判定.Miss ) )\r
-                                                                               {\r
-                                                                                       CDTX.CChip chip4;\r
-                                                                                       CDTX.CChip[] chipArray = new CDTX.CChip[] { chipHC, chipHO, chipLC };\r
-                                                                                       if( chipArray[ 1 ].n発声位置 > chipArray[ 2 ].n発声位置 )\r
-                                                                                       {\r
-                                                                                               chip4 = chipArray[ 1 ];\r
-                                                                                               chipArray[ 1 ] = chipArray[ 2 ];\r
-                                                                                               chipArray[ 2 ] = chip4;\r
-                                                                                       }\r
-                                                                                       if( chipArray[ 0 ].n発声位置 > chipArray[ 1 ].n発声位置 )\r
+                                                                                       #endregion\r
+\r
+                                                                               case EHHGroup.全部共通:\r
+                                                                                       #region [ *** ]\r
+                                                                                       //-----------------------------\r
+                                                                                       if ( ( ( e判定HC != E判定.Miss ) && ( e判定HO != E判定.Miss ) ) && ( e判定LC != E判定.Miss ) )\r
                                                                                        {\r
-                                                                                               chip4 = chipArray[ 0 ];\r
-                                                                                               chipArray[ 0 ] = chipArray[ 1 ];\r
-                                                                                               chipArray[ 1 ] = chip4;\r
+                                                                                               CDTX.CChip chip4;\r
+                                                                                               CDTX.CChip[] chipArray = new CDTX.CChip[] { chipHC, chipHO, chipLC };\r
+                                                                                               if ( chipArray[ 1 ].n発声位置 > chipArray[ 2 ].n発声位置 )\r
+                                                                                               {\r
+                                                                                                       chip4 = chipArray[ 1 ];\r
+                                                                                                       chipArray[ 1 ] = chipArray[ 2 ];\r
+                                                                                                       chipArray[ 2 ] = chip4;\r
+                                                                                               }\r
+                                                                                               if ( chipArray[ 0 ].n発声位置 > chipArray[ 1 ].n発声位置 )\r
+                                                                                               {\r
+                                                                                                       chip4 = chipArray[ 0 ];\r
+                                                                                                       chipArray[ 0 ] = chipArray[ 1 ];\r
+                                                                                                       chipArray[ 1 ] = chip4;\r
+                                                                                               }\r
+                                                                                               if ( chipArray[ 1 ].n発声位置 > chipArray[ 2 ].n発声位置 )\r
+                                                                                               {\r
+                                                                                                       chip4 = chipArray[ 1 ];\r
+                                                                                                       chipArray[ 1 ] = chipArray[ 2 ];\r
+                                                                                                       chipArray[ 2 ] = chip4;\r
+                                                                                               }\r
+                                                                                               this.tドラムヒット処理( nTime, Eパッド.HH, chipArray[ 0 ], event2.nVelocity );\r
+                                                                                               if ( chipArray[ 0 ].n発声位置 == chipArray[ 1 ].n発声位置 )\r
+                                                                                               {\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.HH, chipArray[ 1 ], event2.nVelocity );\r
+                                                                                               }\r
+                                                                                               if ( chipArray[ 0 ].n発声位置 == chipArray[ 2 ].n発声位置 )\r
+                                                                                               {\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.HH, chipArray[ 2 ], event2.nVelocity );\r
+                                                                                               }\r
+                                                                                               flag = true;\r
                                                                                        }\r
-                                                                                       if( chipArray[ 1 ].n発声位置 > chipArray[ 2 ].n発声位置 )\r
+                                                                                       else if ( ( e判定HC != E判定.Miss ) && ( e判定HO != E判定.Miss ) )\r
                                                                                        {\r
-                                                                                               chip4 = chipArray[ 1 ];\r
-                                                                                               chipArray[ 1 ] = chipArray[ 2 ];\r
-                                                                                               chipArray[ 2 ] = chip4;\r
+                                                                                               if ( chipHC.n発声位置 < chipHO.n発声位置 )\r
+                                                                                               {\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.HH, chipHC, event2.nVelocity );\r
+                                                                                               }\r
+                                                                                               else if ( chipHC.n発声位置 > chipHO.n発声位置 )\r
+                                                                                               {\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.HH, chipHO, event2.nVelocity );\r
+                                                                                               }\r
+                                                                                               else\r
+                                                                                               {\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.HH, chipHC, event2.nVelocity );\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.HH, chipHO, event2.nVelocity );\r
+                                                                                               }\r
+                                                                                               flag = true;\r
                                                                                        }\r
-                                                                                       this.tドラムヒット処理( nTime, Eパッド.HH, chipArray[ 0 ], event2.nVelocity );\r
-                                                                                       if( chipArray[ 0 ].n発声位置 == chipArray[ 1 ].n発声位置 )\r
+                                                                                       else if ( ( e判定HC != E判定.Miss ) && ( e判定LC != E判定.Miss ) )\r
                                                                                        {\r
-                                                                                               this.tドラムヒット処理( nTime, Eパッド.HH, chipArray[ 1 ], event2.nVelocity );\r
+                                                                                               if ( chipHC.n発声位置 < chipLC.n発声位置 )\r
+                                                                                               {\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.HH, chipHC, event2.nVelocity );\r
+                                                                                               }\r
+                                                                                               else if ( chipHC.n発声位置 > chipLC.n発声位置 )\r
+                                                                                               {\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.HH, chipLC, event2.nVelocity );\r
+                                                                                               }\r
+                                                                                               else\r
+                                                                                               {\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.HH, chipHC, event2.nVelocity );\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.HH, chipLC, event2.nVelocity );\r
+                                                                                               }\r
+                                                                                               flag = true;\r
                                                                                        }\r
-                                                                                       if( chipArray[ 0 ].n発声位置 == chipArray[ 2 ].n発声位置 )\r
+                                                                                       else if ( ( e判定HO != E判定.Miss ) && ( e判定LC != E判定.Miss ) )\r
                                                                                        {\r
-                                                                                               this.tドラムヒット処理( nTime, Eパッド.HH, chipArray[ 2 ], event2.nVelocity );\r
+                                                                                               if ( chipHO.n発声位置 < chipLC.n発声位置 )\r
+                                                                                               {\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.HH, chipHO, event2.nVelocity );\r
+                                                                                               }\r
+                                                                                               else if ( chipHO.n発声位置 > chipLC.n発声位置 )\r
+                                                                                               {\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.HH, chipLC, event2.nVelocity );\r
+                                                                                               }\r
+                                                                                               else\r
+                                                                                               {\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.HH, chipHO, event2.nVelocity );\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.HH, chipLC, event2.nVelocity );\r
+                                                                                               }\r
+                                                                                               flag = true;\r
                                                                                        }\r
-                                                                                       flag = true;\r
-                                                                               }\r
-                                                                               else if( ( e判定HC != E判定.Miss ) && ( e判定HO != E判定.Miss ) )\r
-                                                                               {\r
-                                                                                       if( chipHC.n発声位置 < chipHO.n発声位置 )\r
+                                                                                       else if ( e判定HC != E判定.Miss )\r
                                                                                        {\r
                                                                                                this.tドラムヒット処理( nTime, Eパッド.HH, chipHC, event2.nVelocity );\r
+                                                                                               flag = true;\r
                                                                                        }\r
-                                                                                       else if( chipHC.n発声位置 > chipHO.n発声位置 )\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理( nTime, Eパッド.HH, chipHO, event2.nVelocity );\r
-                                                                                       }\r
-                                                                                       else\r
+                                                                                       else if ( e判定HO != E判定.Miss )\r
                                                                                        {\r
-                                                                                               this.tドラムヒット処理( nTime, Eパッド.HH, chipHC, event2.nVelocity );\r
                                                                                                this.tドラムヒット処理( nTime, Eパッド.HH, chipHO, event2.nVelocity );\r
+                                                                                               flag = true;\r
                                                                                        }\r
-                                                                                       flag = true;\r
-                                                                               }\r
-                                                                               else if( ( e判定HC != E判定.Miss ) && ( e判定LC != E判定.Miss ) )\r
-                                                                               {\r
-                                                                                       if( chipHC.n発声位置 < chipLC.n発声位置 )\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理( nTime, Eパッド.HH, chipHC, event2.nVelocity );\r
-                                                                                       }\r
-                                                                                       else if( chipHC.n発声位置 > chipLC.n発声位置 )\r
+                                                                                       else if ( e判定LC != E判定.Miss )\r
                                                                                        {\r
                                                                                                this.tドラムヒット処理( nTime, Eパッド.HH, chipLC, event2.nVelocity );\r
+                                                                                               flag = true;\r
                                                                                        }\r
-                                                                                       else\r
+                                                                                       if ( !flag )\r
+                                                                                               break;\r
+                                                                                       continue;\r
+                                                                               //-----------------------------\r
+                                                                                       #endregion\r
+\r
+                                                                               default:\r
+                                                                                       #region [ *** ]\r
+                                                                                       //-----------------------------\r
+                                                                                       if ( e判定HC != E判定.Miss )\r
                                                                                        {\r
                                                                                                this.tドラムヒット処理( nTime, Eパッド.HH, chipHC, event2.nVelocity );\r
-                                                                                               this.tドラムヒット処理( nTime, Eパッド.HH, chipLC, event2.nVelocity );\r
-                                                                                       }\r
-                                                                                       flag = true;\r
-                                                                               }\r
-                                                                               else if( ( e判定HO != E判定.Miss ) && ( e判定LC != E判定.Miss ) )\r
-                                                                               {\r
-                                                                                       if( chipHO.n発声位置 < chipLC.n発声位置 )\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理( nTime, Eパッド.HH, chipHO, event2.nVelocity );\r
-                                                                                       }\r
-                                                                                       else if( chipHO.n発声位置 > chipLC.n発声位置 )\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理( nTime, Eパッド.HH, chipLC, event2.nVelocity );\r
-                                                                                       }\r
-                                                                                       else\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理( nTime, Eパッド.HH, chipHO, event2.nVelocity );\r
-                                                                                               this.tドラムヒット処理( nTime, Eパッド.HH, chipLC, event2.nVelocity );\r
+                                                                                               flag = true;\r
                                                                                        }\r
-                                                                                       flag = true;\r
-                                                                               }\r
-                                                                               else if( e判定HC != E判定.Miss )\r
-                                                                               {\r
-                                                                                       this.tドラムヒット処理( nTime, Eパッド.HH, chipHC, event2.nVelocity );\r
-                                                                                       flag = true;\r
-                                                                               }\r
-                                                                               else if( e判定HO != E判定.Miss )\r
-                                                                               {\r
-                                                                                       this.tドラムヒット処理( nTime, Eパッド.HH, chipHO, event2.nVelocity );\r
-                                                                                       flag = true;\r
-                                                                               }\r
-                                                                               else if( e判定LC != E判定.Miss )\r
-                                                                               {\r
-                                                                                       this.tドラムヒット処理( nTime, Eパッド.HH, chipLC, event2.nVelocity );\r
-                                                                                       flag = true;\r
-                                                                               }\r
-                                                                               if( !flag )\r
-                                                                                       break;\r
-                                                                               continue;\r
-                                                                       //-----------------------------\r
-                                                                               #endregion\r
-\r
-                                                                       default:\r
-                                                                               #region [ *** ]\r
+                                                                                       if ( !flag )\r
+                                                                                               break;\r
+                                                                                       continue;\r
                                                                                //-----------------------------\r
-                                                                               if( e判定HC != E判定.Miss )\r
-                                                                               {\r
-                                                                                       this.tドラムヒット処理( nTime, Eパッド.HH, chipHC, event2.nVelocity );\r
-                                                                                       flag = true;\r
-                                                                               }\r
-                                                                               if( !flag )\r
-                                                                                       break;\r
-                                                                               continue;\r
-                                                                       //-----------------------------\r
-                                                                               #endregion\r
+                                                                                       #endregion\r
+                                                                       }\r
+                                                                       if ( !flag )\r
+                                                                               break;\r
+                                                                       continue;\r
                                                                }\r
-                                                               if( !flag )\r
-                                                                       break;\r
-                                                               continue;\r
                                                        //-----------------------------\r
                                                                #endregion\r
 \r
@@ -3134,7 +3167,7 @@ namespace DTXMania
                                                                //-----------------------------\r
                                                                if (event2.nVelocity <= CDTXMania.ConfigIni.n切り捨て下限Velocity)        // #23857 2010.12.12 yyagi: to support VelocityMin\r
                                                                        continue;       // 電子ドラムによる意図的なクロストークを無効にする\r
-                                                               if( !this.tドラムヒット処理(nTime, Eパッド.SD, this.r指定時刻に一番近い未ヒットChip(nTime, 0x12), event2.nVelocity ) )\r
+                                                               if( !this.tドラムヒット処理(nTime, Eパッド.SD, this.r指定時刻に一番近い未ヒットChip(nTime, 0x12, nInputAdjustTime ), event2.nVelocity ) )\r
                                                                        break;\r
                                                                continue;\r
                                                        //-----------------------------\r
@@ -3145,7 +3178,7 @@ namespace DTXMania
                                                                //-----------------------------\r
                                                                if (event2.nVelocity <= CDTXMania.ConfigIni.n切り捨て下限Velocity)        // #23857 2010.12.12 yyagi: to support VelocityMin\r
                                                                        continue;       // 電子ドラムによる意図的なクロストークを無効にする\r
-                                                               if( !this.tドラムヒット処理(nTime, Eパッド.BD, this.r指定時刻に一番近い未ヒットChip(nTime, 0x13), event2.nVelocity ) )\r
+                                                               if ( !this.tドラムヒット処理( nTime, Eパッド.BD, this.r指定時刻に一番近い未ヒットChip( nTime, 0x13, nInputAdjustTime ), event2.nVelocity ) )\r
                                                                        break;\r
                                                                continue;\r
                                                        //-----------------------------\r
@@ -3156,7 +3189,7 @@ namespace DTXMania
                                                                //-----------------------------\r
                                                                if (event2.nVelocity <= CDTXMania.ConfigIni.n切り捨て下限Velocity)        // #23857 2010.12.12 yyagi: to support VelocityMin\r
                                                                        continue;       // 電子ドラムによる意図的なクロストークを無効にする\r
-                                                               if( this.tドラムヒット処理( nTime, Eパッド.HT, this.r指定時刻に一番近い未ヒットChip( nTime, 20 ), event2.nVelocity ) )\r
+                                                               if ( this.tドラムヒット処理( nTime, Eパッド.HT, this.r指定時刻に一番近い未ヒットChip( nTime, 20, nInputAdjustTime ), event2.nVelocity ) )\r
                                                                        continue;\r
                                                                break;\r
                                                        //-----------------------------\r
@@ -3165,126 +3198,130 @@ namespace DTXMania
                                                        case Eパッド.LT:\r
                                                                #region [ *** ]\r
                                                                //-----------------------------\r
-                                                               if (event2.nVelocity <= CDTXMania.ConfigIni.n切り捨て下限Velocity)        // #23857 2010.12.12 yyagi: to support VelocityMin\r
-                                                                       continue;       // 電子ドラムによる意図的なクロストークを無効にする\r
-                                                               CDTX.CChip chipLT = this.r指定時刻に一番近い未ヒットChip(nTime, 0x15);     // LT\r
-                                                               CDTX.CChip chipFT = this.r指定時刻に一番近い未ヒットChip(nTime, 0x17);     // FT\r
-                                                               E判定 e判定LT = (chipLT != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipLT, this.nInputAdjustTimeMs.Drums) : E判定.Miss;\r
-                                                               E判定 e判定FT = (chipFT != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipFT, this.nInputAdjustTimeMs.Drums) : E判定.Miss;\r
-                                                               switch( eFTGroup )\r
                                                                {\r
-                                                                       case EFTGroup.打ち分ける:\r
-                                                                               #region [ *** ]\r
-                                                                               //-----------------------------\r
-                                                                               if( e判定LT != E判定.Miss )\r
-                                                                               {\r
-                                                                                       this.tドラムヒット処理( nTime, Eパッド.LT, chipLT, event2.nVelocity );\r
-                                                                                       flag = true;\r
-                                                                               }\r
-                                                                               break;\r
-                                                                       //-----------------------------\r
-                                                                               #endregion\r
-\r
-                                                                       case EFTGroup.共通:\r
-                                                                               #region [ *** ]\r
-                                                                               //-----------------------------\r
-                                                                               if( ( e判定LT != E判定.Miss ) && ( e判定FT != E判定.Miss ) )\r
-                                                                               {\r
-                                                                                       if( chipLT.n発声位置 < chipFT.n発声位置 )\r
+                                                                       if ( event2.nVelocity <= CDTXMania.ConfigIni.n切り捨て下限Velocity )      // #23857 2010.12.12 yyagi: to support VelocityMin\r
+                                                                               continue;       // 電子ドラムによる意図的なクロストークを無効にする\r
+                                                                       CDTX.CChip chipLT = this.r指定時刻に一番近い未ヒットChip( nTime, 0x15, nInputAdjustTime ); // LT\r
+                                                                       CDTX.CChip chipFT = this.r指定時刻に一番近い未ヒットChip( nTime, 0x17, nInputAdjustTime ); // FT\r
+                                                                       E判定 e判定LT = ( chipLT != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipLT, nInputAdjustTime ) : E判定.Miss;\r
+                                                                       E判定 e判定FT = ( chipFT != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipFT, nInputAdjustTime ) : E判定.Miss;\r
+                                                                       switch ( eFTGroup )\r
+                                                                       {\r
+                                                                               case EFTGroup.打ち分ける:\r
+                                                                                       #region [ *** ]\r
+                                                                                       //-----------------------------\r
+                                                                                       if ( e判定LT != E判定.Miss )\r
                                                                                        {\r
                                                                                                this.tドラムヒット処理( nTime, Eパッド.LT, chipLT, event2.nVelocity );\r
+                                                                                               flag = true;\r
                                                                                        }\r
-                                                                                       else if( chipLT.n発声位置 > chipFT.n発声位置 )\r
+                                                                                       break;\r
+                                                                               //-----------------------------\r
+                                                                                       #endregion\r
+\r
+                                                                               case EFTGroup.共通:\r
+                                                                                       #region [ *** ]\r
+                                                                                       //-----------------------------\r
+                                                                                       if ( ( e判定LT != E判定.Miss ) && ( e判定FT != E判定.Miss ) )\r
                                                                                        {\r
-                                                                                               this.tドラムヒット処理( nTime, Eパッド.LT, chipFT, event2.nVelocity );\r
+                                                                                               if ( chipLT.n発声位置 < chipFT.n発声位置 )\r
+                                                                                               {\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.LT, chipLT, event2.nVelocity );\r
+                                                                                               }\r
+                                                                                               else if ( chipLT.n発声位置 > chipFT.n発声位置 )\r
+                                                                                               {\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.LT, chipFT, event2.nVelocity );\r
+                                                                                               }\r
+                                                                                               else\r
+                                                                                               {\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.LT, chipLT, event2.nVelocity );\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.LT, chipFT, event2.nVelocity );\r
+                                                                                               }\r
+                                                                                               flag = true;\r
                                                                                        }\r
-                                                                                       else\r
+                                                                                       else if ( e判定LT != E判定.Miss )\r
                                                                                        {\r
                                                                                                this.tドラムヒット処理( nTime, Eパッド.LT, chipLT, event2.nVelocity );\r
+                                                                                               flag = true;\r
+                                                                                       }\r
+                                                                                       else if ( e判定FT != E判定.Miss )\r
+                                                                                       {\r
                                                                                                this.tドラムヒット処理( nTime, Eパッド.LT, chipFT, event2.nVelocity );\r
+                                                                                               flag = true;\r
                                                                                        }\r
-                                                                                       flag = true;\r
-                                                                               }\r
-                                                                               else if( e判定LT != E判定.Miss )\r
-                                                                               {\r
-                                                                                       this.tドラムヒット処理( nTime, Eパッド.LT, chipLT, event2.nVelocity );\r
-                                                                                       flag = true;\r
-                                                                               }\r
-                                                                               else if( e判定FT != E判定.Miss )\r
-                                                                               {\r
-                                                                                       this.tドラムヒット処理( nTime, Eパッド.LT, chipFT, event2.nVelocity );\r
-                                                                                       flag = true;\r
-                                                                               }\r
+                                                                                       break;\r
+                                                                               //-----------------------------\r
+                                                                                       #endregion\r
+                                                                       }\r
+                                                                       if ( !flag )\r
                                                                                break;\r
-                                                                       //-----------------------------\r
-                                                                               #endregion\r
+                                                                       continue;\r
                                                                }\r
-                                                               if( !flag )\r
-                                                                       break;\r
-                                                               continue;\r
                                                        //-----------------------------\r
                                                                #endregion\r
 \r
                                                        case Eパッド.FT:\r
                                                                #region [ *** ]\r
                                                                //-----------------------------\r
-                                                               if (event2.nVelocity <= CDTXMania.ConfigIni.n切り捨て下限Velocity)        // #23857 2010.12.12 yyagi: to support VelocityMin\r
-                                                                       continue;       // 電子ドラムによる意図的なクロストークを無効にする\r
-                                                               CDTX.CChip chipLT_ = this.r指定時刻に一番近い未ヒットChip(nTime, 0x15);    // LT\r
-                                                               CDTX.CChip chipFT_ = this.r指定時刻に一番近い未ヒットChip(nTime, 0x17);    // FT\r
-                                                               E判定 e判定LT_ = (chipLT_ != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipLT_, this.nInputAdjustTimeMs.Drums) : E判定.Miss;\r
-                                                               E判定 e判定FT_ = (chipFT_ != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipFT_, this.nInputAdjustTimeMs.Drums) : E判定.Miss;\r
-                                                               switch( eFTGroup )\r
                                                                {\r
-                                                                       case EFTGroup.打ち分ける:\r
-                                                                               #region [ *** ]\r
-                                                                               //-----------------------------\r
-                                                                               if( e判定FT_ != E判定.Miss )\r
-                                                                               {\r
-                                                                                       this.tドラムヒット処理( nTime, Eパッド.FT, chipFT_, event2.nVelocity );\r
-                                                                                       flag = true;\r
-                                                                               }\r
-                                                                               //-----------------------------\r
-                                                                               #endregion\r
-                                                                               break;\r
+                                                                       if ( event2.nVelocity <= CDTXMania.ConfigIni.n切り捨て下限Velocity )      // #23857 2010.12.12 yyagi: to support VelocityMin\r
+                                                                               continue;       // 電子ドラムによる意図的なクロストークを無効にする\r
+                                                                       CDTX.CChip chipLT = this.r指定時刻に一番近い未ヒットChip( nTime, 0x15, nInputAdjustTime ); // LT\r
+                                                                       CDTX.CChip chipFT = this.r指定時刻に一番近い未ヒットChip( nTime, 0x17, nInputAdjustTime ); // FT\r
+                                                                       E判定 e判定LT = ( chipLT != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipLT, nInputAdjustTime ) : E判定.Miss;\r
+                                                                       E判定 e判定FT = ( chipFT != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipFT, nInputAdjustTime ) : E判定.Miss;\r
+                                                                       switch ( eFTGroup )\r
+                                                                       {\r
+                                                                               case EFTGroup.打ち分ける:\r
+                                                                                       #region [ *** ]\r
+                                                                                       //-----------------------------\r
+                                                                                       if ( e判定FT != E判定.Miss )\r
+                                                                                       {\r
+                                                                                               this.tドラムヒット処理( nTime, Eパッド.FT, chipFT, event2.nVelocity );\r
+                                                                                               flag = true;\r
+                                                                                       }\r
+                                                                                       //-----------------------------\r
+                                                                                       #endregion\r
+                                                                                       break;\r
 \r
-                                                                       case EFTGroup.共通:\r
-                                                                               #region [ *** ]\r
-                                                                               //-----------------------------\r
-                                                                               if( ( e判定LT_ != E判定.Miss ) && ( e判定FT_ != E判定.Miss ) )\r
-                                                                               {\r
-                                                                                       if( chipLT_.n発声位置 < chipFT_.n発声位置 )\r
+                                                                               case EFTGroup.共通:\r
+                                                                                       #region [ *** ]\r
+                                                                                       //-----------------------------\r
+                                                                                       if ( ( e判定LT != E判定.Miss ) && ( e判定FT != E判定.Miss ) )\r
                                                                                        {\r
-                                                                                               this.tドラムヒット処理( nTime, Eパッド.FT, chipLT_, event2.nVelocity );\r
+                                                                                               if ( chipLT.n発声位置 < chipFT.n発声位置 )\r
+                                                                                               {\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.FT, chipLT, event2.nVelocity );\r
+                                                                                               }\r
+                                                                                               else if ( chipLT.n発声位置 > chipFT.n発声位置 )\r
+                                                                                               {\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.FT, chipFT, event2.nVelocity );\r
+                                                                                               }\r
+                                                                                               else\r
+                                                                                               {\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.FT, chipLT, event2.nVelocity );\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.FT, chipFT, event2.nVelocity );\r
+                                                                                               }\r
+                                                                                               flag = true;\r
                                                                                        }\r
-                                                                                       else if( chipLT_.n発声位置 > chipFT_.n発声位置 )\r
+                                                                                       else if ( e判定LT != E判定.Miss )\r
                                                                                        {\r
-                                                                                               this.tドラムヒット処理( nTime, Eパッド.FT, chipFT_, event2.nVelocity );\r
+                                                                                               this.tドラムヒット処理( nTime, Eパッド.FT, chipLT, event2.nVelocity );\r
+                                                                                               flag = true;\r
                                                                                        }\r
-                                                                                       else\r
+                                                                                       else if ( e判定FT != E判定.Miss )\r
                                                                                        {\r
-                                                                                               this.tドラムヒット処理( nTime, Eパッド.FT, chipLT_, event2.nVelocity );\r
-                                                                                               this.tドラムヒット処理( nTime, Eパッド.FT, chipFT_, event2.nVelocity );\r
+                                                                                               this.tドラムヒット処理( nTime, Eパッド.FT, chipFT, event2.nVelocity );\r
+                                                                                               flag = true;\r
                                                                                        }\r
-                                                                                       flag = true;\r
-                                                                               }\r
-                                                                               else if( e判定LT_ != E判定.Miss )\r
-                                                                               {\r
-                                                                                       this.tドラムヒット処理( nTime, Eパッド.FT, chipLT_, event2.nVelocity );\r
-                                                                                       flag = true;\r
-                                                                               }\r
-                                                                               else if( e判定FT_ != E判定.Miss )\r
-                                                                               {\r
-                                                                                       this.tドラムヒット処理( nTime, Eパッド.FT, chipFT_, event2.nVelocity );\r
-                                                                                       flag = true;\r
-                                                                               }\r
-                                                                               //-----------------------------\r
-                                                                               #endregion\r
+                                                                                       //-----------------------------\r
+                                                                                       #endregion\r
+                                                                                       break;\r
+                                                                       }\r
+                                                                       if ( !flag )\r
                                                                                break;\r
+                                                                       continue;\r
                                                                }\r
-                                                               if( !flag )\r
-                                                                       break;\r
-                                                               continue;\r
                                                        //-----------------------------\r
                                                                #endregion\r
 \r
@@ -3294,14 +3331,14 @@ namespace DTXMania
                                                                {\r
                                                                        if (event2.nVelocity <= CDTXMania.ConfigIni.n切り捨て下限Velocity)        // #23857 2010.12.12 yyagi: to support VelocityMin\r
                                                                                continue;       // 電子ドラムによる意図的なクロストークを無効にする\r
-                                                                       CDTX.CChip chipCY = this.r指定時刻に一番近い未ヒットChip(nTime, 0x16);     // CY\r
-                                                                       CDTX.CChip chipRD = this.r指定時刻に一番近い未ヒットChip(nTime, 0x19);     // RD\r
-                                                                       CDTX.CChip chip21 = CDTXMania.ConfigIni.bシンバルフリー ? this.r指定時刻に一番近い未ヒットChip(nTime, 0x1a) : null;\r
-                                                                       E判定 e判定CY = ( chipCY != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipCY, this.nInputAdjustTimeMs.Drums ) : E判定.Miss;\r
-                                                                       E判定 e判定RD = ( chipRD != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipRD, this.nInputAdjustTimeMs.Drums ) : E判定.Miss;\r
-                                                                       E判定 e判定19 = ( chip21 != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chip21, this.nInputAdjustTimeMs.Drums ) : E判定.Miss;\r
-                                                                       CDTX.CChip[] chipArray4 = new CDTX.CChip[] { chipCY, chipRD, chip21 };\r
-                                                                       E判定[] e判定Array2 = new E判定[] { e判定CY, e判定RD, e判定19 };\r
+                                                                       CDTX.CChip chipCY = this.r指定時刻に一番近い未ヒットChip( nTime, 0x16, nInputAdjustTime ); // CY\r
+                                                                       CDTX.CChip chipRD = this.r指定時刻に一番近い未ヒットChip( nTime, 0x19, nInputAdjustTime ); // RD\r
+                                                                       CDTX.CChip chipLC = CDTXMania.ConfigIni.bシンバルフリー ? this.r指定時刻に一番近い未ヒットChip( nTime, 0x1a, nInputAdjustTime ) : null;\r
+                                                                       E判定 e判定CY = ( chipCY != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipCY, nInputAdjustTime ) : E判定.Miss;\r
+                                                                       E判定 e判定RD = ( chipRD != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipRD, nInputAdjustTime ) : E判定.Miss;\r
+                                                                       E判定 e判定LC = ( chipLC != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipLC, nInputAdjustTime ) : E判定.Miss;\r
+                                                                       CDTX.CChip[] chipArray4 = new CDTX.CChip[] { chipCY, chipRD, chipLC };\r
+                                                                       E判定[] e判定Array2 = new E判定[] { e判定CY, e判定RD, e判定LC };\r
                                                                        num8 = 0;\r
                                                                        while( num8 < 2 )\r
                                                                        {\r
@@ -3338,7 +3375,7 @@ namespace DTXMania
                                                                                        num10 = 0;\r
                                                                                        while( num10 < 3 )\r
                                                                                        {\r
-                                                                                               if( ( e判定Array2[ num10 ] != E判定.Miss ) && ( ( chipArray4[ num10 ] == chipCY ) || ( chipArray4[ num10 ] == chip21 ) ) )\r
+                                                                                               if( ( e判定Array2[ num10 ] != E判定.Miss ) && ( ( chipArray4[ num10 ] == chipCY ) || ( chipArray4[ num10 ] == chipLC ) ) )\r
                                                                                                {\r
                                                                                                        this.tドラムヒット処理( nTime, Eパッド.CY, chipArray4[ num10 ], event2.nVelocity );\r
                                                                                                        flag = true;\r
@@ -3398,198 +3435,200 @@ namespace DTXMania
                                                        case Eパッド.HHO:\r
                                                                #region [ *** ]\r
                                                                //-----------------------------\r
-                                                               if( event2.nVelocity <= CDTXMania.ConfigIni.nハイハット切り捨て下限Velocity )\r
-                                                                       continue;       // 電子ドラムによる意図的なクロストークを無効にする\r
-\r
-                                                               CDTX.CChip chipHC_ = this.r指定時刻に一番近い未ヒットChip(nTime, 0x11);    // HC\r
-                                                               CDTX.CChip chipHO_ = this.r指定時刻に一番近い未ヒットChip(nTime, 0x18);    // HO\r
-                                                               CDTX.CChip chipLC_ = this.r指定時刻に一番近い未ヒットChip(nTime, 0x1a);    // LC\r
-                                                               E判定 e判定HC_ = (chipHC_ != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipHC_, this.nInputAdjustTimeMs.Drums) : E判定.Miss;\r
-                                                               E判定 e判定HO_ = (chipHO_ != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipHO_, this.nInputAdjustTimeMs.Drums) : E判定.Miss;\r
-                                                               E判定 e判定LC_ = (chipLC_ != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipLC_, this.nInputAdjustTimeMs.Drums) : E判定.Miss;\r
-                                                               switch( eHHGroup )\r
                                                                {\r
-                                                                       case EHHGroup.全部打ち分ける:\r
-                                                                               if( e判定HO_ != E判定.Miss )\r
-                                                                               {\r
-                                                                                       this.tドラムヒット処理( nTime, Eパッド.HHO, chipHO_, event2.nVelocity );\r
-                                                                                       flag = true;\r
-                                                                               }\r
-                                                                               if( !flag )\r
-                                                                                       break;\r
-                                                                               continue;\r
+                                                                       if ( event2.nVelocity <= CDTXMania.ConfigIni.nハイハット切り捨て下限Velocity )\r
+                                                                               continue;       // 電子ドラムによる意図的なクロストークを無効にする\r
 \r
-                                                                       case EHHGroup.ハイハットのみ打ち分ける:\r
-                                                                               if( ( e判定HO_ != E判定.Miss ) && ( e判定LC_ != E判定.Miss ) )\r
-                                                                               {\r
-                                                                                       if( chipHO_.n発声位置 < chipLC_.n発声位置 )\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理( nTime, Eパッド.HHO, chipHO_, event2.nVelocity );\r
-                                                                                       }\r
-                                                                                       else if( chipHO_.n発声位置 > chipLC_.n発声位置 )\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理( nTime, Eパッド.HHO, chipLC_, event2.nVelocity );\r
-                                                                                       }\r
-                                                                                       else\r
+                                                                       CDTX.CChip chipHC = this.r指定時刻に一番近い未ヒットChip( nTime, 0x11, nInputAdjustTime ); // HC\r
+                                                                       CDTX.CChip chipHO = this.r指定時刻に一番近い未ヒットChip( nTime, 0x18, nInputAdjustTime ); // HO\r
+                                                                       CDTX.CChip chipLC = this.r指定時刻に一番近い未ヒットChip( nTime, 0x1a, nInputAdjustTime ); // LC\r
+                                                                       E判定 e判定HC = ( chipHC != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipHC, nInputAdjustTime ) : E判定.Miss;\r
+                                                                       E判定 e判定HO = ( chipHO != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipHO, nInputAdjustTime ) : E判定.Miss;\r
+                                                                       E判定 e判定LC = ( chipLC != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipLC, nInputAdjustTime ) : E判定.Miss;\r
+                                                                       switch ( eHHGroup )\r
+                                                                       {\r
+                                                                               case EHHGroup.全部打ち分ける:\r
+                                                                                       if ( e判定HO != E判定.Miss )\r
                                                                                        {\r
-                                                                                               this.tドラムヒット処理( nTime, Eパッド.HHO, chipHO_, event2.nVelocity );\r
-                                                                                               this.tドラムヒット処理( nTime, Eパッド.HHO, chipLC_, event2.nVelocity );\r
+                                                                                               this.tドラムヒット処理( nTime, Eパッド.HHO, chipHO, event2.nVelocity );\r
+                                                                                               flag = true;\r
                                                                                        }\r
-                                                                                       flag = true;\r
-                                                                               }\r
-                                                                               else if( e判定HO_ != E判定.Miss )\r
-                                                                               {\r
-                                                                                       this.tドラムヒット処理( nTime, Eパッド.HHO, chipHO_, event2.nVelocity );\r
-                                                                                       flag = true;\r
-                                                                               }\r
-                                                                               else if( e判定LC_ != E判定.Miss )\r
-                                                                               {\r
-                                                                                       this.tドラムヒット処理( nTime, Eパッド.HHO, chipLC_, event2.nVelocity );\r
-                                                                                       flag = true;\r
-                                                                               }\r
-                                                                               if( !flag )\r
-                                                                                       break;\r
-                                                                               continue;\r
+                                                                                       if ( !flag )\r
+                                                                                               break;\r
+                                                                                       continue;\r
 \r
-                                                                       case EHHGroup.左シンバルのみ打ち分ける:\r
-                                                                               if( ( e判定HC_ != E判定.Miss ) && ( e判定HO_ != E判定.Miss ) )\r
-                                                                               {\r
-                                                                                       if( chipHC_.n発声位置 < chipHO_.n発声位置 )\r
+                                                                               case EHHGroup.ハイハットのみ打ち分ける:\r
+                                                                                       if ( ( e判定HO != E判定.Miss ) && ( e判定LC != E判定.Miss ) )\r
                                                                                        {\r
-                                                                                               this.tドラムヒット処理( nTime, Eパッド.HHO, chipHC_, event2.nVelocity );\r
+                                                                                               if ( chipHO.n発声位置 < chipLC.n発声位置 )\r
+                                                                                               {\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.HHO, chipHO, event2.nVelocity );\r
+                                                                                               }\r
+                                                                                               else if ( chipHO.n発声位置 > chipLC.n発声位置 )\r
+                                                                                               {\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.HHO, chipLC, event2.nVelocity );\r
+                                                                                               }\r
+                                                                                               else\r
+                                                                                               {\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.HHO, chipHO, event2.nVelocity );\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.HHO, chipLC, event2.nVelocity );\r
+                                                                                               }\r
+                                                                                               flag = true;\r
                                                                                        }\r
-                                                                                       else if( chipHC_.n発声位置 > chipHO_.n発声位置 )\r
+                                                                                       else if ( e判定HO != E判定.Miss )\r
                                                                                        {\r
-                                                                                               this.tドラムヒット処理( nTime, Eパッド.HHO, chipHO_, event2.nVelocity );\r
+                                                                                               this.tドラムヒット処理( nTime, Eパッド.HHO, chipHO, event2.nVelocity );\r
+                                                                                               flag = true;\r
                                                                                        }\r
-                                                                                       else\r
+                                                                                       else if ( e判定LC != E判定.Miss )\r
                                                                                        {\r
-                                                                                               this.tドラムヒット処理( nTime, Eパッド.HHO, chipHC_, event2.nVelocity );\r
-                                                                                               this.tドラムヒット処理( nTime, Eパッド.HHO, chipHO_, event2.nVelocity );\r
+                                                                                               this.tドラムヒット処理( nTime, Eパッド.HHO, chipLC, event2.nVelocity );\r
+                                                                                               flag = true;\r
                                                                                        }\r
-                                                                                       flag = true;\r
-                                                                               }\r
-                                                                               else if( e判定HC_ != E判定.Miss )\r
-                                                                               {\r
-                                                                                       this.tドラムヒット処理( nTime, Eパッド.HHO, chipHC_, event2.nVelocity );\r
-                                                                                       flag = true;\r
-                                                                               }\r
-                                                                               else if( e判定HO_ != E判定.Miss )\r
-                                                                               {\r
-                                                                                       this.tドラムヒット処理( nTime, Eパッド.HHO, chipHO_, event2.nVelocity );\r
-                                                                                       flag = true;\r
-                                                                               }\r
-                                                                               if( !flag )\r
-                                                                                       break;\r
-                                                                               continue;\r
+                                                                                       if ( !flag )\r
+                                                                                               break;\r
+                                                                                       continue;\r
 \r
-                                                                       case EHHGroup.全部共通:\r
-                                                                               if( ( ( e判定HC_ != E判定.Miss ) && ( e判定HO_ != E判定.Miss ) ) && ( e判定LC_ != E判定.Miss ) )\r
-                                                                               {\r
-                                                                                       CDTX.CChip chip8;\r
-                                                                                       CDTX.CChip[] chipArray2 = new CDTX.CChip[] { chipHC_, chipHO_, chipLC_ };\r
-                                                                                       if( chipArray2[ 1 ].n発声位置 > chipArray2[ 2 ].n発声位置 )\r
-                                                                                       {\r
-                                                                                               chip8 = chipArray2[ 1 ];\r
-                                                                                               chipArray2[ 1 ] = chipArray2[ 2 ];\r
-                                                                                               chipArray2[ 2 ] = chip8;\r
-                                                                                       }\r
-                                                                                       if( chipArray2[ 0 ].n発声位置 > chipArray2[ 1 ].n発声位置 )\r
-                                                                                       {\r
-                                                                                               chip8 = chipArray2[ 0 ];\r
-                                                                                               chipArray2[ 0 ] = chipArray2[ 1 ];\r
-                                                                                               chipArray2[ 1 ] = chip8;\r
-                                                                                       }\r
-                                                                                       if( chipArray2[ 1 ].n発声位置 > chipArray2[ 2 ].n発声位置 )\r
-                                                                                       {\r
-                                                                                               chip8 = chipArray2[ 1 ];\r
-                                                                                               chipArray2[ 1 ] = chipArray2[ 2 ];\r
-                                                                                               chipArray2[ 2 ] = chip8;\r
-                                                                                       }\r
-                                                                                       this.tドラムヒット処理( nTime, Eパッド.HHO, chipArray2[ 0 ], event2.nVelocity );\r
-                                                                                       if( chipArray2[ 0 ].n発声位置 == chipArray2[ 1 ].n発声位置 )\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理( nTime, Eパッド.HHO, chipArray2[ 1 ], event2.nVelocity );\r
-                                                                                       }\r
-                                                                                       if( chipArray2[ 0 ].n発声位置 == chipArray2[ 2 ].n発声位置 )\r
+                                                                               case EHHGroup.左シンバルのみ打ち分ける:\r
+                                                                                       if ( ( e判定HC != E判定.Miss ) && ( e判定HO != E判定.Miss ) )\r
                                                                                        {\r
-                                                                                               this.tドラムヒット処理( nTime, Eパッド.HHO, chipArray2[ 2 ], event2.nVelocity );\r
+                                                                                               if ( chipHC.n発声位置 < chipHO.n発声位置 )\r
+                                                                                               {\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.HHO, chipHC, event2.nVelocity );\r
+                                                                                               }\r
+                                                                                               else if ( chipHC.n発声位置 > chipHO.n発声位置 )\r
+                                                                                               {\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.HHO, chipHO, event2.nVelocity );\r
+                                                                                               }\r
+                                                                                               else\r
+                                                                                               {\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.HHO, chipHC, event2.nVelocity );\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.HHO, chipHO, event2.nVelocity );\r
+                                                                                               }\r
+                                                                                               flag = true;\r
                                                                                        }\r
-                                                                                       flag = true;\r
-                                                                               }\r
-                                                                               else if( ( e判定HC_ != E判定.Miss ) && ( e判定HO_ != E判定.Miss ) )\r
-                                                                               {\r
-                                                                                       if( chipHC_.n発声位置 < chipHO_.n発声位置 )\r
+                                                                                       else if ( e判定HC != E判定.Miss )\r
                                                                                        {\r
-                                                                                               this.tドラムヒット処理( nTime, Eパッド.HHO, chipHC_, event2.nVelocity );\r
+                                                                                               this.tドラムヒット処理( nTime, Eパッド.HHO, chipHC, event2.nVelocity );\r
+                                                                                               flag = true;\r
                                                                                        }\r
-                                                                                       else if( chipHC_.n発声位置 > chipHO_.n発声位置 )\r
+                                                                                       else if ( e判定HO != E判定.Miss )\r
                                                                                        {\r
-                                                                                               this.tドラムヒット処理( nTime, Eパッド.HHO, chipHO_, event2.nVelocity );\r
+                                                                                               this.tドラムヒット処理( nTime, Eパッド.HHO, chipHO, event2.nVelocity );\r
+                                                                                               flag = true;\r
                                                                                        }\r
-                                                                                       else\r
+                                                                                       if ( !flag )\r
+                                                                                               break;\r
+                                                                                       continue;\r
+\r
+                                                                               case EHHGroup.全部共通:\r
+                                                                                       if ( ( ( e判定HC != E判定.Miss ) && ( e判定HO != E判定.Miss ) ) && ( e判定LC != E判定.Miss ) )\r
                                                                                        {\r
-                                                                                               this.tドラムヒット処理( nTime, Eパッド.HHO, chipHC_, event2.nVelocity );\r
-                                                                                               this.tドラムヒット処理( nTime, Eパッド.HHO, chipHO_, event2.nVelocity );\r
+                                                                                               CDTX.CChip chip8;\r
+                                                                                               CDTX.CChip[] chipArray2 = new CDTX.CChip[] { chipHC, chipHO, chipLC };\r
+                                                                                               if ( chipArray2[ 1 ].n発声位置 > chipArray2[ 2 ].n発声位置 )\r
+                                                                                               {\r
+                                                                                                       chip8 = chipArray2[ 1 ];\r
+                                                                                                       chipArray2[ 1 ] = chipArray2[ 2 ];\r
+                                                                                                       chipArray2[ 2 ] = chip8;\r
+                                                                                               }\r
+                                                                                               if ( chipArray2[ 0 ].n発声位置 > chipArray2[ 1 ].n発声位置 )\r
+                                                                                               {\r
+                                                                                                       chip8 = chipArray2[ 0 ];\r
+                                                                                                       chipArray2[ 0 ] = chipArray2[ 1 ];\r
+                                                                                                       chipArray2[ 1 ] = chip8;\r
+                                                                                               }\r
+                                                                                               if ( chipArray2[ 1 ].n発声位置 > chipArray2[ 2 ].n発声位置 )\r
+                                                                                               {\r
+                                                                                                       chip8 = chipArray2[ 1 ];\r
+                                                                                                       chipArray2[ 1 ] = chipArray2[ 2 ];\r
+                                                                                                       chipArray2[ 2 ] = chip8;\r
+                                                                                               }\r
+                                                                                               this.tドラムヒット処理( nTime, Eパッド.HHO, chipArray2[ 0 ], event2.nVelocity );\r
+                                                                                               if ( chipArray2[ 0 ].n発声位置 == chipArray2[ 1 ].n発声位置 )\r
+                                                                                               {\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.HHO, chipArray2[ 1 ], event2.nVelocity );\r
+                                                                                               }\r
+                                                                                               if ( chipArray2[ 0 ].n発声位置 == chipArray2[ 2 ].n発声位置 )\r
+                                                                                               {\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.HHO, chipArray2[ 2 ], event2.nVelocity );\r
+                                                                                               }\r
+                                                                                               flag = true;\r
                                                                                        }\r
-                                                                                       flag = true;\r
-                                                                               }\r
-                                                                               else if( ( e判定HC_ != E判定.Miss ) && ( e判定LC_ != E判定.Miss ) )\r
-                                                                               {\r
-                                                                                       if( chipHC_.n発声位置 < chipLC_.n発声位置 )\r
+                                                                                       else if ( ( e判定HC != E判定.Miss ) && ( e判定HO != E判定.Miss ) )\r
                                                                                        {\r
-                                                                                               this.tドラムヒット処理( nTime, Eパッド.HHO, chipHC_, event2.nVelocity );\r
+                                                                                               if ( chipHC.n発声位置 < chipHO.n発声位置 )\r
+                                                                                               {\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.HHO, chipHC, event2.nVelocity );\r
+                                                                                               }\r
+                                                                                               else if ( chipHC.n発声位置 > chipHO.n発声位置 )\r
+                                                                                               {\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.HHO, chipHO, event2.nVelocity );\r
+                                                                                               }\r
+                                                                                               else\r
+                                                                                               {\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.HHO, chipHC, event2.nVelocity );\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.HHO, chipHO, event2.nVelocity );\r
+                                                                                               }\r
+                                                                                               flag = true;\r
                                                                                        }\r
-                                                                                       else if( chipHC_.n発声位置 > chipLC_.n発声位置 )\r
+                                                                                       else if ( ( e判定HC != E判定.Miss ) && ( e判定LC != E判定.Miss ) )\r
                                                                                        {\r
-                                                                                               this.tドラムヒット処理( nTime, Eパッド.HHO, chipLC_, event2.nVelocity );\r
+                                                                                               if ( chipHC.n発声位置 < chipLC.n発声位置 )\r
+                                                                                               {\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.HHO, chipHC, event2.nVelocity );\r
+                                                                                               }\r
+                                                                                               else if ( chipHC.n発声位置 > chipLC.n発声位置 )\r
+                                                                                               {\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.HHO, chipLC, event2.nVelocity );\r
+                                                                                               }\r
+                                                                                               else\r
+                                                                                               {\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.HHO, chipHC, event2.nVelocity );\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.HHO, chipLC, event2.nVelocity );\r
+                                                                                               }\r
+                                                                                               flag = true;\r
                                                                                        }\r
-                                                                                       else\r
+                                                                                       else if ( ( e判定HO != E判定.Miss ) && ( e判定LC != E判定.Miss ) )\r
                                                                                        {\r
-                                                                                               this.tドラムヒット処理( nTime, Eパッド.HHO, chipHC_, event2.nVelocity );\r
-                                                                                               this.tドラムヒット処理( nTime, Eパッド.HHO, chipLC_, event2.nVelocity );\r
+                                                                                               if ( chipHO.n発声位置 < chipLC.n発声位置 )\r
+                                                                                               {\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.HHO, chipHO, event2.nVelocity );\r
+                                                                                               }\r
+                                                                                               else if ( chipHO.n発声位置 > chipLC.n発声位置 )\r
+                                                                                               {\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.HHO, chipLC, event2.nVelocity );\r
+                                                                                               }\r
+                                                                                               else\r
+                                                                                               {\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.HHO, chipHO, event2.nVelocity );\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.HHO, chipLC, event2.nVelocity );\r
+                                                                                               }\r
+                                                                                               flag = true;\r
                                                                                        }\r
-                                                                                       flag = true;\r
-                                                                               }\r
-                                                                               else if( ( e判定HO_ != E判定.Miss ) && ( e判定LC_ != E判定.Miss ) )\r
-                                                                               {\r
-                                                                                       if( chipHO_.n発声位置 < chipLC_.n発声位置 )\r
+                                                                                       else if ( e判定HC != E判定.Miss )\r
                                                                                        {\r
-                                                                                               this.tドラムヒット処理( nTime, Eパッド.HHO, chipHO_, event2.nVelocity );\r
+                                                                                               this.tドラムヒット処理( nTime, Eパッド.HHO, chipHC, event2.nVelocity );\r
+                                                                                               flag = true;\r
                                                                                        }\r
-                                                                                       else if( chipHO_.n発声位置 > chipLC_.n発声位置 )\r
+                                                                                       else if ( e判定HO != E判定.Miss )\r
                                                                                        {\r
-                                                                                               this.tドラムヒット処理( nTime, Eパッド.HHO, chipLC_, event2.nVelocity );\r
+                                                                                               this.tドラムヒット処理( nTime, Eパッド.HHO, chipHO, event2.nVelocity );\r
+                                                                                               flag = true;\r
                                                                                        }\r
-                                                                                       else\r
+                                                                                       else if ( e判定LC != E判定.Miss )\r
                                                                                        {\r
-                                                                                               this.tドラムヒット処理( nTime, Eパッド.HHO, chipHO_, event2.nVelocity );\r
-                                                                                               this.tドラムヒット処理( nTime, Eパッド.HHO, chipLC_, event2.nVelocity );\r
+                                                                                               this.tドラムヒット処理( nTime, Eパッド.HHO, chipLC, event2.nVelocity );\r
+                                                                                               flag = true;\r
                                                                                        }\r
-                                                                                       flag = true;\r
-                                                                               }\r
-                                                                               else if( e判定HC_ != E判定.Miss )\r
-                                                                               {\r
-                                                                                       this.tドラムヒット処理( nTime, Eパッド.HHO, chipHC_, event2.nVelocity );\r
-                                                                                       flag = true;\r
-                                                                               }\r
-                                                                               else if( e判定HO_ != E判定.Miss )\r
-                                                                               {\r
-                                                                                       this.tドラムヒット処理( nTime, Eパッド.HHO, chipHO_, event2.nVelocity );\r
-                                                                                       flag = true;\r
-                                                                               }\r
-                                                                               else if( e判定LC_ != E判定.Miss )\r
-                                                                               {\r
-                                                                                       this.tドラムヒット処理( nTime, Eパッド.HHO, chipLC_, event2.nVelocity );\r
-                                                                                       flag = true;\r
-                                                                               }\r
-                                                                               if( !flag )\r
-                                                                                       break;\r
-                                                                               continue;\r
+                                                                                       if ( !flag )\r
+                                                                                               break;\r
+                                                                                       continue;\r
+                                                                       }\r
+                                                                       if ( !flag )\r
+                                                                               break;\r
+                                                                       continue;\r
                                                                }\r
-                                                               if( !flag )\r
-                                                                       break;\r
-                                                               continue;\r
                                                        //-----------------------------\r
                                                                #endregion\r
 \r
@@ -3599,14 +3638,14 @@ namespace DTXMania
                                                                {\r
                                                                        if (event2.nVelocity <= CDTXMania.ConfigIni.n切り捨て下限Velocity)        // #23857 2010.12.12 yyagi: to support VelocityMin\r
                                                                                continue;       // 電子ドラムによる意図的なクロストークを無効にする\r
-                                                                       CDTX.CChip chipCY_ = this.r指定時刻に一番近い未ヒットChip(nTime, 0x16);    // CY\r
-                                                                       CDTX.CChip chipRD_ = this.r指定時刻に一番近い未ヒットChip(nTime, 0x19);    // RD\r
-                                                                       CDTX.CChip pChip = CDTXMania.ConfigIni.bシンバルフリー ? this.r指定時刻に一番近い未ヒットChip( nTime, 0x1a ) : null;\r
-                                                                       E判定 e判定CY_ = ( chipCY_ != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipCY_, this.nInputAdjustTimeMs.Drums ) : E判定.Miss;\r
-                                                                       E判定 e判定RD_ = ( chipRD_ != null) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipRD_, this.nInputAdjustTimeMs.Drums ) : E判定.Miss;\r
-                                                                       E判定 e判定23 = ( pChip != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, pChip, this.nInputAdjustTimeMs.Drums ) : E判定.Miss;\r
-                                                                       CDTX.CChip[] chipArray5 = new CDTX.CChip[] { chipCY_, chipRD_, pChip };\r
-                                                                       E判定[] e判定Array3 = new E判定[] { e判定CY_, e判定RD_, e判定23 };\r
+                                                                       CDTX.CChip chipCY = this.r指定時刻に一番近い未ヒットChip( nTime, 0x16, nInputAdjustTime ); // CY\r
+                                                                       CDTX.CChip chipRD = this.r指定時刻に一番近い未ヒットChip( nTime, 0x19, nInputAdjustTime ); // RD\r
+                                                                       CDTX.CChip chipLC = CDTXMania.ConfigIni.bシンバルフリー ? this.r指定時刻に一番近い未ヒットChip( nTime, 0x1a, nInputAdjustTime ) : null;\r
+                                                                       E判定 e判定CY = ( chipCY != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipCY, nInputAdjustTime ) : E判定.Miss;\r
+                                                                       E判定 e判定RD = ( chipRD != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipRD, nInputAdjustTime ) : E判定.Miss;\r
+                                                                       E判定 e判定LC = ( chipLC != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipLC, nInputAdjustTime ) : E判定.Miss;\r
+                                                                       CDTX.CChip[] chipArray5 = new CDTX.CChip[] { chipCY, chipRD, chipLC };\r
+                                                                       E判定[] e判定Array3 = new E判定[] { e判定CY, e判定RD, e判定LC };\r
                                                                        num13 = 0;\r
                                                                        while( num13 < 2 )\r
                                                                        {\r
@@ -3629,9 +3668,9 @@ namespace DTXMania
                                                                        switch( eCYGroup )\r
                                                                        {\r
                                                                                case ECYGroup.打ち分ける:\r
-                                                                                       if( e判定RD_ != E判定.Miss )\r
+                                                                                       if( e判定RD != E判定.Miss )\r
                                                                                        {\r
-                                                                                               this.tドラムヒット処理( nTime, Eパッド.RD, chipRD_, event2.nVelocity );\r
+                                                                                               this.tドラムヒット処理( nTime, Eパッド.RD, chipRD, event2.nVelocity );\r
                                                                                                flag = true;\r
                                                                                        }\r
                                                                                        break;\r
@@ -3642,7 +3681,7 @@ namespace DTXMania
                                                                                                num16 = 0;\r
                                                                                                while( num16 < 3 )\r
                                                                                                {\r
-                                                                                                       if( ( e判定Array3[ num16 ] != E判定.Miss ) && ( ( chipArray5[ num16 ] == chipCY_ ) || ( chipArray5[ num16 ] == chipRD_ ) ) )\r
+                                                                                                       if( ( e判定Array3[ num16 ] != E判定.Miss ) && ( ( chipArray5[ num16 ] == chipCY ) || ( chipArray5[ num16 ] == chipRD ) ) )\r
                                                                                                        {\r
                                                                                                                this.tドラムヒット処理( nTime, Eパッド.CY, chipArray5[ num16 ], event2.nVelocity );\r
                                                                                                                flag = true;\r
@@ -3680,18 +3719,18 @@ namespace DTXMania
                                                                {\r
                                                                        if (event2.nVelocity <= CDTXMania.ConfigIni.n切り捨て下限Velocity)        // #23857 2010.12.12 yyagi: to support VelocityMin\r
                                                                                continue;       // 電子ドラムによる意図的なクロストークを無効にする\r
-                                                                       CDTX.CChip chip9 = this.r指定時刻に一番近い未ヒットChip(nTime, 0x11);      // HC\r
-                                                                       CDTX.CChip chip10 = this.r指定時刻に一番近い未ヒットChip(nTime, 0x18);     // HO\r
-                                                                       CDTX.CChip chip11 = this.r指定時刻に一番近い未ヒットChip(nTime, 0x1a);     // LC\r
-                                                                       CDTX.CChip chip12 = CDTXMania.ConfigIni.bシンバルフリー ? this.r指定時刻に一番近い未ヒットChip(nTime, 0x16) : null;\r
-                                                                       CDTX.CChip chip13 = CDTXMania.ConfigIni.bシンバルフリー ? this.r指定時刻に一番近い未ヒットChip(nTime, 0x19) : null;\r
-                                                                       E判定 e判定7 = ( chip9 != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chip9, this.nInputAdjustTimeMs.Drums ) : E判定.Miss;\r
-                                                                       E判定 e判定8 = ( chip10 != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chip10, this.nInputAdjustTimeMs.Drums ) : E判定.Miss;\r
-                                                                       E判定 e判定9 = ( chip11 != null ) ? this.e指定時刻からChipのJUDGEを返す(nTime, chip11, this.nInputAdjustTimeMs.Drums) : E判定.Miss;\r
-                                                                       E判定 e判定10 = ( chip12 != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chip12, this.nInputAdjustTimeMs.Drums ) : E判定.Miss;\r
-                                                                       E判定 e判定11 = ( chip13 != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chip13, this.nInputAdjustTimeMs.Drums ) : E判定.Miss;\r
-                                                                       CDTX.CChip[] chipArray3 = new CDTX.CChip[] { chip9, chip10, chip11, chip12, chip13 };\r
-                                                                       E判定[]  e判定Array = new E判定[] { e判定7, e判定8, e判定9, e判定10, e判定11 };\r
+                                                                       CDTX.CChip chipHC = this.r指定時刻に一番近い未ヒットChip( nTime, 0x11, nInputAdjustTime ); // HC\r
+                                                                       CDTX.CChip chipHO = this.r指定時刻に一番近い未ヒットChip( nTime, 0x18, nInputAdjustTime ); // HO\r
+                                                                       CDTX.CChip chipLC = this.r指定時刻に一番近い未ヒットChip( nTime, 0x1a, nInputAdjustTime ); // LC\r
+                                                                       CDTX.CChip chipCY = CDTXMania.ConfigIni.bシンバルフリー ? this.r指定時刻に一番近い未ヒットChip( nTime, 0x16, nInputAdjustTime ) : null;\r
+                                                                       CDTX.CChip chipRD = CDTXMania.ConfigIni.bシンバルフリー ? this.r指定時刻に一番近い未ヒットChip( nTime, 0x19, nInputAdjustTime ) : null;\r
+                                                                       E判定 e判定HC = ( chipHC != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipHC, nInputAdjustTime ) : E判定.Miss;\r
+                                                                       E判定 e判定HO = ( chipHO != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipHO, nInputAdjustTime ) : E判定.Miss;\r
+                                                                       E判定 e判定LC = ( chipLC != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipLC, nInputAdjustTime ) : E判定.Miss;\r
+                                                                       E判定 e判定CY = ( chipCY != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipCY, nInputAdjustTime ) : E判定.Miss;\r
+                                                                       E判定 e判定RD = ( chipRD != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipRD, nInputAdjustTime ) : E判定.Miss;\r
+                                                                       CDTX.CChip[] chipArray3 = new CDTX.CChip[] { chipHC, chipHO, chipLC, chipCY, chipRD };\r
+                                                                       E判定[]  e判定Array = new E判定[] { e判定HC, e判定HO, e判定LC, e判定CY, e判定RD };\r
                                                                        num3 = 0;\r
                                                                        while( num3 < 4 )\r
                                                                        {\r
@@ -3717,9 +3756,9 @@ namespace DTXMania
                                                                                case EHHGroup.左シンバルのみ打ち分ける:\r
                                                                                        if( !CDTXMania.ConfigIni.bシンバルフリー )\r
                                                                                        {\r
-                                                                                               if( e判定9 != E判定.Miss )\r
+                                                                                               if( e判定LC != E判定.Miss )\r
                                                                                                {\r
-                                                                                                       this.tドラムヒット処理( nTime, Eパッド.LC, chip11, event2.nVelocity );\r
+                                                                                                       this.tドラムヒット処理( nTime, Eパッド.LC, chipLC, event2.nVelocity );\r
                                                                                                        flag = true;\r
                                                                                                }\r
                                                                                                if( !flag )\r
@@ -3729,7 +3768,7 @@ namespace DTXMania
                                                                                        num5 = 0;\r
                                                                                        while( num5 < 5 )\r
                                                                                        {\r
-                                                                                               if( ( e判定Array[ num5 ] != E判定.Miss ) && ( ( ( chipArray3[ num5 ] == chip11 ) || ( chipArray3[ num5 ] == chip12 ) ) || ( ( chipArray3[ num5 ] == chip13 ) && ( CDTXMania.ConfigIni.eCYGroup == ECYGroup.共通 ) ) ) )\r
+                                                                                               if( ( e判定Array[ num5 ] != E判定.Miss ) && ( ( ( chipArray3[ num5 ] == chipLC ) || ( chipArray3[ num5 ] == chipCY ) ) || ( ( chipArray3[ num5 ] == chipRD ) && ( CDTXMania.ConfigIni.eCYGroup == ECYGroup.共通 ) ) ) )\r
                                                                                                {\r
                                                                                                        this.tドラムヒット処理( nTime, Eパッド.LC, chipArray3[ num5 ], event2.nVelocity );\r
                                                                                                        flag = true;\r
@@ -3748,7 +3787,7 @@ namespace DTXMania
                                                                                                num7 = 0;\r
                                                                                                while( num7 < 5 )\r
                                                                                                {\r
-                                                                                                       if( ( e判定Array[ num7 ] != E判定.Miss ) && ( ( ( chipArray3[ num7 ] == chip11 ) || ( chipArray3[ num7 ] == chip9 ) ) || ( chipArray3[ num7 ] == chip10 ) ) )\r
+                                                                                                       if( ( e判定Array[ num7 ] != E判定.Miss ) && ( ( ( chipArray3[ num7 ] == chipLC ) || ( chipArray3[ num7 ] == chipHC ) ) || ( chipArray3[ num7 ] == chipHO ) ) )\r
                                                                                                        {\r
                                                                                                                this.tドラムヒット処理( nTime, Eパッド.LC, chipArray3[ num7 ], event2.nVelocity );\r
                                                                                                                flag = true;\r
@@ -3763,7 +3802,7 @@ namespace DTXMania
                                                                                        num6 = 0;\r
                                                                                        while( num6 < 5 )\r
                                                                                        {\r
-                                                                                               if( ( e判定Array[ num6 ] != E判定.Miss ) && ( ( chipArray3[ num6 ] != chip13 ) || ( CDTXMania.ConfigIni.eCYGroup == ECYGroup.共通 ) ) )\r
+                                                                                               if( ( e判定Array[ num6 ] != E判定.Miss ) && ( ( chipArray3[ num6 ] != chipRD ) || ( CDTXMania.ConfigIni.eCYGroup == ECYGroup.共通 ) ) )\r
                                                                                                {\r
                                                                                                        this.tドラムヒット処理( nTime, Eパッド.LC, chipArray3[ num6 ], event2.nVelocity );\r
                                                                                                        flag = true;\r
@@ -3810,13 +3849,6 @@ namespace DTXMania
                                                        }\r
                                                        continue;\r
                                                }\r
-                                               CDTX.CChip chip28 = null;\r
-                                               CDTX.CChip chip29 = null;\r
-                                               CDTX.CChip chip30 = null;\r
-                                               CDTX.CChip chip31 = null;\r
-                                               CDTX.CChip chip32 = null;\r
-                                               CDTX.CChip chip33 = null;\r
-                                               CDTX.CChip chip34 = null;\r
                                                //-----------------------------\r
                                                #endregion\r
 \r
@@ -3827,45 +3859,47 @@ namespace DTXMania
                                                        case Eパッド.HH:\r
                                                                #region [ *** ]\r
                                                                //-----------------------------\r
-                                                               chip28 = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[0]);\r
-                                                               chip29 = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[7]);\r
-                                                               chip30 = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[9]);\r
-                                                               switch( CDTXMania.ConfigIni.eHHGroup )\r
                                                                {\r
-                                                                       case EHHGroup.ハイハットのみ打ち分ける:\r
-                                                                               rChip = ( chip28 != null ) ? chip28 : chip30;\r
-                                                                               break;\r
+                                                                       CDTX.CChip chipHC = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 0 ], nInputAdjustTime );\r
+                                                                       CDTX.CChip chipHO = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 7 ], nInputAdjustTime );\r
+                                                                       CDTX.CChip chipLC = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 9 ], nInputAdjustTime );\r
+                                                                       switch ( CDTXMania.ConfigIni.eHHGroup )\r
+                                                                       {\r
+                                                                               case EHHGroup.ハイハットのみ打ち分ける:\r
+                                                                                       rChip = ( chipHC != null ) ? chipHC : chipLC;\r
+                                                                                       break;\r
 \r
-                                                                       case EHHGroup.左シンバルのみ打ち分ける:\r
-                                                                               rChip = ( chip28 != null ) ? chip28 : chip29;\r
-                                                                               break;\r
+                                                                               case EHHGroup.左シンバルのみ打ち分ける:\r
+                                                                                       rChip = ( chipHC != null ) ? chipHC : chipHO;\r
+                                                                                       break;\r
 \r
-                                                                       case EHHGroup.全部共通:\r
-                                                                               if( chip28 != null )\r
-                                                                               {\r
-                                                                                       rChip = chip28;\r
-                                                                               }\r
-                                                                               else if( chip29 == null )\r
-                                                                               {\r
-                                                                                       rChip = chip30;\r
-                                                                               }\r
-                                                                               else if( chip30 == null )\r
-                                                                               {\r
-                                                                                       rChip = chip29;\r
-                                                                               }\r
-                                                                               else if( chip29.n発声位置 < chip30.n発声位置 )\r
-                                                                               {\r
-                                                                                       rChip = chip29;\r
-                                                                               }\r
-                                                                               else\r
-                                                                               {\r
-                                                                                       rChip = chip30;\r
-                                                                               }\r
-                                                                               break;\r
+                                                                               case EHHGroup.全部共通:\r
+                                                                                       if ( chipHC != null )\r
+                                                                                       {\r
+                                                                                               rChip = chipHC;\r
+                                                                                       }\r
+                                                                                       else if ( chipHO == null )\r
+                                                                                       {\r
+                                                                                               rChip = chipLC;\r
+                                                                                       }\r
+                                                                                       else if ( chipLC == null )\r
+                                                                                       {\r
+                                                                                               rChip = chipHO;\r
+                                                                                       }\r
+                                                                                       else if ( chipHO.n発声位置 < chipLC.n発声位置 )\r
+                                                                                       {\r
+                                                                                               rChip = chipHO;\r
+                                                                                       }\r
+                                                                                       else\r
+                                                                                       {\r
+                                                                                               rChip = chipLC;\r
+                                                                                       }\r
+                                                                                       break;\r
 \r
-                                                                       default:\r
-                                                                               rChip = chip28;\r
-                                                                               break;\r
+                                                                               default:\r
+                                                                                       rChip = chipHC;\r
+                                                                                       break;\r
+                                                                       }\r
                                                                }\r
                                                                //-----------------------------\r
                                                                #endregion\r
@@ -3874,12 +3908,14 @@ namespace DTXMania
                                                        case Eパッド.LT:\r
                                                                #region [ *** ]\r
                                                                //-----------------------------\r
-                                                               chip31 = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 4 ] );\r
-                                                               chip32 = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 5 ] );\r
-                                                               if( CDTXMania.ConfigIni.eFTGroup != EFTGroup.打ち分ける )\r
-                                                                       rChip = ( chip31 != null ) ? chip31 : chip32;\r
-                                                               else\r
-                                                                       rChip = chip31;\r
+                                                               {\r
+                                                                       CDTX.CChip chipLT = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 4 ], nInputAdjustTime );\r
+                                                                       CDTX.CChip chipFT = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 5 ], nInputAdjustTime );\r
+                                                                       if ( CDTXMania.ConfigIni.eFTGroup != EFTGroup.打ち分ける )\r
+                                                                               rChip = ( chipLT != null ) ? chipLT : chipFT;\r
+                                                                       else\r
+                                                                               rChip = chipLT;\r
+                                                               }\r
                                                                //-----------------------------\r
                                                                #endregion\r
                                                                break;\r
@@ -3887,12 +3923,14 @@ namespace DTXMania
                                                        case Eパッド.FT:\r
                                                                #region [ *** ]\r
                                                                //-----------------------------\r
-                                                               chip31 = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 4 ] );\r
-                                                               chip32 = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 5 ] );\r
-                                                               if( CDTXMania.ConfigIni.eFTGroup != EFTGroup.打ち分ける )\r
-                                                                       rChip = ( chip32 != null ) ? chip32 : chip31;\r
-                                                               else\r
-                                                                       rChip = chip32;\r
+                                                               {\r
+                                                                       CDTX.CChip chipLT = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 4 ], nInputAdjustTime );\r
+                                                                       CDTX.CChip chipFT = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 5 ], nInputAdjustTime );\r
+                                                                       if ( CDTXMania.ConfigIni.eFTGroup != EFTGroup.打ち分ける )\r
+                                                                               rChip = ( chipFT != null ) ? chipFT : chipLT;\r
+                                                                       else\r
+                                                                               rChip = chipFT;\r
+                                                               }\r
                                                                //-----------------------------\r
                                                                #endregion\r
                                                                break;\r
@@ -3900,12 +3938,14 @@ namespace DTXMania
                                                        case Eパッド.CY:\r
                                                                #region [ *** ]\r
                                                                //-----------------------------\r
-                                                               chip33 = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 6 ] );\r
-                                                               chip34 = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 8 ] );\r
-                                                               if( CDTXMania.ConfigIni.eCYGroup != ECYGroup.打ち分ける )\r
-                                                                       rChip = ( chip33 != null ) ? chip33 : chip34;\r
-                                                               else\r
-                                                                       rChip = chip33;\r
+                                                               {\r
+                                                                       CDTX.CChip chipCY = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 6 ], nInputAdjustTime );\r
+                                                                       CDTX.CChip chipRD = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 8 ], nInputAdjustTime );\r
+                                                                       if ( CDTXMania.ConfigIni.eCYGroup != ECYGroup.打ち分ける )\r
+                                                                               rChip = ( chipCY != null ) ? chipCY : chipRD;\r
+                                                                       else\r
+                                                                               rChip = chipCY;\r
+                                                               }\r
                                                                //-----------------------------\r
                                                                #endregion\r
                                                                break;\r
@@ -3913,45 +3953,47 @@ namespace DTXMania
                                                        case Eパッド.HHO:\r
                                                                #region [ *** ]\r
                                                                //-----------------------------\r
-                                                               chip28 = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 0 ] );\r
-                                                               chip29 = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 7 ] );\r
-                                                               chip30 = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 9 ] );\r
-                                                               switch( CDTXMania.ConfigIni.eHHGroup )\r
                                                                {\r
-                                                                       case EHHGroup.全部打ち分ける:\r
-                                                                               rChip = chip29;\r
-                                                                               break;\r
+                                                                       CDTX.CChip chipHC = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 0 ], nInputAdjustTime );\r
+                                                                       CDTX.CChip chipHO = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 7 ], nInputAdjustTime );\r
+                                                                       CDTX.CChip chipLC = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 9 ], nInputAdjustTime );\r
+                                                                       switch ( CDTXMania.ConfigIni.eHHGroup )\r
+                                                                       {\r
+                                                                               case EHHGroup.全部打ち分ける:\r
+                                                                                       rChip = chipHO;\r
+                                                                                       break;\r
 \r
-                                                                       case EHHGroup.ハイハットのみ打ち分ける:\r
-                                                                               rChip = ( chip29 != null ) ? chip29 : chip30;\r
-                                                                               break;\r
+                                                                               case EHHGroup.ハイハットのみ打ち分ける:\r
+                                                                                       rChip = ( chipHO != null ) ? chipHO : chipLC;\r
+                                                                                       break;\r
 \r
-                                                                       case EHHGroup.左シンバルのみ打ち分ける:\r
-                                                                               rChip = ( chip29 != null ) ? chip29 : chip28;\r
-                                                                               break;\r
+                                                                               case EHHGroup.左シンバルのみ打ち分ける:\r
+                                                                                       rChip = ( chipHO != null ) ? chipHO : chipHC;\r
+                                                                                       break;\r
 \r
-                                                                       case EHHGroup.全部共通:\r
-                                                                               if( chip29 != null )\r
-                                                                               {\r
-                                                                                       rChip = chip29;\r
-                                                                               }\r
-                                                                               else if( chip28 == null )\r
-                                                                               {\r
-                                                                                       rChip = chip30;\r
-                                                                               }\r
-                                                                               else if( chip30 == null )\r
-                                                                               {\r
-                                                                                       rChip = chip28;\r
-                                                                               }\r
-                                                                               else if( chip28.n発声位置 < chip30.n発声位置 )\r
-                                                                               {\r
-                                                                                       rChip = chip28;\r
-                                                                               }\r
-                                                                               else\r
-                                                                               {\r
-                                                                                       rChip = chip30;\r
-                                                                               }\r
-                                                                               break;\r
+                                                                               case EHHGroup.全部共通:\r
+                                                                                       if ( chipHO != null )\r
+                                                                                       {\r
+                                                                                               rChip = chipHO;\r
+                                                                                       }\r
+                                                                                       else if ( chipHC == null )\r
+                                                                                       {\r
+                                                                                               rChip = chipLC;\r
+                                                                                       }\r
+                                                                                       else if ( chipLC == null )\r
+                                                                                       {\r
+                                                                                               rChip = chipHC;\r
+                                                                                       }\r
+                                                                                       else if ( chipHC.n発声位置 < chipLC.n発声位置 )\r
+                                                                                       {\r
+                                                                                               rChip = chipHC;\r
+                                                                                       }\r
+                                                                                       else\r
+                                                                                       {\r
+                                                                                               rChip = chipLC;\r
+                                                                                       }\r
+                                                                                       break;\r
+                                                                       }\r
                                                                }\r
                                                                //-----------------------------\r
                                                                #endregion\r
@@ -3960,12 +4002,14 @@ namespace DTXMania
                                                        case Eパッド.RD:\r
                                                                #region [ *** ]\r
                                                                //-----------------------------\r
-                                                               chip33 = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 6 ] );\r
-                                                               chip34 = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 8 ] );\r
-                                                               if( CDTXMania.ConfigIni.eCYGroup != ECYGroup.打ち分ける )\r
-                                                                       rChip = ( chip34 != null ) ? chip34 : chip33;\r
-                                                               else\r
-                                                                       rChip = chip34;\r
+                                                               {\r
+                                                                       CDTX.CChip chipCY = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 6 ], nInputAdjustTime );\r
+                                                                       CDTX.CChip chipRD = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 8 ], nInputAdjustTime );\r
+                                                                       if ( CDTXMania.ConfigIni.eCYGroup != ECYGroup.打ち分ける )\r
+                                                                               rChip = ( chipRD != null ) ? chipRD : chipCY;\r
+                                                                       else\r
+                                                                               rChip = chipRD;\r
+                                                               }\r
                                                                //-----------------------------\r
                                                                #endregion\r
                                                                break;\r
@@ -3973,39 +4017,41 @@ namespace DTXMania
                                                        case Eパッド.LC:\r
                                                                #region [ *** ]\r
                                                                //-----------------------------\r
-                                                               chip28 = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 0 ] );\r
-                                                               chip29 = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 7 ] );\r
-                                                               chip30 = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 9 ] );\r
-                                                               switch( CDTXMania.ConfigIni.eHHGroup )\r
                                                                {\r
-                                                                       case EHHGroup.全部打ち分ける:\r
-                                                                       case EHHGroup.左シンバルのみ打ち分ける:\r
-                                                                               rChip = chip30;\r
-                                                                               break;\r
+                                                                       CDTX.CChip chipHC = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 0 ], nInputAdjustTime );\r
+                                                                       CDTX.CChip chipHO = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 7 ], nInputAdjustTime );\r
+                                                                       CDTX.CChip chipLC = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 9 ], nInputAdjustTime );\r
+                                                                       switch ( CDTXMania.ConfigIni.eHHGroup )\r
+                                                                       {\r
+                                                                               case EHHGroup.全部打ち分ける:\r
+                                                                               case EHHGroup.左シンバルのみ打ち分ける:\r
+                                                                                       rChip = chipLC;\r
+                                                                                       break;\r
 \r
-                                                                       case EHHGroup.ハイハットのみ打ち分ける:\r
-                                                                       case EHHGroup.全部共通:\r
-                                                                               if( chip30 != null )\r
-                                                                               {\r
-                                                                                       rChip = chip30;\r
-                                                                               }\r
-                                                                               else if( chip28 == null )\r
-                                                                               {\r
-                                                                                       rChip = chip29;\r
-                                                                               }\r
-                                                                               else if( chip29 == null )\r
-                                                                               {\r
-                                                                                       rChip = chip28;\r
-                                                                               }\r
-                                                                               else if( chip28.n発声位置 < chip29.n発声位置 )\r
-                                                                               {\r
-                                                                                       rChip = chip28;\r
-                                                                               }\r
-                                                                               else\r
-                                                                               {\r
-                                                                                       rChip = chip29;\r
-                                                                               }\r
-                                                                               break;\r
+                                                                               case EHHGroup.ハイハットのみ打ち分ける:\r
+                                                                               case EHHGroup.全部共通:\r
+                                                                                       if ( chipLC != null )\r
+                                                                                       {\r
+                                                                                               rChip = chipLC;\r
+                                                                                       }\r
+                                                                                       else if ( chipHC == null )\r
+                                                                                       {\r
+                                                                                               rChip = chipHO;\r
+                                                                                       }\r
+                                                                                       else if ( chipHO == null )\r
+                                                                                       {\r
+                                                                                               rChip = chipHC;\r
+                                                                                       }\r
+                                                                                       else if ( chipHC.n発声位置 < chipHO.n発声位置 )\r
+                                                                                       {\r
+                                                                                               rChip = chipHC;\r
+                                                                                       }\r
+                                                                                       else\r
+                                                                                       {\r
+                                                                                               rChip = chipHO;\r
+                                                                                       }\r
+                                                                                       break;\r
+                                                                       }\r
                                                                }\r
                                                                //-----------------------------\r
                                                                #endregion\r
@@ -4014,7 +4060,7 @@ namespace DTXMania
                                                        default:\r
                                                                #region [ *** ]\r
                                                                //-----------------------------\r
-                                                               rChip = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ nPad ] );\r
+                                                               rChip = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ nPad ], nInputAdjustTime );\r
                                                                //-----------------------------\r
                                                                #endregion\r
                                                                break;\r
@@ -4041,9 +4087,18 @@ namespace DTXMania
                }\r
                private void t入力処理・ベース()\r
                {\r
-                       if( CDTXMania.ConfigIni.bGuitar有効 && CDTXMania.DTX.bチップがある.Bass )\r
+                       if ( CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.Decide ) && CDTXMania.Pad.b押された( E楽器パート.BASS, Eパッド.B ) )\r
+                       {\r
+                               CDTXMania.ConfigIni.n譜面スクロール速度.Bass = Math.Min( CDTXMania.ConfigIni.n譜面スクロール速度.Bass + 1, 0x7cf );\r
+                       }\r
+                       if ( CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.Decide ) && CDTXMania.Pad.b押された( E楽器パート.BASS, Eパッド.R ) )\r
                        {\r
-                               if( CDTXMania.ConfigIni.bAutoPlay.Bass )\r
+                               CDTXMania.ConfigIni.n譜面スクロール速度.Bass = Math.Max( CDTXMania.ConfigIni.n譜面スクロール速度.Bass - 1, 0 );\r
+                       }\r
+\r
+                       if ( CDTXMania.ConfigIni.bGuitar有効 && CDTXMania.DTX.bチップがある.Bass )\r
+                       {\r
+                               if( bIsAutoPlay.Bass )\r
                                {\r
                                        CDTX.CChip chip = this.r次にくるベースChipを更新して返す();\r
                                        if( chip != null )\r
@@ -4067,37 +4122,29 @@ namespace DTXMania
                                }\r
                                else\r
                                {\r
-                                       if( CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.CY ) && CDTXMania.Pad.b押された( E楽器パート.BASS, Eパッド.BD ) )\r
-                                       {\r
-                                               CDTXMania.ConfigIni.n譜面スクロール速度.Bass = Math.Min( CDTXMania.ConfigIni.n譜面スクロール速度.Bass + 1, 0x7cf );\r
-                                       }\r
-                                       if( CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.CY ) && CDTXMania.Pad.b押された( E楽器パート.BASS, Eパッド.HH ) )\r
-                                       {\r
-                                               CDTXMania.ConfigIni.n譜面スクロール速度.Bass = Math.Max( CDTXMania.ConfigIni.n譜面スクロール速度.Bass - 1, 0 );\r
-                                       }\r
-                                       int num = CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.HH ) ? 4 : 0;\r
+                                       int flagR = CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.R ) ? 4 : 0;\r
                                        this.t入力メソッド記憶( E楽器パート.BASS );\r
-                                       int num2 = CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.SD ) ? 2 : 0;\r
+                                       int flagG = CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.G ) ? 2 : 0;\r
                                        this.t入力メソッド記憶( E楽器パート.BASS );\r
-                                       int num3 = CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.BD ) ? 1 : 0;\r
+                                       int flagB = CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.B ) ? 1 : 0;\r
                                        this.t入力メソッド記憶( E楽器パート.BASS );\r
-                                       int num4 = ( num | num2 ) | num3;\r
-                                       if( num != 0 )\r
+                                       int flagRGB = flagR | flagG | flagB;\r
+                                       if( flagR != 0 )\r
                                        {\r
                                                this.actLaneFlushGB.Start( 3 );\r
                                                this.actRGB.Push( 3 );\r
                                        }\r
-                                       if( num2 != 0 )\r
+                                       if( flagG != 0 )\r
                                        {\r
                                                this.actLaneFlushGB.Start( 4 );\r
                                                this.actRGB.Push( 4 );\r
                                        }\r
-                                       if( num3 != 0 )\r
+                                       if( flagB != 0 )\r
                                        {\r
                                                this.actLaneFlushGB.Start( 5 );\r
                                                this.actRGB.Push( 5 );\r
                                        }\r
-                                       List<STInputEvent> events = CDTXMania.Pad.GetEvents( E楽器パート.BASS, Eパッド.HT );\r
+                                       List<STInputEvent> events = CDTXMania.Pad.GetEvents( E楽器パート.BASS, Eパッド.Pick );\r
                                        if( ( events != null ) && ( events.Count > 0 ) )\r
                                        {\r
                                                foreach( STInputEvent event2 in events )\r
@@ -4109,32 +4156,32 @@ namespace DTXMania
                                                        }\r
                                                        this.t入力メソッド記憶( E楽器パート.BASS );\r
                                                        long nTime = event2.nTimeStamp - CDTXMania.Timer.n前回リセットした時のシステム時刻;\r
-                                                       CDTX.CChip pChip = this.r指定時刻に一番近い未ヒットChip( nTime, 0xaf );\r
+                                                       CDTX.CChip pChip = this.r指定時刻に一番近い未ヒットChip( nTime, 0xaf, this.nInputAdjustTimeMs.Bass );\r
                                                        E判定 e判定 = this.e指定時刻からChipのJUDGEを返す( nTime, pChip, this.nInputAdjustTimeMs.Bass );\r
-                                                       if( ( ( pChip != null ) && ( ( pChip.nチャンネル番号 & 15 ) == num4 ) ) && ( e判定 != E判定.Miss ) )\r
+                                                       if( ( ( pChip != null ) && ( ( pChip.nチャンネル番号 & 15 ) == flagRGB ) ) && ( e判定 != E判定.Miss ) )\r
                                                        {\r
-                                                               if( ( num != 0 ) || ( num4 == 0 ) )\r
+                                                               if( ( flagR != 0 ) || ( flagRGB == 0 ) )\r
                                                                {\r
                                                                        this.actChipFireGB.Start( 3 );\r
                                                                }\r
-                                                               if( ( num2 != 0 ) || ( num4 == 0 ) )\r
+                                                               if( ( flagG != 0 ) || ( flagRGB == 0 ) )\r
                                                                {\r
                                                                        this.actChipFireGB.Start( 4 );\r
                                                                }\r
-                                                               if( ( num3 != 0 ) || ( num4 == 0 ) )\r
+                                                               if( ( flagB != 0 ) || ( flagRGB == 0 ) )\r
                                                                {\r
                                                                        this.actChipFireGB.Start( 5 );\r
                                                                }\r
                                                                this.tチップのヒット処理( nTime, pChip );\r
                                                                this.tサウンド再生( pChip, CDTXMania.Timer.nシステム時刻, E楽器パート.BASS, CDTXMania.ConfigIni.n手動再生音量, CDTXMania.ConfigIni.b演奏音を強調する.Bass, e判定 == E判定.Poor );\r
-                                                               CDTX.CChip item = this.r指定時刻に一番近い未ヒットChip( nTime, 0xa8, 140 );\r
+                                                               CDTX.CChip item = this.r指定時刻に一番近い未ヒットChip( nTime, 0xa8, this.nInputAdjustTimeMs.Bass, 140 );\r
                                                                if( item != null )\r
                                                                {\r
                                                                        this.queWailing.Bass.Enqueue( item );\r
                                                                }\r
                                                                continue;\r
                                                        }\r
-                                                       if( ( ( chip4 = this.r現在の空うちベースChip ) != null ) || ( ( chip4 = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, 0xaf ) ) != null ) )\r
+                                                       if ( ( ( chip4 = this.r現在の空うちベースChip ) != null ) || ( ( chip4 = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, 0xaf, this.nInputAdjustTimeMs.Bass ) ) != null ) )\r
                                                        {\r
                                                                this.tサウンド再生( chip4, CDTXMania.Timer.nシステム時刻, E楽器パート.BASS, CDTXMania.ConfigIni.n手動再生音量, CDTXMania.ConfigIni.b演奏音を強調する.Bass, true );\r
                                                        }\r
@@ -4144,7 +4191,7 @@ namespace DTXMania
                                                        }\r
                                                }\r
                                        }\r
-                                       List<STInputEvent> list2 = CDTXMania.Pad.GetEvents( E楽器パート.BASS, Eパッド.LT );\r
+                                       List<STInputEvent> list2 = CDTXMania.Pad.GetEvents( E楽器パート.BASS, Eパッド.Wail );\r
                                        if( ( list2 != null ) && ( list2.Count > 0 ) )\r
                                        {\r
                                                foreach( STInputEvent event3 in list2 )\r
@@ -4161,9 +4208,9 @@ namespace DTXMania
                                                                {\r
                                                                        chip5.bHit = true;\r
                                                                        this.actWailingBonus.Start( E楽器パート.BASS, this.r現在の歓声Chip.Bass );\r
-                                                                       if( !CDTXMania.ConfigIni.bAutoPlay.Bass )\r
+                                                                       if( !bIsAutoPlay.Bass )\r
                                                                        {\r
-                                                                               this.actScore.Set( E楽器パート.BASS, this.actScore.Get( E楽器パート.BASS ) + ( this.actCOMBO.n現在のコンボ数.Bass * 0xbb8L ) );\r
+                                                                               this.actScore.Set( E楽器パート.BASS, this.actScore.Get( E楽器パート.BASS ) + ( this.actCOMBO.n現在のコンボ数.Bass * 3000L ) );\r
                                                                        }\r
                                                                }\r
                                                        }\r