OSDN Git Service

続5・演奏画面のリファクタ。ドラムとギター画面で共通で使用しているメソッドを1つにまとめる作業。ほぼ完了。まだ少し残ってますが、今後の修正に支障はないと思いますので...
authoryyagi <yyagi@16f42ceb-6dc6-49c8-ba94-f2d53467949d>
Sun, 20 Feb 2011 16:11:29 +0000 (16:11 +0000)
committeryyagi <yyagi@16f42ceb-6dc6-49c8-ba94-f2d53467949d>
Sun, 20 Feb 2011 16:11:29 +0000 (16:11 +0000)
git-svn-id: http://svn.osdn.jp/svnroot/dtxmania/trunk@123 16f42ceb-6dc6-49c8-ba94-f2d53467949d

DTXManiaプロジェクト/コード/ステージ/07.演奏/CAct演奏Danger共通.cs [new file with mode: 0644]
DTXManiaプロジェクト/コード/ステージ/07.演奏/CStage演奏画面共通.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/ギター画面/CStage演奏ギター画面.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/ドラム画面/CStage演奏ドラム画面.cs

diff --git a/DTXManiaプロジェクト/コード/ステージ/07.演奏/CAct演奏Danger共通.cs b/DTXManiaプロジェクト/コード/ステージ/07.演奏/CAct演奏Danger共通.cs
new file mode 100644 (file)
index 0000000..5b2ed47
--- /dev/null
@@ -0,0 +1,50 @@
+using System;\r
+using System.Collections.Generic;\r
+using System.Text;\r
+using System.Drawing;\r
+using FDK;\r
+\r
+namespace DTXMania\r
+{\r
+       internal abstract class CAct演奏Danger共通 : CActivity\r
+       {\r
+               // コンストラクタ\r
+\r
+               public CAct演奏Danger共通()\r
+               {\r
+                       base.b活性化してない = true;\r
+               }\r
+\r
+\r
+               // CActivity 実装\r
+\r
+               public override void On活性化()\r
+               {\r
+                       this.bDanger中 = false;\r
+                       this.ct移動用 = new CCounter();\r
+                       this.ct透明度用 = new CCounter();\r
+                       base.On活性化();\r
+               }\r
+               public override void On非活性化()\r
+               {\r
+                       this.ct移動用 = null;\r
+                       this.ct透明度用 = null;\r
+                       base.On非活性化();\r
+               }\r
+\r
+               public abstract int t進行描画( bool bDangerである );\r
+\r
+\r
+\r
+               // その他\r
+\r
+               #region [ private ]\r
+               //-----------------\r
+               protected bool bDanger中;\r
+               protected CCounter ct移動用;\r
+               protected CCounter ct透明度用;\r
+               //-----------------\r
+               #endregion\r
+       \r
+       }\r
+}\r
index ecb4106..8232259 100644 (file)
@@ -1182,7 +1182,13 @@ namespace DTXMania
                                CStage.Eフェーズ eフェーズid1 = base.eフェーズID;\r
                        }\r
                }\r
-\r
+               protected void t進行描画・RGBボタン()\r
+               {\r
+                       if ( CDTXMania.ConfigIni.eDark != Eダークモード.FULL )\r
+                       {\r
+                               this.actRGB.On進行描画();\r
+                       }\r
+               }\r
                protected void t進行描画・STAGEFAILED()\r
                {\r
                        if ( ( ( base.eフェーズID == CStage.Eフェーズ.演奏_STAGE_FAILED ) || ( base.eフェーズID == CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) ) && ( ( this.actStageFailed.On進行描画() != 0 ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) ) )\r
@@ -1253,7 +1259,413 @@ namespace DTXMania
                {\r
                        this.actStatusPanels.On進行描画();\r
                }\r
+               protected bool t進行描画・チップ( E楽器パート ePlayMode )\r
+               {\r
+                       if ( ( base.eフェーズID == CStage.Eフェーズ.演奏_STAGE_FAILED ) || ( base.eフェーズID == CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) )\r
+                       {\r
+                               return true;\r
+                       }\r
+                       if ( ( this.n現在のトップChip == -1 ) || ( this.n現在のトップChip >= CDTXMania.DTX.listChip.Count ) )\r
+                       {\r
+                               return true;\r
+                       }\r
+                       int nCurrentTopChip = this.n現在のトップChip;\r
+                       if ( nCurrentTopChip == -1 )\r
+                       {\r
+                               return true;\r
+                       }\r
+\r
+                       //double speed = 264.0; // BPM150の時の1小節の長さ[dot]\r
+                       double speed = 234.0;   // BPM150の時の1小節の長さ[dot]\r
+\r
+                       double ScrollSpeedDrums = ( this.act譜面スクロール速度.db現在の譜面スクロール速度.Drums + 1.0 ) * 0.5 * 37.5 * speed / 60000.0;\r
+                       double ScrollSpeedGuitar = ( this.act譜面スクロール速度.db現在の譜面スクロール速度.Guitar + 1.0 ) * 0.5 * 0.5 * 37.5 * speed / 60000.0;\r
+                       double ScrollSpeedBass = ( this.act譜面スクロール速度.db現在の譜面スクロール速度.Bass + 1.0 ) * 0.5 * 0.5 * 37.5 * speed / 60000.0;\r
+\r
+                       CDTX dTX = CDTXMania.DTX;\r
+                       CConfigIni configIni = CDTXMania.ConfigIni;\r
+                       while ( nCurrentTopChip < dTX.listChip.Count )\r
+                       {\r
+                               CDTX.CChip pChip = dTX.listChip[ nCurrentTopChip ];\r
+                               pChip.nバーからの距離dot.Drums = (int) ( ( pChip.n発声時刻ms - CDTXMania.Timer.n現在時刻 ) * ScrollSpeedDrums );\r
+                               pChip.nバーからの距離dot.Guitar = (int) ( ( pChip.n発声時刻ms - CDTXMania.Timer.n現在時刻 ) * ScrollSpeedGuitar );\r
+                               pChip.nバーからの距離dot.Bass = (int) ( ( pChip.n発声時刻ms - CDTXMania.Timer.n現在時刻 ) * ScrollSpeedBass );\r
+                               if ( Math.Min( Math.Min( pChip.nバーからの距離dot.Drums, pChip.nバーからの距離dot.Guitar ), pChip.nバーからの距離dot.Bass ) > 450 )\r
+                               {\r
+                                       break;\r
+                               }\r
+                               if ( ( ( nCurrentTopChip == this.n現在のトップChip ) && ( pChip.nバーからの距離dot.Drums < -65 ) ) && pChip.bHit )\r
+                               {\r
+                                       this.n現在のトップChip++;\r
+                                       nCurrentTopChip = this.n現在のトップChip;\r
+                                       continue;\r
+                               }\r
+\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
+                                               ( ( pChip.e楽器パート == E楽器パート.BASS ) && CDTXMania.ConfigIni.bAutoPlay.Bass )\r
+                                 )\r
+                               //                              if ((pChip.e楽器パート == E楽器パート.DRUMS) && CDTXMania.ConfigIni.bAutoPlay[this.nチャンネル0Atoレーン07[pChip.nチャンネル番号 - 0x11]])\r
+                               {\r
+                                       bPChipIsAutoPlay = true;\r
+                               }\r
+\r
+                               int nInputAdjustTime = 0;\r
+                               if ( bPChipIsAutoPlay )\r
+                               {\r
+                                       //nInputAdjustTime = 0;\r
+                               }\r
+                               else if ( pChip.e楽器パート == E楽器パート.UNKNOWN )\r
+                               {\r
+                                       //nInputAdjustTime = 0;\r
+                               }\r
+                               else\r
+                               {\r
+                                       nInputAdjustTime = this.nInputAdjustTimeMs[ (int) pChip.e楽器パート ];\r
+                               }\r
+\r
+                               if ( ( ( pChip.e楽器パート != E楽器パート.UNKNOWN ) && !pChip.bHit ) &&\r
+                                       ( ( pChip.nバーからの距離dot.Drums < 0 ) && ( this.e指定時刻からChipのJUDGEを返す( CDTXMania.Timer.n現在時刻, pChip, nInputAdjustTime ) == E判定.Miss ) ) )\r
+                               {\r
+                                       this.tチップのヒット処理( CDTXMania.Timer.n現在時刻, pChip );\r
+                               }\r
+                               switch ( pChip.nチャンネル番号 )\r
+                               {\r
+                                       case 0x01:      // BGM\r
+                                               if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+                                               {\r
+                                                       pChip.bHit = true;\r
+                                                       if ( configIni.bBGM音を発声する )\r
+                                                       {\r
+                                                               dTX.tチップの再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, 10, dTX.nモニタを考慮した音量( E楽器パート.UNKNOWN ) );\r
+                                                       }\r
+                                               }\r
+                                               break;\r
+\r
+                                       case 0x03:      // BPM変更\r
+                                               if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+                                               {\r
+                                                       pChip.bHit = true;\r
+                                                       this.actPlayInfo.dbBPM = ( pChip.n整数値 * ( ( (double) configIni.n演奏速度 ) / 20.0 ) ) + dTX.BASEBPM;\r
+                                               }\r
+                                               break;\r
+\r
+                                       case 0x04:      // レイヤーBGA\r
+                                       case 0x07:\r
+                                       case 0x55:\r
+                                       case 0x56:\r
+                                       case 0x57:\r
+                                       case 0x58:\r
+                                       case 0x59:\r
+                                       case 0x60:\r
+                                               if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+                                               {\r
+                                                       pChip.bHit = true;\r
+                                                       if ( configIni.bBGA有効 )\r
+                                                       {\r
+                                                               switch ( pChip.eBGA種別 )\r
+                                                               {\r
+                                                                       case EBGA種別.BMPTEX:\r
+                                                                               if ( pChip.rBMPTEX != null )\r
+                                                                               {\r
+                                                                                       this.actBGA.Start( pChip.nチャンネル番号, null, pChip.rBMPTEX, pChip.rBMPTEX.tx画像.sz画像サイズ.Width, pChip.rBMPTEX.tx画像.sz画像サイズ.Height, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 );\r
+                                                                               }\r
+                                                                               break;\r
+\r
+                                                                       case EBGA種別.BGA:\r
+                                                                               if ( ( pChip.rBGA != null ) && ( ( pChip.rBMP != null ) || ( pChip.rBMPTEX != null ) ) )\r
+                                                                               {\r
+                                                                                       this.actBGA.Start( pChip.nチャンネル番号, pChip.rBMP, pChip.rBMPTEX, pChip.rBGA.pt画像側右下座標.X - pChip.rBGA.pt画像側左上座標.X, pChip.rBGA.pt画像側右下座標.Y - pChip.rBGA.pt画像側左上座標.Y, 0, 0, pChip.rBGA.pt画像側左上座標.X, pChip.rBGA.pt画像側左上座標.Y, 0, 0, pChip.rBGA.pt表示座標.X, pChip.rBGA.pt表示座標.Y, 0, 0, 0 );\r
+                                                                               }\r
+                                                                               break;\r
+\r
+                                                                       case EBGA種別.BGAPAN:\r
+                                                                               if ( ( pChip.rBGAPan != null ) && ( ( pChip.rBMP != null ) || ( pChip.rBMPTEX != null ) ) )\r
+                                                                               {\r
+                                                                                       this.actBGA.Start( pChip.nチャンネル番号, pChip.rBMP, pChip.rBMPTEX, pChip.rBGAPan.sz開始サイズ.Width, pChip.rBGAPan.sz開始サイズ.Height, pChip.rBGAPan.sz終了サイズ.Width, pChip.rBGAPan.sz終了サイズ.Height, pChip.rBGAPan.pt画像側開始位置.X, pChip.rBGAPan.pt画像側開始位置.Y, pChip.rBGAPan.pt画像側終了位置.X, pChip.rBGAPan.pt画像側終了位置.Y, pChip.rBGAPan.pt表示側開始位置.X, pChip.rBGAPan.pt表示側開始位置.Y, pChip.rBGAPan.pt表示側終了位置.X, pChip.rBGAPan.pt表示側終了位置.Y, pChip.n総移動時間 );\r
+                                                                               }\r
+                                                                               break;\r
+\r
+                                                                       default:\r
+                                                                               if ( pChip.rBMP != null )\r
+                                                                               {\r
+                                                                                       this.actBGA.Start( pChip.nチャンネル番号, pChip.rBMP, null, pChip.rBMP.n幅, pChip.rBMP.n高さ, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 );\r
+                                                                               }\r
+                                                                               break;\r
+                                                               }\r
+                                                       }\r
+                                               }\r
+                                               break;\r
 \r
+                                       case 0x08:      // BPM変更(拡張)\r
+                                               if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+                                               {\r
+                                                       pChip.bHit = true;\r
+                                                       if ( dTX.listBPM.ContainsKey( pChip.n整数値・内部番号 ) )\r
+                                                       {\r
+                                                               this.actPlayInfo.dbBPM = ( dTX.listBPM[ pChip.n整数値・内部番号 ].dbBPM値 * ( ( (double) configIni.n演奏速度 ) / 20.0 ) ) + dTX.BASEBPM;\r
+                                                       }\r
+                                               }\r
+                                               break;\r
+\r
+                                       case 0x11:      // ドラム演奏\r
+                                       case 0x12:\r
+                                       case 0x13:\r
+                                       case 0x14:\r
+                                       case 0x15:\r
+                                       case 0x16:\r
+                                       case 0x17:\r
+                                       case 0x18:\r
+                                       case 0x19:\r
+                                       case 0x1a:\r
+                                               this.t進行描画・チップ・ドラムス( configIni, ref dTX, ref pChip );\r
+                                               break;\r
+\r
+                                       case 0x1f:      // フィルインサウンド(ドラム)\r
+                                               if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+                                               {\r
+                                                       pChip.bHit = true;\r
+                                                       this.r現在の歓声Chip.Drums = pChip;\r
+                                               }\r
+                                               break;\r
+\r
+                                       case 0x20:      // ギター演奏\r
+                                       case 0x21:\r
+                                       case 0x22:\r
+                                       case 0x23:\r
+                                       case 0x24:\r
+                                       case 0x25:\r
+                                       case 0x26:\r
+                                       case 0x27:\r
+                                               this.t進行描画・チップ・ギター( configIni, ref dTX, ref pChip );\r
+                                               break;\r
+\r
+                                       case 0x28:      // ウェイリング(ギター)\r
+                                               this.t進行描画・チップ・ギター・ウェイリング( configIni, ref dTX, ref pChip );\r
+                                               break;\r
+\r
+                                       case 0x2f:      // ウェイリングサウンド(ギター)\r
+                                               if ( !pChip.bHit && ( pChip.nバーからの距離dot.Guitar < 0 ) )\r
+                                               {\r
+                                                       pChip.bHit = true;\r
+                                                       this.r現在の歓声Chip.Guitar = pChip;\r
+                                               }\r
+                                               break;\r
+\r
+                                       case 0x31:      // 不可視チップ配置(ドラム)\r
+                                       case 0x32:\r
+                                       case 0x33:\r
+                                       case 0x34:\r
+                                       case 0x35:\r
+                                       case 0x36:\r
+                                       case 0x37:\r
+                                       case 0x38:\r
+                                       case 0x39:\r
+                                       case 0x3a:\r
+                                               if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+                                               {\r
+                                                       pChip.bHit = true;\r
+                                               }\r
+                                               break;\r
+\r
+                                       case 0x50:      // 小節線\r
+                                               {\r
+                                                       this.t進行描画・チップ・小節線( configIni, ref dTX, ref pChip );\r
+                                                       break;\r
+                                               }\r
+                                       case 0x51:      // 拍線\r
+                                               if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+                                               {\r
+                                                       pChip.bHit = true;\r
+                                               }\r
+                                               if ( ( ePlayMode == E楽器パート.DRUMS ) && ( configIni.eDark != Eダークモード.FULL ) && pChip.b可視 && ( this.txチップ != null ) )\r
+                                               {\r
+                                                       this.txチップ.t2D描画( CDTXMania.app.Device, 0x23, configIni.bReverse.Drums ? ( ( 0x38 + pChip.nバーからの距離dot.Drums ) - 1 ) : ( ( 0x1a6 - pChip.nバーからの距離dot.Drums ) - 1 ), new Rectangle( 0, 0x1bf, 0x128, 1 ) );\r
+                                               }\r
+                                               break;\r
+\r
+                                       case 0x52:      // MIDIコーラス\r
+                                               if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+                                               {\r
+                                                       pChip.bHit = true;\r
+                                               }\r
+                                               break;\r
+\r
+                                       case 0x53:      // フィルイン\r
+                                               this.t進行描画・チップ・フィルイン( configIni, ref dTX, ref pChip );\r
+                                               break;\r
+\r
+                                       case 0x54:      // 動画再生\r
+                                               if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+                                               {\r
+                                                       pChip.bHit = true;\r
+                                                       if ( configIni.bAVI有効 )\r
+                                                       {\r
+                                                               switch ( pChip.eAVI種別 )\r
+                                                               {\r
+                                                                       case EAVI種別.AVI:\r
+                                                                               if ( pChip.rAVI != null )\r
+                                                                               {\r
+                                                                                       this.actAVI.Start( pChip.nチャンネル番号, pChip.rAVI, 0x116, 0x163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, pChip.n発声時刻ms );\r
+                                                                               }\r
+                                                                               break;\r
+\r
+                                                                       case EAVI種別.AVIPAN:\r
+                                                                               if ( pChip.rAVIPan != null )\r
+                                                                               {\r
+                                                                                       this.actAVI.Start( pChip.nチャンネル番号, pChip.rAVI, pChip.rAVIPan.sz開始サイズ.Width, pChip.rAVIPan.sz開始サイズ.Height, pChip.rAVIPan.sz終了サイズ.Width, pChip.rAVIPan.sz終了サイズ.Height, pChip.rAVIPan.pt動画側開始位置.X, pChip.rAVIPan.pt動画側開始位置.Y, pChip.rAVIPan.pt動画側終了位置.X, pChip.rAVIPan.pt動画側終了位置.Y, pChip.rAVIPan.pt表示側開始位置.X, pChip.rAVIPan.pt表示側開始位置.Y, pChip.rAVIPan.pt表示側終了位置.X, pChip.rAVIPan.pt表示側終了位置.Y, pChip.n総移動時間, pChip.n発声時刻ms );\r
+                                                                               }\r
+                                                                               break;\r
+                                                               }\r
+                                                       }\r
+                                               }\r
+                                               break;\r
+\r
+                                       case 0x61:\r
+                                       case 0x62:\r
+                                       case 0x63:\r
+                                       case 0x64:      // 自動再生(BGM, SE)\r
+                                       case 0x65:\r
+                                       case 0x66:\r
+                                       case 0x67:\r
+                                       case 0x68:\r
+                                       case 0x69:\r
+                                       case 0x70:\r
+                                       case 0x71:\r
+                                       case 0x72:\r
+                                       case 0x73:\r
+                                       case 0x74:\r
+                                       case 0x75:\r
+                                       case 0x76:\r
+                                       case 0x77:\r
+                                       case 0x78:\r
+                                       case 0x79:\r
+                                       case 0x80:\r
+                                       case 0x81:\r
+                                       case 0x82:\r
+                                       case 0x83:\r
+                                       case 0x84:\r
+                                       case 0x85:\r
+                                       case 0x86:\r
+                                       case 0x87:\r
+                                       case 0x88:\r
+                                       case 0x89:\r
+                                       case 0x90:\r
+                                       case 0x91:\r
+                                       case 0x92:\r
+                                               if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+                                               {\r
+                                                       pChip.bHit = true;\r
+                                                       if ( configIni.bBGM音を発声する )\r
+                                                       {\r
+                                                               dTX.tWavの再生停止( this.n最後に再生したBGMの実WAV番号[ pChip.nチャンネル番号 - 0x61 ] );\r
+                                                               dTX.tチップの再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, 10, dTX.nモニタを考慮した音量( E楽器パート.UNKNOWN ) );\r
+                                                               this.n最後に再生したBGMの実WAV番号[ pChip.nチャンネル番号 - 0x61 ] = pChip.n整数値・内部番号;\r
+                                                       }\r
+                                               }\r
+                                               break;\r
+\r
+                                       case 0xa0:      // ベース演奏\r
+                                       case 0xa1:\r
+                                       case 0xa2:\r
+                                       case 0xa3:\r
+                                       case 0xa4:\r
+                                       case 0xa5:\r
+                                       case 0xa6:\r
+                                       case 0xa7:\r
+                                               this.t進行描画・チップ・ベース( configIni, ref dTX, ref pChip );\r
+                                               break;\r
+\r
+                                       case 0xa8:      // ウェイリング(ベース)\r
+                                               this.t進行描画・チップ・ベース・ウェイリング( configIni, ref dTX, ref pChip );\r
+                                               break;\r
+\r
+                                       case 0xaf:      // ウェイリングサウンド(ベース)\r
+                                               if ( !pChip.bHit && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
+                                               {\r
+                                                       pChip.bHit = true;\r
+                                                       this.r現在の歓声Chip.Bass = pChip;\r
+                                               }\r
+                                               break;\r
+\r
+                                       case 0xb1:      // 空打ち音設定(ドラム)\r
+                                       case 0xb2:\r
+                                       case 0xb3:\r
+                                       case 0xb4:\r
+                                       case 0xb5:\r
+                                       case 0xb6:\r
+                                       case 0xb7:\r
+                                       case 0xb8:\r
+                                       case 0xb9:\r
+                                       case 0xbc:\r
+                                               this.t進行描画・チップ・空打ち音設定・ドラム( configIni, ref dTX, ref pChip );\r
+                                               break;\r
+\r
+                                       case 0xba:      // 空打ち音設定(ギター)\r
+                                               if ( !pChip.bHit && ( pChip.nバーからの距離dot.Guitar < 0 ) )\r
+                                               {\r
+                                                       pChip.bHit = true;\r
+                                                       this.r現在の空うちギターChip = pChip;\r
+                                                       pChip.nチャンネル番号 = 0x20;\r
+                                               }\r
+                                               break;\r
+\r
+                                       case 0xbb:      // 空打ち音設定(ベース)\r
+                                               if ( !pChip.bHit && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
+                                               {\r
+                                                       pChip.bHit = true;\r
+                                                       this.r現在の空うちベースChip = pChip;\r
+                                                       pChip.nチャンネル番号 = 0xA0;\r
+                                               }\r
+                                               break;\r
+\r
+                                       case 0xc4:\r
+                                       case 0xc7:\r
+                                       case 0xd5:\r
+                                       case 0xd6:      // BGA画像入れ替え\r
+                                       case 0xd7:\r
+                                       case 0xd8:\r
+                                       case 0xd9:\r
+                                       case 0xe0:\r
+                                               if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+                                               {\r
+                                                       pChip.bHit = true;\r
+                                                       if ( ( configIni.bBGA有効 && ( pChip.eBGA種別 == EBGA種別.BMP ) ) || ( pChip.eBGA種別 == EBGA種別.BMPTEX ) )\r
+                                                       {\r
+                                                               for ( int i = 0; i < 8; i++ )\r
+                                                               {\r
+                                                                       if ( this.nBGAスコープチャンネルマップ[ 0, i ] == pChip.nチャンネル番号 )\r
+                                                                       {\r
+                                                                               this.actBGA.ChangeScope( this.nBGAスコープチャンネルマップ[ 1, i ], pChip.rBMP, pChip.rBMPTEX );\r
+                                                                       }\r
+                                                               }\r
+                                                       }\r
+                                               }\r
+                                               break;\r
+\r
+                                       default:\r
+                                               if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+                                               {\r
+                                                       pChip.bHit = true;\r
+                                               }\r
+                                               break;\r
+                               }\r
+\r
+                               nCurrentTopChip++;\r
+                       }\r
+                       return false;\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 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 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 void t進行描画・チップアニメ()\r
                {\r
                        for ( int i = 0; i < 3; i++ )                   // drums: 0-3 gt/bs: 1-3\r
@@ -1370,7 +1782,7 @@ namespace DTXMania
                        this.act譜面スクロール速度.On進行描画();\r
                }\r
 \r
-               protected abstract void t背景テクスチャの生成();      // overwrited by a successor\r
+               protected abstract void t背景テクスチャの生成();\r
                protected void t背景テクスチャの生成( string DefaultBgFilename, Rectangle bgrect, string bgfilename )\r
                {\r
                        Bitmap image = null;\r
index 2b31d22..7eecefd 100644 (file)
@@ -290,7 +290,7 @@ namespace DTXMania
                                this.t進行描画・WailingBonus();\r
                                this.t進行描画・譜面スクロール速度();\r
                                this.t進行描画・チップアニメ();\r
-                               flag = this.t進行描画・チップ();\r
+                               flag = this.t進行描画・チップ(E楽器パート.GUITAR);\r
                                this.t進行描画・演奏情報();\r
                                this.t進行描画・Wailing枠();\r
                                this.t進行描画・チップファイアGB();\r
@@ -1190,7 +1190,7 @@ namespace DTXMania
                {\r
                    base.t進行描画・BGA( 0xb5, 50 );\r
                }\r
-               protected override void t進行描画・DANGER()\r
+               protected override void t進行描画・DANGER()                        // 現在、ギター画面でのDANGER実装は無し\r
                {\r
                }\r
                ////private void t進行描画・MIDIBGM()\r
@@ -1200,13 +1200,13 @@ namespace DTXMania
                ////        CStage.Eフェーズ eフェーズid1 = base.eフェーズID;\r
                ////    }\r
                ////}\r
-               private void t進行描画・RGBボタン()\r
-               {\r
-                   if( CDTXMania.ConfigIni.eDark != Eダークモード.FULL )\r
-                   {\r
-                       this.actRGB.On進行描画();\r
-                   }\r
-               }\r
+               //private void t進行描画・RGBボタン()\r
+               //{\r
+               //    if( CDTXMania.ConfigIni.eDark != Eダークモード.FULL )\r
+               //    {\r
+               //        this.actRGB.On進行描画();\r
+               //    }\r
+               //}\r
                //private void t進行描画・STAGEFAILED()\r
                //{\r
                //    if( ( ( base.eフェーズID == CStage.Eフェーズ.演奏_STAGE_FAILED ) || ( base.eフェーズID == CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) ) && ( ( this.actStageFailed.On進行描画() != 0 ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) ) )\r
@@ -1277,697 +1277,415 @@ namespace DTXMania
                //{\r
                //    this.actStatusPanels.On進行描画();\r
                //}\r
-               private bool t進行描画・チップ()\r
-               {\r
-                       if( ( base.eフェーズID == CStage.Eフェーズ.演奏_STAGE_FAILED ) || ( base.eフェーズID == CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) )\r
-                       {\r
-                               return true;\r
-                       }\r
-                       if( ( this.n現在のトップChip == -1 ) || ( this.n現在のトップChip >= CDTXMania.DTX.listChip.Count ) )\r
-                       {\r
-                               return true;\r
-                       }\r
-                       int nCurrentTopChip = this.n現在のトップChip;\r
-                       if( nCurrentTopChip == -1 )\r
-                       {\r
-                               return true;\r
-                       }\r
-\r
-                       //double speed = 264.0; // BPM150の時の1小節の長さ[dot]\r
-                       double speed = 234.0;   // BPM150の時の1小節の長さ[dot]\r
-\r
-                       double ScrollSpeedDrums  = ( this.act譜面スクロール速度.db現在の譜面スクロール速度.Drums  + 1.0 ) * 0.5 *       37.5 * speed / 60000.0;\r
-                       double ScrollSpeedGuitar = ( this.act譜面スクロール速度.db現在の譜面スクロール速度.Guitar + 1.0 ) * 0.5 * 0.5 * 37.5 * speed / 60000.0;\r
-                       double ScrollSpeedBass   = ( this.act譜面スクロール速度.db現在の譜面スクロール速度.Bass   + 1.0 ) * 0.5 * 0.5 * 37.5 * speed / 60000.0;\r
-\r
-                       CDTX dTX = CDTXMania.DTX;\r
-                       CConfigIni configIni = CDTXMania.ConfigIni;\r
-                       while( nCurrentTopChip < dTX.listChip.Count )\r
-                       {\r
-                               CDTX.CChip pChip = dTX.listChip[ nCurrentTopChip ];\r
-                               pChip.nバーからの距離dot.Drums = (int) ( ( pChip.n発声時刻ms - CDTXMania.Timer.n現在時刻 ) * ScrollSpeedDrums );\r
-                               pChip.nバーからの距離dot.Guitar = (int) ( ( pChip.n発声時刻ms - CDTXMania.Timer.n現在時刻 ) * ScrollSpeedGuitar );\r
-                               pChip.nバーからの距離dot.Bass = (int) ( ( pChip.n発声時刻ms - CDTXMania.Timer.n現在時刻 ) * ScrollSpeedBass );\r
-                               if( Math.Min( Math.Min( pChip.nバーからの距離dot.Drums, pChip.nバーからの距離dot.Guitar ), pChip.nバーからの距離dot.Bass ) > 450 )\r
-                               {\r
-                                       break;\r
-                               }\r
-                               if( ( ( nCurrentTopChip == this.n現在のトップChip ) && ( pChip.nバーからの距離dot.Drums < -65 ) ) && pChip.bHit )\r
-                               {\r
-                                       this.n現在のトップChip++;\r
-                                       nCurrentTopChip = this.n現在のトップChip;\r
-                                       continue;\r
-                               }\r
-\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
-                                               ((pChip.e楽器パート == E楽器パート.BASS) && CDTXMania.ConfigIni.bAutoPlay.Bass)\r
-                                 )\r
-//                             if ((pChip.e楽器パート == E楽器パート.DRUMS) && CDTXMania.ConfigIni.bAutoPlay[this.nチャンネル0Atoレーン07[pChip.nチャンネル番号 - 0x11]])\r
-                               {\r
-                                       bPChipIsAutoPlay = true;\r
-                               }\r
-\r
-                               int nInputAdjustTime = 0;\r
-                               if (bPChipIsAutoPlay)\r
-                               {\r
-                                       //nInputAdjustTime = 0;\r
-                               }\r
-                               else if (pChip.e楽器パート == E楽器パート.UNKNOWN)\r
-                               {\r
-                                       //nInputAdjustTime = 0;\r
-                               }\r
-                               else\r
-                               {\r
-                                       nInputAdjustTime = this.nInputAdjustTimeMs[(int)pChip.e楽器パート];\r
-                               }\r
-\r
-                               if( ( ( pChip.e楽器パート != E楽器パート.UNKNOWN ) && !pChip.bHit ) &&\r
-                                       ( ( pChip.nバーからの距離dot.Drums < 0 ) && ( this.e指定時刻からChipのJUDGEを返す( CDTXMania.Timer.n現在時刻, pChip, nInputAdjustTime ) == E判定.Miss ) ) )\r
-                               {\r
-                                       this.tチップのヒット処理( CDTXMania.Timer.n現在時刻, pChip );\r
-                               }\r
-                               switch( pChip.nチャンネル番号 )\r
-                               {\r
-                                       case 0x01:      // BGM\r
-                                               if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
-                                               {\r
-                                                       pChip.bHit = true;\r
-                                                       if( configIni.bBGM音を発声する )\r
-                                                       {\r
-                                                               dTX.tチップの再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, 10, dTX.nモニタを考慮した音量( E楽器パート.UNKNOWN ) );\r
-                                                       }\r
-                                               }\r
-                                               break;\r
+//        private bool t進行描画・チップ(E楽器パート ePlayMode)\r
+//        {\r
+//            if( ( base.eフェーズID == CStage.Eフェーズ.演奏_STAGE_FAILED ) || ( base.eフェーズID == CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) )\r
+//            {\r
+//                return true;\r
+//            }\r
+//            if( ( this.n現在のトップChip == -1 ) || ( this.n現在のトップChip >= CDTXMania.DTX.listChip.Count ) )\r
+//            {\r
+//                return true;\r
+//            }\r
+//            int nCurrentTopChip = this.n現在のトップChip;\r
+//            if( nCurrentTopChip == -1 )\r
+//            {\r
+//                return true;\r
+//            }\r
 \r
-                                       case 0x03:      // BPM変更\r
-                                               if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
-                                               {\r
-                                                       pChip.bHit = true;\r
-                                                       this.actPlayInfo.dbBPM = ( pChip.n整数値 * ( ( (double) configIni.n演奏速度 ) / 20.0 ) ) + dTX.BASEBPM;\r
-                                               }\r
-                                               break;\r
-\r
-                                       case 0x04:      // レイヤーBGA\r
-                                       case 0x07:\r
-                                       case 0x55:\r
-                                       case 0x56:\r
-                                       case 0x57:\r
-                                       case 0x58:\r
-                                       case 0x59:\r
-                                       case 0x60:\r
-                                               if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
-                                               {\r
-                                                       pChip.bHit = true;\r
-                                                       if( configIni.bBGA有効 )\r
-                                                       {\r
-                                                               switch( pChip.eBGA種別 )\r
-                                                               {\r
-                                                                       case EBGA種別.BMPTEX:\r
-                                                                               if( pChip.rBMPTEX != null )\r
-                                                                               {\r
-                                                                                       this.actBGA.Start( pChip.nチャンネル番号, null, pChip.rBMPTEX, pChip.rBMPTEX.tx画像.sz画像サイズ.Width, pChip.rBMPTEX.tx画像.sz画像サイズ.Height, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 );\r
-                                                                               }\r
-                                                                               break;\r
-\r
-                                                                       case EBGA種別.BGA:\r
-                                                                               if( ( pChip.rBGA != null ) && ( ( pChip.rBMP != null ) || ( pChip.rBMPTEX != null ) ) )\r
-                                                                               {\r
-                                                                                       this.actBGA.Start( pChip.nチャンネル番号, pChip.rBMP, pChip.rBMPTEX, pChip.rBGA.pt画像側右下座標.X - pChip.rBGA.pt画像側左上座標.X, pChip.rBGA.pt画像側右下座標.Y - pChip.rBGA.pt画像側左上座標.Y, 0, 0, pChip.rBGA.pt画像側左上座標.X, pChip.rBGA.pt画像側左上座標.Y, 0, 0, pChip.rBGA.pt表示座標.X, pChip.rBGA.pt表示座標.Y, 0, 0, 0 );\r
-                                                                               }\r
-                                                                               break;\r
-\r
-                                                                       case EBGA種別.BGAPAN:\r
-                                                                               if( ( pChip.rBGAPan != null ) && ( ( pChip.rBMP != null ) || ( pChip.rBMPTEX != null ) ) )\r
-                                                                               {\r
-                                                                                       this.actBGA.Start( pChip.nチャンネル番号, pChip.rBMP, pChip.rBMPTEX, pChip.rBGAPan.sz開始サイズ.Width, pChip.rBGAPan.sz開始サイズ.Height, pChip.rBGAPan.sz終了サイズ.Width, pChip.rBGAPan.sz終了サイズ.Height, pChip.rBGAPan.pt画像側開始位置.X, pChip.rBGAPan.pt画像側開始位置.Y, pChip.rBGAPan.pt画像側終了位置.X, pChip.rBGAPan.pt画像側終了位置.Y, pChip.rBGAPan.pt表示側開始位置.X, pChip.rBGAPan.pt表示側開始位置.Y, pChip.rBGAPan.pt表示側終了位置.X, pChip.rBGAPan.pt表示側終了位置.Y, pChip.n総移動時間 );\r
-                                                                               }\r
-                                                                               break;\r
-\r
-                                                                       default:\r
-                                                                               if( pChip.rBMP != null )\r
-                                                                               {\r
-                                                                                       this.actBGA.Start( pChip.nチャンネル番号, pChip.rBMP, null, pChip.rBMP.n幅, pChip.rBMP.n高さ, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 );\r
-                                                                               }\r
-                                                                               break;\r
-                                                               }\r
-                                                       }\r
-                                               }\r
-                                               break;\r
+//            //double speed = 264.0;  // BPM150の時の1小節の長さ[dot]\r
+//            double speed = 234.0;    // BPM150の時の1小節の長さ[dot]\r
 \r
-                                       case 0x08:      // BPM変更(拡張)\r
-                                               if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
-                                               {\r
-                                                       pChip.bHit = true;\r
-                                                       if( dTX.listBPM.ContainsKey( pChip.n整数値・内部番号 ) )\r
-                                                       {\r
-                                                               this.actPlayInfo.dbBPM = ( dTX.listBPM[ pChip.n整数値・内部番号 ].dbBPM値 * ( ( (double) configIni.n演奏速度 ) / 20.0 ) ) + dTX.BASEBPM;\r
-                                                       }\r
-                                               }\r
-                                               break;\r
-\r
-                                       case 0x11:      // ドラム演奏\r
-                                       case 0x12:\r
-                                       case 0x13:\r
-                                       case 0x14:\r
-                                       case 0x15:\r
-                                       case 0x16:\r
-                                       case 0x17:\r
-                                       case 0x18:\r
-                                       case 0x19:\r
-                                       case 0x1a:\r
-                                               {\r
-                                                       int indexSevenLanes = this.nチャンネル0Atoレーン07[ pChip.nチャンネル番号 - 0x11 ];\r
-                                                       if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
-                                                       {\r
-                                                               pChip.bHit = true;\r
-                                                               this.tサウンド再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.DRUMS, dTX.nモニタを考慮した音量( E楽器パート.DRUMS ) );\r
-                                                       }\r
-                                                       break;\r
-                                               }\r
-                                       case 0x1f:\r
-                                               if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
-                                               {\r
-                                                       pChip.bHit = true;\r
-                                                       this.r現在の歓声Chip.Drums = pChip;\r
-                                               }\r
-                                               break;\r
-\r
-                                       case 0x20:\r
-                                       case 0x21:\r
-                                       case 0x22:\r
-                                       case 0x23:\r
-                                       case 0x24:\r
-                                       case 0x25:\r
-                                       case 0x26:\r
-                                       case 0x27:\r
-                                               if( configIni.bGuitar有効 )\r
-                                               {\r
-                                                       if( configIni.bSudden.Guitar )\r
-                                                       {\r
-                                                               pChip.b可視 = pChip.nバーからの距離dot.Guitar < 200;\r
-                                                       }\r
-                                                       if( configIni.bHidden.Guitar && ( pChip.nバーからの距離dot.Guitar < 100 ) )\r
-                                                       {\r
-                                                               pChip.b可視 = false;\r
-                                                       }\r
-                                                       if( !pChip.bHit && pChip.b可視 )\r
-                                                       {\r
-                                                               int num6 = configIni.bReverse.Guitar ? ( 0x171 - pChip.nバーからの距離dot.Guitar ) : ( 40 + pChip.nバーからの距離dot.Guitar );\r
-                                                               if( ( num6 > 0 ) && ( num6 < 0x199 ) )\r
-                                                               {\r
-                                                                       int num7 = this.ctチップ模様アニメ.Guitar.n現在の値;\r
-                                                                       if( pChip.nチャンネル番号 == 0x20 )\r
-                                                                       {\r
-                                                                               if( this.txチップ != null )\r
-                                                                               {\r
-                                                                                       this.txチップ.t2D描画( CDTXMania.app.Device, 0x1a, num6 - 4, new Rectangle( 0, 0xc0 + ( ( num7 % 5 ) * 8 ), 0x67, 8 ) );\r
-                                                                               }\r
-                                                                       }\r
-                                                                       else if( !configIni.bLeft.Guitar )\r
-                                                                       {\r
-                                                                               Rectangle rectangle = new Rectangle( 0, num7 * 8, 0x20, 8 );\r
-                                                                               if( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) && ( this.txチップ != null ) )\r
-                                                                               {\r
-                                                                                       this.txチップ.t2D描画( CDTXMania.app.Device, 0x1a, num6 - 4, rectangle );\r
-                                                                               }\r
-                                                                               rectangle.X += 0x20;\r
-                                                                               if( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) && ( this.txチップ != null ) )\r
-                                                                               {\r
-                                                                                       this.txチップ.t2D描画( CDTXMania.app.Device, 0x3e, num6 - 4, rectangle );\r
-                                                                               }\r
-                                                                               rectangle.X += 0x20;\r
-                                                                               if( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) && ( this.txチップ != null ) )\r
-                                                                               {\r
-                                                                                       this.txチップ.t2D描画( CDTXMania.app.Device, 0x62, num6 - 4, rectangle );\r
-                                                                               }\r
-                                                                       }\r
-                                                                       else\r
-                                                                       {\r
-                                                                               Rectangle rectangle2 = new Rectangle( 0, num7 * 8, 0x20, 8 );\r
-                                                                               if( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) && ( this.txチップ != null ) )\r
-                                                                               {\r
-                                                                                       this.txチップ.t2D描画( CDTXMania.app.Device, 0x62, num6 - 4, rectangle2 );\r
-                                                                               }\r
-                                                                               rectangle2.X += 0x20;\r
-                                                                               if( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) && ( this.txチップ != null ) )\r
-                                                                               {\r
-                                                                                       this.txチップ.t2D描画( CDTXMania.app.Device, 0x3e, num6 - 4, rectangle2 );\r
-                                                                               }\r
-                                                                               rectangle2.X += 0x20;\r
-                                                                               if( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) && ( this.txチップ != null ) )\r
-                                                                               {\r
-                                                                                       this.txチップ.t2D描画( CDTXMania.app.Device, 0x1a, num6 - 4, rectangle2 );\r
-                                                                               }\r
-                                                                       }\r
-                                                               }\r
-                                                       }\r
-                                                       if( ( configIni.bAutoPlay.Guitar && !pChip.bHit ) && ( pChip.nバーからの距離dot.Guitar < 0 ) )\r
-                                                       {\r
-                                                               pChip.bHit = true;\r
-                                                               if( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) || ( pChip.nチャンネル番号 == 0x20 ) )\r
-                                                               {\r
-                                                                       this.actChipFireGB.Start( 0 );\r
-                                                               }\r
-                                                               if( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) || ( pChip.nチャンネル番号 == 0x20 ) )\r
-                                                               {\r
-                                                                       this.actChipFireGB.Start( 1 );\r
-                                                               }\r
-                                                               if( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) || ( pChip.nチャンネル番号 == 0x20 ) )\r
-                                                               {\r
-                                                                       this.actChipFireGB.Start( 2 );\r
-                                                               }\r
-                                                               this.tサウンド再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.GUITAR, dTX.nモニタを考慮した音量( E楽器パート.GUITAR ) );\r
-                                                               this.r次にくるギターChip = null;\r
-                                                               this.tチップのヒット処理( pChip.n発声時刻ms, pChip );\r
-                                                       }\r
-                                                       break;\r
-                                               }\r
-                                               if( !pChip.bHit && ( pChip.nバーからの距離dot.Guitar < 0 ) )\r
-                                               {\r
-                                                       pChip.bHit = true;\r
-                                                       this.tサウンド再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.GUITAR, dTX.nモニタを考慮した音量( E楽器パート.GUITAR ) );\r
-                                               }\r
-                                               break;\r
+//            double ScrollSpeedDrums  = ( this.act譜面スクロール速度.db現在の譜面スクロール速度.Drums  + 1.0 ) * 0.5 *       37.5 * speed / 60000.0;\r
+//            double ScrollSpeedGuitar = ( this.act譜面スクロール速度.db現在の譜面スクロール速度.Guitar + 1.0 ) * 0.5 * 0.5 * 37.5 * speed / 60000.0;\r
+//            double ScrollSpeedBass   = ( this.act譜面スクロール速度.db現在の譜面スクロール速度.Bass   + 1.0 ) * 0.5 * 0.5 * 37.5 * speed / 60000.0;\r
 \r
