}\r
protected abstract void t進行描画・チップ・ドラムス( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip );\r
protected abstract void t進行描画・チップ・ギター( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip );\r
- protected virtual void té\80²è¡\8cæ\8f\8fç\94»ã\83»ã\83\81ã\83\83ã\83\97ã\83»ã\82®ã\82¿ã\83¼ã\83»ã\82¦ã\82§ã\82¤ã\83ªã\83³ã\82°( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip )\r
+ protected virtual void té\80²è¡\8cæ\8f\8fç\94»ã\83»ã\83\81ã\83\83ã\83\97ã\83»ã\82®ã\82¿ã\83¼ã\83\99ã\83¼ã\82¹ã\83»ã\82¦ã\82§ã\82¤ã\83ªã\83³ã\82°( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip, E楽å\99¨ã\83\91ã\83¼ã\83\88 inst )\r
{\r
+ int indexInst = (int) inst;\r
if ( configIni.bGuitar有効 )\r
{\r
- if ( configIni.bSudden.Guitar )\r
+ if ( configIni.bSudden[indexInst] )\r
{\r
- pChip.b可視 = pChip.nバーからの距離dot.Guitar < 200;\r
+ pChip.b可視 = pChip.nバーからの距離dot[indexInst] < 200;\r
}\r
- if ( configIni.bHidden.Guitar && ( pChip.nバーからの距離dot.Guitar < 100 ) )\r
+ if ( configIni.bHidden[indexInst] && ( pChip.nバーからの距離dot[indexInst] < 100 ) )\r
{\r
pChip.b可視 = false;\r
}\r
//\r
// ここにチップ更新処理が入る(overrideで入れる)。といっても座標とチップサイズが違うだけで処理はまるまる同じ。\r
//\r
- if ( !pChip.bHit && ( pChip.nバーからの距離dot.Guitar < 0 ) )\r
+ if ( !pChip.bHit && ( pChip.nバーからの距離dot[indexInst] < 0 ) )\r
{\r
- if ( pChip.nバーからの距離dot.Guitar < -234 ) // #25253 2011.5.29 yyagi: Don't set pChip.bHit=true for wailing at once. It need to 1sec-delay (234pix per 1sec). \r
+ if ( pChip.nバーからの距離dot[indexInst] < -234 ) // #25253 2011.5.29 yyagi: Don't set pChip.bHit=true for wailing at once. It need to 1sec-delay (234pix per 1sec). \r
{\r
pChip.bHit = true;\r
}\r
- if ( configIni.bAutoPlay.Guitar )\r
+ if ( configIni.bAutoPlay[indexInst] )\r
{\r
- pChip.bHit = true; // #25253 2011.5.29 yyagi: Set pChip.bHit=true if autoplay.\r
- this.actWailingBonus.Start( E楽器パート.GUITAR, this.r現在の歓声Chip.Guitar );\r
+ pChip.bHit = true; // #25253 2011.5.29 yyagi: Set pChip.bHit=true if autoplay.\r
+ this.actWailingBonus.Start( inst, this.r現在の歓声Chip[indexInst] );\r
}\r
}\r
return;\r
}\r
pChip.bHit = true;\r
-\r
+ }\r
+ protected virtual void t進行描画・チップ・ギター・ウェイリング( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip )\r
+ {\r
+ t進行描画・チップ・ギターベース・ウェイリング( configIni, ref dTX, ref pChip, E楽器パート.GUITAR );\r
}\r
protected abstract void t進行描画・チップ・フィルイン( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip );\r
protected abstract void t進行描画・チップ・小節線( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip );\r
protected abstract void t進行描画・チップ・ベース( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip );\r
protected virtual void t進行描画・チップ・ベース・ウェイリング( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip )\r
{\r
- if ( configIni.bGuitar有効 )\r
- {\r
- if ( configIni.bSudden.Bass)\r
- {\r
- pChip.b可視 = pChip.nバーからの距離dot.Bass < 200;\r
- }\r
- if ( configIni.bHidden.Bass && ( pChip.nバーからの距離dot.Bass < 100 ) )\r
- {\r
- pChip.b可視 = false;\r
- }\r
- //\r
- // ここにチップ更新処理が入る(overrideで入れる)。といっても座標とチップサイズが違うだけで処理はまるまる同じ。\r
- //\r
- if ( !pChip.bHit && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
- {\r
- if ( pChip.nバーからの距離dot.Bass < -234 ) // #25253 2011.5.29 yyagi: Don't set pChip.bHit=true for wailing at once. It need to 1sec-delay (234pix per 1sec).\r
- {\r
- pChip.bHit = true;\r
- }\r
- if ( configIni.bAutoPlay.Bass )\r
- {\r
- this.actWailingBonus.Start( E楽器パート.BASS, this.r現在の歓声Chip.Bass );\r
- pChip.bHit = true; // #25253 2011.5.29 yyagi: Set pChip.bHit=true if autoplay.\r
- }\r
- }\r
- return;\r
- }\r
- pChip.bHit = true;\r
+ t進行描画・チップ・ギターベース・ウェイリング( configIni, ref dTX, ref pChip, E楽器パート.BASS );\r
}\r
protected abstract void t進行描画・チップ・空打ち音設定・ドラム( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip );\r
protected void t進行描画・チップアニメ()\r
protected virtual void t入力処理・ギター()\r
{\r
t入力処理・ギターベース( E楽器パート.GUITAR );\r
-\r
- //#region [ スクロール速度変更 ]\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
- //#endregion\r
-\r
- //if ( !CDTXMania.ConfigIni.bGuitar有効 || !CDTXMania.DTX.bチップがある.Guitar )\r
- //{\r
- // return;\r
- //}\r
- // if ( bIsAutoPlay.Guitar )\r
- // {\r
- // CDTX.CChip chip = this.r次にくるギターChipを更新して返す();\r
- // if ( chip != null )\r
- // {\r
- // if ( ( chip.nチャンネル番号 & 4 ) != 0 )\r
- // {\r
- // this.actLaneFlushGB.Start( 0 );\r
- // this.actRGB.Push( 0 );\r
- // }\r
- // if ( ( chip.nチャンネル番号 & 2 ) != 0 )\r
- // {\r
- // this.actLaneFlushGB.Start( 1 );\r
- // this.actRGB.Push( 1 );\r
- // }\r
- // if ( ( chip.nチャンネル番号 & 1 ) != 0 )\r
- // {\r
- // this.actLaneFlushGB.Start( 2 );\r
- // this.actRGB.Push( 2 );\r
- // }\r
- // }\r
- // }\r
- // else\r
- // {\r
- // int flagR = CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.R ) ? 4 : 0;\r
- // this.t入力メソッド記憶( E楽器パート.GUITAR );\r
- // int flagG = CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.G ) ? 2 : 0;\r
- // this.t入力メソッド記憶( E楽器パート.GUITAR );\r
- // int flagB = CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.B ) ? 1 : 0;\r
- // this.t入力メソッド記憶( E楽器パート.GUITAR );\r
- // int flagRGB = flagR | flagG | flagB;\r
- // if ( flagR != 0 )\r
- // {\r
- // this.actLaneFlushGB.Start( 0 );\r
- // this.actRGB.Push( 0 );\r
- // }\r
- // if ( flagG != 0 )\r
- // {\r
- // this.actLaneFlushGB.Start( 1 );\r
- // this.actRGB.Push( 1 );\r
- // }\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パッド.Pick );\r
- // if ( ( events != null ) && ( events.Count > 0 ) )\r
- // {\r
- // foreach ( STInputEvent event2 in events )\r
- // {\r
- // if ( !event2.b押された )\r
- // {\r
- // continue;\r
- // }\r
- // this.t入力メソッド記憶( E楽器パート.GUITAR );\r
- // long nTime = event2.nTimeStamp - CDTXMania.Timer.n前回リセットした時のシステム時刻;\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 ) == flagRGB ) ) && ( e判定 != E判定.Miss ) )\r
- // {\r
- // if ( ( flagR != 0 ) || ( flagRGB == 0 ) )\r
- // {\r
- // this.actChipFireGB.Start( 0 );\r
- // }\r
- // if ( ( flagG != 0 ) || ( flagRGB == 0 ) )\r
- // {\r
- // this.actChipFireGB.Start( 1 );\r
- // }\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, 0x28, this.nInputAdjustTimeMs.Guitar, 140 );\r
- // if ( item != null )\r
- // {\r
- // this.queWailing.Guitar.Enqueue( item );\r
- // }\r
- // continue;\r
- // }\r
-\r
- // CDTX.CChip chipPicked;\r
- // if ( ( ( chipPicked = this.r現在の空うちギターChip ) != null ) || ( ( chipPicked = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, 0x2f, this.nInputAdjustTimeMs.Guitar ) ) != null ) )\r
- // {\r
- // this.tサウンド再生( chipPicked, CDTXMania.Timer.nシステム時刻, E楽器パート.GUITAR, CDTXMania.ConfigIni.n手動再生音量, CDTXMania.ConfigIni.b演奏音を強調する.Guitar, true );\r
- // }\r
- // if ( !CDTXMania.ConfigIni.bLight.Guitar )\r
- // {\r
- // this.tチップのヒット処理・BadならびにTight時のMiss( E楽器パート.GUITAR );\r
- // }\r
- // }\r
- // }\r
- // List<STInputEvent> list = CDTXMania.Pad.GetEvents( E楽器パート.GUITAR, Eパッド.Wail );\r
- // if ( ( list != null ) && ( list.Count > 0 ) )\r
- // {\r
- // foreach ( STInputEvent eventWailed in list )\r
- // {\r
- // if ( !eventWailed.b押された )\r
- // {\r
- // continue;\r
- // }\r
- // long nTimeWailed = eventWailed.nTimeStamp - CDTXMania.Timer.n前回リセットした時のシステム時刻;\r
- // CDTX.CChip chipWailing;\r
- // while ( ( this.queWailing.Guitar.Count > 0 ) && ( ( chipWailing = this.queWailing.Guitar.Dequeue() ) != null ) )\r
- // {\r
- // if ( ( nTimeWailed - chipWailing.n発声時刻ms ) <= 1000 ) // #24245 2011.1.26 yyagi: 800 -> 1000\r
- // {\r
- // chipWailing.bHit = true;\r
- // this.actWailingBonus.Start( E楽器パート.GUITAR, this.r現在の歓声Chip.Guitar );\r
- // if ( !bIsAutoPlay.Guitar )\r
- // {\r
- // int nCombo = ( this.actCombo.n現在のコンボ数.Guitar < 500 ) ? this.actCombo.n現在のコンボ数.Guitar : 500;\r
- // this.actScore.Set( E楽器パート.GUITAR, this.actScore.Get( E楽器パート.GUITAR ) + ( nCombo * 3000L ) ); // #24245 2011.1.26 yyagi changed DRUMS->GUITAR, add nCombo conditions\r
- // }\r
- // }\r
- // }\r
- // }\r
- // }\r
- // }\r
}\r
protected virtual void t入力処理・ベース()\r
{\r
t入力処理・ギターベース( E楽器パート.BASS );\r
-\r
- //#region [ スクロール速度変更 ]\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
- // CDTXMania.ConfigIni.n譜面スクロール速度.Bass = Math.Max( CDTXMania.ConfigIni.n譜面スクロール速度.Bass - 1, 0 );\r
- //}\r
- //#endregion\r
-\r
- //if ( !CDTXMania.ConfigIni.bGuitar有効 || !CDTXMania.DTX.bチップがある.Bass )\r
- //{\r
- // return;\r
- //}\r
- // if ( bIsAutoPlay.Bass )\r
- // {\r
- // CDTX.CChip chip = this.r次にくるベースChipを更新して返す();\r
- // if ( chip != null )\r
- // {\r
- // if ( ( chip.nチャンネル番号 & 4 ) != 0 )\r
- // {\r
- // this.actLaneFlushGB.Start( 3 );\r
- // this.actRGB.Push( 3 );\r
- // }\r
- // if ( ( chip.nチャンネル番号 & 2 ) != 0 )\r
- // {\r
- // this.actLaneFlushGB.Start( 4 );\r
- // this.actRGB.Push( 4 );\r
- // }\r
- // if ( ( chip.nチャンネル番号 & 1 ) != 0 )\r
- // {\r
- // this.actLaneFlushGB.Start( 5 );\r
- // this.actRGB.Push( 5 );\r
- // }\r
- // }\r
- // }\r
- // else\r
- // {\r
- // int flagR = CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.R ) ? 4 : 0;\r
- // this.t入力メソッド記憶( E楽器パート.BASS );\r
- // int flagG = CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.G ) ? 2 : 0;\r
- // this.t入力メソッド記憶( E楽器パート.BASS );\r
- // int flagB = CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.B ) ? 1 : 0;\r
- // this.t入力メソッド記憶( E楽器パート.BASS );\r
- // int flagRGB = flagR | flagG | flagB;\r
- // if ( flagR != 0 )\r
- // {\r
- // this.actLaneFlushGB.Start( 3 );\r
- // this.actRGB.Push( 3 );\r
- // }\r
- // if ( flagG != 0 )\r
- // {\r
- // this.actLaneFlushGB.Start( 4 );\r
- // this.actRGB.Push( 4 );\r
- // }\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パッド.Pick );\r
- // if ( ( events != null ) && ( events.Count > 0 ) )\r
- // {\r
- // foreach ( STInputEvent event2 in events )\r
- // {\r
- // if ( !event2.b押された )\r
- // {\r
- // continue;\r
- // }\r
- // this.t入力メソッド記憶( E楽器パート.BASS );\r
- // long nTime = event2.nTimeStamp - CDTXMania.Timer.n前回リセットした時のシステム時刻;\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 ) == flagRGB ) ) && ( e判定 != E判定.Miss ) )\r
- // {\r
- // if ( ( flagR != 0 ) || ( flagRGB == 0 ) )\r
- // {\r
- // this.actChipFireGB.Start( 3 );\r
- // }\r
- // if ( ( flagG != 0 ) || ( flagRGB == 0 ) )\r
- // {\r
- // this.actChipFireGB.Start( 4 );\r
- // }\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, this.nInputAdjustTimeMs.Bass, 140 );\r
- // if ( item != null )\r
- // {\r
- // this.queWailing.Bass.Enqueue( item );\r
- // }\r
- // continue;\r
- // }\r
-\r
- // CDTX.CChip chipPicked;\r
- // if ( ( ( chipPicked = this.r現在の空うちベースChip ) != null ) || ( ( chipPicked = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, 0xaf, this.nInputAdjustTimeMs.Bass ) ) != null ) )\r
- // {\r
- // this.tサウンド再生( chipPicked, CDTXMania.Timer.nシステム時刻, E楽器パート.BASS, CDTXMania.ConfigIni.n手動再生音量, CDTXMania.ConfigIni.b演奏音を強調する.Bass, true );\r
- // }\r
- // if ( !CDTXMania.ConfigIni.bLight.Bass )\r
- // {\r
- // this.tチップのヒット処理・BadならびにTight時のMiss( E楽器パート.BASS );\r
- // }\r
- // }\r
- // }\r
- // List<STInputEvent> list = CDTXMania.Pad.GetEvents( E楽器パート.BASS, Eパッド.Wail );\r
- // if ( ( list != null ) && ( list.Count > 0 ) )\r
- // {\r
- // foreach ( STInputEvent eventWailed in list )\r
- // {\r
- // if ( !eventWailed.b押された )\r
- // {\r
- // continue;\r
- // }\r
- // long nTimeWailed = eventWailed.nTimeStamp - CDTXMania.Timer.n前回リセットした時のシステム時刻;\r
- // CDTX.CChip chipWailing;\r
- // while ( ( this.queWailing.Bass.Count > 0 ) && ( ( chipWailing = this.queWailing.Bass.Dequeue() ) != null ) )\r
- // {\r
- // if ( ( nTimeWailed - chipWailing.n発声時刻ms ) <= 1000 ) // #24245 2011.1.26 yyagi: 800 -> 1000\r
- // {\r
- // chipWailing.bHit = true;\r
- // this.actWailingBonus.Start( E楽器パート.BASS, this.r現在の歓声Chip.Bass );\r
- // if ( !bIsAutoPlay.Bass )\r
- // {\r
- // int nCombo = ( this.actCombo.n現在のコンボ数.Bass < 500 ) ? this.actCombo.n現在のコンボ数.Bass : 500;\r
- // this.actScore.Set( E楽器パート.BASS, this.actScore.Get( E楽器パート.BASS ) + ( nCombo * 3000L ) ); // #24245 2011.1.26 yyagi changed DRUMS->BASS, add nCombo conditions\r
- // }\r
- // }\r
- // }\r
- // }\r
- // }\r
- // }\r
}\r
\r
\r
//\r
if ( !pChip.bHit && pChip.b可視 )\r
{\r
- int num10 = 0x19;\r
- int num11 = configIni.bReverse.Guitar ? ( 0x171 - pChip.nバーからの距離dot.Guitar ) : ( 40 + pChip.nバーからの距離dot.Guitar );\r
- int num12 = num11;\r
- int num13 = 0;\r
- if ( ( num12 < ( 0x199 + num10 ) ) && ( num12 > -num10 ) )\r
+ int[] y_base = { 40, 369 }; // ドラム画面かギター画面かで変わる値\r
+ int offset = 0; // ドラム画面かギター画面かで変わる値\r
+\r
+ const int WailingWidth = 20; // 4種全て同じ値\r
+ const int WailingHeight = 50; // 4種全て同じ値\r
+ const int baseTextureOffsetX = 96; // ドラム画面かギター画面かで変わる値\r
+ const int baseTextureOffsetY = 0; // ドラム画面かギター画面かで変わる値\r
+ const int drawX = 139; // 4種全て異なる値\r
+\r
+ const int numA = 25; // 4種全て同じ値;\r
+ int y = configIni.bReverse.Guitar ? ( y_base[ 1 ] - pChip.nバーからの距離dot.Guitar ) : ( y_base[ 0 ] + pChip.nバーからの距離dot.Guitar );\r
+ int numB = y - offset; // 4種全て同じ定義\r
+ int numC = 0; // 4種全て同じ初期値\r
+ const int numD = 409; // ドラム画面かギター画面かで変わる値\r
+ if ( ( numB < ( numD + numA ) ) && ( numB > -numA ) ) // 以下のロジックは4種全て同じ\r
{\r
- int num14 = this.ctWailingチップ模様アニメ.n現在の値;\r
- Rectangle rectangle5 = new Rectangle( 0x60 + ( num14 * 20 ), 0, 20, 50 );\r
- if ( num12 < num10 )\r
+ int c = this.ctWailingチップ模様アニメ.n現在の値;\r
+ Rectangle rect = new Rectangle( baseTextureOffsetX + ( c * WailingWidth ), baseTextureOffsetY, WailingWidth, WailingHeight );\r
+ if ( numB < numA )\r
{\r
- rectangle5.Y += num10 - num12;\r
- rectangle5.Height -= num10 - num12;\r
- num13 = num10 - num12;\r
+ rect.Y += numA - numB;\r
+ rect.Height -= numA - numB;\r
+ numC = numA - numB;\r
}\r
- if ( num12 > ( 0x199 - num10 ) )\r
+ if ( numB > ( numD - numA ) )\r
{\r
- rectangle5.Height -= num12 - ( 0x199 - num10 );\r
+ rect.Height -= numB - ( numD - numA );\r
}\r
- if ( ( rectangle5.Bottom > rectangle5.Top ) && ( this.txチップ != null ) )\r
+ if ( ( rect.Bottom > rect.Top ) && ( this.txチップ != null ) )\r
{\r
- this.txチップ.t2D描画( CDTXMania.app.Device, 0x8b, ( num11 - num10 ) + num13, rectangle5 );\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, drawX, ( y - numA ) + numC, rect );\r
}\r
}\r
}\r
//\r
if ( !pChip.bHit && pChip.b可視 )\r
{\r
- int[] y_base = { 40, 0x171 };\r
+ int[] y_base = { 40, 369 }; // ドラム画面かギター画面かで変わる値\r
+ int offset = 0; // ドラム画面かギター画面かで変わる値\r
+\r
+ const int WailingWidth = 20; // 4種全て同じ値\r
+ const int WailingHeight = 50; // 4種全て同じ値\r
+ const int baseTextureOffsetX = 96; // ドラム画面かギター画面かで変わる値\r
+ const int baseTextureOffsetY = 0; // ドラム画面かギター画面かで変わる値\r
+ const int drawX = 593; // 4種全て異なる値\r
\r
- const int num15 = 0x19;\r
- int y = configIni.bReverse.Bass ? ( y_base[1] - pChip.nバーからの距離dot.Bass ) : ( y_base[0] + pChip.nバーからの距離dot.Bass );\r
- int num17 = y;\r
- int num18 = 0;\r
- if ( ( num17 < ( 0x199 + num15 ) ) && ( num17 > -num15 ) )\r
+ const int numA = 25; // 4種全て同じ値\r
+ int y = configIni.bReverse.Bass ? ( y_base[ 1 ] - pChip.nバーからの距離dot.Bass ) : ( y_base[ 0 ] + pChip.nバーからの距離dot.Bass );\r
+ int numB = y - offset; // 4種全て同じ定義\r
+ int numC = 0; // 4種全て同じ初期値\r
+ const int numD = 409; // ドラム画面かギター画面かで変わる値\r
+ if ( ( numB < ( numD + numA ) ) && ( numB > -numA ) ) // 以下のロジックは4種全て同じ\r
{\r
int c = this.ctWailingチップ模様アニメ.n現在の値;\r
- Rectangle rectangle6 = new Rectangle( 0x60 + ( c * 20 ), 0, 20, 50 );\r
- if ( num17 < num15 )\r
+ Rectangle rect = new Rectangle( baseTextureOffsetX + ( c * WailingWidth ), baseTextureOffsetY, WailingWidth, WailingHeight );\r
+ if ( numB < numA )\r
{\r
- rectangle6.Y += num15 - num17;\r
- rectangle6.Height -= num15 - num17;\r
- num18 = num15 - num17;\r
+ rect.Y += numA - numB;\r
+ rect.Height -= numA - numB;\r
+ numC = numA - numB;\r
}\r
- if ( num17 > ( 0x199 - num15 ) )\r
+ if ( numB > ( numD - numA ) )\r
{\r
- rectangle6.Height -= num17 - ( 0x199 - num15 );\r
+ rect.Height -= numB - ( numD - numA );\r
}\r
- if ( ( rectangle6.Bottom > rectangle6.Top ) && ( this.txチップ != null ) )\r
+ if ( ( rect.Bottom > rect.Top ) && ( this.txチップ != null ) )\r
{\r
- this.txチップ.t2D描画( CDTXMania.app.Device, 0x251, ( y - num15 ) + num18, rectangle6 );\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, drawX, ( y - numA ) + numC, rect );\r
}\r
}\r
}\r
// 後日、以下の部分を何とかCStage演奏画面共通.csに移したい。\r
if ( !pChip.bHit && pChip.b可視 )\r
{\r
- int num14 = 0x19;\r
- int num15 = configIni.bReverse.Guitar ? ( 0x176 - pChip.nバーからの距離dot.Guitar ) : ( 0x5f + pChip.nバーからの距離dot.Guitar );\r
- int num16 = num15 - 0x39;\r
- int num17 = 0;\r
- if ( ( num16 < ( 0x163 + num14 ) ) && ( num16 > -num14 ) )\r
+ int[] y_base = { 0x5f, 0x176 }; // 判定バーのY座標: ドラム画面かギター画面かで変わる値\r
+ int offset = 0x39; // ドラム画面かギター画面かで変わる値\r
+\r
+ const int WailingWidth = 20; // ウェイリングチップ画像の幅: 4種全て同じ値\r
+ const int WailingHeight = 50; // ウェイリングチップ画像の高さ: 4種全て同じ値\r
+ const int baseTextureOffsetX = 268; // テクスチャ画像中のウェイリングチップ画像の位置X: ドラム画面かギター画面かで変わる値\r
+ const int baseTextureOffsetY = 174; // テクスチャ画像中のウェイリングチップ画像の位置Y: ドラム画面かギター画面かで変わる値\r
+ const int drawX = 588; // ウェイリングチップ描画位置X座標: 4種全て異なる値\r
+\r
+ const int numA = 25; // 4種全て同じ値\r
+ int y = configIni.bReverse.Guitar ? ( y_base[1] - pChip.nバーからの距離dot.Guitar ) : ( y_base[0] + pChip.nバーからの距離dot.Guitar );\r
+ int numB = y - offset; // 4種全て同じ定義\r
+ int numC = 0; // 4種全て同じ初期値\r
+ const int numD = 355; // ドラム画面かギター画面かで変わる値\r
+ if ( ( numB < ( numD + numA ) ) && ( numB > -numA ) ) // 以下のロジックは4種全て同じ\r
{\r
- int num18 = this.ctWailingチップ模様アニメ.n現在の値;\r
- Rectangle rectangle5 = new Rectangle( 0x10c + ( num18 * 20 ), 0xae, 20, 50 );\r
- if ( num16 < num14 )\r
+ int c = this.ctWailingチップ模様アニメ.n現在の値;\r
+ Rectangle rect = new Rectangle( baseTextureOffsetX + ( c * WailingWidth ), baseTextureOffsetY, WailingWidth, WailingHeight);\r
+ if ( numB < numA )\r
{\r
- rectangle5.Y += num14 - num16;\r
- rectangle5.Height -= num14 - num16;\r
- num17 = num14 - num16;\r
+ rect.Y += numA - numB;\r
+ rect.Height -= numA - numB;\r
+ numC = numA - numB;\r
}\r
- if ( num16 > ( 0x163 - num14 ) )\r
+ if ( numB > ( numD - numA ) )\r
{\r
- rectangle5.Height -= num16 - ( 0x163 - num14 );\r
+ rect.Height -= numB - ( numD - numA );\r
}\r
- if ( ( rectangle5.Bottom > rectangle5.Top ) && ( this.txチップ != null ) )\r
+ if ( ( rect.Bottom > rect.Top ) && ( this.txチップ != null ) )\r
{\r
- this.txチップ.t2D描画( CDTXMania.app.Device, 0x24c, ( num15 - num14 ) + num17, rectangle5 );\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, drawX, ( y - numA ) + numC, rect );\r
}\r
}\r
}\r
//\r
if ( !pChip.bHit && pChip.b可視 )\r
{\r
- int[] y_base = { 0x5f, 0x176 };\r
-\r
- const int num15 = 0x19;\r
- int y = configIni.bReverse.Bass ? ( y_base[1] - pChip.nバーからの距離dot.Bass ) : ( y_base[0] + pChip.nバーからの距離dot.Bass );\r
- int num17 = y - 0x39;\r
- int num18 = 0;\r
- if ( ( num17 < ( 0x163 + num15 ) ) && ( num17 > -num15 ) )\r
+ int[] y_base = { 0x5f, 0x176 }; // 判定バーのY座標: ドラム画面かギター画面かで変わる値\r
+ int offset = 0x39; // ドラム画面かギター画面かで変わる値\r
+\r
+ const int WailingWidth = 20; // ウェイリングチップ画像の幅: 4種全て同じ値\r
+ const int WailingHeight = 50; // ウェイリングチップ画像の高さ: 4種全て同じ値\r
+ const int baseTextureOffsetX = 268; // テクスチャ画像中のウェイリングチップ画像の位置X: ドラム画面かギター画面かで変わる値\r
+ const int baseTextureOffsetY = 174; // テクスチャ画像中のウェイリングチップ画像の位置Y: ドラム画面かギター画面かで変わる値\r
+ const int drawX = 479; // ウェイリングチップ描画位置X座標: 4種全て異なる値\r
+\r
+ const int numA = 25; // 4種全て同じ値\r
+ int y = configIni.bReverse.Bass ? ( y_base[ 1 ] - pChip.nバーからの距離dot.Bass ) : ( y_base[ 0 ] + pChip.nバーからの距離dot.Bass );\r
+ int numB = y - offset; // 4種全て同じ定義\r
+ int numC = 0; // 4種全て同じ初期値\r
+ const int numD = 355; // ドラム画面かギター画面かで変わる値\r
+ if ( ( numB < ( numD + numA ) ) && ( numB > -numA ) ) // 以下のロジックは4種全て同じ\r
{\r
int c = this.ctWailingチップ模様アニメ.n現在の値;\r
- Rectangle rectangle6 = new Rectangle( 0x10c + ( c * 20 ), 0xae, 20, 50 );\r
- if ( num17 < num15 )\r
+ Rectangle rect = new Rectangle( baseTextureOffsetX + ( c * WailingWidth ), baseTextureOffsetY, WailingWidth, WailingHeight );\r
+ if ( numB < numA )\r
{\r
- rectangle6.Y += num15 - num17;\r
- rectangle6.Height -= num15 - num17;\r
- num18 = num15 - num17;\r
+ rect.Y += numA - numB;\r
+ rect.Height -= numA - numB;\r
+ numC = numA - numB;\r
}\r
- if ( num17 > ( 0x163 - num15 ) )\r
+ if ( numB > ( numD - numA ) )\r
{\r
- rectangle6.Height -= num17 - ( 0x163 - num15 );\r
+ rect.Height -= numB - ( numD - numA );\r
}\r
- if ( ( rectangle6.Bottom > rectangle6.Top ) && ( this.txチップ != null ) )\r
+ if ( ( rect.Bottom > rect.Top ) && ( this.txチップ != null ) )\r
{\r
- this.txチップ.t2D描画( CDTXMania.app.Device, 0x1df, ( y - num15 ) + num18, rectangle6 );\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, drawX, ( y - numA ) + numC, rect );\r
}\r
}\r
}\r