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
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
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
}\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
}\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
}\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
}\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
}\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
}\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
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
( ( pChip.e楽器パート == E楽器パート.BASS ) && CDTXMania.ConfigIni.bAutoPlay.Bass )\r
)\r
{\r
- bIsAutoPlay = true;\r
+ bPChipIsAutoPlay = true;\r
}\r
else\r
{\r
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
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
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
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
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
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
{\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
{\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
// #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
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
)\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
}\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
}\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
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
}\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
{\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
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
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
//-----------------------------\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
//-----------------------------\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
//-----------------------------\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
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
{\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
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
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
{\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
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
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
{\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
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
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
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
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
}\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
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
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
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
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
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
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
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
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
}\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
}\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
}\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
}\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
{\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