-                                       case 40:\r
-                                               if( configIni.bGuitar有効 )\r
-                                               {\r
-                                                       if( configIni.bSudden.Guitar )\r
-                                                       {\r
-                                                               pChip.b可視 = pChip.nバーからの距離dot.Guitar < 200;\r
-                                                       }\r
-                                                       if( configIni.bHidden.Guitar && ( pChip.nバーからの距離dot.Guitar < 100 ) )\r
-                                                       {\r
-                                                               pChip.b可視 = false;\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
-                                                               {\r
-                                                                       int num14 = this.ctWailingチップ模様アニメ.n現在の値;\r
-                                                                       Rectangle rectangle5 = new Rectangle( 0x60 + ( num14 * 20 ), 0, 20, 50 );\r
-                                                                       if( num12 < num10 )\r
-                                                                       {\r
-                                                                               rectangle5.Y += num10 - num12;\r
-                                                                               rectangle5.Height -= num10 - num12;\r
-                                                                               num13 = num10 - num12;\r
-                                                                       }\r
-                                                                       if( num12 > ( 0x199 - num10 ) )\r
-                                                                       {\r
-                                                                               rectangle5.Height -= num12 - ( 0x199 - num10 );\r
-                                                                       }\r
-                                                                       if( ( rectangle5.Bottom > rectangle5.Top ) && ( this.txチップ != null ) )\r
-                                                                       {\r
-                                                                               this.txチップ.t2D描画( CDTXMania.app.Device, 0x8b, ( num11 - num10 ) + num13, rectangle5 );\r
-                                                                       }\r
-                                                               }\r
-                                                       }\r
-                                                       if( !pChip.bHit && ( pChip.nバーからの距離dot.Guitar < 0 ) )\r
-                                                       {\r
-                                                               pChip.bHit = true;\r
-                                                               if( configIni.bAutoPlay.Guitar )\r
-                                                               {\r
-                                                                       this.actWailingBonus.Start( E楽器パート.GUITAR, this.r現在の歓声Chip.Guitar );\r
-                                                               }\r
-                                                       }\r
-                                                       break;\r
-                                               }\r
-                                               pChip.bHit = true;\r
-                                               break;\r
+//            CDTX dTX = CDTXMania.DTX;\r
+//            CConfigIni configIni = CDTXMania.ConfigIni;\r
+//            while( nCurrentTopChip < dTX.listChip.Count )\r
+//            {\r
+//                CDTX.CChip pChip = dTX.listChip[ nCurrentTopChip ];\r
+//                pChip.nバーからの距離dot.Drums = (int) ( ( pChip.n発声時刻ms - CDTXMania.Timer.n現在時刻 ) * ScrollSpeedDrums );\r
+//                pChip.nバーからの距離dot.Guitar = (int) ( ( pChip.n発声時刻ms - CDTXMania.Timer.n現在時刻 ) * ScrollSpeedGuitar );\r
+//                pChip.nバーからの距離dot.Bass = (int) ( ( pChip.n発声時刻ms - CDTXMania.Timer.n現在時刻 ) * ScrollSpeedBass );\r
+//                if( Math.Min( Math.Min( pChip.nバーからの距離dot.Drums, pChip.nバーからの距離dot.Guitar ), pChip.nバーからの距離dot.Bass ) > 450 )\r
+//                {\r
+//                    break;\r
+//                }\r
+//                if( ( ( nCurrentTopChip == this.n現在のトップChip ) && ( pChip.nバーからの距離dot.Drums < -65 ) ) && pChip.bHit )\r
+//                {\r
+//                    this.n現在のトップChip++;\r
+//                    nCurrentTopChip = this.n現在のトップChip;\r
+//                    continue;\r
+//                }\r
 \r
-                                       case 0x2f:\r
-                                               if( !pChip.bHit && ( pChip.nバーからの距離dot.Guitar < 0 ) )\r
-                                               {\r
-                                                       pChip.bHit = true;\r
-                                                       this.r現在の歓声Chip.Guitar = pChip;\r
-                                               }\r
-                                               break;\r
-\r
-                                       case 0x31:\r
-                                       case 50:\r
-                                       case 0x33:\r
-                                       case 0x34:\r
-                                       case 0x35:\r
-                                       case 0x36:\r
-                                       case 0x37:\r
-                                       case 0x38:\r
-                                       case 0x39:\r
-                                       case 0x3a:\r
-                                               if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
-                                               {\r
-                                                       pChip.bHit = true;\r
-                                               }\r
-                                               break;\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
+//                        ((pChip.e楽器パート == E楽器パート.BASS) && CDTXMania.ConfigIni.bAutoPlay.Bass)\r
+//                  )\r
+////                           if ((pChip.e楽器パート == E楽器パート.DRUMS) && CDTXMania.ConfigIni.bAutoPlay[this.nチャンネル0Atoレーン07[pChip.nチャンネル番号 - 0x11]])\r
+//                {\r
+//                    bPChipIsAutoPlay = true;\r
+//                }\r
 \r
-                                       case 80:\r
-                                               {\r
-                                                       int num20 = pChip.n発声位置 / 0x180;\r
-                                                       if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
-                                                       {\r
-                                                               pChip.bHit = true;\r
-                                                               this.actPlayInfo.n小節番号 = num20 - 1;\r
-                                                               if( configIni.bWave再生位置自動調整機能有効 )\r
-                                                               {\r
-                                                                       dTX.tWave再生位置自動補正();\r
-                                                               }\r
-                                                       }\r
-                                                       if( ( pChip.b可視 && configIni.bGuitar有効 ) && ( configIni.eDark != Eダークモード.FULL ) )\r
-                                                       {\r
-                                                               int y = configIni.bReverse.Guitar ? ( ( 0x171 - pChip.nバーからの距離dot.Guitar ) - 1 ) : ( ( 40 + pChip.nバーからの距離dot.Guitar ) - 1 );\r
-                                                               if( ( dTX.bチップがある.Guitar && ( y > 0 ) ) && ( ( y < 0x199 ) && ( this.txチップ != null ) ) )\r
-                                                               {\r
-                                                                       this.txチップ.t2D描画( CDTXMania.app.Device, 0x1a, y, new Rectangle( 0, 0xeb, 0x68, 1 ) );\r
-                                                               }\r
-                                                               y = configIni.bReverse.Bass ? ( ( 0x171 - pChip.nバーからの距離dot.Bass ) - 1 ) : ( ( 40 + pChip.nバーからの距離dot.Bass ) - 1 );\r
-                                                               if( ( dTX.bチップがある.Bass && ( y > 0 ) ) && ( ( y < 0x199 ) && ( this.txチップ != null ) ) )\r
-                                                               {\r
-                                                                       this.txチップ.t2D描画( CDTXMania.app.Device, 480, y, new Rectangle( 0, 0xeb, 0x68, 1 ) );\r
-                                                               }\r
-                                                       }\r
-                                                       break;\r
-                                               }\r
-                                       case 0x51:\r
-                                               if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
-                                                       pChip.bHit = true;\r
-                                               break;\r
+//                int nInputAdjustTime = 0;\r
+//                if (bPChipIsAutoPlay)\r
+//                {\r
+//                    //nInputAdjustTime = 0;\r
+//                }\r
+//                else if (pChip.e楽器パート == E楽器パート.UNKNOWN)\r
+//                {\r
+//                    //nInputAdjustTime = 0;\r
+//                }\r
+//                else\r
+//                {\r
+//                    nInputAdjustTime = this.nInputAdjustTimeMs[(int)pChip.e楽器パート];\r
+//                }\r
 \r
-                                       case 0x52:\r
-                                               if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
-                                               {\r
-                                                       pChip.bHit = true;\r
-                                               }\r
-                                               break;\r
+//                if( ( ( pChip.e楽器パート != E楽器パート.UNKNOWN ) && !pChip.bHit ) &&\r
+//                    ( ( pChip.nバーからの距離dot.Drums < 0 ) && ( this.e指定時刻からChipのJUDGEを返す( CDTXMania.Timer.n現在時刻, pChip, nInputAdjustTime ) == E判定.Miss ) ) )\r
+//                {\r
+//                    this.tチップのヒット処理( CDTXMania.Timer.n現在時刻, pChip );\r
+//                }\r
+//                switch( pChip.nチャンネル番号 )\r
+//                {\r
+//                    case 0x01:       // BGM\r
+//                        if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+//                        {\r
+//                            pChip.bHit = true;\r
+//                            if( configIni.bBGM音を発声する )\r
+//                            {\r
+//                                dTX.tチップの再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, 10, dTX.nモニタを考慮した音量( E楽器パート.UNKNOWN ) );\r
+//                            }\r
+//                        }\r
+//                        break;\r
 \r
-                                       case 0x53:\r
-                                               if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
-                                               {\r
-                                                       pChip.bHit = true;\r
-                                               }\r
-                                               break;\r
+//                    case 0x03:       // BPM変更\r
+//                        if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+//                        {\r
+//                            pChip.bHit = true;\r
+//                            this.actPlayInfo.dbBPM = ( pChip.n整数値 * ( ( (double) configIni.n演奏速度 ) / 20.0 ) ) + dTX.BASEBPM;\r
+//                        }\r
+//                        break;\r
+\r
+//                    case 0x04:       // レイヤーBGA\r
+//                    case 0x07:\r
+//                    case 0x55:\r
+//                    case 0x56:\r
+//                    case 0x57:\r
+//                    case 0x58:\r
+//                    case 0x59:\r
+//                    case 0x60:\r
+//                        if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+//                        {\r
+//                            pChip.bHit = true;\r
+//                            if( configIni.bBGA有効 )\r
+//                            {\r
+//                                switch( pChip.eBGA種別 )\r
+//                                {\r
+//                                    case EBGA種別.BMPTEX:\r
+//                                        if( pChip.rBMPTEX != null )\r
+//                                        {\r
+//                                            this.actBGA.Start( pChip.nチャンネル番号, null, pChip.rBMPTEX, pChip.rBMPTEX.tx画像.sz画像サイズ.Width, pChip.rBMPTEX.tx画像.sz画像サイズ.Height, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 );\r
+//                                        }\r
+//                                        break;\r
+\r
+//                                    case EBGA種別.BGA:\r
+//                                        if( ( pChip.rBGA != null ) && ( ( pChip.rBMP != null ) || ( pChip.rBMPTEX != null ) ) )\r
+//                                        {\r
+//                                            this.actBGA.Start( pChip.nチャンネル番号, pChip.rBMP, pChip.rBMPTEX, pChip.rBGA.pt画像側右下座標.X - pChip.rBGA.pt画像側左上座標.X, pChip.rBGA.pt画像側右下座標.Y - pChip.rBGA.pt画像側左上座標.Y, 0, 0, pChip.rBGA.pt画像側左上座標.X, pChip.rBGA.pt画像側左上座標.Y, 0, 0, pChip.rBGA.pt表示座標.X, pChip.rBGA.pt表示座標.Y, 0, 0, 0 );\r
+//                                        }\r
+//                                        break;\r
+\r
+//                                    case EBGA種別.BGAPAN:\r
+//                                        if( ( pChip.rBGAPan != null ) && ( ( pChip.rBMP != null ) || ( pChip.rBMPTEX != null ) ) )\r
+//                                        {\r
+//                                            this.actBGA.Start( pChip.nチャンネル番号, pChip.rBMP, pChip.rBMPTEX, pChip.rBGAPan.sz開始サイズ.Width, pChip.rBGAPan.sz開始サイズ.Height, pChip.rBGAPan.sz終了サイズ.Width, pChip.rBGAPan.sz終了サイズ.Height, pChip.rBGAPan.pt画像側開始位置.X, pChip.rBGAPan.pt画像側開始位置.Y, pChip.rBGAPan.pt画像側終了位置.X, pChip.rBGAPan.pt画像側終了位置.Y, pChip.rBGAPan.pt表示側開始位置.X, pChip.rBGAPan.pt表示側開始位置.Y, pChip.rBGAPan.pt表示側終了位置.X, pChip.rBGAPan.pt表示側終了位置.Y, pChip.n総移動時間 );\r
+//                                        }\r
+//                                        break;\r
+\r
+//                                    default:\r
+//                                        if( pChip.rBMP != null )\r
+//                                        {\r
+//                                            this.actBGA.Start( pChip.nチャンネル番号, pChip.rBMP, null, pChip.rBMP.n幅, pChip.rBMP.n高さ, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 );\r
+//                                        }\r
+//                                        break;\r
+//                                }\r
+//                            }\r
+//                        }\r
+//                        break;\r
 \r
-                                       case 0x54:\r
-                                               if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
-                                               {\r
-                                                       pChip.bHit = true;\r
-                                                       if( configIni.bAVI有効 )\r
-                                                       {\r
-                                                               switch( pChip.eAVI種別 )\r
-                                                               {\r
-                                                                       case EAVI種別.AVI:\r
-                                                                               if( pChip.rAVI != null )\r
-                                                                               {\r
-                                                                                       this.actAVI.Start( pChip.nチャンネル番号, pChip.rAVI, 0x116, 0x163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, pChip.n発声時刻ms );\r
-                                                                               }\r
-                                                                               break;\r
-\r
-                                                                       case EAVI種別.AVIPAN:\r
-                                                                               if( pChip.rAVIPan != null )\r
-                                                                               {\r
-                                                                                       this.actAVI.Start( pChip.nチャンネル番号, pChip.rAVI, pChip.rAVIPan.sz開始サイズ.Width, pChip.rAVIPan.sz開始サイズ.Height, pChip.rAVIPan.sz終了サイズ.Width, pChip.rAVIPan.sz終了サイズ.Height, pChip.rAVIPan.pt動画側開始位置.X, pChip.rAVIPan.pt動画側開始位置.Y, pChip.rAVIPan.pt動画側終了位置.X, pChip.rAVIPan.pt動画側終了位置.Y, pChip.rAVIPan.pt表示側開始位置.X, pChip.rAVIPan.pt表示側開始位置.Y, pChip.rAVIPan.pt表示側終了位置.X, pChip.rAVIPan.pt表示側終了位置.Y, pChip.n総移動時間, pChip.n発声時刻ms );\r
-                                                                               }\r
-                                                                               break;\r
-                                                               }\r
-                                                       }\r
-                                               }\r
-                                               break;\r
-\r
-                                       case 0x61:\r
-                                       case 0x62:\r
-                                       case 0x63:\r
-                                       case 0x64:\r
-                                       case 0x65:\r
-                                       case 0x66:\r
-                                       case 0x67:\r
-                                       case 0x68:\r
-                                       case 0x69:\r
-                                       case 0x70:\r
-                                       case 0x71:\r
-                                       case 0x72:\r
-                                       case 0x73:\r
-                                       case 0x74:\r
-                                       case 0x75:\r
-                                       case 0x76:\r
-                                       case 0x77:\r
-                                       case 0x78:\r
-                                       case 0x79:\r
-                                       case 0x80:\r
-                                       case 0x81:\r
-                                       case 0x82:\r
-                                       case 0x83:\r
-                                       case 0x84:\r
-                                       case 0x85:\r
-                                       case 0x86:\r
-                                       case 0x87:\r
-                                       case 0x88:\r
-                                       case 0x89:\r
-                                       case 0x90:\r
-                                       case 0x91:\r
-                                       case 0x92:\r
-                                               if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
-                                               {\r
-                                                       pChip.bHit = true;\r
-                                                       if( configIni.bBGM音を発声する )\r
-                                                       {\r
-                                                               dTX.tWavの再生停止( this.n最後に再生したBGMの実WAV番号[ pChip.nチャンネル番号 - 0x61 ] );\r
-                                                               dTX.tチップの再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, 10, dTX.nモニタを考慮した音量( E楽器パート.UNKNOWN ) );\r
-                                                               this.n最後に再生したBGMの実WAV番号[ pChip.nチャンネル番号 - 0x61 ] = pChip.n整数値・内部番号;\r
-                                                       }\r
-                                               }\r
-                                               break;\r
-\r
-                                       case 160:\r
-                                       case 0xa1:\r
-                                       case 0xa2:\r
-                                       case 0xa3:\r
-                                       case 0xa4:\r
-                                       case 0xa5:\r
-                                       case 0xa6:\r
-                                       case 0xa7:\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
-                                                       if( !pChip.bHit && pChip.b可視 )\r
-                                                       {\r
-                                                               int num8 = configIni.bReverse.Bass ? ( 0x171 - pChip.nバーからの距離dot.Bass ) : ( 40 + pChip.nバーからの距離dot.Bass );\r
-                                                               if( ( num8 > 0 ) && ( num8 < 0x199 ) )\r
-                                                               {\r
-                                                                       int num9 = this.ctチップ模様アニメ.Bass.n現在の値;\r
-                                                                       if( pChip.nチャンネル番号 == 160 )\r
-                                                                       {\r
-                                                                               if( this.txチップ != null )\r
-                                                                               {\r
-                                                                                       this.txチップ.t2D描画( CDTXMania.app.Device, 480, num8 - 4, new Rectangle( 0, 0xc0 + ( ( num9 % 5 ) * 8 ), 0x67, 8 ) );\r
-                                                                               }\r
-                                                                       }\r
-                                                                       else if( !configIni.bLeft.Bass )\r
-                                                                       {\r
-                                                                               Rectangle rectangle3 = new Rectangle( 0, num9 * 8, 0x20, 8 );\r
-                                                                               if( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) && ( this.txチップ != null ) )\r
-                                                                               {\r
-                                                                                       this.txチップ.t2D描画( CDTXMania.app.Device, 480, num8 - 4, rectangle3 );\r
-                                                                               }\r
-                                                                               rectangle3.X += 0x20;\r
-                                                                               if( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) && ( this.txチップ != null ) )\r
-                                                                               {\r
-                                                                                       this.txチップ.t2D描画( CDTXMania.app.Device, 0x204, num8 - 4, rectangle3 );\r
-                                                                               }\r
-                                                                               rectangle3.X += 0x20;\r
-                                                                               if( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) && ( this.txチップ != null ) )\r
-                                                                               {\r
-                                                                                       this.txチップ.t2D描画( CDTXMania.app.Device, 0x228, num8 - 4, rectangle3 );\r
-                                                                               }\r
-                                                                       }\r
-                                                                       else\r
-                                                                       {\r
-                                                                               Rectangle rectangle4 = new Rectangle( 0, num9 * 8, 0x20, 8 );\r
-                                                                               if( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) && ( this.txチップ != null ) )\r
-                                                                               {\r
-                                                                                       this.txチップ.t2D描画( CDTXMania.app.Device, 0x228, num8 - 4, rectangle4 );\r
-                                                                               }\r
-                                                                               rectangle4.X += 0x20;\r
-                                                                               if( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) && ( this.txチップ != null ) )\r
-                                                                               {\r
-                                                                                       this.txチップ.t2D描画( CDTXMania.app.Device, 0x204, num8 - 4, rectangle4 );\r
-                                                                               }\r
-                                                                               rectangle4.X += 0x20;\r
-                                                                               if( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) && ( this.txチップ != null ) )\r
-                                                                               {\r
-                                                                                       this.txチップ.t2D描画( CDTXMania.app.Device, 480, num8 - 4, rectangle4 );\r
-                                                                               }\r
-                                                                       }\r
-                                                               }\r
-                                                       }\r
-                                                       if( ( configIni.bAutoPlay.Bass && !pChip.bHit ) && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
-                                                       {\r
-                                                               pChip.bHit = true;\r
-                                                               if( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) || ( pChip.nチャンネル番号 == 160 ) )\r
-                                                               {\r
-                                                                       this.actChipFireGB.Start( 3 );\r
-                                                               }\r
-                                                               if( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) || ( pChip.nチャンネル番号 == 160 ) )\r
-                                                               {\r
-                                                                       this.actChipFireGB.Start( 4 );\r
-                                                               }\r
-                                                               if( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) || ( pChip.nチャンネル番号 == 160 ) )\r
-                                                               {\r
-                                                                       this.actChipFireGB.Start( 5 );\r
-                                                               }\r
-                                                               this.tサウンド再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.BASS, dTX.nモニタを考慮した音量( E楽器パート.BASS ) );\r
-                                                               this.r次にくるベースChip = null;\r
-                                                               this.tチップのヒット処理( pChip.n発声時刻ms, pChip );\r
-                                                       }\r
-                                                       break;\r
-                                               }\r
-                                               if( !pChip.bHit && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
-                                               {\r
-                                                       pChip.bHit = true;\r
-                                                       this.tサウンド再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.BASS, dTX.nモニタを考慮した音量( E楽器パート.BASS ) );\r
-                                               }\r
-                                               break;\r
+//                    case 0x08:       // BPM変更(拡張)\r
+//                        if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+//                        {\r
+//                            pChip.bHit = true;\r
+//                            if( dTX.listBPM.ContainsKey( pChip.n整数値・内部番号 ) )\r
+//                            {\r
+//                                this.actPlayInfo.dbBPM = ( dTX.listBPM[ pChip.n整数値・内部番号 ].dbBPM値 * ( ( (double) configIni.n演奏速度 ) / 20.0 ) ) + dTX.BASEBPM;\r
+//                            }\r
+//                        }\r
+//                        break;\r
+\r
+//                    case 0x11:       // ドラム演奏\r
+//                    case 0x12:\r
+//                    case 0x13:\r
+//                    case 0x14:\r
+//                    case 0x15:\r
+//                    case 0x16:\r
+//                    case 0x17:\r
+//                    case 0x18:\r
+//                    case 0x19:\r
+//                    case 0x1a:\r
+//                        this.t進行描画・チップ・ドラムス( configIni, ref dTX, ref pChip );\r
+//                        break;\r
+\r
+//                    case 0x1f:       // フィルインサウンド(ドラム)\r
+//                        if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+//                        {\r
+//                            pChip.bHit = true;\r
+//                            this.r現在の歓声Chip.Drums = pChip;\r
+//                        }\r
+//                        break;\r
+\r
+//                    case 0x20:       // ギター演奏\r
+//                    case 0x21:\r
+//                    case 0x22:\r
+//                    case 0x23:\r
+//                    case 0x24:\r
+//                    case 0x25:\r
+//                    case 0x26:\r
+//                    case 0x27:\r
+//                        this.t進行描画・チップ・ギター( configIni, ref dTX, ref pChip );\r
+//                        break;\r
+\r
+//                    case 0x28:       // ウェイリング(ギター)\r
+//                        this.t進行描画・チップ・ギター・ウェイリング( configIni, ref dTX, ref pChip );\r
+//                        break;\r
+\r
+//                    case 0x2f:       // ウェイリングサウンド(ギター)\r
+//                        if( !pChip.bHit && ( pChip.nバーからの距離dot.Guitar < 0 ) )\r
+//                        {\r
+//                            pChip.bHit = true;\r
+//                            this.r現在の歓声Chip.Guitar = pChip;\r
+//                        }\r
+//                        break;\r
+\r
+//                    case 0x31:       // 不可視チップ配置(ドラム)\r
+//                    case 0x32:\r
+//                    case 0x33:\r
+//                    case 0x34:\r
+//                    case 0x35:\r
+//                    case 0x36:\r
+//                    case 0x37:\r
+//                    case 0x38:\r
+//                    case 0x39:\r
+//                    case 0x3a:\r
+//                        if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+//                        {\r
+//                            pChip.bHit = true;\r
+//                        }\r
+//                        break;\r
 \r
-                                       case 0xa8:\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
-                                                       if( !pChip.bHit && pChip.b可視 )\r
-                                                       {\r
-                                                               int num15 = 0x19;\r
-                                                               int num16 = configIni.bReverse.Bass ? ( 0x171 - pChip.nバーからの距離dot.Bass ) : ( 40 + pChip.nバーからの距離dot.Bass );\r
-                                                               int num17 = num16;\r
-                                                               int num18 = 0;\r
-                                                               if( ( num17 < ( 0x199 + num15 ) ) && ( num17 > -num15 ) )\r
-                                                               {\r
-                                                                       int num19 = this.ctWailingチップ模様アニメ.n現在の値;\r
-                                                                       Rectangle rectangle6 = new Rectangle( 0x60 + ( num19 * 20 ), 0, 20, 50 );\r
-                                                                       if( num17 < num15 )\r
-                                                                       {\r
-                                                                               rectangle6.Y += num15 - num17;\r
-                                                                               rectangle6.Height -= num15 - num17;\r
-                                                                               num18 = num15 - num17;\r
-                                                                       }\r
-                                                                       if( num17 > ( 0x199 - num15 ) )\r
-                                                                       {\r
-                                                                               rectangle6.Height -= num17 - ( 0x199 - num15 );\r
-                                                                       }\r
-                                                                       if( ( rectangle6.Bottom > rectangle6.Top ) && ( this.txチップ != null ) )\r
-                                                                       {\r
-                                                                               this.txチップ.t2D描画( CDTXMania.app.Device, 0x251, ( num16 - num15 ) + num18, rectangle6 );\r
-                                                                       }\r
-                                                               }\r
-                                                       }\r
-                                                       if( !pChip.bHit && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
-                                                       {\r
-                                                               pChip.bHit = true;\r
-                                                               if( configIni.bAutoPlay.Bass )\r
-                                                               {\r
-                                                                       this.actWailingBonus.Start( E楽器パート.BASS, this.r現在の歓声Chip.Bass );\r
-                                                               }\r
-                                                       }\r
-                                                       break;\r
-                                               }\r
-                                               pChip.bHit = true;\r
-                                               break;\r
+//                    case 0x50:       // 小節線\r
+//                        {\r
+//                            int n小節番号plus1 = pChip.n発声位置 / 384;\r
+//                            if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+//                            {\r
+//                                pChip.bHit = true;\r
+//                                this.actPlayInfo.n小節番号 = n小節番号plus1 - 1;\r
+//                                if( configIni.bWave再生位置自動調整機能有効 )\r
+//                                {\r
+//                                    dTX.tWave再生位置自動補正();\r
+//                                }\r
+//                            }\r
+//                            if( configIni.bDrums有効 && ePlayMode == E楽器パート.DRUMS )      // Drumsでのみ表示\r
+//                            {\r
+//                                if ( configIni.b演奏情報を表示する && ( configIni.eDark == Eダークモード.OFF ) )\r
+//                                {\r
+//                                    int n小節番号 = n小節番号plus1 - 1;\r
+//                                    CDTXMania.act文字コンソール.tPrint( 0x14d, configIni.bReverse.Drums ? ( ( 0x38 + pChip.nバーからの距離dot.Drums ) - 0x11 ) : ( ( 0x1a6 - pChip.nバーからの距離dot.Drums ) - 0x11 ), C文字コンソール.Eフォント種別.白, n小節番号.ToString() );\r
+//                                }\r
+//                                if ( ( ( configIni.eDark != Eダークモード.FULL ) && pChip.b可視 ) && ( this.txチップ != null ) )\r
+//                                {\r
+//                                    this.txチップ.t2D描画( CDTXMania.app.Device, 0x23, configIni.bReverse.Drums ? ( ( 0x38 + pChip.nバーからの距離dot.Drums ) - 1 ) : ( ( 0x1a6 - pChip.nバーからの距離dot.Drums ) - 1 ), new Rectangle( 0, 0x1bc, 0x128, 2 ) );\r
+//                                }\r
+//                            }\r
+//                            if( ( pChip.b可視 && configIni.bGuitar有効 ) && ( configIni.eDark != Eダークモード.FULL ) )\r
+//                            {\r
+//                                int y = configIni.bReverse.Guitar ? ( ( 0x171 - pChip.nバーからの距離dot.Guitar ) - 1 ) : ( ( 40 + pChip.nバーからの距離dot.Guitar ) - 1 );\r
+//                                if( ( dTX.bチップがある.Guitar && ( y > 0 ) ) && ( ( y < 0x199 ) && ( this.txチップ != null ) ) )\r
+//                                {\r
+//                                    this.txチップ.t2D描画( CDTXMania.app.Device, 0x1a, y, new Rectangle( 0, 0xeb, 0x68, 1 ) );\r
+//                                }\r
+//                                y = configIni.bReverse.Bass ? ( ( 0x171 - pChip.nバーからの距離dot.Bass ) - 1 ) : ( ( 40 + pChip.nバーからの距離dot.Bass ) - 1 );\r
+//                                if( ( dTX.bチップがある.Bass && ( y > 0 ) ) && ( ( y < 0x199 ) && ( this.txチップ != null ) ) )\r
+//                                {\r
+//                                    this.txチップ.t2D描画( CDTXMania.app.Device, 480, y, new Rectangle( 0, 0xeb, 0x68, 1 ) );\r
+//                                }\r
+//                            }\r
+//                            break;\r
+//                        }\r
+//                    case 0x51:       // 拍線\r
+//                        if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+//                        {\r
+//                            pChip.bHit = true;\r
+//                        }\r
+//                        if( ( ePlayMode == E楽器パート.DRUMS ) && ( configIni.eDark != Eダークモード.FULL ) && pChip.b可視 && ( this.txチップ != null ) )\r
+//                        {\r
+//                            this.txチップ.t2D描画( CDTXMania.app.Device, 0x23, configIni.bReverse.Drums ? ( ( 0x38 + pChip.nバーからの距離dot.Drums ) - 1 ) : ( ( 0x1a6 - pChip.nバーからの距離dot.Drums ) - 1 ), new Rectangle( 0, 0x1bf, 0x128, 1 ) );\r
+//                        }\r
+//                        break;\r
 \r
-                                       case 0xaf:\r
-                                               if( !pChip.bHit && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
-                                               {\r
-                                                       pChip.bHit = true;\r
-                                                       this.r現在の歓声Chip.Bass = pChip;\r
-                                               }\r
-                                               break;\r
-\r
-                                       case 0xb1:\r
-                                       case 0xb2:\r
-                                       case 0xb3:\r
-                                       case 180:\r
-                                       case 0xb5:\r
-                                       case 0xb6:\r
-                                       case 0xb7:\r
-                                       case 0xb8:\r
-                                       case 0xb9:\r
-                                       case 0xbc:\r
-                                               if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
-                                               {\r
-                                                       pChip.bHit = true;\r
-                                               }\r
-                                               break;\r
+//                    case 0x52:       // MIDIコーラス\r
+//                        if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+//                        {\r
+//                            pChip.bHit = true;\r
+//                        }\r
+//                        break;\r
 \r
-                                       case 0xba:\r
-                                               if( !pChip.bHit && ( pChip.nバーからの距離dot.Guitar < 0 ) )\r
-                                               {\r
-                                                       pChip.bHit = true;\r
-                                                       this.r現在の空うちギターChip = pChip;\r
-                                                       pChip.nチャンネル番号 = 0x20;\r
-                                               }\r
-                                               break;\r
+//                    case 0x53:       // フィルイン\r
+//                        this.t進行描画・チップ・フィルイン( configIni, ref dTX, ref pChip );\r
+//                        break;\r
 \r
-                                       case 0xbb:\r
-                                               if( !pChip.bHit && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
-                                               {\r
-                                                       pChip.bHit = true;\r
-                                                       this.r現在の空うちベースChip = pChip;\r
-                                                       pChip.nチャンネル番号 = 160;\r
-                                               }\r
-                                               break;\r
-\r
-                                       case 0xc4:\r
-                                       case 0xc7:\r
-                                       case 0xd5:\r
-                                       case 0xd6:\r
-                                       case 0xd7:\r
-                                       case 0xd8:\r
-                                       case 0xd9:\r
-                                       case 0xe0:\r
-                                               if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
-                                               {\r
-                                                       pChip.bHit = true;\r
-                                                       if( ( configIni.bBGA有効 && ( pChip.eBGA種別 == EBGA種別.BMP ) ) || ( pChip.eBGA種別 == EBGA種別.BMPTEX ) )\r
-                                                       {\r
-                                                               for( int i = 0; i < 8; i++ )\r
-                                                               {\r
-                                                                       if( this.nBGAスコープチャンネルマップ[ 0, i ] == pChip.nチャンネル番号 )\r
-                                                                       {\r
-                                                                               this.actBGA.ChangeScope( this.nBGAスコープチャンネルマップ[ 1, i ], pChip.rBMP, pChip.rBMPTEX );\r
-                                                                       }\r
-                                                               }\r
-                                                       }\r
-                                               }\r
-                                               break;\r
+//                    case 0x54:       // 動画再生\r
+//                        if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+//                        {\r
+//                            pChip.bHit = true;\r
+//                            if( configIni.bAVI有効 )\r
+//                            {\r
+//                                switch( pChip.eAVI種別 )\r
+//                                {\r
+//                                    case EAVI種別.AVI:\r
+//                                        if( pChip.rAVI != null )\r
+//                                        {\r
+//                                            this.actAVI.Start( pChip.nチャンネル番号, pChip.rAVI, 0x116, 0x163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, pChip.n発声時刻ms );\r
+//                                        }\r
+//                                        break;\r
+\r
+//                                    case EAVI種別.AVIPAN:\r
+//                                        if( pChip.rAVIPan != null )\r
+//                                        {\r
+//                                            this.actAVI.Start( pChip.nチャンネル番号, pChip.rAVI, pChip.rAVIPan.sz開始サイズ.Width, pChip.rAVIPan.sz開始サイズ.Height, pChip.rAVIPan.sz終了サイズ.Width, pChip.rAVIPan.sz終了サイズ.Height, pChip.rAVIPan.pt動画側開始位置.X, pChip.rAVIPan.pt動画側開始位置.Y, pChip.rAVIPan.pt動画側終了位置.X, pChip.rAVIPan.pt動画側終了位置.Y, pChip.rAVIPan.pt表示側開始位置.X, pChip.rAVIPan.pt表示側開始位置.Y, pChip.rAVIPan.pt表示側終了位置.X, pChip.rAVIPan.pt表示側終了位置.Y, pChip.n総移動時間, pChip.n発声時刻ms );\r
+//                                        }\r
+//                                        break;\r
+//                                }\r
+//                            }\r
+//                        }\r
+//                        break;\r
+\r
+//                    case 0x61:       case 0x62:      case 0x63:      case 0x64:      // 自動再生(BGM, SE)\r
+//                    case 0x65:       case 0x66:      case 0x67:      case 0x68:\r
+//                    case 0x69:       case 0x70:      case 0x71:      case 0x72:\r
+//                    case 0x73:       case 0x74:      case 0x75:      case 0x76:\r
+//                    case 0x77:       case 0x78:      case 0x79:      case 0x80:\r
+//                    case 0x81:       case 0x82:      case 0x83:      case 0x84:\r
+//                    case 0x85:       case 0x86:      case 0x87:      case 0x88:\r
+//                    case 0x89:       case 0x90:      case 0x91:      case 0x92:\r
+//                        if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+//                        {\r
+//                            pChip.bHit = true;\r
+//                            if( configIni.bBGM音を発声する )\r
+//                            {\r
+//                                dTX.tWavの再生停止( this.n最後に再生したBGMの実WAV番号[ pChip.nチャンネル番号 - 0x61 ] );\r
+//                                dTX.tチップの再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, 10, dTX.nモニタを考慮した音量( E楽器パート.UNKNOWN ) );\r
+//                                this.n最後に再生したBGMの実WAV番号[ pChip.nチャンネル番号 - 0x61 ] = pChip.n整数値・内部番号;\r
+//                            }\r
+//                        }\r
+//                        break;\r
+\r
+//                    case 0xa0:       // ベース演奏\r
+//                    case 0xa1:\r
+//                    case 0xa2:\r
+//                    case 0xa3:\r
+//                    case 0xa4:\r
+//                    case 0xa5:\r
+//                    case 0xa6:\r
+//                    case 0xa7:\r
+//                        this.t進行描画・チップ・ベース( configIni, ref dTX, ref pChip );\r
+//                        break;\r
+\r
+//                    case 0xa8:       // ウェイリング(ベース)\r
+//                        this.t進行描画・チップ・ベース・ウェイリング( configIni, ref dTX, ref pChip );\r
+//                        break;\r
+\r
+//                    case 0xaf:\r
+//                        if( !pChip.bHit && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
+//                        {\r
+//                            pChip.bHit = true;\r
+//                            this.r現在の歓声Chip.Bass = pChip;\r
+//                        }\r
+//                        break;\r
+\r
+//                    case 0xb1:       // 空打ち音設定(ドラム)\r
+//                    case 0xb2:\r
+//                    case 0xb3:\r
+//                    case 0xb4:\r
+//                    case 0xb5:\r
+//                    case 0xb6:\r
+//                    case 0xb7:\r
+//                    case 0xb8:\r
+//                    case 0xb9:\r
+//                    case 0xbc:\r
+//                        this.t進行描画・チップ・空打ち音設定・ドラム( configIni, ref dTX, ref pChip );\r
+//                        break;\r
+\r
+//                    case 0xba:       // 空打ち音設定(ギター)\r
+//                        break;\r
+\r
+//                    case 0xbb:       // 空打ち音設定(ベース)\r
+//                        if ( !pChip.bHit && ( pChip.nバーからの距離dot.Guitar < 0 ) )\r
+//                        {\r
+//                            pChip.bHit = true;\r
+//                            this.r現在の空うちギターChip = pChip;\r
+//                            pChip.nチャンネル番号 = 0x20;\r
+//                        }\r
+//                        if ( !pChip.bHit && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
+//                        {\r
+//                            pChip.bHit = true;\r
+//                            this.r現在の空うちベースChip = pChip;\r
+//                            pChip.nチャンネル番号 = 160;\r
+//                        }\r
+//                        break;\r
+\r
+//                    case 0xc4:       // BGA画像入れ替え\r
+//                    case 0xc7:\r
+//                    case 0xd5:\r
+//                    case 0xd6:\r
+//                    case 0xd7:\r
+//                    case 0xd8:\r
+//                    case 0xd9:\r
+//                    case 0xe0:\r
+//                        if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+//                        {\r
+//                            pChip.bHit = true;\r
+//                            if( ( configIni.bBGA有効 && ( pChip.eBGA種別 == EBGA種別.BMP ) ) || ( pChip.eBGA種別 == EBGA種別.BMPTEX ) )\r
+//                            {\r
+//                                for( int i = 0; i < 8; i++ )\r
+//                                {\r
+//                                    if( this.nBGAスコープチャンネルマップ[ 0, i ] == pChip.nチャンネル番号 )\r
+//                                    {\r
+//                                        this.actBGA.ChangeScope( this.nBGAスコープチャンネルマップ[ 1, i ], pChip.rBMP, pChip.rBMPTEX );\r
+//                                    }\r
+//                                }\r
+//                            }\r
+//                        }\r
+//                        break;\r
 \r
-                                       default:\r
-                                               if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
-                                               {\r
-                                                       pChip.bHit = true;\r
-                                               }\r
-                                               break;\r
-                               }\r
+//                    default:\r
+//                        if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+//                        {\r
+//                            pChip.bHit = true;\r
+//                        }\r
+//                        break;\r
+//                }\r
 \r
-                               nCurrentTopChip++;\r
-                       }\r
-                       return false;\r
-               }\r
+//                nCurrentTopChip++;\r
+//            }\r
+//            return false;\r
+//        }\r
                //private void t進行描画・チップアニメ()\r
                //{\r
                //    for( int i = 1; i < 3; i++ )\r
@@ -2562,6 +2280,340 @@ namespace DTXMania
 //                this.actGauge.db現在のゲージ値[ (int) part ] = 1.0;\r
 //        }\r
                //-----------------\r
+\r
+               protected override void t進行描画・チップ・ドラムス( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip )\r
+               {\r
+                       // int indexSevenLanes = this.nチャンネル0Atoレーン07[ pChip.nチャンネル番号 - 0x11 ];\r
+                       if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+                       {\r
+                               pChip.bHit = true;\r
+                               this.tサウンド再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.DRUMS, dTX.nモニタを考慮した音量( E楽器パート.DRUMS ) );\r
+                       }\r
+               }\r
+               protected override void t進行描画・チップ・ギター( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip )\r
+               {\r
+                       if ( configIni.bGuitar有効 )\r
+                       {\r
+                               if ( configIni.bSudden.Guitar )\r
+                               {\r
+                                       pChip.b可視 = pChip.nバーからの距離dot.Guitar < 200;\r
+                               }\r
+                               if ( configIni.bHidden.Guitar && ( pChip.nバーからの距離dot.Guitar < 100 ) )\r
+                               {\r
+                                       pChip.b可視 = false;\r
+                               }\r
+                               if ( !pChip.bHit && pChip.b可視 )\r
+                               {\r
+                                       int nバーからの距離 = configIni.bReverse.Guitar ? ( 0x171 - pChip.nバーからの距離dot.Guitar ) : ( 40 + pChip.nバーからの距離dot.Guitar );\r
+                                       if ( ( nバーからの距離 > 0 ) && ( nバーからの距離 < 0x199 ) )\r
+                                       {\r
+                                               int nアニメカウンタ現在の値 = this.ctチップ模様アニメ.Guitar.n現在の値;\r
+                                               if ( pChip.nチャンネル番号 == 0x20 )\r
+                                               {\r
+                                                       if ( this.txチップ != null )\r
+                                                       {\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, 0x1a, nバーからの距離 - 4, new Rectangle( 0, 0xc0 + ( ( nアニメカウンタ現在の値 % 5 ) * 8 ), 0x67, 8 ) );\r
+                                                       }\r
+                                               }\r
+                                               else if ( !configIni.bLeft.Guitar )\r
+                                               {\r
+                                                       Rectangle rectangle = new Rectangle( 0, nアニメカウンタ現在の値 * 8, 0x20, 8 );\r
+                                                       if ( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) && ( this.txチップ != null ) )\r
+                                                       {\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, 0x1a, nバーからの距離 - 4, rectangle );\r
+                                                       }\r
+                                                       rectangle.X += 0x20;\r
+                                                       if ( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) && ( this.txチップ != null ) )\r
+                                                       {\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, 0x3e, nバーからの距離 - 4, rectangle );\r
+                                                       }\r
+                                                       rectangle.X += 0x20;\r
+                                                       if ( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) && ( this.txチップ != null ) )\r
+                                                       {\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, 0x62, nバーからの距離 - 4, rectangle );\r
+                                                       }\r
+                                               }\r
+                                               else\r
+                                               {\r
+                                                       Rectangle rectangle2 = new Rectangle( 0, nアニメカウンタ現在の値 * 8, 0x20, 8 );\r
+                                                       if ( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) && ( this.txチップ != null ) )\r
+                                                       {\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, 0x62, nバーからの距離 - 4, rectangle2 );\r
+                                                       }\r
+                                                       rectangle2.X += 0x20;\r
+                                                       if ( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) && ( this.txチップ != null ) )\r
+                                                       {\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, 0x3e, nバーからの距離 - 4, rectangle2 );\r
+                                                       }\r
+                                                       rectangle2.X += 0x20;\r
+                                                       if ( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) && ( this.txチップ != null ) )\r
+                                                       {\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, 0x1a, nバーからの距離 - 4, rectangle2 );\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                               }\r
+                               if ( ( configIni.bAutoPlay.Guitar && !pChip.bHit ) && ( pChip.nバーからの距離dot.Guitar < 0 ) )\r
+                               {\r
+                                       pChip.bHit = true;\r
+                                       if ( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) || ( pChip.nチャンネル番号 == 0x20 ) )\r
+                                       {\r
+                                               this.actChipFireGB.Start( 0 );\r
+                                       }\r
+                                       if ( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) || ( pChip.nチャンネル番号 == 0x20 ) )\r
+                                       {\r
+                                               this.actChipFireGB.Start( 1 );\r
+                                       }\r
+                                       if ( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) || ( pChip.nチャンネル番号 == 0x20 ) )\r
+                                       {\r
+                                               this.actChipFireGB.Start( 2 );\r
+                                       }\r
+                                       this.tサウンド再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.GUITAR, dTX.nモニタを考慮した音量( E楽器パート.GUITAR ) );\r
+                                       this.r次にくるギターChip = null;\r
+                                       this.tチップのヒット処理( pChip.n発声時刻ms, pChip );\r
+                               }\r
+                               // break;\r
+                               return;\r
+                       }\r
+                       if ( !pChip.bHit && ( pChip.nバーからの距離dot.Guitar < 0 ) )\r
+                       {\r
+                               pChip.bHit = true;\r
+                               this.tサウンド再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.GUITAR, dTX.nモニタを考慮した音量( E楽器パート.GUITAR ) );\r
+                       }\r
+\r
+               }\r
+               protected override void t進行描画・チップ・ギター・ウェイリング( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip )\r
+               {\r
+                       if( configIni.bGuitar有効 )\r
+                       {\r
+                               if( configIni.bSudden.Guitar )\r
+                               {\r
+                                       pChip.b可視 = pChip.nバーからの距離dot.Guitar < 200;\r
+                               }\r
+                               if( configIni.bHidden.Guitar && ( pChip.nバーからの距離dot.Guitar < 100 ) )\r
+                               {\r
+                                       pChip.b可視 = false;\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
+                                       {\r
+                                               int num14 = this.ctWailingチップ模様アニメ.n現在の値;\r
+                                               Rectangle rectangle5 = new Rectangle( 0x60 + ( num14 * 20 ), 0, 20, 50 );\r
+                                               if( num12 < num10 )\r
+                                               {\r
+                                                       rectangle5.Y += num10 - num12;\r
+                                                       rectangle5.Height -= num10 - num12;\r
+                                                       num13 = num10 - num12;\r
+                                               }\r
+                                               if( num12 > ( 0x199 - num10 ) )\r
+                                               {\r
+                                                       rectangle5.Height -= num12 - ( 0x199 - num10 );\r
+                                               }\r
+                                               if( ( rectangle5.Bottom > rectangle5.Top ) && ( this.txチップ != null ) )\r
+                                               {\r
+                                                       this.txチップ.t2D描画( CDTXMania.app.Device, 0x8b, ( num11 - num10 ) + num13, rectangle5 );\r
+                                               }\r
+                                       }\r
+                               }\r
+                               if( !pChip.bHit && ( pChip.nバーからの距離dot.Guitar < 0 ) )\r
+                               {\r
+                                       pChip.bHit = true;\r
+                                       if( configIni.bAutoPlay.Guitar )\r
+                                       {\r
+                                               this.actWailingBonus.Start( E楽器パート.GUITAR, this.r現在の歓声Chip.Guitar );\r
+                                       }\r
+                               }\r
+                               return;\r
+                       }\r
+                       pChip.bHit = true;\r
+               }\r
+               protected override void t進行描画・チップ・フィルイン( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip )\r
+               {\r
+                       if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+                       {\r
+                               pChip.bHit = true;\r
+                       }\r
+               }\r
+               protected override 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
+                               if ( !pChip.bHit && pChip.b可視 )\r
+                               {\r
+                                       int num8 = configIni.bReverse.Bass ? ( 0x171 - pChip.nバーからの距離dot.Bass ) : ( 40 + pChip.nバーからの距離dot.Bass );\r
+                                       if ( ( num8 > 0 ) && ( num8 < 0x199 ) )\r
+                                       {\r
+                                               int num9 = this.ctチップ模様アニメ.Bass.n現在の値;\r
+                                               if ( pChip.nチャンネル番号 == 160 )\r
+                                               {\r
+                                                       if ( this.txチップ != null )\r
+                                                       {\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, 480, num8 - 4, new Rectangle( 0, 0xc0 + ( ( num9 % 5 ) * 8 ), 0x67, 8 ) );\r
+                                                       }\r
+                                               }\r
+                                               else if ( !configIni.bLeft.Bass )\r
+                                               {\r
+                                                       Rectangle rectangle3 = new Rectangle( 0, num9 * 8, 0x20, 8 );\r
+                                                       if ( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) && ( this.txチップ != null ) )\r
+                                                       {\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, 480, num8 - 4, rectangle3 );\r
+                                                       }\r
+                                                       rectangle3.X += 0x20;\r
+                                                       if ( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) && ( this.txチップ != null ) )\r
+                                                       {\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, 0x204, num8 - 4, rectangle3 );\r
+                                                       }\r
+                                                       rectangle3.X += 0x20;\r
+                                                       if ( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) && ( this.txチップ != null ) )\r
+                                                       {\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, 0x228, num8 - 4, rectangle3 );\r
+                                                       }\r
+                                               }\r
+                                               else\r
+                                               {\r
+                                                       Rectangle rectangle4 = new Rectangle( 0, num9 * 8, 0x20, 8 );\r
+                                                       if ( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) && ( this.txチップ != null ) )\r
+                                                       {\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, 0x228, num8 - 4, rectangle4 );\r
+                                                       }\r
+                                                       rectangle4.X += 0x20;\r
+                                                       if ( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) && ( this.txチップ != null ) )\r
+                                                       {\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, 0x204, num8 - 4, rectangle4 );\r
+                                                       }\r
+                                                       rectangle4.X += 0x20;\r
+                                                       if ( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) && ( this.txチップ != null ) )\r
+                                                       {\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, 480, num8 - 4, rectangle4 );\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                               }\r
+                               if ( ( configIni.bAutoPlay.Bass && !pChip.bHit ) && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
+                               {\r
+                                       pChip.bHit = true;\r
+                                       if ( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) || ( pChip.nチャンネル番号 == 160 ) )\r
+                                       {\r
+                                               this.actChipFireGB.Start( 3 );\r
+                                       }\r
+                                       if ( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) || ( pChip.nチャンネル番号 == 160 ) )\r
+                                       {\r
+                                               this.actChipFireGB.Start( 4 );\r
+                                       }\r
+                                       if ( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) || ( pChip.nチャンネル番号 == 160 ) )\r
+                                       {\r
+                                               this.actChipFireGB.Start( 5 );\r
+                                       }\r
+                                       this.tサウンド再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.BASS, dTX.nモニタを考慮した音量( E楽器パート.BASS ) );\r
+                                       this.r次にくるベースChip = null;\r
+                                       this.tチップのヒット処理( pChip.n発声時刻ms, pChip );\r
+                               }\r
+                               return;\r
+                       }\r
+                       if ( !pChip.bHit && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
+                       {\r
+                               pChip.bHit = true;\r
+                               this.tサウンド再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.BASS, dTX.nモニタを考慮した音量( E楽器パート.BASS ) );\r
+                       }\r
+               }\r
+               protected override 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
+                               if ( !pChip.bHit && pChip.b可視 )\r
+                               {\r
+                                       int num15 = 0x19;\r
+                                       int num16 = configIni.bReverse.Bass ? ( 0x171 - pChip.nバーからの距離dot.Bass ) : ( 40 + pChip.nバーからの距離dot.Bass );\r
+                                       int num17 = num16;\r
+                                       int num18 = 0;\r
+                                       if ( ( num17 < ( 0x199 + num15 ) ) && ( num17 > -num15 ) )\r
+                                       {\r
+                                               int num19 = this.ctWailingチップ模様アニメ.n現在の値;\r
+                                               Rectangle rectangle6 = new Rectangle( 0x60 + ( num19 * 20 ), 0, 20, 50 );\r
+                                               if ( num17 < num15 )\r
+                                               {\r
+                                                       rectangle6.Y += num15 - num17;\r
+                                                       rectangle6.Height -= num15 - num17;\r
+                                                       num18 = num15 - num17;\r
+                                               }\r
+                                               if ( num17 > ( 0x199 - num15 ) )\r
+                                               {\r
+                                                       rectangle6.Height -= num17 - ( 0x199 - num15 );\r
+                                               }\r
+                                               if ( ( rectangle6.Bottom > rectangle6.Top ) && ( this.txチップ != null ) )\r
+                                               {\r
+                                                       this.txチップ.t2D描画( CDTXMania.app.Device, 0x251, ( num16 - num15 ) + num18, rectangle6 );\r
+                                               }\r
+                                       }\r
+                               }\r
+                               if ( !pChip.bHit && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
+                               {\r
+                                       pChip.bHit = true;\r
+                                       if ( configIni.bAutoPlay.Bass )\r
+                                       {\r
+                                               this.actWailingBonus.Start( E楽器パート.BASS, this.r現在の歓声Chip.Bass );\r
+                                       }\r
+                               }\r
+                               return;\r
+                       }\r
+                       pChip.bHit = true;\r
+               }\r
+               protected override void t進行描画・チップ・空打ち音設定・ドラム( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip )\r
+               {\r
+                       if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+                       {\r
+                               pChip.bHit = true;\r
+                       }\r
+               }\r
+               protected override void t進行描画・チップ・小節線( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip )\r
+               {\r
+                       int n小節番号plus1 = pChip.n発声位置 / 0x180;\r
+                       if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+                       {\r
+                               pChip.bHit = true;\r
+                               this.actPlayInfo.n小節番号 = n小節番号plus1 - 1;\r
+                               if ( configIni.bWave再生位置自動調整機能有効 )\r
+                               {\r
+                                       dTX.tWave再生位置自動補正();\r
+                               }\r
+                       }\r
+                       if ( ( pChip.b可視 && configIni.bGuitar有効 ) && ( configIni.eDark != Eダークモード.FULL ) )\r
+                       {\r
+                               int y = configIni.bReverse.Guitar ? ( ( 0x171 - pChip.nバーからの距離dot.Guitar ) - 1 ) : ( ( 40 + pChip.nバーからの距離dot.Guitar ) - 1 );\r
+                               if ( ( dTX.bチップがある.Guitar && ( y > 0 ) ) && ( ( y < 0x199 ) && ( this.txチップ != null ) ) )\r
+                               {\r
+                                       this.txチップ.t2D描画( CDTXMania.app.Device, 0x1a, y, new Rectangle( 0, 0xeb, 0x68, 1 ) );\r
+                               }\r
+                               y = configIni.bReverse.Bass ? ( ( 0x171 - pChip.nバーからの距離dot.Bass ) - 1 ) : ( ( 40 + pChip.nバーからの距離dot.Bass ) - 1 );\r
+                               if ( ( dTX.bチップがある.Bass && ( y > 0 ) ) && ( ( y < 0x199 ) && ( this.txチップ != null ) ) )\r
+                               {\r
+                                       this.txチップ.t2D描画( CDTXMania.app.Device, 480, y, new Rectangle( 0, 0xeb, 0x68, 1 ) );\r
+                               }\r
+                       }\r
+\r
+               }\r
+\r
                #endregion\r
        }\r
 }\r
index 849e406..bf639b6 100644 (file)
@@ -1532,13 +1532,13 @@ namespace DTXMania
                //        CStage.Eフェーズ eフェーズid1 = base.eフェーズID;\r
                //    }\r
                //}\r
-               private void t進行描画・RGBボタン()\r
-               {\r
-                       if( CDTXMania.ConfigIni.eDark != Eダークモード.FULL )\r
-                       {\r
-                               this.actRGB.On進行描画();\r
-                       }\r
-               }\r
+               //private void t進行描画・RGBボタン()\r
+               //{\r
+               //    if( CDTXMania.ConfigIni.eDark != Eダークモード.FULL )\r
+               //    {\r
+               //        this.actRGB.On進行描画();\r
+               //    }\r
+               //}\r
                //private void t進行描画・STAGEFAILED()\r
                //{\r
                //    if( ( ( base.eフェーズID == CStage.Eフェーズ.演奏_STAGE_FAILED ) || ( base.eフェーズID == CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) ) && ( ( this.actStageFailed.On進行描画() != 0 ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) ) )\r
@@ -1656,974 +1656,454 @@ namespace DTXMania
                //{\r
                //    this.actStatusPanels.On進行描画();\r
                //}\r
-               private bool t進行描画・チップ(E楽器パート ePlayMode)\r
-               {\r
-                       if( ( base.eフェーズID == CStage.Eフェーズ.演奏_STAGE_FAILED ) || ( base.eフェーズID == CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) )\r
-                       {\r
-                               return true;\r
-                       }\r
-                       if( ( this.n現在のトップChip == -1 ) || ( this.n現在のトップChip >= CDTXMania.DTX.listChip.Count ) )\r
-                       {\r
-                               return true;\r
-                       }\r
-                       int nCurrentTopChip = this.n現在のトップChip;\r
-                       if( nCurrentTopChip == -1 )\r
-                       {\r
-                               return true;\r
-                       }\r
+//        private bool t進行描画・チップ(E楽器パート ePlayMode)\r
+//        {\r
+//            if( ( base.eフェーズID == CStage.Eフェーズ.演奏_STAGE_FAILED ) || ( base.eフェーズID == CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) )\r
+//            {\r
+//                return true;\r
+//            }\r
+//            if( ( this.n現在のトップChip == -1 ) || ( this.n現在のトップChip >= CDTXMania.DTX.listChip.Count ) )\r
+//            {\r
+//                return true;\r
+//            }\r
+//            int nCurrentTopChip = this.n現在のトップChip;\r
+//            if( nCurrentTopChip == -1 )\r
+//            {\r
+//                return true;\r
+//            }\r
 \r
-                       //double speed = 264.0; // BPM150の時の1小節の長さ[dot]\r
-                       double speed = 234.0;   // BPM150の時の1小節の長さ[dot]\r
+//            //double speed = 264.0;  // BPM150の時の1小節の長さ[dot]\r
+//            double speed = 234.0;    // BPM150の時の1小節の長さ[dot]\r
 \r
-                       double ScrollSpeedDrums  = ( this.act譜面スクロール速度.db現在の譜面スクロール速度.Drums  + 1.0 ) * 0.5 *       37.5 * speed / 60000.0;\r
-                       double ScrollSpeedGuitar = ( this.act譜面スクロール速度.db現在の譜面スクロール速度.Guitar + 1.0 ) * 0.5 * 0.5 * 37.5 * speed / 60000.0;\r
-                       double ScrollSpeedBass   = ( this.act譜面スクロール速度.db現在の譜面スクロール速度.Bass   + 1.0 ) * 0.5 * 0.5 * 37.5 * speed / 60000.0;\r
+//            double ScrollSpeedDrums  = ( this.act譜面スクロール速度.db現在の譜面スクロール速度.Drums  + 1.0 ) * 0.5 *       37.5 * speed / 60000.0;\r
+//            double ScrollSpeedGuitar = ( this.act譜面スクロール速度.db現在の譜面スクロール速度.Guitar + 1.0 ) * 0.5 * 0.5 * 37.5 * speed / 60000.0;\r
+//            double ScrollSpeedBass   = ( this.act譜面スクロール速度.db現在の譜面スクロール速度.Bass   + 1.0 ) * 0.5 * 0.5 * 37.5 * speed / 60000.0;\r
 \r
-                       CDTX dTX = CDTXMania.DTX;\r
-                       CConfigIni configIni = CDTXMania.ConfigIni;\r
-                       while( nCurrentTopChip < dTX.listChip.Count )\r
-                       {\r
-                               CDTX.CChip pChip = dTX.listChip[ nCurrentTopChip ];\r
-                               pChip.nバーからの距離dot.Drums = (int) ( ( pChip.n発声時刻ms - CDTXMania.Timer.n現在時刻 ) * ScrollSpeedDrums );\r
-                               pChip.nバーからの距離dot.Guitar = (int) ( ( pChip.n発声時刻ms - CDTXMania.Timer.n現在時刻 ) * ScrollSpeedGuitar );\r
-                               pChip.nバーからの距離dot.Bass = (int) ( ( pChip.n発声時刻ms - CDTXMania.Timer.n現在時刻 ) * ScrollSpeedBass );\r
-                               if( Math.Min( Math.Min( pChip.nバーからの距離dot.Drums, pChip.nバーからの距離dot.Guitar ), pChip.nバーからの距離dot.Bass ) > 450 )\r
-                               {\r
-                                       break;\r
-                               }\r
-                               if( ( ( nCurrentTopChip == this.n現在のトップChip ) && ( pChip.nバーからの距離dot.Drums < -65 ) ) && pChip.bHit )\r
-                               {\r
-                                       this.n現在のトップChip++;\r
-                                       nCurrentTopChip = this.n現在のトップChip;\r
-                                       continue;\r
-                               }\r
+//            CDTX dTX = CDTXMania.DTX;\r
+//            CConfigIni configIni = CDTXMania.ConfigIni;\r
+//            while( nCurrentTopChip < dTX.listChip.Count )\r
+//            {\r
+//                CDTX.CChip pChip = dTX.listChip[ nCurrentTopChip ];\r
+//                pChip.nバーからの距離dot.Drums = (int) ( ( pChip.n発声時刻ms - CDTXMania.Timer.n現在時刻 ) * ScrollSpeedDrums );\r
+//                pChip.nバーからの距離dot.Guitar = (int) ( ( pChip.n発声時刻ms - CDTXMania.Timer.n現在時刻 ) * ScrollSpeedGuitar );\r
+//                pChip.nバーからの距離dot.Bass = (int) ( ( pChip.n発声時刻ms - CDTXMania.Timer.n現在時刻 ) * ScrollSpeedBass );\r
+//                if( Math.Min( Math.Min( pChip.nバーからの距離dot.Drums, pChip.nバーからの距離dot.Guitar ), pChip.nバーからの距離dot.Bass ) > 450 )\r
+//                {\r
+//                    break;\r
+//                }\r
+//                if( ( ( nCurrentTopChip == this.n現在のトップChip ) && ( pChip.nバーからの距離dot.Drums < -65 ) ) && pChip.bHit )\r
+//                {\r
+//                    this.n現在のトップChip++;\r
+//                    nCurrentTopChip = this.n現在のトップChip;\r
+//                    continue;\r
+//                }\r
 \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
-                                               ((pChip.e楽器パート == E楽器パート.BASS) && CDTXMania.ConfigIni.bAutoPlay.Bass)\r
-                                 )\r
-//                             if ((pChip.e楽器パート == E楽器パート.DRUMS) && CDTXMania.ConfigIni.bAutoPlay[this.nチャンネル0Atoレーン07[pChip.nチャンネル番号 - 0x11]])\r
-                               {\r
-                                       bPChipIsAutoPlay = true;\r
-                               }\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
+//                        ((pChip.e楽器パート == E楽器パート.BASS) && CDTXMania.ConfigIni.bAutoPlay.Bass)\r
+//                  )\r
+////                           if ((pChip.e楽器パート == E楽器パート.DRUMS) && CDTXMania.ConfigIni.bAutoPlay[this.nチャンネル0Atoレーン07[pChip.nチャンネル番号 - 0x11]])\r
+//                {\r
+//                    bPChipIsAutoPlay = true;\r
+//                }\r
 \r
-                               int nInputAdjustTime = 0;\r
-                               if (bPChipIsAutoPlay)\r
-                               {\r
-                                       //nInputAdjustTime = 0;\r
-                               }\r
-                               else if (pChip.e楽器パート == E楽器パート.UNKNOWN)\r
-                               {\r
-                                       //nInputAdjustTime = 0;\r
-                               }\r
-                               else\r
-                               {\r
-                                       nInputAdjustTime = this.nInputAdjustTimeMs[(int)pChip.e楽器パート];\r
-                               }\r
+//                int nInputAdjustTime = 0;\r
+//                if (bPChipIsAutoPlay)\r
+//                {\r
+//                    //nInputAdjustTime = 0;\r
+//                }\r
+//                else if (pChip.e楽器パート == E楽器パート.UNKNOWN)\r
+//                {\r
+//                    //nInputAdjustTime = 0;\r
+//                }\r
+//                else\r
+//                {\r
+//                    nInputAdjustTime = this.nInputAdjustTimeMs[(int)pChip.e楽器パート];\r
+//                }\r
 \r
-                               if( ( ( pChip.e楽器パート != E楽器パート.UNKNOWN ) && !pChip.bHit ) &&\r
-                                       ( ( pChip.nバーからの距離dot.Drums < 0 ) && ( this.e指定時刻からChipのJUDGEを返す( CDTXMania.Timer.n現在時刻, pChip, nInputAdjustTime ) == E判定.Miss ) ) )\r
-                               {\r
-                                       this.tチップのヒット処理( CDTXMania.Timer.n現在時刻, pChip );\r
-                               }\r
-                               switch( pChip.nチャンネル番号 )\r
-                               {\r
-                                       case 0x01:      // BGM\r
-                                               if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
-                                               {\r
-                                                       pChip.bHit = true;\r
-                                                       if( configIni.bBGM音を発声する )\r
-                                                       {\r
-                                                               dTX.tチップの再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, 10, dTX.nモニタを考慮した音量( E楽器パート.UNKNOWN ) );\r
-                                                       }\r
-                                               }\r
-                                               break;\r
+//                if( ( ( pChip.e楽器パート != E楽器パート.UNKNOWN ) && !pChip.bHit ) &&\r
+//                    ( ( pChip.nバーからの距離dot.Drums < 0 ) && ( this.e指定時刻からChipのJUDGEを返す( CDTXMania.Timer.n現在時刻, pChip, nInputAdjustTime ) == E判定.Miss ) ) )\r
+//                {\r
+//                    this.tチップのヒット処理( CDTXMania.Timer.n現在時刻, pChip );\r
+//                }\r
+//                switch( pChip.nチャンネル番号 )\r
+//                {\r
+//                    case 0x01:       // BGM\r
+//                        if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+//                        {\r
+//                            pChip.bHit = true;\r
+//                            if( configIni.bBGM音を発声する )\r
+//                            {\r
+//                                dTX.tチップの再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, 10, dTX.nモニタを考慮した音量( E楽器パート.UNKNOWN ) );\r
+//                            }\r
+//                        }\r
+//                        break;\r
 \r
-                                       case 0x03:      // BPM変更\r
-                                               if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
-                                               {\r
-                                                       pChip.bHit = true;\r
-                                                       this.actPlayInfo.dbBPM = ( pChip.n整数値 * ( ( (double) configIni.n演奏速度 ) / 20.0 ) ) + dTX.BASEBPM;\r
-                                               }\r
-                                               break;\r
+//                    case 0x03:       // BPM変更\r
+//                        if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+//                        {\r
+//                            pChip.bHit = true;\r
+//                            this.actPlayInfo.dbBPM = ( pChip.n整数値 * ( ( (double) configIni.n演奏速度 ) / 20.0 ) ) + dTX.BASEBPM;\r
+//                        }\r
+//                        break;\r
+\r
+//                    case 0x04:       // レイヤーBGA\r
+//                    case 0x07:\r
+//                    case 0x55:\r
+//                    case 0x56:\r
+//                    case 0x57:\r
+//                    case 0x58:\r
+//                    case 0x59:\r
+//                    case 0x60:\r
+//                        if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+//                        {\r
+//                            pChip.bHit = true;\r
+//                            if( configIni.bBGA有効 )\r
+//                            {\r
+//                                switch( pChip.eBGA種別 )\r
+//                                {\r
+//                                    case EBGA種別.BMPTEX:\r
+//                                        if( pChip.rBMPTEX != null )\r
+//                                        {\r
+//                                            this.actBGA.Start( pChip.nチャンネル番号, null, pChip.rBMPTEX, pChip.rBMPTEX.tx画像.sz画像サイズ.Width, pChip.rBMPTEX.tx画像.sz画像サイズ.Height, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 );\r
+//                                        }\r
+//                                        break;\r
+\r
+//                                    case EBGA種別.BGA:\r
+//                                        if( ( pChip.rBGA != null ) && ( ( pChip.rBMP != null ) || ( pChip.rBMPTEX != null ) ) )\r
+//                                        {\r
+//                                            this.actBGA.Start( pChip.nチャンネル番号, pChip.rBMP, pChip.rBMPTEX, pChip.rBGA.pt画像側右下座標.X - pChip.rBGA.pt画像側左上座標.X, pChip.rBGA.pt画像側右下座標.Y - pChip.rBGA.pt画像側左上座標.Y, 0, 0, pChip.rBGA.pt画像側左上座標.X, pChip.rBGA.pt画像側左上座標.Y, 0, 0, pChip.rBGA.pt表示座標.X, pChip.rBGA.pt表示座標.Y, 0, 0, 0 );\r
+//                                        }\r
+//                                        break;\r
+\r
+//                                    case EBGA種別.BGAPAN:\r
+//                                        if( ( pChip.rBGAPan != null ) && ( ( pChip.rBMP != null ) || ( pChip.rBMPTEX != null ) ) )\r
+//                                        {\r
+//                                            this.actBGA.Start( pChip.nチャンネル番号, pChip.rBMP, pChip.rBMPTEX, pChip.rBGAPan.sz開始サイズ.Width, pChip.rBGAPan.sz開始サイズ.Height, pChip.rBGAPan.sz終了サイズ.Width, pChip.rBGAPan.sz終了サイズ.Height, pChip.rBGAPan.pt画像側開始位置.X, pChip.rBGAPan.pt画像側開始位置.Y, pChip.rBGAPan.pt画像側終了位置.X, pChip.rBGAPan.pt画像側終了位置.Y, pChip.rBGAPan.pt表示側開始位置.X, pChip.rBGAPan.pt表示側開始位置.Y, pChip.rBGAPan.pt表示側終了位置.X, pChip.rBGAPan.pt表示側終了位置.Y, pChip.n総移動時間 );\r
+//                                        }\r
+//                                        break;\r
+\r
+//                                    default:\r
+//                                        if( pChip.rBMP != null )\r
+//                                        {\r
+//                                            this.actBGA.Start( pChip.nチャンネル番号, pChip.rBMP, null, pChip.rBMP.n幅, pChip.rBMP.n高さ, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 );\r
+//                                        }\r
+//                                        break;\r
+//                                }\r
+//                            }\r
+//                        }\r
+//                        break;\r
 \r
-                                       case 0x04:      // レイヤーBGA\r
-                                       case 0x07:\r
-                                       case 0x55:\r
-                                       case 0x56:\r
-                                       case 0x57:\r
-                                       case 0x58:\r
-                                       case 0x59:\r
-                                       case 0x60:\r
-                                               if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
-                                               {\r
-                                                       pChip.bHit = true;\r
-                                                       if( configIni.bBGA有効 )\r
-                                                       {\r
-                                                               switch( pChip.eBGA種別 )\r
-                                                               {\r
-                                                                       case EBGA種別.BMPTEX:\r
-                                                                               if( pChip.rBMPTEX != null )\r
-                                                                               {\r
-                                                                                       this.actBGA.Start( pChip.nチャンネル番号, null, pChip.rBMPTEX, pChip.rBMPTEX.tx画像.sz画像サイズ.Width, pChip.rBMPTEX.tx画像.sz画像サイズ.Height, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 );\r
-                                                                               }\r
-                                                                               break;\r
+//                    case 0x08:       // BPM変更(拡張)\r
+//                        if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+//                        {\r
+//                            pChip.bHit = true;\r
+//                            if( dTX.listBPM.ContainsKey( pChip.n整数値・内部番号 ) )\r
+//                            {\r
+//                                this.actPlayInfo.dbBPM = ( dTX.listBPM[ pChip.n整数値・内部番号 ].dbBPM値 * ( ( (double) configIni.n演奏速度 ) / 20.0 ) ) + dTX.BASEBPM;\r
+//                            }\r
+//                        }\r
+//                        break;\r
+\r
+//                    case 0x11:       // ドラム演奏\r
+//                    case 0x12:\r
+//                    case 0x13:\r
+//                    case 0x14:\r
+//                    case 0x15:\r
+//                    case 0x16:\r
+//                    case 0x17:\r
+//                    case 0x18:\r
+//                    case 0x19:\r
+//                    case 0x1a:\r
+//                        this.t進行描画・チップ・ドラムス( configIni, ref dTX, ref pChip );\r
+//                        break;\r
+\r
+//                    case 0x1f:       // フィルインサウンド(ドラム)\r
+//                        if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+//                        {\r
+//                            pChip.bHit = true;\r
+//                            this.r現在の歓声Chip.Drums = pChip;\r
+//                        }\r
+//                        break;\r
+\r
+//                    case 0x20:       // ギター演奏\r
+//                    case 0x21:\r
+//                    case 0x22:\r
+//                    case 0x23:\r
+//                    case 0x24:\r
+//                    case 0x25:\r
+//                    case 0x26:\r
+//                    case 0x27:\r
+//                        this.t進行描画・チップ・ギター( configIni, ref dTX, ref pChip );\r
+//                        break;\r
+\r
+//                    case 0x28:       // ウェイリング(ギター)\r
+//                        this.t進行描画・チップ・ギター・ウェイリング( configIni, ref dTX, ref pChip );\r
+//                        break;\r
+\r
+//                    case 0x2f:       // ウェイリングサウンド(ギター)\r
+//                        if( !pChip.bHit && ( pChip.nバーからの距離dot.Guitar < 0 ) )\r
+//                        {\r
+//                            pChip.bHit = true;\r
+//                            this.r現在の歓声Chip.Guitar = pChip;\r
+//                        }\r
+//                        break;\r
+\r
+//                    case 0x31:       // 不可視チップ配置(ドラム)\r
+//                    case 0x32:\r
+//                    case 0x33:\r
+//                    case 0x34:\r
+//                    case 0x35:\r
+//                    case 0x36:\r
+//                    case 0x37:\r
+//                    case 0x38:\r
+//                    case 0x39:\r
+//                    case 0x3a:\r
+//                        if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+//                        {\r
+//                            pChip.bHit = true;\r
+//                        }\r
+//                        break;\r
 \r
-                                                                       case EBGA種別.BGA:\r
-                                                                               if( ( pChip.rBGA != null ) && ( ( pChip.rBMP != null ) || ( pChip.rBMPTEX != null ) ) )\r
-                                                                               {\r
-                                                                                       this.actBGA.Start( pChip.nチャンネル番号, pChip.rBMP, pChip.rBMPTEX, pChip.rBGA.pt画像側右下座標.X - pChip.rBGA.pt画像側左上座標.X, pChip.rBGA.pt画像側右下座標.Y - pChip.rBGA.pt画像側左上座標.Y, 0, 0, pChip.rBGA.pt画像側左上座標.X, pChip.rBGA.pt画像側左上座標.Y, 0, 0, pChip.rBGA.pt表示座標.X, pChip.rBGA.pt表示座標.Y, 0, 0, 0 );\r
-                                                                               }\r
-                                                                               break;\r
+//                    case 0x50:       // 小節線\r
+//                        {\r
+//                            int n小節番号plus1 = pChip.n発声位置 / 384;\r
+//                            if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+//                            {\r
+//                                pChip.bHit = true;\r
+//                                this.actPlayInfo.n小節番号 = n小節番号plus1 - 1;\r
+//                                if( configIni.bWave再生位置自動調整機能有効 )\r
+//                                {\r
+//                                    dTX.tWave再生位置自動補正();\r
+//                                }\r
+//                            }\r
+//                            if( configIni.bDrums有効 && ePlayMode == E楽器パート.DRUMS)       // Drumsでのみ表示\r
+//                            {\r
+//                                if( configIni.b演奏情報を表示する && ( configIni.eDark == Eダークモード.OFF ) )\r
+//                                {\r
+//                                    int n小節番号 = n小節番号plus1 - 1;\r
+//                                    CDTXMania.act文字コンソール.tPrint( 0x14d, configIni.bReverse.Drums ? ( ( 0x38 + pChip.nバーからの距離dot.Drums ) - 0x11 ) : ( ( 0x1a6 - pChip.nバーからの距離dot.Drums ) - 0x11 ), C文字コンソール.Eフォント種別.白, n小節番号.ToString() );\r
+//                                }\r
+//                                if( ( ( configIni.eDark != Eダークモード.FULL ) && pChip.b可視 ) && ( this.txチップ != null ) )\r
+//                                {\r
+//                                    this.txチップ.t2D描画( CDTXMania.app.Device, 0x23, configIni.bReverse.Drums ? ( ( 0x38 + pChip.nバーからの距離dot.Drums ) - 1 ) : ( ( 0x1a6 - pChip.nバーからの距離dot.Drums ) - 1 ), new Rectangle( 0, 0x1bc, 0x128, 2 ) );\r
+//                                }\r
+//                            }\r
+//                            if( ( pChip.b可視 && configIni.bGuitar有効 ) && ( configIni.eDark != Eダークモード.FULL ) )\r
+//                            {\r
+//                                int y = configIni.bReverse.Guitar ? ( ( 0x176 - pChip.nバーからの距離dot.Guitar ) - 1 ) : ( ( 0x5f + pChip.nバーからの距離dot.Guitar ) - 1 );\r
+//                                if( ( dTX.bチップがある.Guitar && ( y > 0x39 ) ) && ( ( y < 0x19c ) && ( this.txチップ != null ) ) )\r
+//                                {\r
+//                                    this.txチップ.t2D描画( CDTXMania.app.Device, 0x1fb, y, new Rectangle( 0, 450, 0x4e, 1 ) );\r
+//                                }\r
+//                                y = configIni.bReverse.Bass ? ( ( 0x176 - pChip.nバーからの距離dot.Bass ) - 1 ) : ( ( 0x5f + pChip.nバーからの距離dot.Bass ) - 1 );\r
+//                                if( ( dTX.bチップがある.Bass && ( y > 0x39 ) ) && ( ( y < 0x19c ) && ( this.txチップ != null ) ) )\r
+//                                {\r
+//                                    this.txチップ.t2D描画( CDTXMania.app.Device, 0x18e, y, new Rectangle( 0, 450, 0x4e, 1 ) );\r
+//                                }\r
+//                            }\r
+//                            break;\r
+//                        }\r
+//                    case 0x51:       // 拍線\r
+//                        if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+//                        {\r
+//                            pChip.bHit = true;\r
+//                        }\r
+//                        if( ( ePlayMode == E楽器パート.DRUMS ) && ( configIni.eDark != Eダークモード.FULL ) && pChip.b可視 && ( this.txチップ != null ) )\r
+//                        {\r
+//                            this.txチップ.t2D描画( CDTXMania.app.Device, 0x23, configIni.bReverse.Drums ? ( ( 0x38 + pChip.nバーからの距離dot.Drums ) - 1 ) : ( ( 0x1a6 - pChip.nバーからの距離dot.Drums ) - 1 ), new Rectangle( 0, 0x1bf, 0x128, 1 ) );\r
+//                        }\r
+//                        break;\r
 \r
-                                                                       case EBGA種別.BGAPAN:\r
-                                                                               if( ( pChip.rBGAPan != null ) && ( ( pChip.rBMP != null ) || ( pChip.rBMPTEX != null ) ) )\r
-                                                                               {\r
-                                                                                       this.actBGA.Start( pChip.nチャンネル番号, pChip.rBMP, pChip.rBMPTEX, pChip.rBGAPan.sz開始サイズ.Width, pChip.rBGAPan.sz開始サイズ.Height, pChip.rBGAPan.sz終了サイズ.Width, pChip.rBGAPan.sz終了サイズ.Height, pChip.rBGAPan.pt画像側開始位置.X, pChip.rBGAPan.pt画像側開始位置.Y, pChip.rBGAPan.pt画像側終了位置.X, pChip.rBGAPan.pt画像側終了位置.Y, pChip.rBGAPan.pt表示側開始位置.X, pChip.rBGAPan.pt表示側開始位置.Y, pChip.rBGAPan.pt表示側終了位置.X, pChip.rBGAPan.pt表示側終了位置.Y, pChip.n総移動時間 );\r
-                                                                               }\r
-                                                                               break;\r
+//                    case 0x52:       // MIDIコーラス\r
+//                        if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+//                        {\r
+//                            pChip.bHit = true;\r
+//                        }\r
+//                        break;\r
 \r
-                                                                       default:\r
-                                                                               if( pChip.rBMP != null )\r
-                                                                               {\r
-                                                                                       this.actBGA.Start( pChip.nチャンネル番号, pChip.rBMP, null, pChip.rBMP.n幅, pChip.rBMP.n高さ, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 );\r
-                                                                               }\r
-                                                                               break;\r
-                                                               }\r
-                                                       }\r
-                                               }\r
-                                               break;\r
+//                    case 0x53:       // フィルイン\r
+//                        this.t進行描画・チップ・フィルイン( configIni, ref dTX, ref pChip );\r
+//                        break;\r
 \r
-                                       case 0x08:      // BPM変更(拡張)\r
-                                               if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
-                                               {\r
-                                                       pChip.bHit = true;\r
-                                                       if( dTX.listBPM.ContainsKey( pChip.n整数値・内部番号 ) )\r
-                                                       {\r
-                                                               this.actPlayInfo.dbBPM = ( dTX.listBPM[ pChip.n整数値・内部番号 ].dbBPM値 * ( ( (double) configIni.n演奏速度 ) / 20.0 ) ) + dTX.BASEBPM;\r
-                                                       }\r
-                                               }\r
-                                               break;\r
+//                    case 0x54:       // 動画再生\r
+//                        if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+//                        {\r
+//                            pChip.bHit = true;\r
+//                            if( configIni.bAVI有効 )\r
+//                            {\r
+//                                switch( pChip.eAVI種別 )\r
+//                                {\r
+//                                    case EAVI種別.AVI:\r
+//                                        if( pChip.rAVI != null )\r
+//                                        {\r
+//                                            this.actAVI.Start( pChip.nチャンネル番号, pChip.rAVI, 0x116, 0x163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, pChip.n発声時刻ms );\r
+//                                        }\r
+//                                        break;\r
+\r
+//                                    case EAVI種別.AVIPAN:\r
+//                                        if( pChip.rAVIPan != null )\r
+//                                        {\r
+//                                            this.actAVI.Start( pChip.nチャンネル番号, pChip.rAVI, pChip.rAVIPan.sz開始サイズ.Width, pChip.rAVIPan.sz開始サイズ.Height, pChip.rAVIPan.sz終了サイズ.Width, pChip.rAVIPan.sz終了サイズ.Height, pChip.rAVIPan.pt動画側開始位置.X, pChip.rAVIPan.pt動画側開始位置.Y, pChip.rAVIPan.pt動画側終了位置.X, pChip.rAVIPan.pt動画側終了位置.Y, pChip.rAVIPan.pt表示側開始位置.X, pChip.rAVIPan.pt表示側開始位置.Y, pChip.rAVIPan.pt表示側終了位置.X, pChip.rAVIPan.pt表示側終了位置.Y, pChip.n総移動時間, pChip.n発声時刻ms );\r
+//                                        }\r
+//                                        break;\r
+//                                }\r
+//                            }\r
+//                        }\r
+//                        break;\r
+\r
+//                    case 0x61:       case 0x62:      case 0x63:      case 0x64:      // 自動再生(BGM, SE)\r
+//                    case 0x65:       case 0x66:      case 0x67:      case 0x68:\r
+//                    case 0x69:       case 0x70:      case 0x71:      case 0x72:\r
+//                    case 0x73:       case 0x74:      case 0x75:      case 0x76:\r
+//                    case 0x77:       case 0x78:      case 0x79:      case 0x80:\r
+//                    case 0x81:       case 0x82:      case 0x83:      case 0x84:\r
+//                    case 0x85:       case 0x86:      case 0x87:      case 0x88:\r
+//                    case 0x89:       case 0x90:      case 0x91:      case 0x92:\r
+//                        if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+//                        {\r
+//                            pChip.bHit = true;\r
+//                            if( configIni.bBGM音を発声する )\r
+//                            {\r
+//                                dTX.tWavの再生停止( this.n最後に再生したBGMの実WAV番号[ pChip.nチャンネル番号 - 0x61 ] );\r
+//                                dTX.tチップの再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, 10, dTX.nモニタを考慮した音量( E楽器パート.UNKNOWN ) );\r
+//                                this.n最後に再生したBGMの実WAV番号[ pChip.nチャンネル番号 - 0x61 ] = pChip.n整数値・内部番号;\r
+//                            }\r
+//                        }\r
+//                        break;\r
+\r
+//                    case 0xa0:       // ベース演奏\r
+//                    case 0xa1:\r
+//                    case 0xa2:\r
+//                    case 0xa3:\r
+//                    case 0xa4:\r
+//                    case 0xa5:\r
+//                    case 0xa6:\r
+//                    case 0xa7:\r
+//                        this.t進行描画・チップ・ベース( configIni, ref dTX, ref pChip );\r
+//                        break;\r
+\r
+//                    case 0xa8:       // ウェイリング(ベース)\r
+//                        this.t進行描画・チップ・ベース・ウェイリング( configIni, ref dTX, ref pChip );\r
+//                        break;\r
+\r
+//                    case 0xaf:       // ウェイリングサウンド(ベース)\r
+//                        if( !pChip.bHit && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
+//                        {\r
+//                            pChip.bHit = true;\r
+//                            this.r現在の歓声Chip.Bass = pChip;\r
+//                        }\r
+//                        break;\r
+\r
+//                    case 0xb1:       // 空打ち音設定(ドラム)\r
+//                    case 0xb2:\r
+//                    case 0xb3:\r
+//                    case 0xb4:\r
+//                    case 0xb5:\r
+//                    case 0xb6:\r
+//                    case 0xb7:\r
+//                    case 0xb8:\r
+//                    case 0xb9:\r
+//                    case 0xbc:\r
+//                        this.t進行描画・チップ・空打ち音設定・ドラム( configIni, ref dTX, ref pChip );\r
+//                        break;\r
+\r
+//                    case 0xba:       // 空打ち音設定(ギター)\r
+//                        if( !pChip.bHit && ( pChip.nバーからの距離dot.Guitar < 0 ) )\r
+//                        {\r
+//                            pChip.bHit = true;\r
+//                            this.r現在の空うちギターChip = pChip;\r
+//                            pChip.nチャンネル番号 = 0x20;\r
+//                        }\r
+//                        break;\r
 \r
-                                       case 0x11:      // ドラム演奏\r
-                                       case 0x12:\r
-                                       case 0x13:\r
-                                       case 0x14:\r
-                                       case 0x15:\r
-                                       case 0x16:\r
-                                       case 0x17:\r
-                                       case 0x18:\r
-                                       case 0x19:\r
-                                       case 0x1a:\r
-                                               {\r
-                                                       int indexSevenLanes = this.nチャンネル0Atoレーン07[ pChip.nチャンネル番号 - 0x11 ];\r
-                                                       if ( ePlayMode == E楽器パート.GUITAR )             // GRモード\r
-                                                       {\r
-                                                               if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
-                                                               {\r
-                                                                       pChip.bHit = true;\r
-                                                                       this.tサウンド再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.DRUMS, dTX.nモニタを考慮した音量( E楽器パート.DRUMS ) );\r
-                                                               }\r
-                                                               break;\r
-                                                       }\r
-                                                       else\r
-                                                       {                                                                       // Drumsモード\r
-                                                               if ( configIni.bDrums有効 )\r
-                                                               {\r
-                                                                       if ( configIni.bSudden.Drums )\r
-                                                                       {\r
-                                                                               if ( pChip.nバーからの距離dot.Drums < 200 )\r
-                                                                               {\r
-                                                                                       pChip.b可視 = true;\r
-                                                                                       pChip.n透明度 = 0xff;\r
-                                                                               }\r
-                                                                               else if ( pChip.nバーからの距離dot.Drums < 250 )\r
-                                                                               {\r
-                                                                                       pChip.b可視 = true;\r
-                                                                                       pChip.n透明度 = 0xff - ( (int) ( ( ( (double) ( pChip.nバーからの距離dot.Drums - 200 ) ) * 255.0 ) / 50.0 ) );\r
-                                                                               }\r
-                                                                               else\r
-                                                                               {\r
-                                                                                       pChip.b可視 = false;\r
-                                                                                       pChip.n透明度 = 0;\r
-                                                                               }\r
-                                                                       }\r
-                                                                       if ( configIni.bHidden.Drums )\r
-                                                                       {\r
-                                                                               if ( pChip.nバーからの距離dot.Drums < 100 )\r
-                                                                               {\r
-                                                                                       pChip.b可視 = false;\r
-                                                                               }\r
-                                                                               else if ( pChip.nバーからの距離dot.Drums < 150 )\r
-                                                                               {\r
-                                                                                       pChip.b可視 = true;\r
-                                                                                       pChip.n透明度 = (int) ( ( ( (double) ( pChip.nバーからの距離dot.Drums - 100 ) ) * 255.0 ) / 50.0 );\r
-                                                                               }\r
-                                                                       }\r
-                                                                       if ( !pChip.bHit && pChip.b可視 )\r
-                                                                       {\r
-                                                                               if ( this.txチップ != null )\r
-                                                                               {\r
-                                                                                       this.txチップ.n透明度 = pChip.n透明度;\r
-                                                                               }\r
-                                                                               int x = this.nチャンネルtoX座標[ pChip.nチャンネル番号 - 0x11 ];\r
-                                                                               int num8 = configIni.bReverse.Drums ? ( 0x38 + pChip.nバーからの距離dot.Drums ) : ( 0x1a6 - pChip.nバーからの距離dot.Drums );\r
-                                                                               if ( this.txチップ != null )\r
-                                                                               {\r
-                                                                                       this.txチップ.vc拡大縮小倍率 = new Vector3( (float) pChip.dbチップサイズ倍率, (float) pChip.dbチップサイズ倍率, 1f );\r
-                                                                               }\r
-                                                                               int num9 = this.ctチップ模様アニメ.Drums.n現在の値;\r
-                                                                               switch ( pChip.nチャンネル番号 )\r
-                                                                               {\r
-                                                                                       case 0x11:\r
-                                                                                               x = ( x + 0x10 ) - ( (int) ( ( 32.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
-                                                                                               if ( this.txチップ != null )\r
-                                                                                               {\r
-                                                                                                       this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 4, new Rectangle( 0x2c, num9 * 7, 0x20, 8 ) );\r
-                                                                                               }\r
-                                                                                               break;\r
+//                    case 0xbb:       // 空打ち音設定(ベース)\r
+//                        if( !pChip.bHit && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
+//                        {\r
+//                            pChip.bHit = true;\r
+//                            this.r現在の空うちベースChip = pChip;\r
+//                            pChip.nチャンネル番号 = 0xA0;\r
+//                        }\r
+//                        break;\r
 \r
-                                                                                       case 0x12:\r
-                                                                                               x = ( x + 0x10 ) - ( (int) ( ( 32.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
-                                                                                               if ( this.txチップ != null )\r
-                                                                                               {\r
-                                                                                                       this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 4, new Rectangle( 0x4c, num9 * 7, 0x20, 8 ) );\r
-                                                                                               }\r
-                                                                                               break;\r
+//                    case 0xc4:       case 0xc7:      case 0xd5:      case 0xd6:      // BGA画像入れ替え\r
+//                    case 0xd7:       case 0xd8:      case 0xd9:      case 0xe0:\r
+//                        if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+//                        {\r
+//                            pChip.bHit = true;\r
+//                            if( ( configIni.bBGA有効 && ( pChip.eBGA種別 == EBGA種別.BMP ) ) || ( pChip.eBGA種別 == EBGA種別.BMPTEX ) )\r
+//                            {\r
+//                                for( int i = 0; i < 8; i++ )\r
+//                                {\r
+//                                    if( this.nBGAスコープチャンネルマップ[ 0, i ] == pChip.nチャンネル番号 )\r
+//                                    {\r
+//                                        this.actBGA.ChangeScope( this.nBGAスコープチャンネルマップ[ 1, i ], pChip.rBMP, pChip.rBMPTEX );\r
+//                                    }\r
+//                                }\r
+//                            }\r
+//                        }\r
+//                        break;\r
 \r
-                                                                                       case 0x13:\r
-                                                                                               x = ( x + 0x16 ) - ( (int) ( ( 44.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
-                                                                                               if ( this.txチップ != null )\r
-                                                                                               {\r
-                                                                                                       this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 5, new Rectangle( 0, num9 * 9, 0x2c, 10 ) );\r
-                                                                                               }\r
-                                                                                               break;\r
+//                    default:\r
+//                        if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+//                        {\r
+//                            pChip.bHit = true;\r
+//                        }\r
+//                        break;\r
+//                }\r
 \r
-                                                                                       case 0x14:\r
-                                                                                               x = ( x + 0x10 ) - ( (int) ( ( 32.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
-                                                                                               if ( this.txチップ != null )\r
-                                                                                               {\r
-                                                                                                       this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 4, new Rectangle( 0x6c, num9 * 7, 0x20, 8 ) );\r
-                                                                                               }\r
-                                                                                               break;\r
+//                nCurrentTopChip++;\r
+//            }\r
+//            return false;\r
+//        }\r
+               //private void t進行描画・チップアニメ()\r
+               //{\r
+               //    for ( int i = 0; i < 3; i++ )\r
+               //    {\r
+               //        this.ctチップ模様アニメ[ i ].t進行Loop();\r
+               //    }\r
+               //    this.ctWailingチップ模様アニメ.t進行Loop();\r
+               //}\r
+               private void t進行描画・チップファイアD()\r
+               {\r
+                       this.actChipFireD.On進行描画();\r
+               }\r
+               //private void t進行描画・チップファイアGB()\r
+               //{\r
+               //    this.actChipFireGB.On進行描画();\r
+               //}\r
+               private void t進行描画・ドラムパッド()\r
+               {\r
+                       if( CDTXMania.ConfigIni.eDark != Eダークモード.FULL )\r
+                       {\r
+                               this.actPad.On進行描画();\r
+                       }\r
+               }\r
+               protected override void t進行描画・パネル文字列()\r
+               {\r
+                       base.t進行描画・パネル文字列( 0x150, 0x1ab );\r
+               }\r
+               //private bool t進行描画・フェードイン・アウト()\r
+               //{\r
+               //    switch( base.eフェーズID )\r
+               //    {\r
+               //        case CStage.Eフェーズ.共通_フェードイン:\r
+               //            if( this.actFI.On進行描画() != 0 )\r
+               //            {\r
+               //                base.eフェーズID = CStage.Eフェーズ.共通_通常状態;\r
+               //            }\r
+               //            break;\r
 \r
-                                                                                       case 0x15:\r
-                                                                                               x = ( x + 0x10 ) - ( (int) ( ( 32.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
-                                                                                               if ( this.txチップ != null )\r
-                                                                                               {\r
-                                                                                                       this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 4, new Rectangle( 140, num9 * 7, 0x20, 8 ) );\r
-                                                                                               }\r
-                                                                                               break;\r
-\r
-                                                                                       case 0x16:\r
-                                                                                               x = ( x + 0x13 ) - ( (int) ( ( 38.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
-                                                                                               if ( this.txチップ != null )\r
-                                                                                               {\r
-                                                                                                       this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 0x15, new Rectangle( 0xcc, 0x158, 0x26, 0x24 ) );\r
-                                                                                                       this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 4, new Rectangle( 0xcc, num9 * 7, 0x26, 8 ) );\r
-                                                                                               }\r
-                                                                                               break;\r
-\r
-                                                                                       case 0x17:\r
-                                                                                               x = ( x + 0x10 ) - ( (int) ( ( 32.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
-                                                                                               if ( this.txチップ != null )\r
-                                                                                               {\r
-                                                                                                       this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 4, new Rectangle( 0xac, num9 * 7, 0x20, 8 ) );\r
-                                                                                               }\r
-                                                                                               break;\r
-\r
-                                                                                       case 0x18:\r
-                                                                                               x = ( x + 13 ) - ( (int) ( ( 26.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
-                                                                                               if ( this.txチップ != null )\r
-                                                                                               {\r
-                                                                                                       this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 4, new Rectangle( 0xf2, num9 * 7, 0x1a, 8 ) );\r
-                                                                                                       this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 9, new Rectangle( 0xf2, 0x158, 0x1a, 0x12 ) );\r
-                                                                                               }\r
-                                                                                               break;\r
-\r
-                                                                                       case 0x19:\r
-                                                                                               x = ( x + 13 ) - ( (int) ( ( 26.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
-                                                                                               if ( this.txチップ != null )\r
-                                                                                               {\r
-                                                                                                       this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 4, new Rectangle( 0xf2, num9 * 7, 0x1a, 8 ) );\r
-                                                                                                       this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 9, new Rectangle( 0xf2, 0x158, 0x1a, 0x12 ) );\r
-                                                                                               }\r
-                                                                                               break;\r
-\r
-                                                                                       case 0x1a:\r
-                                                                                               x = ( x + 0x13 ) - ( (int) ( ( 38.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
-                                                                                               if ( this.txチップ != null )\r
-                                                                                               {\r
-                                                                                                       this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 0x15, new Rectangle( 0xcc, 0x158, 0x26, 0x24 ) );\r
-                                                                                                       this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 4, new Rectangle( 0xcc, num9 * 7, 0x26, 8 ) );\r
-                                                                                               }\r
-                                                                                               break;\r
-                                                                               }\r
-                                                                               if ( this.txチップ != null )\r
-                                                                               {\r
-                                                                                       this.txチップ.vc拡大縮小倍率 = new Vector3( 1f, 1f, 1f );\r
-                                                                                       this.txチップ.n透明度 = 0xff;\r
-                                                                               }\r
-                                                                       }\r
-                                                                       if ( ( configIni.bAutoPlay[ indexSevenLanes ] && !pChip.bHit ) && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
-                                                                       {\r
-                                                                               pChip.bHit = true;\r
-                                                                               this.actLaneFlushD.Start( (Eドラムレーン) indexSevenLanes, ( (float) CInput管理.n通常音量 ) / 127f );\r
-                                                                               bool flag = this.bフィルイン中;\r
-                                                                               bool flag2 = this.bフィルイン中 && this.bフィルイン区間の最後のChipである( pChip );\r
-                                                                               bool flag3 = flag2;\r
-                                                                               this.actChipFireD.Start( (Eドラムレーン) indexSevenLanes, flag, flag2, flag3 );\r
-                                                                               this.actPad.Hit( this.nチャンネル0Atoパッド08[ pChip.nチャンネル番号 - 0x11 ] );\r
-                                                                               this.tサウンド再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.DRUMS, dTX.nモニタを考慮した音量( E楽器パート.DRUMS ) );\r
-                                                                               this.tチップのヒット処理( pChip.n発声時刻ms, pChip );\r
-                                                                       }\r
-                                                                       break;\r
-                                                               }\r
-                                                               if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
-                                                               {\r
-                                                                       this.tサウンド再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.DRUMS, dTX.nモニタを考慮した音量( E楽器パート.DRUMS ) );\r
-                                                                       pChip.bHit = true;\r
-                                                               }\r
-                                                       }\r
-                                               }\r
-                                               break;\r
-\r
-                                       case 0x1f:      // フィルインサウンド(ドラム)\r
-                                               if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
-                                               {\r
-                                                       pChip.bHit = true;\r
-                                                       this.r現在の歓声Chip.Drums = pChip;\r
-                                               }\r
-                                               break;\r
-\r
-                                       case 0x20:      // ギター演奏\r
-                                       case 0x21:\r
-                                       case 0x22:\r
-                                       case 0x23:\r
-                                       case 0x24:\r
-                                       case 0x25:\r
-                                       case 0x26:\r
-                                       case 0x27:\r
-                                               if( configIni.bGuitar有効 )\r
-                                               {\r
-                                                       if( configIni.bSudden.Guitar )\r
-                                                       {\r
-                                                               pChip.b可視 = pChip.nバーからの距離dot.Guitar < 200;\r
-                                                       }\r
-                                                       if( configIni.bHidden.Guitar && ( pChip.nバーからの距離dot.Guitar < 100 ) )\r
-                                                       {\r
-                                                               pChip.b可視 = false;\r
-                                                       }\r
-                                                       if( !pChip.bHit && pChip.b可視 )\r
-                                                       {\r
-                                                               int num10 = configIni.bReverse.Guitar ? ( 0x176 - pChip.nバーからの距離dot.Guitar ) : ( 0x5f + pChip.nバーからの距離dot.Guitar );\r
-                                                               if( ( num10 > 0x39 ) && ( num10 < 0x19c ) )\r
-                                                               {\r
-                                                                       int num11 = this.ctチップ模様アニメ.Guitar.n現在の値;\r
-                                                                       if( pChip.nチャンネル番号 == 0x20 )\r
-                                                                       {\r
-                                                                               if( this.txチップ != null )\r
-                                                                               {\r
-                                                                                       this.txチップ.t2D描画( CDTXMania.app.Device, 0x1fd, num10 - 2, new Rectangle( 0x10c, 0x90 + ( ( num11 % 5 ) * 6 ), 0x4c, 6 ) );\r
-                                                                               }\r
-                                                                       }\r
-                                                                       else if( !configIni.bLeft.Guitar )\r
-                                                                       {\r
-                                                                               Rectangle rectangle = new Rectangle( 0x10c, num11 * 6, 0x18, 6 );\r
-                                                                               if( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) && ( this.txチップ != null ) )\r
-                                                                               {\r
-                                                                                       this.txチップ.t2D描画( CDTXMania.app.Device, 0x1fd, num10 - 3, rectangle );\r
-                                                                               }\r
-                                                                               rectangle.X += 0x18;\r
-                                                                               if( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) && ( this.txチップ != null ) )\r
-                                                                               {\r
-                                                                                       this.txチップ.t2D描画( CDTXMania.app.Device, 0x217, num10 - 3, rectangle );\r
-                                                                               }\r
-                                                                               rectangle.X += 0x18;\r
-                                                                               if( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) && ( this.txチップ != null ) )\r
-                                                                               {\r
-                                                                                       this.txチップ.t2D描画( CDTXMania.app.Device, 0x231, num10 - 3, rectangle );\r
-                                                                               }\r
-                                                                       }\r
-                                                                       else\r
-                                                                       {\r
-                                                                               Rectangle rectangle2 = new Rectangle( 0x10c, num11 * 6, 0x18, 6 );\r
-                                                                               if( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) && ( this.txチップ != null ) )\r
-                                                                               {\r
-                                                                                       this.txチップ.t2D描画( CDTXMania.app.Device, 0x231, num10 - 3, rectangle2 );\r
-                                                                               }\r
-                                                                               rectangle2.X += 0x18;\r
-                                                                               if( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) && ( this.txチップ != null ) )\r
-                                                                               {\r
-                                                                                       this.txチップ.t2D描画( CDTXMania.app.Device, 0x217, num10 - 3, rectangle2 );\r
-                                                                               }\r
-                                                                               rectangle2.X += 0x18;\r
-                                                                               if( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) && ( this.txチップ != null ) )\r
-                                                                               {\r
-                                                                                       this.txチップ.t2D描画( CDTXMania.app.Device, 0x1fd, num10 - 3, rectangle2 );\r
-                                                                               }\r
-                                                                       }\r
-                                                               }\r
-                                                       }\r
-                                                       if( ( configIni.bAutoPlay.Guitar && !pChip.bHit ) && ( pChip.nバーからの距離dot.Guitar < 0 ) )\r
-                                                       {\r
-                                                               pChip.bHit = true;\r
-                                                               if( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) || ( pChip.nチャンネル番号 == 0x20 ) )\r
-                                                               {\r
-                                                                       this.actChipFireGB.Start( 0 );\r
-                                                               }\r
-                                                               if( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) || ( pChip.nチャンネル番号 == 0x20 ) )\r
-                                                               {\r
-                                                                       this.actChipFireGB.Start( 1 );\r
-                                                               }\r
-                                                               if( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) || ( pChip.nチャンネル番号 == 0x20 ) )\r
-                                                               {\r
-                                                                       this.actChipFireGB.Start( 2 );\r
-                                                               }\r
-                                                               this.tサウンド再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.GUITAR, dTX.nモニタを考慮した音量( E楽器パート.GUITAR ) );\r
-                                                               this.r次にくるギターChip = null;\r
-                                                               this.tチップのヒット処理( pChip.n発声時刻ms, pChip );\r
-                                                       }\r
-                                                       break;\r
-                                               }\r
-                                               if( !pChip.bHit && ( pChip.nバーからの距離dot.Guitar < 0 ) )\r
-                                               {\r
-                                                       pChip.bHit = true;\r
-                                                       this.tサウンド再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.GUITAR, dTX.nモニタを考慮した音量( E楽器パート.GUITAR ) );\r
-                                               }\r
-                                               break;\r
-\r
-                                       case 0x28:      // ウェイリング(ギター)\r
-                                               if( configIni.bGuitar有効 )\r
-                                               {\r
-                                                       if( configIni.bSudden.Guitar )\r
-                                                       {\r
-                                                               pChip.b可視 = pChip.nバーからの距離dot.Guitar < 200;\r
-                                                       }\r
-                                                       if( configIni.bHidden.Guitar && ( pChip.nバーからの距離dot.Guitar < 100 ) )\r
-                                                       {\r
-                                                               pChip.b可視 = false;\r
-                                                       }\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
-                                                               {\r
-                                                                       int num18 = this.ctWailingチップ模様アニメ.n現在の値;\r
-                                                                       Rectangle rectangle5 = new Rectangle( 0x10c + ( num18 * 20 ), 0xae, 20, 50 );\r
-                                                                       if( num16 < num14 )\r
-                                                                       {\r
-                                                                               rectangle5.Y += num14 - num16;\r
-                                                                               rectangle5.Height -= num14 - num16;\r
-                                                                               num17 = num14 - num16;\r
-                                                                       }\r
-                                                                       if( num16 > ( 0x163 - num14 ) )\r
-                                                                       {\r
-                                                                               rectangle5.Height -= num16 - ( 0x163 - num14 );\r
-                                                                       }\r
-                                                                       if( ( rectangle5.Bottom > rectangle5.Top ) && ( this.txチップ != null ) )\r
-                                                                       {\r
-                                                                               this.txチップ.t2D描画( CDTXMania.app.Device, 0x24c, ( num15 - num14 ) + num17, rectangle5 );\r
-                                                                       }\r
-                                                               }\r
-                                                       }\r
-                                                       if( !pChip.bHit && ( pChip.nバーからの距離dot.Guitar < 0 ) )\r
-                                                       {\r
-                                                               pChip.bHit = true;\r
-                                                               if( configIni.bAutoPlay.Guitar )\r
-                                                               {\r
-                                                                       this.actWailingBonus.Start( E楽器パート.GUITAR, this.r現在の歓声Chip.Guitar );\r
-                                                               }\r
-                                                       }\r
-                                                       break;\r
-                                               }\r
-                                               pChip.bHit = true;\r
-                                               break;\r
-\r
-                                       case 0x2f:      // ウェイリングサウンド(ギター)\r
-                                               if( !pChip.bHit && ( pChip.nバーからの距離dot.Guitar < 0 ) )\r
-                                               {\r
-                                                       pChip.bHit = true;\r
-                                                       this.r現在の歓声Chip.Guitar = pChip;\r
-                                               }\r
-                                               break;\r
-\r
-                                       case 0x31:      // 不可視チップ配置(ドラム)\r
-                                       case 0x32:\r
-                                       case 0x33:\r
-                                       case 0x34:\r
-                                       case 0x35:\r
-                                       case 0x36:\r
-                                       case 0x37:\r
-                                       case 0x38:\r
-                                       case 0x39:\r
-                                       case 0x3a:\r
-                                               if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
-                                               {\r
-                                                       pChip.bHit = true;\r
-                                               }\r
-                                               break;\r
-\r
-                                       case 0x50:      // 小節線\r
-                                               {\r
-                                                       int num24 = pChip.n発声位置 / 0x180;\r
-                                                       if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
-                                                       {\r
-                                                               pChip.bHit = true;\r
-                                                               this.actPlayInfo.n小節番号 = num24 - 1;\r
-                                                               if( configIni.bWave再生位置自動調整機能有効 )\r
-                                                               {\r
-                                                                       dTX.tWave再生位置自動補正();\r
-                                                               }\r
-                                                       }\r
-                                                       if( configIni.bDrums有効 )\r
-                                                       {\r
-                                                               if( configIni.b演奏情報を表示する && ( configIni.eDark == Eダークモード.OFF ) )\r
-                                                               {\r
-                                                                       int num28 = num24 - 1;\r
-                                                                       CDTXMania.act文字コンソール.tPrint( 0x14d, configIni.bReverse.Drums ? ( ( 0x38 + pChip.nバーからの距離dot.Drums ) - 0x11 ) : ( ( 0x1a6 - pChip.nバーからの距離dot.Drums ) - 0x11 ), C文字コンソール.Eフォント種別.白, num28.ToString() );\r
-                                                               }\r
-                                                               if( ( ( configIni.eDark != Eダークモード.FULL ) && pChip.b可視 ) && ( this.txチップ != null ) )\r
-                                                               {\r
-                                                                       this.txチップ.t2D描画( CDTXMania.app.Device, 0x23, configIni.bReverse.Drums ? ( ( 0x38 + pChip.nバーからの距離dot.Drums ) - 1 ) : ( ( 0x1a6 - pChip.nバーからの距離dot.Drums ) - 1 ), new Rectangle( 0, 0x1bc, 0x128, 2 ) );\r
-                                                               }\r
-                                                       }\r
-                                                       if( ( pChip.b可視 && configIni.bGuitar有効 ) && ( configIni.eDark != Eダークモード.FULL ) )\r
-                                                       {\r
-                                                               int y = configIni.bReverse.Guitar ? ( ( 0x176 - pChip.nバーからの距離dot.Guitar ) - 1 ) : ( ( 0x5f + pChip.nバーからの距離dot.Guitar ) - 1 );\r
-                                                               if( ( dTX.bチップがある.Guitar && ( y > 0x39 ) ) && ( ( y < 0x19c ) && ( this.txチップ != null ) ) )\r
-                                                               {\r
-                                                                       this.txチップ.t2D描画( CDTXMania.app.Device, 0x1fb, y, new Rectangle( 0, 450, 0x4e, 1 ) );\r
-                                                               }\r
-                                                               y = configIni.bReverse.Bass ? ( ( 0x176 - pChip.nバーからの距離dot.Bass ) - 1 ) : ( ( 0x5f + pChip.nバーからの距離dot.Bass ) - 1 );\r
-                                                               if( ( dTX.bチップがある.Bass && ( y > 0x39 ) ) && ( ( y < 0x19c ) && ( this.txチップ != null ) ) )\r
-                                                               {\r
-                                                                       this.txチップ.t2D描画( CDTXMania.app.Device, 0x18e, y, new Rectangle( 0, 450, 0x4e, 1 ) );\r
-                                                               }\r
-                                                       }\r
-                                                       break;\r
-                                               }\r
-                                       case 0x51:      // 拍線\r
-                                               if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
-                                               {\r
-                                                       pChip.bHit = true;\r
-                                               }\r
-                                               if( ( ( configIni.eDark != Eダークモード.FULL ) && pChip.b可視 ) && ( this.txチップ != null ) )\r
-                                               {\r
-                                                       this.txチップ.t2D描画( CDTXMania.app.Device, 0x23, configIni.bReverse.Drums ? ( ( 0x38 + pChip.nバーからの距離dot.Drums ) - 1 ) : ( ( 0x1a6 - pChip.nバーからの距離dot.Drums ) - 1 ), new Rectangle( 0, 0x1bf, 0x128, 1 ) );\r
-                                               }\r
-                                               break;\r
-\r
-                                       case 0x52:      // MIDIコーラス\r
-                                               if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
-                                               {\r
-                                                       pChip.bHit = true;\r
-                                               }\r
-                                               break;\r
-\r
-                                       case 0x53:      // フィルイン\r
-                                               if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
-                                               {\r
-                                                       pChip.bHit = true;\r
-                                                       switch( pChip.n整数値 )\r
-                                                       {\r
-                                                               case 0x01:      // フィルイン開始\r
-                                                                       if( configIni.bフィルイン有効 )\r
-                                                                       {\r
-                                                                               this.bフィルイン中 = true;\r
-                                                                       }\r
-                                                                       break;\r
-\r
-                                                               case 0x02:      // フィルイン終了\r
-                                                                       if( configIni.bフィルイン有効 )\r
-                                                                       {\r
-                                                                               this.bフィルイン中 = false;\r
-                                                                       }\r
-                                                                       if( ( ( this.actCombo.n現在のコンボ数.Drums > 0 ) || configIni.bドラムが全部オートプレイである ) && configIni.b歓声を発声する )\r
-                                                                       {\r
-                                                                               if( this.r現在の歓声Chip.Drums != null )\r
-                                                                               {\r
-                                                                                       dTX.tチップの再生( this.r現在の歓声Chip.Drums, CDTXMania.Timer.nシステム時刻, 10, dTX.nモニタを考慮した音量( E楽器パート.UNKNOWN ) );\r
-                                                                               }\r
-                                                                               else\r
-                                                                               {\r
-                                                                                       CDTXMania.Skin.sound歓声音.n位置・次に鳴るサウンド = 0;\r
-                                                                                       CDTXMania.Skin.sound歓声音.t再生する();\r
-                                                                               }\r
-                                                                       }\r
-                                                                       break;\r
-#if TEST_NOTEOFFMODE   // 2011.1.1 yyagi TEST\r
-                                                               case 0x04:      // HH消音あり(従来同等)\r
-                                                                       CDTXMania.DTX.bHH演奏で直前のHHを消音する = true;\r
-                                                                       break;\r
-                                                               case 0x05:      // HH消音無し\r
-                                                                       CDTXMania.DTX.bHH演奏で直前のHHを消音する = false;\r
-                                                                       break;\r
-                                                               case 0x06:      // ギター消音あり(従来同等)\r
-                                                                       CDTXMania.DTX.bGUITAR演奏で直前のGUITARを消音する = true;\r
-                                                                       break;\r
-                                                               case 0x07:      // ギター消音無し\r
-                                                                       CDTXMania.DTX.bGUITAR演奏で直前のGUITARを消音する = false;\r
-                                                                       break;\r
-                                                               case 0x08:      // ベース消音あり(従来同等)\r
-                                                                       CDTXMania.DTX.bBASS演奏で直前のBASSを消音する = true;\r
-                                                                       break;\r
-                                                               case 0x09:      // ベース消音無し\r
-                                                                       CDTXMania.DTX.bBASS演奏で直前のBASSを消音する = false;\r
-                                                                       break;\r
-#endif\r
-                                                       }\r
-                                               }\r
-                                               break;\r
-\r
-                                       case 0x54:      // 動画再生\r
-                                               if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
-                                               {\r
-                                                       pChip.bHit = true;\r
-                                                       if( configIni.bAVI有効 )\r
-                                                       {\r
-                                                               switch( pChip.eAVI種別 )\r
-                                                               {\r
-                                                                       case EAVI種別.AVI:\r
-                                                                               if( pChip.rAVI != null )\r
-                                                                               {\r
-                                                                                       this.actAVI.Start( pChip.nチャンネル番号, pChip.rAVI, 0x116, 0x163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, pChip.n発声時刻ms );\r
-                                                                               }\r
-                                                                               break;\r
-\r
-                                                                       case EAVI種別.AVIPAN:\r
-                                                                               if( pChip.rAVIPan != null )\r
-                                                                               {\r
-                                                                                       this.actAVI.Start( pChip.nチャンネル番号, pChip.rAVI, pChip.rAVIPan.sz開始サイズ.Width, pChip.rAVIPan.sz開始サイズ.Height, pChip.rAVIPan.sz終了サイズ.Width, pChip.rAVIPan.sz終了サイズ.Height, pChip.rAVIPan.pt動画側開始位置.X, pChip.rAVIPan.pt動画側開始位置.Y, pChip.rAVIPan.pt動画側終了位置.X, pChip.rAVIPan.pt動画側終了位置.Y, pChip.rAVIPan.pt表示側開始位置.X, pChip.rAVIPan.pt表示側開始位置.Y, pChip.rAVIPan.pt表示側終了位置.X, pChip.rAVIPan.pt表示側終了位置.Y, pChip.n総移動時間, pChip.n発声時刻ms );\r
-                                                                               }\r
-                                                                               break;\r
-                                                               }\r
-                                                       }\r
-                                               }\r
-                                               break;\r
-\r
-                                       case 0x61:      // 自動再生(BGM, SE)\r
-                                       case 0x62:\r
-                                       case 0x63:\r
-                                       case 0x64:\r
-                                       case 0x65:\r
-                                       case 0x66:\r
-                                       case 0x67:\r
-                                       case 0x68:\r
-                                       case 0x69:\r
-                                       case 0x70:\r
-                                       case 0x71:\r
-                                       case 0x72:\r
-                                       case 0x73:\r
-                                       case 0x74:\r
-                                       case 0x75:\r
-                                       case 0x76:\r
-                                       case 0x77:\r
-                                       case 0x78:\r
-                                       case 0x79:\r
-                                       case 0x80:\r
-                                       case 0x81:\r
-                                       case 0x82:\r
-                                       case 0x83:\r
-                                       case 0x84:\r
-                                       case 0x85:\r
-                                       case 0x86:\r
-                                       case 0x87:\r
-                                       case 0x88:\r
-                                       case 0x89:\r
-                                       case 0x90:\r
-                                       case 0x91:\r
-                                       case 0x92:\r
-                                               if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
-                                               {\r
-                                                       pChip.bHit = true;\r
-                                                       if( configIni.bBGM音を発声する )\r
-                                                       {\r
-                                                               dTX.tWavの再生停止( this.n最後に再生したBGMの実WAV番号[ pChip.nチャンネル番号 - 0x61 ] );\r
-                                                               dTX.tチップの再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, 10, dTX.nモニタを考慮した音量( E楽器パート.UNKNOWN ) );\r
-                                                               this.n最後に再生したBGMの実WAV番号[ pChip.nチャンネル番号 - 0x61 ] = pChip.n整数値・内部番号;\r
-                                                       }\r
-                                               }\r
-                                               break;\r
-\r
-                                       case 0xa0:      // ベース演奏\r
-                                       case 0xa1:\r
-                                       case 0xa2:\r
-                                       case 0xa3:\r
-                                       case 0xa4:\r
-                                       case 0xa5:\r
-                                       case 0xa6:\r
-                                       case 0xa7:\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
-                                                       if( !pChip.bHit && pChip.b可視 )\r
-                                                       {\r
-                                                               int num12 = configIni.bReverse.Bass ? ( 0x176 - pChip.nバーからの距離dot.Bass ) : ( 0x5f + pChip.nバーからの距離dot.Bass );\r
-                                                               if( ( num12 > 0x39 ) && ( num12 < 0x19c ) )\r
-                                                               {\r
-                                                                       int num13 = this.ctチップ模様アニメ.Bass.n現在の値;\r
-                                                                       if( pChip.nチャンネル番号 == 160 )\r
-                                                                       {\r
-                                                                               if( this.txチップ != null )\r
-                                                                               {\r
-                                                                                       this.txチップ.t2D描画( CDTXMania.app.Device, 400, num12 - 2, new Rectangle( 0x10c, 0x90 + ( ( num13 % 5 ) * 6 ), 0x4c, 6 ) );\r
-                                                                               }\r
-                                                                       }\r
-                                                                       else if( !configIni.bLeft.Bass )\r
-                                                                       {\r
-                                                                               Rectangle rectangle3 = new Rectangle( 0x10c, num13 * 6, 0x18, 6 );\r
-                                                                               if( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) && ( this.txチップ != null ) )\r
-                                                                               {\r
-                                                                                       this.txチップ.t2D描画( CDTXMania.app.Device, 400, num12 - 3, rectangle3 );\r
-                                                                               }\r
-                                                                               rectangle3.X += 0x18;\r
-                                                                               if( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) && ( this.txチップ != null ) )\r
-                                                                               {\r
-                                                                                       this.txチップ.t2D描画( CDTXMania.app.Device, 0x1aa, num12 - 3, rectangle3 );\r
-                                                                               }\r
-                                                                               rectangle3.X += 0x18;\r
-                                                                               if( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) && ( this.txチップ != null ) )\r
-                                                                               {\r
-                                                                                       this.txチップ.t2D描画( CDTXMania.app.Device, 0x1c4, num12 - 3, rectangle3 );\r
-                                                                               }\r
-                                                                       }\r
-                                                                       else\r
-                                                                       {\r
-                                                                               Rectangle rectangle4 = new Rectangle( 0x10c, num13 * 6, 0x18, 6 );\r
-                                                                               if( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) && ( this.txチップ != null ) )\r
-                                                                               {\r
-                                                                                       this.txチップ.t2D描画( CDTXMania.app.Device, 0x1c4, num12 - 3, rectangle4 );\r
-                                                                               }\r
-                                                                               rectangle4.X += 0x18;\r
-                                                                               if( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) && ( this.txチップ != null ) )\r
-                                                                               {\r
-                                                                                       this.txチップ.t2D描画( CDTXMania.app.Device, 0x1aa, num12 - 3, rectangle4 );\r
-                                                                               }\r
-                                                                               rectangle4.X += 0x18;\r
-                                                                               if( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) && ( this.txチップ != null ) )\r
-                                                                               {\r
-                                                                                       this.txチップ.t2D描画( CDTXMania.app.Device, 400, num12 - 3, rectangle4 );\r
-                                                                               }\r
-                                                                       }\r
-                                                               }\r
-                                                       }\r
-                                                       if( ( configIni.bAutoPlay.Bass && !pChip.bHit ) && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
-                                                       {\r
-                                                               pChip.bHit = true;\r
-                                                               if( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) || ( pChip.nチャンネル番号 == 160 ) )\r
-                                                               {\r
-                                                                       this.actChipFireGB.Start( 3 );\r
-                                                               }\r
-                                                               if( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) || ( pChip.nチャンネル番号 == 160 ) )\r
-                                                               {\r
-                                                                       this.actChipFireGB.Start( 4 );\r
-                                                               }\r
-                                                               if( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) || ( pChip.nチャンネル番号 == 160 ) )\r
-                                                               {\r
-                                                                       this.actChipFireGB.Start( 5 );\r
-                                                               }\r
-                                                               this.tサウンド再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.BASS, dTX.nモニタを考慮した音量( E楽器パート.BASS ) );\r
-                                                               this.r次にくるベースChip = null;\r
-                                                               this.tチップのヒット処理( pChip.n発声時刻ms, pChip );\r
-                                                       }\r
-                                                       break;\r
-                                               }\r
-                                               if( !pChip.bHit && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
-                                               {\r
-                                                       this.tサウンド再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.BASS, dTX.nモニタを考慮した音量( E楽器パート.BASS ) );\r
-                                                       pChip.bHit = true;\r
-                                               }\r
-                                               break;\r
-\r
-                                       case 0xa8:      // ウェイリング(ベース)\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
-                                                       if( !pChip.bHit && pChip.b可視 )\r
-                                                       {\r
-                                                               int num19 = 0x19;\r
-                                                               int num20 = configIni.bReverse.Bass ? ( 0x176 - pChip.nバーからの距離dot.Bass ) : ( 0x5f + pChip.nバーからの距離dot.Bass );\r
-                                                               int num21 = num20 - 0x39;\r
-                                                               int num22 = 0;\r
-                                                               if( ( num21 < ( 0x163 + num19 ) ) && ( num21 > -num19 ) )\r
-                                                               {\r
-                                                                       int num23 = this.ctWailingチップ模様アニメ.n現在の値;\r
-                                                                       Rectangle rectangle6 = new Rectangle( 0x10c + ( num23 * 20 ), 0xae, 20, 50 );\r
-                                                                       if( num21 < num19 )\r
-                                                                       {\r
-                                                                               rectangle6.Y += num19 - num21;\r
-                                                                               rectangle6.Height -= num19 - num21;\r
-                                                                               num22 = num19 - num21;\r
-                                                                       }\r
-                                                                       if( num21 > ( 0x163 - num19 ) )\r
-                                                                       {\r
-                                                                               rectangle6.Height -= num21 - ( 0x163 - num19 );\r
-                                                                       }\r
-                                                                       if( ( rectangle6.Bottom > rectangle6.Top ) && ( this.txチップ != null ) )\r
-                                                                       {\r
-                                                                               this.txチップ.t2D描画( CDTXMania.app.Device, 0x1df, ( num20 - num19 ) + num22, rectangle6 );\r
-                                                                       }\r
-                                                               }\r
-                                                       }\r
-                                                       if( !pChip.bHit && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
-                                                       {\r
-                                                               pChip.bHit = true;\r
-                                                               if( configIni.bAutoPlay.Bass )\r
-                                                               {\r
-                                                                       this.actWailingBonus.Start( E楽器パート.BASS, this.r現在の歓声Chip.Bass );\r
-                                                               }\r
-                                                       }\r
-                                                       break;\r
-                                               }\r
-                                               pChip.bHit = true;\r
-                                               break;\r
-\r
-                                       case 0xaf:      // ウェイリングサウンド(ベース)\r
-                                               if( !pChip.bHit && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
-                                               {\r
-                                                       pChip.bHit = true;\r
-                                                       this.r現在の歓声Chip.Bass = pChip;\r
-                                               }\r
-                                               break;\r
-\r
-                                       case 0xb1:      // 空打ち音設定(ドラム)\r
-                                       case 0xb2:\r
-                                       case 0xb3:\r
-                                       case 0xb4:\r
-                                       case 0xb5:\r
-                                       case 0xb6:\r
-                                       case 0xb7:\r
-                                       case 0xb8:\r
-                                       case 0xb9:\r
-                                       case 0xbc:\r
-                                               if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
-                                               {\r
-                                                       pChip.bHit = true;\r
-                                                       this.r現在の空うちドラムChip[ (int) this.eチャンネルtoパッド[ pChip.nチャンネル番号 - 0xb1 ] ] = pChip;\r
-                                                       pChip.nチャンネル番号 = ( pChip.nチャンネル番号 != 0xbc ) ? ( ( pChip.nチャンネル番号 - 0xb1 ) + 0x11 ) : 0x1a;\r
-                                               }\r
-                                               break;\r
-\r
-                                       case 0xba:      // 空打ち音設定(ギター)\r
-                                               if( !pChip.bHit && ( pChip.nバーからの距離dot.Guitar < 0 ) )\r
-                                               {\r
-                                                       pChip.bHit = true;\r
-                                                       this.r現在の空うちギターChip = pChip;\r
-                                                       pChip.nチャンネル番号 = 0x20;\r
-                                               }\r
-                                               break;\r
-\r
-                                       case 0xbb:      // 空打ち音設定(ベース)\r
-                                               if( !pChip.bHit && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
-                                               {\r
-                                                       pChip.bHit = true;\r
-                                                       this.r現在の空うちベースChip = pChip;\r
-                                                       pChip.nチャンネル番号 = 160;\r
-                                               }\r
-                                               break;\r
-\r
-                                       case 0xc4:      // BGA画像入れ替え\r
-                                       case 0xc7:\r
-                                       case 0xd5:\r
-                                       case 0xd6:\r
-                                       case 0xd7:\r
-                                       case 0xd8:\r
-                                       case 0xd9:\r
-                                       case 0xe0:\r
-                                               if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
-                                               {\r
-                                                       pChip.bHit = true;\r
-                                                       if( ( configIni.bBGA有効 && ( pChip.eBGA種別 == EBGA種別.BMP ) ) || ( pChip.eBGA種別 == EBGA種別.BMPTEX ) )\r
-                                                       {\r
-                                                               for( int i = 0; i < 8; i++ )\r
-                                                               {\r
-                                                                       if( this.nBGAスコープチャンネルマップ[ 0, i ] == pChip.nチャンネル番号 )\r
-                                                                       {\r
-                                                                               this.actBGA.ChangeScope( this.nBGAスコープチャンネルマップ[ 1, i ], pChip.rBMP, pChip.rBMPTEX );\r
-                                                                       }\r
-                                                               }\r
-                                                       }\r
-                                               }\r
-                                               break;\r
-\r
-                                       default:\r
-                                               if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
-                                               {\r
-                                                       pChip.bHit = true;\r
-                                               }\r
-                                               break;\r
-                               }\r
-\r
-                               nCurrentTopChip++;\r
-                       }\r
-                       return false;\r
-               }\r
-               //private void t進行描画・チップアニメ()\r
-               //{\r
-               //    for ( int i = 0; i < 3; i++ )\r
-               //    {\r
-               //        this.ctチップ模様アニメ[ i ].t進行Loop();\r
-               //    }\r
-               //    this.ctWailingチップ模様アニメ.t進行Loop();\r
-               //}\r
-               private void t進行描画・チップファイアD()\r
-               {\r
-                       this.actChipFireD.On進行描画();\r
-               }\r
-               //private void t進行描画・チップファイアGB()\r
-               //{\r
-               //    this.actChipFireGB.On進行描画();\r
-               //}\r
-               private void t進行描画・ドラムパッド()\r
-               {\r
-                       if( CDTXMania.ConfigIni.eDark != Eダークモード.FULL )\r
-                       {\r
-                               this.actPad.On進行描画();\r
-                       }\r
-               }\r
-               protected override void t進行描画・パネル文字列()\r
-               {\r
-                       base.t進行描画・パネル文字列( 0x150, 0x1ab );\r
-               }\r
-               //private bool t進行描画・フェードイン・アウト()\r
-               //{\r
-               //    switch( base.eフェーズID )\r
-               //    {\r
-               //        case CStage.Eフェーズ.共通_フェードイン:\r
-               //            if( this.actFI.On進行描画() != 0 )\r
-               //            {\r
-               //                base.eフェーズID = CStage.Eフェーズ.共通_通常状態;\r
-               //            }\r
-               //            break;\r
-\r
-               //        case CStage.Eフェーズ.共通_フェードアウト:\r
-               //        case CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト:\r
-               //            if( this.actFO.On進行描画() != 0 )\r
-               //            {\r
-               //                return true;\r
-               //            }\r
-               //            break;\r
+               //        case CStage.Eフェーズ.共通_フェードアウト:\r
+               //        case CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト:\r
+               //            if( this.actFO.On進行描画() != 0 )\r
+               //            {\r
+               //                return true;\r
+               //            }\r
+               //            break;\r
 \r
                //        case CStage.Eフェーズ.演奏_STAGE_CLEAR_フェードアウト:\r
                //            if( this.actFOClear.On進行描画() == 0 )\r
@@ -4349,47 +3829,593 @@ namespace DTXMania
 //                    fDamage = ( part == E楽器パート.DRUMS ) ? 0.01 : 0.015;\r
 //                    break;\r
 \r
-//                case E判定.Great:\r
-//                    fDamage = ( part == E楽器パート.DRUMS ) ? 0.006 : 0.009;\r
-//                    break;\r
+//                case E判定.Great:\r
+//                    fDamage = ( part == E楽器パート.DRUMS ) ? 0.006 : 0.009;\r
+//                    break;\r
+\r
+//                case E判定.Good:\r
+//                    fDamage = ( part == E楽器パート.DRUMS ) ? 0.002 : 0.003;\r
+//                    break;\r
+\r
+//                case E判定.Poor:\r
+//                    fDamage = ( part == E楽器パート.DRUMS ) ? 0.0 : 0.0;\r
+//                    break;\r
+\r
+//                case E判定.Miss:\r
+//                    fDamage = ( part == E楽器パート.DRUMS ) ? -0.035 : -0.035;\r
+//                    switch( CDTXMania.ConfigIni.eダメージレベル )\r
+//                    {\r
+//                        case Eダメージレベル.少ない:\r
+//                            fDamage *= 0.6;\r
+//                            break;\r
+\r
+//                        case Eダメージレベル.普通:\r
+//                            fDamage *= 1.0;\r
+//                            break;\r
+\r
+//                        case Eダメージレベル.大きい:\r
+//                            fDamage *= 1.6;\r
+//                            break;\r
+//                    }\r
+//                    break;\r
+\r
+//                default:\r
+//                    fDamage = 0.0;\r
+//                    break;\r
+//            }\r
+//#endif\r
+//            this.actGauge.db現在のゲージ値 += fDamage;\r
+\r
+//            if( this.actGauge.db現在のゲージ値 > 1.0 )\r
+//                this.actGauge.db現在のゲージ値 = 1.0;\r
+//        }\r
+               //-----------------\r
+\r
+               protected override void t進行描画・チップ・ドラムス( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip )\r
+               {\r
+                       if ( configIni.bDrums有効 )\r
+                       {\r
+                               if ( configIni.bSudden.Drums )\r
+                               {\r
+                                       if ( pChip.nバーからの距離dot.Drums < 200 )\r
+                                       {\r
+                                               pChip.b可視 = true;\r
+                                               pChip.n透明度 = 0xff;\r
+                                       }\r
+                                       else if ( pChip.nバーからの距離dot.Drums < 250 )\r
+                                       {\r
+                                               pChip.b可視 = true;\r
+                                               pChip.n透明度 = 0xff - ( (int) ( ( ( (double) ( pChip.nバーからの距離dot.Drums - 200 ) ) * 255.0 ) / 50.0 ) );\r
+                                       }\r
+                                       else\r
+                                       {\r
+                                               pChip.b可視 = false;\r
+                                               pChip.n透明度 = 0;\r
+                                       }\r
+                               }\r
+                               if ( configIni.bHidden.Drums )\r
+                               {\r
+                                       if ( pChip.nバーからの距離dot.Drums < 100 )\r
+                                       {\r
+                                               pChip.b可視 = false;\r
+                                       }\r
+                                       else if ( pChip.nバーからの距離dot.Drums < 150 )\r
+                                       {\r
+                                               pChip.b可視 = true;\r
+                                               pChip.n透明度 = (int) ( ( ( (double) ( pChip.nバーからの距離dot.Drums - 100 ) ) * 255.0 ) / 50.0 );\r
+                                       }\r
+                               }\r
+                               if ( !pChip.bHit && pChip.b可視 )\r
+                               {\r
+                                       if ( this.txチップ != null )\r
+                                       {\r
+                                               this.txチップ.n透明度 = pChip.n透明度;\r
+                                       }\r
+                                       int x = this.nチャンネルtoX座標[ pChip.nチャンネル番号 - 0x11 ];\r
+                                       int num8 = configIni.bReverse.Drums ? ( 0x38 + pChip.nバーからの距離dot.Drums ) : ( 0x1a6 - pChip.nバーからの距離dot.Drums );\r
+                                       if ( this.txチップ != null )\r
+                                       {\r
+                                               this.txチップ.vc拡大縮小倍率 = new Vector3( (float) pChip.dbチップサイズ倍率, (float) pChip.dbチップサイズ倍率, 1f );\r
+                                       }\r
+                                       int num9 = this.ctチップ模様アニメ.Drums.n現在の値;\r
+                                       switch ( pChip.nチャンネル番号 )\r
+                                       {\r
+                                               case 0x11:\r
+                                                       x = ( x + 0x10 ) - ( (int) ( ( 32.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
+                                                       if ( this.txチップ != null )\r
+                                                       {\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 4, new Rectangle( 0x2c, num9 * 7, 0x20, 8 ) );\r
+                                                       }\r
+                                                       break;\r
+\r
+                                               case 0x12:\r
+                                                       x = ( x + 0x10 ) - ( (int) ( ( 32.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
+                                                       if ( this.txチップ != null )\r
+                                                       {\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 4, new Rectangle( 0x4c, num9 * 7, 0x20, 8 ) );\r
+                                                       }\r
+                                                       break;\r
+\r
+                                               case 0x13:\r
+                                                       x = ( x + 0x16 ) - ( (int) ( ( 44.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
+                                                       if ( this.txチップ != null )\r
+                                                       {\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 5, new Rectangle( 0, num9 * 9, 0x2c, 10 ) );\r
+                                                       }\r
+                                                       break;\r
+\r
+                                               case 0x14:\r
+                                                       x = ( x + 0x10 ) - ( (int) ( ( 32.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
+                                                       if ( this.txチップ != null )\r
+                                                       {\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 4, new Rectangle( 0x6c, num9 * 7, 0x20, 8 ) );\r
+                                                       }\r
+                                                       break;\r
 \r
-//                case E判定.Good:\r
-//                    fDamage = ( part == E楽器パート.DRUMS ) ? 0.002 : 0.003;\r
-//                    break;\r
+                                               case 0x15:\r
+                                                       x = ( x + 0x10 ) - ( (int) ( ( 32.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
+                                                       if ( this.txチップ != null )\r
+                                                       {\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 4, new Rectangle( 140, num9 * 7, 0x20, 8 ) );\r
+                                                       }\r
+                                                       break;\r
 \r
-//                case E判定.Poor:\r
-//                    fDamage = ( part == E楽器パート.DRUMS ) ? 0.0 : 0.0;\r
-//                    break;\r
+                                               case 0x16:\r
+                                                       x = ( x + 0x13 ) - ( (int) ( ( 38.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
+                                                       if ( this.txチップ != null )\r
+                                                       {\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 0x15, new Rectangle( 0xcc, 0x158, 0x26, 0x24 ) );\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 4, new Rectangle( 0xcc, num9 * 7, 0x26, 8 ) );\r
+                                                       }\r
+                                                       break;\r
 \r
-//                case E判定.Miss:\r
-//                    fDamage = ( part == E楽器パート.DRUMS ) ? -0.035 : -0.035;\r
-//                    switch( CDTXMania.ConfigIni.eダメージレベル )\r
-//                    {\r
-//                        case Eダメージレベル.少ない:\r
-//                            fDamage *= 0.6;\r
-//                            break;\r
+                                               case 0x17:\r
+                                                       x = ( x + 0x10 ) - ( (int) ( ( 32.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
+                                                       if ( this.txチップ != null )\r
+                                                       {\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 4, new Rectangle( 0xac, num9 * 7, 0x20, 8 ) );\r
+                                                       }\r
+                                                       break;\r
 \r
-//                        case Eダメージレベル.普通:\r
-//                            fDamage *= 1.0;\r
-//                            break;\r
+                                               case 0x18:\r
+                                                       x = ( x + 13 ) - ( (int) ( ( 26.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
+                                                       if ( this.txチップ != null )\r
+                                                       {\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 4, new Rectangle( 0xf2, num9 * 7, 0x1a, 8 ) );\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 9, new Rectangle( 0xf2, 0x158, 0x1a, 0x12 ) );\r
+                                                       }\r
+                                                       break;\r
 \r
-//                        case Eダメージレベル.大きい:\r
-//                            fDamage *= 1.6;\r
-//                            break;\r
-//                    }\r
-//                    break;\r
+                                               case 0x19:\r
+                                                       x = ( x + 13 ) - ( (int) ( ( 26.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
+                                                       if ( this.txチップ != null )\r
+                                                       {\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 4, new Rectangle( 0xf2, num9 * 7, 0x1a, 8 ) );\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 9, new Rectangle( 0xf2, 0x158, 0x1a, 0x12 ) );\r
+                                                       }\r
+                                                       break;\r
 \r
-//                default:\r
-//                    fDamage = 0.0;\r
-//                    break;\r
-//            }\r
-//#endif\r
-//            this.actGauge.db現在のゲージ値 += fDamage;\r
+                                               case 0x1a:\r
+                                                       x = ( x + 0x13 ) - ( (int) ( ( 38.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
+                                                       if ( this.txチップ != null )\r
+                                                       {\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 0x15, new Rectangle( 0xcc, 0x158, 0x26, 0x24 ) );\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 4, new Rectangle( 0xcc, num9 * 7, 0x26, 8 ) );\r
+                                                       }\r
+                                                       break;\r
+                                       }\r
+                                       if ( this.txチップ != null )\r
+                                       {\r
+                                               this.txチップ.vc拡大縮小倍率 = new Vector3( 1f, 1f, 1f );\r
+                                               this.txチップ.n透明度 = 0xff;\r
+                                       }\r
+                               }\r
 \r
-//            if( this.actGauge.db現在のゲージ値 > 1.0 )\r
-//                this.actGauge.db現在のゲージ値 = 1.0;\r
-//        }\r
-               //-----------------\r
+                               int indexSevenLanes = this.nチャンネル0Atoレーン07[ pChip.nチャンネル番号 - 0x11 ];\r
+                               if ( ( configIni.bAutoPlay[ indexSevenLanes ] && !pChip.bHit ) && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+                               {\r
+                                       pChip.bHit = true;\r
+                                       this.actLaneFlushD.Start( (Eドラムレーン) indexSevenLanes, ( (float) CInput管理.n通常音量 ) / 127f );\r
+                                       bool flag = this.bフィルイン中;\r
+                                       bool flag2 = this.bフィルイン中 && this.bフィルイン区間の最後のChipである( pChip );\r
+                                       bool flag3 = flag2;\r
+                                       this.actChipFireD.Start( (Eドラムレーン) indexSevenLanes, flag, flag2, flag3 );\r
+                                       this.actPad.Hit( this.nチャンネル0Atoパッド08[ pChip.nチャンネル番号 - 0x11 ] );\r
+                                       this.tサウンド再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.DRUMS, dTX.nモニタを考慮した音量( E楽器パート.DRUMS ) );\r
+                                       this.tチップのヒット処理( pChip.n発声時刻ms, pChip );\r
+                               }\r
+                               //break;\r
+                               return;\r
+                       }       // end of "if configIni.bDrums有効"\r
+                       if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+                       {\r
+                               this.tサウンド再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.DRUMS, dTX.nモニタを考慮した音量( E楽器パート.DRUMS ) );\r
+                               pChip.bHit = true;\r
+                       }\r
+               }\r
+               protected override void t進行描画・チップ・ギター( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip )\r
+               {\r
+                       if ( configIni.bGuitar有効 )\r
+                       {\r
+                               if ( configIni.bSudden.Guitar )\r
+                               {\r
+                                       pChip.b可視 = pChip.nバーからの距離dot.Guitar < 200;\r
+                               }\r
+                               if ( configIni.bHidden.Guitar && ( pChip.nバーからの距離dot.Guitar < 100 ) )\r
+                               {\r
+                                       pChip.b可視 = false;\r
+                               }\r
+                               if ( !pChip.bHit && pChip.b可視 )\r
+                               {\r
+                                       int nバーからの距離 = configIni.bReverse.Guitar ? ( 0x176 - pChip.nバーからの距離dot.Guitar ) : ( 0x5f + pChip.nバーからの距離dot.Guitar );\r
+                                       if ( ( nバーからの距離 > 0x39 ) && ( nバーからの距離 < 0x19c ) )\r
+                                       {\r
+                                               int nアニメカウンタ現在の値 = this.ctチップ模様アニメ.Guitar.n現在の値;\r
+                                               if ( pChip.nチャンネル番号 == 0x20 )\r
+                                               {\r
+                                                       if ( this.txチップ != null )\r
+                                                       {\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, 0x1fd, nバーからの距離 - 2, new Rectangle( 0x10c, 0x90 + ( ( nアニメカウンタ現在の値 % 5 ) * 6 ), 0x4c, 6 ) );\r
+                                                       }\r
+                                               }\r
+                                               else if ( !configIni.bLeft.Guitar )\r
+                                               {\r
+                                                       Rectangle rectangle = new Rectangle( 0x10c, nアニメカウンタ現在の値 * 6, 0x18, 6 );\r
+                                                       if ( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) && ( this.txチップ != null ) )\r
+                                                       {\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, 0x1fd, nバーからの距離 - 3, rectangle );\r
+                                                       }\r
+                                                       rectangle.X += 0x18;\r
+                                                       if ( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) && ( this.txチップ != null ) )\r
+                                                       {\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, 0x217, nバーからの距離 - 3, rectangle );\r
+                                                       }\r
+                                                       rectangle.X += 0x18;\r
+                                                       if ( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) && ( this.txチップ != null ) )\r
+                                                       {\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, 0x231, nバーからの距離 - 3, rectangle );\r
+                                                       }\r
+                                               }\r
+                                               else\r
+                                               {\r
+                                                       Rectangle rectangle2 = new Rectangle( 0x10c, nアニメカウンタ現在の値 * 6, 0x18, 6 );\r
+                                                       if ( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) && ( this.txチップ != null ) )\r
+                                                       {\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, 0x231, nバーからの距離 - 3, rectangle2 );\r
+                                                       }\r
+                                                       rectangle2.X += 0x18;\r
+                                                       if ( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) && ( this.txチップ != null ) )\r
+                                                       {\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, 0x217, nバーからの距離 - 3, rectangle2 );\r
+                                                       }\r
+                                                       rectangle2.X += 0x18;\r
+                                                       if ( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) && ( this.txチップ != null ) )\r
+                                                       {\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, 0x1fd, nバーからの距離 - 3, rectangle2 );\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                               }\r
+                               if ( ( configIni.bAutoPlay.Guitar && !pChip.bHit ) && ( pChip.nバーからの距離dot.Guitar < 0 ) )\r
+                               {\r
+                                       pChip.bHit = true;\r
+                                       if ( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) || ( pChip.nチャンネル番号 == 0x20 ) )\r
+                                       {\r
+                                               this.actChipFireGB.Start( 0 );\r
+                                       }\r
+                                       if ( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) || ( pChip.nチャンネル番号 == 0x20 ) )\r
+                                       {\r
+                                               this.actChipFireGB.Start( 1 );\r
+                                       }\r
+                                       if ( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) || ( pChip.nチャンネル番号 == 0x20 ) )\r
+                                       {\r
+                                               this.actChipFireGB.Start( 2 );\r
+                                       }\r
+                                       this.tサウンド再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.GUITAR, dTX.nモニタを考慮した音量( E楽器パート.GUITAR ) );\r
+                                       this.r次にくるギターChip = null;\r
+                                       this.tチップのヒット処理( pChip.n発声時刻ms, pChip );\r
+                               }\r
+                               //break;\r
+                               return;\r
+                       }       // end of "if configIni.bDrums有効"\r
+                       if ( !pChip.bHit && ( pChip.nバーからの距離dot.Guitar < 0 ) )\r
+                       {\r
+                               pChip.bHit = true;\r
+                               this.tサウンド再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.GUITAR, dTX.nモニタを考慮した音量( E楽器パート.GUITAR ) );\r
+                       }\r
+               }\r
+               protected override void t進行描画・チップ・ギター・ウェイリング( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip )\r
+               {\r
+                       if ( configIni.bGuitar有効 )\r
+                       {\r
+                               if ( configIni.bSudden.Guitar )\r
+                               {\r
+                                       pChip.b可視 = pChip.nバーからの距離dot.Guitar < 200;\r
+                               }\r
+                               if ( configIni.bHidden.Guitar && ( pChip.nバーからの距離dot.Guitar < 100 ) )\r
+                               {\r
+                                       pChip.b可視 = false;\r
+                               }\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
+                                       {\r
+                                               int num18 = this.ctWailingチップ模様アニメ.n現在の値;\r
+                                               Rectangle rectangle5 = new Rectangle( 0x10c + ( num18 * 20 ), 0xae, 20, 50 );\r
+                                               if ( num16 < num14 )\r
+                                               {\r
+                                                       rectangle5.Y += num14 - num16;\r
+                                                       rectangle5.Height -= num14 - num16;\r
+                                                       num17 = num14 - num16;\r
+                                               }\r
+                                               if ( num16 > ( 0x163 - num14 ) )\r
+                                               {\r
+                                                       rectangle5.Height -= num16 - ( 0x163 - num14 );\r
+                                               }\r
+                                               if ( ( rectangle5.Bottom > rectangle5.Top ) && ( this.txチップ != null ) )\r
+                                               {\r
+                                                       this.txチップ.t2D描画( CDTXMania.app.Device, 0x24c, ( num15 - num14 ) + num17, rectangle5 );\r
+                                               }\r
+                                       }\r
+                               }\r
+                               if ( !pChip.bHit && ( pChip.nバーからの距離dot.Guitar < 0 ) )\r
+                               {\r
+                                       pChip.bHit = true;\r
+                                       if ( configIni.bAutoPlay.Guitar )\r
+                                       {\r
+                                               this.actWailingBonus.Start( E楽器パート.GUITAR, this.r現在の歓声Chip.Guitar );\r
+                                       }\r
+                               }\r
+                               return;\r
+                       }\r
+                       pChip.bHit = true;\r
+               }\r
+               protected override void t進行描画・チップ・フィルイン( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip )\r
+               {\r
+                       if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+                       {\r
+                               pChip.bHit = true;\r
+                               switch ( pChip.n整数値 )\r
+                               {\r
+                                       case 0x01:      // フィルイン開始\r
+                                               if ( configIni.bフィルイン有効 )\r
+                                               {\r
+                                                       this.bフィルイン中 = true;\r
+                                               }\r
+                                               break;\r
+\r
+                                       case 0x02:      // フィルイン終了\r
+                                               if ( configIni.bフィルイン有効 )\r
+                                               {\r
+                                                       this.bフィルイン中 = false;\r
+                                               }\r
+                                               if ( ( ( this.actCombo.n現在のコンボ数.Drums > 0 ) || configIni.bドラムが全部オートプレイである ) && configIni.b歓声を発声する )\r
+                                               {\r
+                                                       if ( this.r現在の歓声Chip.Drums != null )\r
+                                                       {\r
+                                                               dTX.tチップの再生( this.r現在の歓声Chip.Drums, CDTXMania.Timer.nシステム時刻, 10, dTX.nモニタを考慮した音量( E楽器パート.UNKNOWN ) );\r
+                                                       }\r
+                                                       else\r
+                                                       {\r
+                                                               CDTXMania.Skin.sound歓声音.n位置・次に鳴るサウンド = 0;\r
+                                                               CDTXMania.Skin.sound歓声音.t再生する();\r
+                                                       }\r
+                                               }\r
+                                               break;\r
+#if TEST_NOTEOFFMODE   // 2011.1.1 yyagi TEST\r
+                                                               case 0x04:      // HH消音あり(従来同等)\r
+                                                                       CDTXMania.DTX.bHH演奏で直前のHHを消音する = true;\r
+                                                                       break;\r
+                                                               case 0x05:      // HH消音無し\r
+                                                                       CDTXMania.DTX.bHH演奏で直前のHHを消音する = false;\r
+                                                                       break;\r
+                                                               case 0x06:      // ギター消音あり(従来同等)\r
+                                                                       CDTXMania.DTX.bGUITAR演奏で直前のGUITARを消音する = true;\r
+                                                                       break;\r
+                                                               case 0x07:      // ギター消音無し\r
+                                                                       CDTXMania.DTX.bGUITAR演奏で直前のGUITARを消音する = false;\r
+                                                                       break;\r
+                                                               case 0x08:      // ベース消音あり(従来同等)\r
+                                                                       CDTXMania.DTX.bBASS演奏で直前のBASSを消音する = true;\r
+                                                                       break;\r
+                                                               case 0x09:      // ベース消音無し\r
+                                                                       CDTXMania.DTX.bBASS演奏で直前のBASSを消音する = false;\r
+                                                                       break;\r
+#endif\r
+                               }\r
+                       }\r
+               }\r
+               protected override 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
+                               if ( !pChip.bHit && pChip.b可視 )\r
+                               {\r
+                                       int num12 = configIni.bReverse.Bass ? ( 0x176 - pChip.nバーからの距離dot.Bass ) : ( 0x5f + pChip.nバーからの距離dot.Bass );\r
+                                       if ( ( num12 > 0x39 ) && ( num12 < 0x19c ) )\r
+                                       {\r
+                                               int num13 = this.ctチップ模様アニメ.Bass.n現在の値;\r
+                                               if ( pChip.nチャンネル番号 == 160 )\r
+                                               {\r
+                                                       if ( this.txチップ != null )\r
+                                                       {\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, 400, num12 - 2, new Rectangle( 0x10c, 0x90 + ( ( num13 % 5 ) * 6 ), 0x4c, 6 ) );\r
+                                                       }\r
+                                               }\r
+                                               else if ( !configIni.bLeft.Bass )\r
+                                               {\r
+                                                       Rectangle rectangle3 = new Rectangle( 0x10c, num13 * 6, 0x18, 6 );\r
+                                                       if ( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) && ( this.txチップ != null ) )\r
+                                                       {\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, 400, num12 - 3, rectangle3 );\r
+                                                       }\r
+                                                       rectangle3.X += 0x18;\r
+                                                       if ( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) && ( this.txチップ != null ) )\r
+                                                       {\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, 0x1aa, num12 - 3, rectangle3 );\r
+                                                       }\r
+                                                       rectangle3.X += 0x18;\r
+                                                       if ( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) && ( this.txチップ != null ) )\r
+                                                       {\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, 0x1c4, num12 - 3, rectangle3 );\r
+                                                       }\r
+                                               }\r
+                                               else\r
+                                               {\r
+                                                       Rectangle rectangle4 = new Rectangle( 0x10c, num13 * 6, 0x18, 6 );\r
+                                                       if ( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) && ( this.txチップ != null ) )\r
+                                                       {\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, 0x1c4, num12 - 3, rectangle4 );\r
+                                                       }\r
+                                                       rectangle4.X += 0x18;\r
+                                                       if ( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) && ( this.txチップ != null ) )\r
+                                                       {\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, 0x1aa, num12 - 3, rectangle4 );\r
+                                                       }\r
+                                                       rectangle4.X += 0x18;\r
+                                                       if ( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) && ( this.txチップ != null ) )\r
+                                                       {\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, 400, num12 - 3, rectangle4 );\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                               }\r
+                               if ( ( configIni.bAutoPlay.Bass && !pChip.bHit ) && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
+                               {\r
+                                       pChip.bHit = true;\r
+                                       if ( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) || ( pChip.nチャンネル番号 == 160 ) )\r
+                                       {\r
+                                               this.actChipFireGB.Start( 3 );\r
+                                       }\r
+                                       if ( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) || ( pChip.nチャンネル番号 == 160 ) )\r
+                                       {\r
+                                               this.actChipFireGB.Start( 4 );\r
+                                       }\r
+                                       if ( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) || ( pChip.nチャンネル番号 == 160 ) )\r
+                                       {\r
+                                               this.actChipFireGB.Start( 5 );\r
+                                       }\r
+                                       this.tサウンド再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.BASS, dTX.nモニタを考慮した音量( E楽器パート.BASS ) );\r
+                                       this.r次にくるベースChip = null;\r
+                                       this.tチップのヒット処理( pChip.n発声時刻ms, pChip );\r
+                               }\r
+                               return;\r
+                       }\r
+                       if ( !pChip.bHit && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
+                       {\r
+                               this.tサウンド再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.BASS, dTX.nモニタを考慮した音量( E楽器パート.BASS ) );\r
+                               pChip.bHit = true;\r
+                       }\r
+               }\r
+               protected override 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
+                               if ( !pChip.bHit && pChip.b可視 )\r
+                               {\r
+                                       int num19 = 0x19;\r
+                                       int num20 = configIni.bReverse.Bass ? ( 0x176 - pChip.nバーからの距離dot.Bass ) : ( 0x5f + pChip.nバーからの距離dot.Bass );\r
+                                       int num21 = num20 - 0x39;\r
+                                       int num22 = 0;\r
+                                       if ( ( num21 < ( 0x163 + num19 ) ) && ( num21 > -num19 ) )\r
+                                       {\r
+                                               int num23 = this.ctWailingチップ模様アニメ.n現在の値;\r
+                                               Rectangle rectangle6 = new Rectangle( 0x10c + ( num23 * 20 ), 0xae, 20, 50 );\r
+                                               if ( num21 < num19 )\r
+                                               {\r
+                                                       rectangle6.Y += num19 - num21;\r
+                                                       rectangle6.Height -= num19 - num21;\r
+                                                       num22 = num19 - num21;\r
+                                               }\r
+                                               if ( num21 > ( 0x163 - num19 ) )\r
+                                               {\r
+                                                       rectangle6.Height -= num21 - ( 0x163 - num19 );\r
+                                               }\r
+                                               if ( ( rectangle6.Bottom > rectangle6.Top ) && ( this.txチップ != null ) )\r
+                                               {\r
+                                                       this.txチップ.t2D描画( CDTXMania.app.Device, 0x1df, ( num20 - num19 ) + num22, rectangle6 );\r
+                                               }\r
+                                       }\r
+                               }\r
+                               if ( !pChip.bHit && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
+                               {\r
+                                       pChip.bHit = true;\r
+                                       if ( configIni.bAutoPlay.Bass )\r
+                                       {\r
+                                               this.actWailingBonus.Start( E楽器パート.BASS, this.r現在の歓声Chip.Bass );\r
+                                       }\r
+                               }\r
+                               return;\r
+                       }\r
+                       pChip.bHit = true;\r
+               }\r
+               protected override void t進行描画・チップ・空打ち音設定・ドラム( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip )\r
+               {\r
+                       if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+                       {\r
+                               pChip.bHit = true;\r
+                               this.r現在の空うちドラムChip[ (int) this.eチャンネルtoパッド[ pChip.nチャンネル番号 - 0xb1 ] ] = pChip;\r
+                               pChip.nチャンネル番号 = ( pChip.nチャンネル番号 != 0xbc ) ? ( ( pChip.nチャンネル番号 - 0xb1 ) + 0x11 ) : 0x1a;\r
+                       }\r
+               }\r
+               protected override void t進行描画・チップ・小節線( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip )\r
+               {\r
+                       int n小節番号plus1 = pChip.n発声位置 / 384;\r
+                       if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+                       {\r
+                               pChip.bHit = true;\r
+                               this.actPlayInfo.n小節番号 = n小節番号plus1 - 1;\r
+                               if ( configIni.bWave再生位置自動調整機能有効 )\r
+                               {\r
+                                       dTX.tWave再生位置自動補正();\r
+                               }\r
+                       }\r
+                       if ( configIni.bDrums有効 )\r
+                       {\r
+                               if ( configIni.b演奏情報を表示する && ( configIni.eDark == Eダークモード.OFF ) )\r
+                               {\r
+                                       int n小節番号 = n小節番号plus1 - 1;\r
+                                       CDTXMania.act文字コンソール.tPrint( 0x14d, configIni.bReverse.Drums ? ( ( 0x38 + pChip.nバーからの距離dot.Drums ) - 0x11 ) : ( ( 0x1a6 - pChip.nバーからの距離dot.Drums ) - 0x11 ), C文字コンソール.Eフォント種別.白, n小節番号.ToString() );\r
+                               }\r
+                               if ( ( ( configIni.eDark != Eダークモード.FULL ) && pChip.b可視 ) && ( this.txチップ != null ) )\r
+                               {\r
+                                       this.txチップ.t2D描画( CDTXMania.app.Device, 0x23, configIni.bReverse.Drums ? ( ( 0x38 + pChip.nバーからの距離dot.Drums ) - 1 ) : ( ( 0x1a6 - pChip.nバーからの距離dot.Drums ) - 1 ), new Rectangle( 0, 0x1bc, 0x128, 2 ) );\r
+                               }\r
+                       }\r
+                       if ( ( pChip.b可視 && configIni.bGuitar有効 ) && ( configIni.eDark != Eダークモード.FULL ) )\r
+                       {\r
+                               int y = configIni.bReverse.Guitar ? ( ( 0x176 - pChip.nバーからの距離dot.Guitar ) - 1 ) : ( ( 0x5f + pChip.nバーからの距離dot.Guitar ) - 1 );\r
+                               if ( ( dTX.bチップがある.Guitar && ( y > 0x39 ) ) && ( ( y < 0x19c ) && ( this.txチップ != null ) ) )\r
+                               {\r
+                                       this.txチップ.t2D描画( CDTXMania.app.Device, 0x1fb, y, new Rectangle( 0, 450, 0x4e, 1 ) );\r
+                               }\r
+                               y = configIni.bReverse.Bass ? ( ( 0x176 - pChip.nバーからの距離dot.Bass ) - 1 ) : ( ( 0x5f + pChip.nバーからの距離dot.Bass ) - 1 );\r
+                               if ( ( dTX.bチップがある.Bass && ( y > 0x39 ) ) && ( ( y < 0x19c ) && ( this.txチップ != null ) ) )\r
+                               {\r
+                                       this.txチップ.t2D描画( CDTXMania.app.Device, 0x18e, y, new Rectangle( 0, 450, 0x4e, 1 ) );\r
+                               }\r
+                       }\r
+               }\r
                #endregion\r
        }\r
 }\r