OSDN Git Service

#24765 不可視チップがあると演奏時IndexPutOfRangeExceptionが発生する問題を修正。(ロジックの順番を変更しただけ)
[dtxmania/dtxmania.git] / DTXManiaプロジェクト / コード / ステージ / 07.演奏 / ドラム画面 / CStage演奏ドラム画面.cs
index fe1d239..0b32a6b 100644 (file)
@@ -14,37 +14,16 @@ namespace DTXMania
 {\r
        internal class CStage演奏ドラム画面 : CStage演奏画面共通\r
        {\r
-               // プロパティ\r
-\r
-               public bool bAUTOでないチップが1つでもバーを通過した\r
-               {\r
-                       get;\r
-                       private set;\r
-               }\r
-       \r
                // コンストラクタ\r
 \r
                public CStage演奏ドラム画面()\r
                {\r
-                       Eパッド[] eパッドArray = new Eパッド[ 12 ];\r
-                       eパッドArray[ 1 ] = Eパッド.SD;\r
-                       eパッドArray[ 2 ] = Eパッド.BD;\r
-                       eパッドArray[ 3 ] = Eパッド.HT;\r
-                       eパッドArray[ 4 ] = Eパッド.LT;\r
-                       eパッドArray[ 5 ] = Eパッド.CY;\r
-                       eパッドArray[ 6 ] = Eパッド.FT;\r
-                       eパッドArray[ 7 ] = Eパッド.HHO;\r
-                       eパッドArray[ 8 ] = Eパッド.RD;\r
-                       eパッドArray[ 9 ] = Eパッド.UNKNOWN;\r
-                       eパッドArray[ 10 ] = Eパッド.UNKNOWN;\r
-                       eパッドArray[ 11 ] = Eパッド.LC;\r
-                       this.eチャンネルtoパッド = eパッドArray;\r
-                       this.nBGAスコープチャンネルマップ = new int[ , ] { { 0xc4, 0xc7, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xe0 }, { 4, 7, 0x55, 0x56, 0x57, 0x58, 0x59, 0x60 } };\r
+                       //this.nBGAスコープチャンネルマップ = new int[ , ] { { 0xc4, 0xc7, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xe0 }, { 4, 7, 0x55, 0x56, 0x57, 0x58, 0x59, 0x60 } };\r
                        base.eステージID = CStage.Eステージ.演奏;\r
                        base.eフェーズID = CStage.Eフェーズ.共通_通常状態;\r
                        base.b活性化してない = true;\r
                        base.list子Activities.Add( this.actPad = new CAct演奏Drumsパッド() );\r
-                       base.list子Activities.Add( this.actCOMBO = new CAct演奏DrumsコンボDGB() );\r
+                       base.list子Activities.Add( this.actCombo = new CAct演奏DrumsコンボDGB() );\r
                        base.list子Activities.Add( this.actDANGER = new CAct演奏DrumsDanger() );\r
                        base.list子Activities.Add( this.actChipFireD = new CAct演奏DrumsチップファイアD() );\r
             base.list子Activities.Add( this.actChipFireGB = new CAct演奏DrumsチップファイアGB());\r
@@ -73,167 +52,179 @@ namespace DTXMania
 \r
                public void t演奏結果を格納する( out CScoreIni.C演奏記録 Drums, out CScoreIni.C演奏記録 Guitar, out CScoreIni.C演奏記録 Bass, out CDTX.CChip[] r空打ちドラムチップ )\r
                {\r
-                       Drums = new CScoreIni.C演奏記録();\r
-                       Guitar = new CScoreIni.C演奏記録();\r
-                       Bass = new CScoreIni.C演奏記録();\r
+                       //Drums = new CScoreIni.C演奏記録();\r
+                       //Guitar = new CScoreIni.C演奏記録();\r
+                       //Bass = new CScoreIni.C演奏記録();\r
+\r
+                       base.t演奏結果を格納する・ドラム( out Drums );\r
+                       base.t演奏結果を格納する・ギター( out Guitar );\r
+                       base.t演奏結果を格納する・ベース( out Bass );\r
+\r
+                       #region [Drums処理(注釈化)]\r
+                       //if( CDTXMania.DTX.bチップがある.Drums && !CDTXMania.ConfigIni.bギタレボモード )\r
+                       //{\r
+                       //    Drums.nスコア = this.actScore.Get( E楽器パート.DRUMS );\r
+                       //    Drums.dbゲーム型スキル値 = CScoreIni.tゲーム型スキルを計算して返す( CDTXMania.DTX.LEVEL.Drums, CDTXMania.DTX.n可視チップ数.Drums, this.nヒット数・Auto含まない.Drums.Perfect, this.actCombo.n現在のコンボ数.Drums最高値 );\r
+                       //    Drums.db演奏型スキル値 = CScoreIni.t演奏型スキルを計算して返す( CDTXMania.DTX.n可視チップ数.Drums, this.nヒット数・Auto含まない.Drums.Perfect, this.nヒット数・Auto含まない.Drums.Great, this.nヒット数・Auto含まない.Drums.Good, this.nヒット数・Auto含まない.Drums.Poor, this.nヒット数・Auto含まない.Drums.Miss );\r
+                       //    Drums.nPerfect数 = CDTXMania.ConfigIni.bドラムが全部オートプレイである ? this.nヒット数・Auto含む.Drums.Perfect : this.nヒット数・Auto含まない.Drums.Perfect;\r
+                       //    Drums.nGreat数 = CDTXMania.ConfigIni.bドラムが全部オートプレイである ? this.nヒット数・Auto含む.Drums.Great : this.nヒット数・Auto含まない.Drums.Great;\r
+                       //    Drums.nGood数 = CDTXMania.ConfigIni.bドラムが全部オートプレイである ? this.nヒット数・Auto含む.Drums.Good : this.nヒット数・Auto含まない.Drums.Good;\r
+                       //    Drums.nPoor数 = CDTXMania.ConfigIni.bドラムが全部オートプレイである ? this.nヒット数・Auto含む.Drums.Poor : this.nヒット数・Auto含まない.Drums.Poor;\r
+                       //    Drums.nMiss数 = CDTXMania.ConfigIni.bドラムが全部オートプレイである ? this.nヒット数・Auto含む.Drums.Miss : this.nヒット数・Auto含まない.Drums.Miss;\r
+                       //    Drums.n最大コンボ数 = this.actCombo.n現在のコンボ数.Drums最高値;\r
+                       //    Drums.n全チップ数 = CDTXMania.DTX.n可視チップ数.Drums;\r
+                       //    for( int i = 0; i < 10; i++ )\r
+                       //    {\r
+                       //        Drums.bAutoPlay[ i ] = CDTXMania.ConfigIni.bAutoPlay[ i ];\r
+                       //    }\r
+                       //    Drums.bTight = CDTXMania.ConfigIni.bTight;\r
+                       //    for( int i = 0; i < 3; i++ )\r
+                       //    {\r
+                       //        Drums.bSudden[ i ] = CDTXMania.ConfigIni.bSudden[ i ];\r
+                       //        Drums.bHidden[ i ] = CDTXMania.ConfigIni.bHidden[ i ];\r
+                       //        Drums.bReverse[ i ] = CDTXMania.ConfigIni.bReverse[ i ];\r
+                       //        Drums.eRandom[ i ] = CDTXMania.ConfigIni.eRandom[ i ];\r
+                       //        Drums.bLight[ i ] = CDTXMania.ConfigIni.bLight[ i ];\r
+                       //        Drums.bLeft[ i ] = CDTXMania.ConfigIni.bLeft[ i ];\r
+                       //        Drums.f譜面スクロール速度[ i ] = ( (float) ( CDTXMania.ConfigIni.n譜面スクロール速度[ i ] + 1 ) ) * 0.5f;\r
+                       //    }\r
+                       //    Drums.eDark = CDTXMania.ConfigIni.eDark;\r
+                       //    Drums.n演奏速度分子 = CDTXMania.ConfigIni.n演奏速度;\r
+                       //    Drums.n演奏速度分母 = 20;\r
+                       //    Drums.eHHGroup = CDTXMania.ConfigIni.eHHGroup;\r
+                       //    Drums.eFTGroup = CDTXMania.ConfigIni.eFTGroup;\r
+                       //    Drums.eCYGroup = CDTXMania.ConfigIni.eCYGroup;\r
+                       //    Drums.eHitSoundPriorityHH = CDTXMania.ConfigIni.eHitSoundPriorityHH;\r
+                       //    Drums.eHitSoundPriorityFT = CDTXMania.ConfigIni.eHitSoundPriorityFT;\r
+                       //    Drums.eHitSoundPriorityCY = CDTXMania.ConfigIni.eHitSoundPriorityCY;\r
+                       //    Drums.bGuitar有効 = CDTXMania.ConfigIni.bGuitar有効;\r
+                       //    Drums.bDrums有効 = CDTXMania.ConfigIni.bDrums有効;\r
+                       //    Drums.bSTAGEFAILED有効 = CDTXMania.ConfigIni.bSTAGEFAILED有効;\r
+                       //    Drums.eダメージレベル = CDTXMania.ConfigIni.eダメージレベル;\r
+                       //    Drums.b演奏にキーボードを使用した = this.b演奏にキーボードを使った.Drums;\r
+                       //    Drums.b演奏にMIDI入力を使用した = this.b演奏にMIDI入力を使った.Drums;\r
+                       //    Drums.b演奏にジョイパッドを使用した = this.b演奏にジョイパッドを使った.Drums;\r
+                       //    Drums.b演奏にマウスを使用した = this.b演奏にマウスを使った.Drums;\r
+                       //    Drums.nPerfectになる範囲ms = CDTXMania.nPerfect範囲ms;\r
+                       //    Drums.nGreatになる範囲ms = CDTXMania.nGreat範囲ms;\r
+                       //    Drums.nGoodになる範囲ms = CDTXMania.nGood範囲ms;\r
+                       //    Drums.nPoorになる範囲ms = CDTXMania.nPoor範囲ms;\r
+                       //    Drums.strDTXManiaのバージョン = CDTXMania.VERSION;\r
+                       //    Drums.最終更新日時 = DateTime.Now.ToString();\r
+                       //    Drums.Hash = CScoreIni.t演奏セクションのMD5を求めて返す( Drums );\r
+                       //}\r
+                       #endregion\r
+                       #region [Guitar処理(注釈化)]\r
+                       //if( CDTXMania.DTX.bチップがある.Guitar )\r
+                       //{\r
+                       //    Guitar.nスコア = this.actScore.Get( E楽器パート.GUITAR );\r
+                       //    Guitar.dbゲーム型スキル値 = CScoreIni.tゲーム型スキルを計算して返す( CDTXMania.DTX.LEVEL.Guitar, CDTXMania.DTX.n可視チップ数.Guitar, this.nヒット数・Auto含まない.Guitar.Perfect, this.actCombo.n現在のコンボ数.Guitar最高値 );\r
+                       //    Guitar.db演奏型スキル値 = CScoreIni.t演奏型スキルを計算して返す( CDTXMania.DTX.n可視チップ数.Guitar, this.nヒット数・Auto含まない.Guitar.Perfect, this.nヒット数・Auto含まない.Guitar.Great, this.nヒット数・Auto含まない.Guitar.Good, this.nヒット数・Auto含まない.Guitar.Poor, this.nヒット数・Auto含まない.Guitar.Miss );\r
+                       //    Guitar.nPerfect数 = CDTXMania.ConfigIni.bAutoPlay.Guitar ? this.nヒット数・Auto含む.Guitar.Perfect : this.nヒット数・Auto含まない.Guitar.Perfect;\r
+                       //    Guitar.nGreat数 = CDTXMania.ConfigIni.bAutoPlay.Guitar ? this.nヒット数・Auto含む.Guitar.Great : this.nヒット数・Auto含まない.Guitar.Great;\r
+                       //    Guitar.nGood数 = CDTXMania.ConfigIni.bAutoPlay.Guitar ? this.nヒット数・Auto含む.Guitar.Good : this.nヒット数・Auto含まない.Guitar.Good;\r
+                       //    Guitar.nPoor数 = CDTXMania.ConfigIni.bAutoPlay.Guitar ? this.nヒット数・Auto含む.Guitar.Poor : this.nヒット数・Auto含まない.Guitar.Poor;\r
+                       //    Guitar.nMiss数 = CDTXMania.ConfigIni.bAutoPlay.Guitar ? this.nヒット数・Auto含む.Guitar.Miss : this.nヒット数・Auto含まない.Guitar.Miss;\r
+                       //    Guitar.n最大コンボ数 = this.actCombo.n現在のコンボ数.Guitar最高値;\r
+                       //    Guitar.n全チップ数 = CDTXMania.DTX.n可視チップ数.Guitar;\r
+                       //    for( int i = 0; i < 10; i++ )\r
+                       //    {\r
+                       //        Guitar.bAutoPlay[ i ] = CDTXMania.ConfigIni.bAutoPlay[ i ];\r
+                       //    }\r
+                       //    Guitar.bTight = CDTXMania.ConfigIni.bTight;\r
+                       //    for( int i = 0; i < 3; i++ )\r
+                       //    {\r
+                       //        Guitar.bSudden[ i ] = CDTXMania.ConfigIni.bSudden[ i ];\r
+                       //        Guitar.bHidden[ i ] = CDTXMania.ConfigIni.bHidden[ i ];\r
+                       //        Guitar.bReverse[ i ] = CDTXMania.ConfigIni.bReverse[ i ];\r
+                       //        Guitar.eRandom[ i ] = CDTXMania.ConfigIni.eRandom[ i ];\r
+                       //        Guitar.bLight[ i ] = CDTXMania.ConfigIni.bLight[ i ];\r
+                       //        Guitar.bLeft[ i ] = CDTXMania.ConfigIni.bLeft[ i ];\r
+                       //        Guitar.f譜面スクロール速度[ i ] = ( (float) ( CDTXMania.ConfigIni.n譜面スクロール速度[ i ] + 1 ) ) * 0.5f;\r
+                       //    }\r
+                       //    Guitar.eDark = CDTXMania.ConfigIni.eDark;\r
+                       //    Guitar.n演奏速度分子 = CDTXMania.ConfigIni.n演奏速度;\r
+                       //    Guitar.n演奏速度分母 = 20;\r
+                       //    Guitar.eHHGroup = CDTXMania.ConfigIni.eHHGroup;\r
+                       //    Guitar.eFTGroup = CDTXMania.ConfigIni.eFTGroup;\r
+                       //    Guitar.eCYGroup = CDTXMania.ConfigIni.eCYGroup;\r
+                       //    Guitar.eHitSoundPriorityHH = CDTXMania.ConfigIni.eHitSoundPriorityHH;\r
+                       //    Guitar.eHitSoundPriorityFT = CDTXMania.ConfigIni.eHitSoundPriorityFT;\r
+                       //    Guitar.eHitSoundPriorityCY = CDTXMania.ConfigIni.eHitSoundPriorityCY;\r
+                       //    Guitar.bGuitar有効 = CDTXMania.ConfigIni.bGuitar有効;\r
+                       //    Guitar.bDrums有効 = CDTXMania.ConfigIni.bDrums有効;\r
+                       //    Guitar.bSTAGEFAILED有効 = CDTXMania.ConfigIni.bSTAGEFAILED有効;\r
+                       //    Guitar.eダメージレベル = CDTXMania.ConfigIni.eダメージレベル;\r
+                       //    Guitar.b演奏にキーボードを使用した = this.b演奏にキーボードを使った.Guitar;\r
+                       //    Guitar.b演奏にMIDI入力を使用した = this.b演奏にMIDI入力を使った.Guitar;\r
+                       //    Guitar.b演奏にジョイパッドを使用した = this.b演奏にジョイパッドを使った.Guitar;\r
+                       //    Guitar.b演奏にマウスを使用した = this.b演奏にマウスを使った.Guitar;\r
+                       //    Guitar.nPerfectになる範囲ms = CDTXMania.nPerfect範囲ms;\r
+                       //    Guitar.nGreatになる範囲ms = CDTXMania.nGreat範囲ms;\r
+                       //    Guitar.nGoodになる範囲ms = CDTXMania.nGood範囲ms;\r
+                       //    Guitar.nPoorになる範囲ms = CDTXMania.nPoor範囲ms;\r
+                       //    Guitar.strDTXManiaのバージョン = CDTXMania.VERSION;\r
+                       //    Guitar.最終更新日時 = DateTime.Now.ToString();\r
+                       //    Guitar.Hash = CScoreIni.t演奏セクションのMD5を求めて返す( Guitar );\r
+                       //}\r
+                       #endregion\r
+                       #region [Bass処理(注釈化)]\r
+                       //if( CDTXMania.DTX.bチップがある.Bass )\r
+                       //{\r
+                       //    Bass.nスコア = this.actScore.Get( E楽器パート.BASS );\r
+                       //    Bass.dbゲーム型スキル値 = CScoreIni.tゲーム型スキルを計算して返す( CDTXMania.DTX.LEVEL.Bass, CDTXMania.DTX.n可視チップ数.Bass, this.nヒット数・Auto含まない.Bass.Perfect, this.actCombo.n現在のコンボ数.Bass最高値 );\r
+                       //    Bass.db演奏型スキル値 = CScoreIni.t演奏型スキルを計算して返す( CDTXMania.DTX.n可視チップ数.Bass, this.nヒット数・Auto含まない.Bass.Perfect, this.nヒット数・Auto含まない.Bass.Great, this.nヒット数・Auto含まない.Bass.Good, this.nヒット数・Auto含まない.Bass.Poor, this.nヒット数・Auto含まない.Bass.Miss );\r
+                       //    Bass.nPerfect数 = CDTXMania.ConfigIni.bAutoPlay.Bass ? this.nヒット数・Auto含む.Bass.Perfect : this.nヒット数・Auto含まない.Bass.Perfect;\r
+                       //    Bass.nGreat数 = CDTXMania.ConfigIni.bAutoPlay.Bass ? this.nヒット数・Auto含む.Bass.Great : this.nヒット数・Auto含まない.Bass.Great;\r
+                       //    Bass.nGood数 = CDTXMania.ConfigIni.bAutoPlay.Bass ? this.nヒット数・Auto含む.Bass.Good : this.nヒット数・Auto含まない.Bass.Good;\r
+                       //    Bass.nPoor数 = CDTXMania.ConfigIni.bAutoPlay.Bass ? this.nヒット数・Auto含む.Bass.Poor : this.nヒット数・Auto含まない.Bass.Poor;\r
+                       //    Bass.nMiss数 = CDTXMania.ConfigIni.bAutoPlay.Bass ? this.nヒット数・Auto含む.Bass.Miss : this.nヒット数・Auto含まない.Bass.Miss;\r
+                       //    Bass.n最大コンボ数 = this.actCombo.n現在のコンボ数.Bass最高値;\r
+                       //    Bass.n全チップ数 = CDTXMania.DTX.n可視チップ数.Bass;\r
+                       //    for( int i = 0; i < 10; i++ )\r
+                       //    {\r
+                       //        Bass.bAutoPlay[ i ] = CDTXMania.ConfigIni.bAutoPlay[ i ];\r
+                       //    }\r
+                       //    Bass.bTight = CDTXMania.ConfigIni.bTight;\r
+                       //    for( int i = 0; i < 3; i++ )\r
+                       //    {\r
+                       //        Bass.bSudden[ i ] = CDTXMania.ConfigIni.bSudden[ i ];\r
+                       //        Bass.bHidden[ i ] = CDTXMania.ConfigIni.bHidden[ i ];\r
+                       //        Bass.bReverse[ i ] = CDTXMania.ConfigIni.bReverse[ i ];\r
+                       //        Bass.eRandom[ i ] = CDTXMania.ConfigIni.eRandom[ i ];\r
+                       //        Bass.bLight[ i ] = CDTXMania.ConfigIni.bLight[ i ];\r
+                       //        Bass.bLeft[ i ] = CDTXMania.ConfigIni.bLeft[ i ];\r
+                       //        Bass.f譜面スクロール速度[ i ] = ( (float) ( CDTXMania.ConfigIni.n譜面スクロール速度[ i ] + 1 ) ) * 0.5f;\r
+                       //    }\r
+                       //    Bass.eDark = CDTXMania.ConfigIni.eDark;\r
+                       //    Bass.n演奏速度分子 = CDTXMania.ConfigIni.n演奏速度;\r
+                       //    Bass.n演奏速度分母 = 20;\r
+                       //    Bass.eHHGroup = CDTXMania.ConfigIni.eHHGroup;\r
+                       //    Bass.eFTGroup = CDTXMania.ConfigIni.eFTGroup;\r
+                       //    Bass.eCYGroup = CDTXMania.ConfigIni.eCYGroup;\r
+                       //    Bass.eHitSoundPriorityHH = CDTXMania.ConfigIni.eHitSoundPriorityHH;\r
+                       //    Bass.eHitSoundPriorityFT = CDTXMania.ConfigIni.eHitSoundPriorityFT;\r
+                       //    Bass.eHitSoundPriorityCY = CDTXMania.ConfigIni.eHitSoundPriorityCY;\r
+                       //    Bass.bGuitar有効 = CDTXMania.ConfigIni.bGuitar有効;\r
+                       //    Bass.bDrums有効 = CDTXMania.ConfigIni.bDrums有効;\r
+                       //    Bass.bSTAGEFAILED有効 = CDTXMania.ConfigIni.bSTAGEFAILED有効;\r
+                       //    Bass.eダメージレベル = CDTXMania.ConfigIni.eダメージレベル;\r
+                       //    Bass.b演奏にキーボードを使用した = this.b演奏にキーボードを使った.Bass;                  // #24280 2011.1.29 yyagi\r
+                       //    Bass.b演奏にMIDI入力を使用した = this.b演奏にMIDI入力を使った.Bass;                            //\r
+                       //    Bass.b演奏にジョイパッドを使用した = this.b演奏にジョイパッドを使った.Bass;            //\r
+                       //    Bass.b演奏にマウスを使用した = this.b演奏にマウスを使った.Bass;                                      //\r
+                       //    Bass.nPerfectになる範囲ms = CDTXMania.nPerfect範囲ms;\r
+                       //    Bass.nGreatになる範囲ms = CDTXMania.nGreat範囲ms;\r
+                       //    Bass.nGoodになる範囲ms = CDTXMania.nGood範囲ms;\r
+                       //    Bass.nPoorになる範囲ms = CDTXMania.nPoor範囲ms;\r
+                       //    Bass.strDTXManiaのバージョン = CDTXMania.VERSION;\r
+                       //    Bass.最終更新日時 = DateTime.Now.ToString();\r
+                       //    Bass.Hash = CScoreIni.t演奏セクションのMD5を求めて返す( Bass );\r
+                       //}\r
+                       #endregion\r
+\r
                        r空打ちドラムチップ = new CDTX.CChip[ 10 ];\r
-                       if( CDTXMania.DTX.bチップがある.Drums && !CDTXMania.ConfigIni.bギタレボモード )\r
-                       {\r
-                               Drums.nスコア = this.actScore.Get( E楽器パート.DRUMS );\r
-                               Drums.dbゲーム型スキル値 = CScoreIni.tゲーム型スキルを計算して返す( CDTXMania.DTX.LEVEL.Drums, CDTXMania.DTX.n可視チップ数.Drums, this.nヒット数・Auto含まない.Drums.Perfect, this.actCOMBO.n現在のコンボ数.Drums最高値 );\r
-                               Drums.db演奏型スキル値 = CScoreIni.t演奏型スキルを計算して返す( CDTXMania.DTX.n可視チップ数.Drums, this.nヒット数・Auto含まない.Drums.Perfect, this.nヒット数・Auto含まない.Drums.Great, this.nヒット数・Auto含まない.Drums.Good, this.nヒット数・Auto含まない.Drums.Poor, this.nヒット数・Auto含まない.Drums.Miss );\r
-                               Drums.nPerfect数 = CDTXMania.ConfigIni.bドラムが全部オートプレイである ? this.nヒット数・Auto含む.Drums.Perfect : this.nヒット数・Auto含まない.Drums.Perfect;\r
-                               Drums.nGreat数 = CDTXMania.ConfigIni.bドラムが全部オートプレイである ? this.nヒット数・Auto含む.Drums.Great : this.nヒット数・Auto含まない.Drums.Great;\r
-                               Drums.nGood数 = CDTXMania.ConfigIni.bドラムが全部オートプレイである ? this.nヒット数・Auto含む.Drums.Good : this.nヒット数・Auto含まない.Drums.Good;\r
-                               Drums.nPoor数 = CDTXMania.ConfigIni.bドラムが全部オートプレイである ? this.nヒット数・Auto含む.Drums.Poor : this.nヒット数・Auto含まない.Drums.Poor;\r
-                               Drums.nMiss数 = CDTXMania.ConfigIni.bドラムが全部オートプレイである ? this.nヒット数・Auto含む.Drums.Miss : this.nヒット数・Auto含まない.Drums.Miss;\r
-                               Drums.n最大コンボ数 = this.actCOMBO.n現在のコンボ数.Drums最高値;\r
-                               Drums.n全チップ数 = CDTXMania.DTX.n可視チップ数.Drums;\r
-                               for( int i = 0; i < 10; i++ )\r
-                               {\r
-                                       Drums.bAutoPlay[ i ] = CDTXMania.ConfigIni.bAutoPlay[ i ];\r
-                               }\r
-                               Drums.bTight = CDTXMania.ConfigIni.bTight;\r
-                               for( int i = 0; i < 3; i++ )\r
-                               {\r
-                                       Drums.bSudden[ i ] = CDTXMania.ConfigIni.bSudden[ i ];\r
-                                       Drums.bHidden[ i ] = CDTXMania.ConfigIni.bHidden[ i ];\r
-                                       Drums.bReverse[ i ] = CDTXMania.ConfigIni.bReverse[ i ];\r
-                                       Drums.eRandom[ i ] = CDTXMania.ConfigIni.eRandom[ i ];\r
-                                       Drums.bLight[ i ] = CDTXMania.ConfigIni.bLight[ i ];\r
-                                       Drums.bLeft[ i ] = CDTXMania.ConfigIni.bLeft[ i ];\r
-                                       Drums.f譜面スクロール速度[ i ] = ( (float) ( CDTXMania.ConfigIni.n譜面スクロール速度[ i ] + 1 ) ) * 0.5f;\r
-                               }\r
-                               Drums.eDark = CDTXMania.ConfigIni.eDark;\r
-                               Drums.n演奏速度分子 = CDTXMania.ConfigIni.n演奏速度;\r
-                               Drums.n演奏速度分母 = 20;\r
-                               Drums.eHHGroup = CDTXMania.ConfigIni.eHHGroup;\r
-                               Drums.eFTGroup = CDTXMania.ConfigIni.eFTGroup;\r
-                               Drums.eCYGroup = CDTXMania.ConfigIni.eCYGroup;\r
-                               Drums.eHitSoundPriorityHH = CDTXMania.ConfigIni.eHitSoundPriorityHH;\r
-                               Drums.eHitSoundPriorityFT = CDTXMania.ConfigIni.eHitSoundPriorityFT;\r
-                               Drums.eHitSoundPriorityCY = CDTXMania.ConfigIni.eHitSoundPriorityCY;\r
-                               Drums.bGuitar有効 = CDTXMania.ConfigIni.bGuitar有効;\r
-                               Drums.bDrums有効 = CDTXMania.ConfigIni.bDrums有効;\r
-                               Drums.bSTAGEFAILED有効 = CDTXMania.ConfigIni.bSTAGEFAILED有効;\r
-                               Drums.eダメージレベル = CDTXMania.ConfigIni.eダメージレベル;\r
-                               Drums.b演奏にキーボードを使用した = this.b演奏にキーボードを使った.Drums;\r
-                               Drums.b演奏にMIDI入力を使用した = this.b演奏にMIDI入力を使った.Drums;\r
-                               Drums.b演奏にジョイパッドを使用した = this.b演奏にジョイパッドを使った.Drums;\r
-                               Drums.b演奏にマウスを使用した = this.b演奏にマウスを使った.Drums;\r
-                               Drums.nPerfectになる範囲ms = CDTXMania.nPerfect範囲ms;\r
-                               Drums.nGreatになる範囲ms = CDTXMania.nGreat範囲ms;\r
-                               Drums.nGoodになる範囲ms = CDTXMania.nGood範囲ms;\r
-                               Drums.nPoorになる範囲ms = CDTXMania.nPoor範囲ms;\r
-                               Drums.strDTXManiaのバージョン = CDTXMania.VERSION;\r
-                               Drums.最終更新日時 = DateTime.Now.ToString();\r
-                               Drums.Hash = CScoreIni.t演奏セクションのMD5を求めて返す( Drums );\r
-                       }\r
-                       if( CDTXMania.DTX.bチップがある.Guitar )\r
-                       {\r
-                               Guitar.nスコア = this.actScore.Get( E楽器パート.GUITAR );\r
-                               Guitar.dbゲーム型スキル値 = CScoreIni.tゲーム型スキルを計算して返す( CDTXMania.DTX.LEVEL.Guitar, CDTXMania.DTX.n可視チップ数.Guitar, this.nヒット数・Auto含まない.Guitar.Perfect, this.actCOMBO.n現在のコンボ数.Guitar最高値 );\r
-                               Guitar.db演奏型スキル値 = CScoreIni.t演奏型スキルを計算して返す( CDTXMania.DTX.n可視チップ数.Guitar, this.nヒット数・Auto含まない.Guitar.Perfect, this.nヒット数・Auto含まない.Guitar.Great, this.nヒット数・Auto含まない.Guitar.Good, this.nヒット数・Auto含まない.Guitar.Poor, this.nヒット数・Auto含まない.Guitar.Miss );\r
-                               Guitar.nPerfect数 = CDTXMania.ConfigIni.bAutoPlay.Guitar ? this.nヒット数・Auto含む.Guitar.Perfect : this.nヒット数・Auto含まない.Guitar.Perfect;\r
-                               Guitar.nGreat数 = CDTXMania.ConfigIni.bAutoPlay.Guitar ? this.nヒット数・Auto含む.Guitar.Great : this.nヒット数・Auto含まない.Guitar.Great;\r
-                               Guitar.nGood数 = CDTXMania.ConfigIni.bAutoPlay.Guitar ? this.nヒット数・Auto含む.Guitar.Good : this.nヒット数・Auto含まない.Guitar.Good;\r
-                               Guitar.nPoor数 = CDTXMania.ConfigIni.bAutoPlay.Guitar ? this.nヒット数・Auto含む.Guitar.Poor : this.nヒット数・Auto含まない.Guitar.Poor;\r
-                               Guitar.nMiss数 = CDTXMania.ConfigIni.bAutoPlay.Guitar ? this.nヒット数・Auto含む.Guitar.Miss : this.nヒット数・Auto含まない.Guitar.Miss;\r
-                               Guitar.n最大コンボ数 = this.actCOMBO.n現在のコンボ数.Guitar最高値;\r
-                               Guitar.n全チップ数 = CDTXMania.DTX.n可視チップ数.Guitar;\r
-                               for( int i = 0; i < 10; i++ )\r
-                               {\r
-                                       Guitar.bAutoPlay[ i ] = CDTXMania.ConfigIni.bAutoPlay[ i ];\r
-                               }\r
-                               Guitar.bTight = CDTXMania.ConfigIni.bTight;\r
-                               for( int i = 0; i < 3; i++ )\r
-                               {\r
-                                       Guitar.bSudden[ i ] = CDTXMania.ConfigIni.bSudden[ i ];\r
-                                       Guitar.bHidden[ i ] = CDTXMania.ConfigIni.bHidden[ i ];\r
-                                       Guitar.bReverse[ i ] = CDTXMania.ConfigIni.bReverse[ i ];\r
-                                       Guitar.eRandom[ i ] = CDTXMania.ConfigIni.eRandom[ i ];\r
-                                       Guitar.bLight[ i ] = CDTXMania.ConfigIni.bLight[ i ];\r
-                                       Guitar.bLeft[ i ] = CDTXMania.ConfigIni.bLeft[ i ];\r
-                                       Guitar.f譜面スクロール速度[ i ] = ( (float) ( CDTXMania.ConfigIni.n譜面スクロール速度[ i ] + 1 ) ) * 0.5f;\r
-                               }\r
-                               Guitar.eDark = CDTXMania.ConfigIni.eDark;\r
-                               Guitar.n演奏速度分子 = CDTXMania.ConfigIni.n演奏速度;\r
-                               Guitar.n演奏速度分母 = 20;\r
-                               Guitar.eHHGroup = CDTXMania.ConfigIni.eHHGroup;\r
-                               Guitar.eFTGroup = CDTXMania.ConfigIni.eFTGroup;\r
-                               Guitar.eCYGroup = CDTXMania.ConfigIni.eCYGroup;\r
-                               Guitar.eHitSoundPriorityHH = CDTXMania.ConfigIni.eHitSoundPriorityHH;\r
-                               Guitar.eHitSoundPriorityFT = CDTXMania.ConfigIni.eHitSoundPriorityFT;\r
-                               Guitar.eHitSoundPriorityCY = CDTXMania.ConfigIni.eHitSoundPriorityCY;\r
-                               Guitar.bGuitar有効 = CDTXMania.ConfigIni.bGuitar有効;\r
-                               Guitar.bDrums有効 = CDTXMania.ConfigIni.bDrums有効;\r
-                               Guitar.bSTAGEFAILED有効 = CDTXMania.ConfigIni.bSTAGEFAILED有効;\r
-                               Guitar.eダメージレベル = CDTXMania.ConfigIni.eダメージレベル;\r
-                               Guitar.b演奏にキーボードを使用した = this.b演奏にキーボードを使った.Guitar;\r
-                               Guitar.b演奏にMIDI入力を使用した = this.b演奏にMIDI入力を使った.Guitar;\r
-                               Guitar.b演奏にジョイパッドを使用した = this.b演奏にジョイパッドを使った.Guitar;\r
-                               Guitar.b演奏にマウスを使用した = this.b演奏にマウスを使った.Guitar;\r
-                               Guitar.nPerfectになる範囲ms = CDTXMania.nPerfect範囲ms;\r
-                               Guitar.nGreatになる範囲ms = CDTXMania.nGreat範囲ms;\r
-                               Guitar.nGoodになる範囲ms = CDTXMania.nGood範囲ms;\r
-                               Guitar.nPoorになる範囲ms = CDTXMania.nPoor範囲ms;\r
-                               Guitar.strDTXManiaのバージョン = CDTXMania.VERSION;\r
-                               Guitar.最終更新日時 = DateTime.Now.ToString();\r
-                               Guitar.Hash = CScoreIni.t演奏セクションのMD5を求めて返す( Guitar );\r
-                       }\r
-                       if( CDTXMania.DTX.bチップがある.Bass )\r
-                       {\r
-                               Bass.nスコア = this.actScore.Get( E楽器パート.BASS );\r
-                               Bass.dbゲーム型スキル値 = CScoreIni.tゲーム型スキルを計算して返す( CDTXMania.DTX.LEVEL.Bass, CDTXMania.DTX.n可視チップ数.Bass, this.nヒット数・Auto含まない.Bass.Perfect, this.actCOMBO.n現在のコンボ数.Bass最高値 );\r
-                               Bass.db演奏型スキル値 = CScoreIni.t演奏型スキルを計算して返す( CDTXMania.DTX.n可視チップ数.Bass, this.nヒット数・Auto含まない.Bass.Perfect, this.nヒット数・Auto含まない.Bass.Great, this.nヒット数・Auto含まない.Bass.Good, this.nヒット数・Auto含まない.Bass.Poor, this.nヒット数・Auto含まない.Bass.Miss );\r
-                               Bass.nPerfect数 = CDTXMania.ConfigIni.bAutoPlay.Bass ? this.nヒット数・Auto含む.Bass.Perfect : this.nヒット数・Auto含まない.Bass.Perfect;\r
-                               Bass.nGreat数 = CDTXMania.ConfigIni.bAutoPlay.Bass ? this.nヒット数・Auto含む.Bass.Great : this.nヒット数・Auto含まない.Bass.Great;\r
-                               Bass.nGood数 = CDTXMania.ConfigIni.bAutoPlay.Bass ? this.nヒット数・Auto含む.Bass.Good : this.nヒット数・Auto含まない.Bass.Good;\r
-                               Bass.nPoor数 = CDTXMania.ConfigIni.bAutoPlay.Bass ? this.nヒット数・Auto含む.Bass.Poor : this.nヒット数・Auto含まない.Bass.Poor;\r
-                               Bass.nMiss数 = CDTXMania.ConfigIni.bAutoPlay.Bass ? this.nヒット数・Auto含む.Bass.Miss : this.nヒット数・Auto含まない.Bass.Miss;\r
-                               Bass.n最大コンボ数 = this.actCOMBO.n現在のコンボ数.Bass最高値;\r
-                               Bass.n全チップ数 = CDTXMania.DTX.n可視チップ数.Bass;\r
-                               for( int i = 0; i < 10; i++ )\r
-                               {\r
-                                       Bass.bAutoPlay[ i ] = CDTXMania.ConfigIni.bAutoPlay[ i ];\r
-                               }\r
-                               Bass.bTight = CDTXMania.ConfigIni.bTight;\r
-                               for( int i = 0; i < 3; i++ )\r
-                               {\r
-                                       Bass.bSudden[ i ] = CDTXMania.ConfigIni.bSudden[ i ];\r
-                                       Bass.bHidden[ i ] = CDTXMania.ConfigIni.bHidden[ i ];\r
-                                       Bass.bReverse[ i ] = CDTXMania.ConfigIni.bReverse[ i ];\r
-                                       Bass.eRandom[ i ] = CDTXMania.ConfigIni.eRandom[ i ];\r
-                                       Bass.bLight[ i ] = CDTXMania.ConfigIni.bLight[ i ];\r
-                                       Bass.bLeft[ i ] = CDTXMania.ConfigIni.bLeft[ i ];\r
-                                       Bass.f譜面スクロール速度[ i ] = ( (float) ( CDTXMania.ConfigIni.n譜面スクロール速度[ i ] + 1 ) ) * 0.5f;\r
-                               }\r
-                               Bass.eDark = CDTXMania.ConfigIni.eDark;\r
-                               Bass.n演奏速度分子 = CDTXMania.ConfigIni.n演奏速度;\r
-                               Bass.n演奏速度分母 = 20;\r
-                               Bass.eHHGroup = CDTXMania.ConfigIni.eHHGroup;\r
-                               Bass.eFTGroup = CDTXMania.ConfigIni.eFTGroup;\r
-                               Bass.eCYGroup = CDTXMania.ConfigIni.eCYGroup;\r
-                               Bass.eHitSoundPriorityHH = CDTXMania.ConfigIni.eHitSoundPriorityHH;\r
-                               Bass.eHitSoundPriorityFT = CDTXMania.ConfigIni.eHitSoundPriorityFT;\r
-                               Bass.eHitSoundPriorityCY = CDTXMania.ConfigIni.eHitSoundPriorityCY;\r
-                               Bass.bGuitar有効 = CDTXMania.ConfigIni.bGuitar有効;\r
-                               Bass.bDrums有効 = CDTXMania.ConfigIni.bDrums有効;\r
-                               Bass.bSTAGEFAILED有効 = CDTXMania.ConfigIni.bSTAGEFAILED有効;\r
-                               Bass.eダメージレベル = CDTXMania.ConfigIni.eダメージレベル;\r
-                               Bass.b演奏にキーボードを使用した = this.b演奏にキーボードを使った.Bass;                        // #24280 2011.1.29 yyagi\r
-                               Bass.b演奏にMIDI入力を使用した = this.b演奏にMIDI入力を使った.Bass;                          //\r
-                               Bass.b演奏にジョイパッドを使用した = this.b演奏にジョイパッドを使った.Bass;          //\r
-                               Bass.b演奏にマウスを使用した = this.b演奏にマウスを使った.Bass;                                    //\r
-                               Bass.nPerfectになる範囲ms = CDTXMania.nPerfect範囲ms;\r
-                               Bass.nGreatになる範囲ms = CDTXMania.nGreat範囲ms;\r
-                               Bass.nGoodになる範囲ms = CDTXMania.nGood範囲ms;\r
-                               Bass.nPoorになる範囲ms = CDTXMania.nPoor範囲ms;\r
-                               Bass.strDTXManiaのバージョン = CDTXMania.VERSION;\r
-                               Bass.最終更新日時 = DateTime.Now.ToString();\r
-                               Bass.Hash = CScoreIni.t演奏セクションのMD5を求めて返す( Bass );\r
-                       }\r
-                       for( int i = 0; i < 10; i++ )\r
+                       for ( int i = 0; i < 10; i++ )\r
                        {\r
                                r空打ちドラムチップ[ i ] = this.r空うちChip( E楽器パート.DRUMS, (Eパッド) i );\r
                                if( r空打ちドラムチップ[ i ] == null )\r
@@ -241,15 +232,16 @@ namespace DTXMania
                                        r空打ちドラムチップ[ i ] = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( CDTXMania.Timer.n現在時刻, this.nパッド0Atoチャンネル0A[ i ], this.nInputAdjustTimeMs.Drums );\r
                                }\r
                        }\r
-                       if ( CDTXMania.ConfigIni.bIsSwappedGuitarBass )         // #24063 2011.1.24 yyagi Gt/Bsを入れ替えていたなら、演奏結果も入れ替える\r
-                       {\r
-                               CScoreIni.C演奏記録 t;\r
-                               t = Guitar;\r
-                               Guitar = Bass;\r
-                               Bass = t;\r
 \r
-                               CDTXMania.DTX.SwapGuitarBassInfos();                    // 譜面情報も元に戻す\r
-                       }\r
+//                     if ( CDTXMania.ConfigIni.bIsSwappedGuitarBass )         // #24063 2011.1.24 yyagi Gt/Bsを入れ替えていたなら、演奏結果も入れ替える\r
+//                     {\r
+//                             CScoreIni.C演奏記録 t;\r
+//                             t = Guitar;\r
+//                             Guitar = Bass;\r
+//                             Bass = t;\r
+//                     \r
+//                             CDTXMania.DTX.SwapGuitarBassInfos();                    // 譜面情報も元に戻す\r
+//                     }\r
                }\r
 \r
 \r
@@ -257,86 +249,85 @@ namespace DTXMania
 \r
                public override void On活性化()\r
                {\r
-                       this.eフェードアウト完了時の戻り値 = E演奏画面の戻り値.継続;\r
+                       //this.eフェードアウト完了時の戻り値 = E演奏画面の戻り値.継続;\r
                        this.bフィルイン中 = false;\r
-                       this.n現在のトップChip = ( CDTXMania.DTX.listChip.Count > 0 ) ? 0 : -1;\r
+                       //this.n現在のトップChip = ( CDTXMania.DTX.listChip.Count > 0 ) ? 0 : -1;\r
                        // this.n最後に再生したHHの実WAV番号 = -1;                                   // #23921 2011.1.4 yyagi\r
-                       this.L最後に再生したHHの実WAV番号 = new List<int>(16);\r
-\r
-                       this.n最後に再生したHHのチャンネル番号 = 0;\r
-                       this.n最後に再生したギターの実WAV番号 = -1;\r
-                       this.n最後に再生したベースの実WAV番号 = -1;\r
-                       for( int i = 0; i < 50; i++ )\r
-                       {\r
-                               this.n最後に再生したBGMの実WAV番号[ i ] = -1;\r
-                       }\r
-                       this.r次にくるギターChip = null;\r
-                       this.r次にくるベースChip = null;\r
-                       for( int j = 0; j < 10; j++ )\r
-                       {\r
-                               this.r現在の空うちドラムChip[ j ] = null;\r
-                       }\r
-                       this.r現在の空うちギターChip = null;\r
-                       this.r現在の空うちベースChip = null;\r
-                       for( int k = 0; k < 3; k++ )\r
-                       {\r
-                               for( int n = 0; n < 5; n++ )\r
-                               {\r
-                                       this.nヒット数・Auto含まない[ k ] = new STHITCOUNTOFRANK();\r
-                                       this.nヒット数・Auto含む[ k ] = new STHITCOUNTOFRANK();\r
-                               }\r
-                               this.queWailing[ k ] = new Queue<CDTX.CChip>();\r
-                               this.r現在の歓声Chip[ k ] = null;\r
-                       }\r
-                       for( int m = 0; m < 3; m++ )\r
-                       {\r
-                               this.b演奏にキーボードを使った[ m ] = false;\r
-                               this.b演奏にジョイパッドを使った[ m ] = false;\r
-                               this.b演奏にMIDI入力を使った[ m ] = false;\r
-                               this.b演奏にマウスを使った[ m ] = false;\r
-                       }\r
-                       this.bAUTOでないチップが1つでもバーを通過した = false;\r
+                       //this.L最後に再生したHHの実WAV番号 = new List<int>(16);\r
+\r
+                       //this.n最後に再生したHHのチャンネル番号 = 0;\r
+                       //this.n最後に再生したギターの実WAV番号 = -1;\r
+                       //this.n最後に再生したベースの実WAV番号 = -1;\r
+                       //for( int i = 0; i < 50; i++ )\r
+                       //{\r
+                       //    this.n最後に再生したBGMの実WAV番号[ i ] = -1;\r
+                       //}\r
+                       //this.r次にくるギターChip = null;\r
+                       //this.r次にくるベースChip = null;\r
+                       //for( int j = 0; j < 10; j++ )\r
+                       //{\r
+                       //    this.r現在の空うちドラムChip[ j ] = null;\r
+                       //}\r
+                       //this.r現在の空うちギターChip = null;\r
+                       //this.r現在の空うちベースChip = null;\r
+                       //for ( int k = 0; k < 3; k++ )\r
+                       //{\r
+                       //    for ( int n = 0; n < 5; n++ )\r
+                       //    {\r
+                       //        this.nヒット数・Auto含まない[ k ] = new STHITCOUNTOFRANK();\r
+                       //        this.nヒット数・Auto含む[ k ] = new STHITCOUNTOFRANK();\r
+                       //    }\r
+                       //    this.queWailing[ k ] = new Queue<CDTX.CChip>();\r
+                       //    this.r現在の歓声Chip[ k ] = null;\r
+                       //}\r
+                       //for( int m = 0; m < 3; m++ )\r
+                       //{\r
+                       //    this.b演奏にキーボードを使った[ m ] = false;\r
+                       //    this.b演奏にジョイパッドを使った[ m ] = false;\r
+                       //    this.b演奏にMIDI入力を使った[ m ] = false;\r
+                       //    this.b演奏にマウスを使った[ m ] = false;\r
+                       //}\r
+                       //this.bAUTOでないチップが1つでもバーを通過した = false;\r
                        base.On活性化();\r
-                       this.tステータスパネルの選択();\r
-                       this.tパネル文字列の設定();\r
+                       //this.tステータスパネルの選択();\r
+                       //this.tパネル文字列の設定();\r
 \r
-                       this.nInputAdjustTimeMs.Drums = CDTXMania.ConfigIni.nInputAdjustTimeMs.Drums;           // #23580 2011.1.3 yyagi\r
-                       this.nInputAdjustTimeMs.Guitar = CDTXMania.ConfigIni.nInputAdjustTimeMs.Guitar;         //        2011.1.7 ikanick 修正\r
-                       this.nInputAdjustTimeMs.Bass = CDTXMania.ConfigIni.nInputAdjustTimeMs.Bass;                     //\r
-                       this.bIsAutoPlay = CDTXMania.ConfigIni.bAutoPlay;                                                                       // #24239 2011.1.23 yyagi\r
+                       // this.nInputAdjustTimeMs.Drums = CDTXMania.ConfigIni.nInputAdjustTimeMs.Drums;                // #23580 2011.1.3 yyagi\r
+                       // this.nInputAdjustTimeMs.Guitar = CDTXMania.ConfigIni.nInputAdjustTimeMs.Guitar;              //        2011.1.7 ikanick 修正\r
+                       // this.nInputAdjustTimeMs.Bass = CDTXMania.ConfigIni.nInputAdjustTimeMs.Bass;                  //\r
+                       //this.bIsAutoPlay = CDTXMania.ConfigIni.bAutoPlay;                                                                     // #24239 2011.1.23 yyagi\r
 \r
             Cスコア cスコア = CDTXMania.stage選曲.r確定されたスコア;            // #24074 2011.01.23 add ikanick\r
             this.actGraph.dbグラフ値目標_渡 = cスコア.譜面情報.最大スキル[0];\r
 \r
-                       if ( CDTXMania.ConfigIni.bIsSwappedGuitarBass ) // #24063 2011.1.24 yyagi Gt/Bsの譜面情報入れ替え\r
-                       {\r
-                               CDTXMania.DTX.SwapGuitarBassInfos();\r
-\r
-                       }\r
+                       //if ( CDTXMania.ConfigIni.bIsSwappedGuitarBass )       // #24063 2011.1.24 yyagi Gt/Bsの譜面情報入れ替え\r
+                       //{\r
+                       //    CDTXMania.DTX.SwapGuitarBassInfos();\r
+                       //}\r
                }\r
                public override void On非活性化()\r
                {\r
-                       this.L最後に再生したHHの実WAV番号.Clear();   // #23921 2011.1.4 yyagi\r
-                       this.L最後に再生したHHの実WAV番号 = null;    //\r
-                       for( int i = 0; i < 3; i++ )\r
-                       {\r
-                               this.queWailing[ i ] = null;\r
-                       }\r
-                       this.ctWailingチップ模様アニメ = null;\r
-                       this.ctチップ模様アニメ.Drums = null;\r
-                       this.ctチップ模様アニメ.Guitar = null;\r
-                       this.ctチップ模様アニメ.Bass = null;\r
+                       //this.L最後に再生したHHの実WAV番号.Clear(); // #23921 2011.1.4 yyagi\r
+                       //this.L最後に再生したHHの実WAV番号 = null;  //\r
+                       //for( int i = 0; i < 3; i++ )\r
+                       //{\r
+                       //    this.queWailing[ i ] = null;\r
+                       //}\r
+                       //this.ctWailingチップ模様アニメ = null;\r
+                       //this.ctチップ模様アニメ.Drums = null;\r
+                       //this.ctチップ模様アニメ.Guitar = null;\r
+                       //this.ctチップ模様アニメ.Bass = null;\r
                        base.On非活性化();\r
                }\r
                public override void OnManagedリソースの作成()\r
                {\r
                        if( !base.b活性化してない )\r
                        {\r
-                               this.t背景テクスチャの生成();\r
+                               //this.t背景テクスチャの生成();\r
                                this.txチップ = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenPlayDrums chips.png" ) );\r
                                this.txヒットバー = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenPlayDrums hit-bar.png" ) );\r
                                this.txヒットバーGB = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenPlayDrums hit-bar guitar.png" ) );\r
-                               this.txWailing枠 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenPlay wailing cursor.png" ) );\r
+                               //this.txWailing枠 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenPlay wailing cursor.png" ) );\r
                                this.txレーンフレームGB = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenPlayDrums lane parts guitar.png" ) );\r
                                if( this.txレーンフレームGB != null )\r
                                {\r
@@ -349,12 +340,12 @@ namespace DTXMania
                {\r
                        if( !base.b活性化してない )\r
                        {\r
-                               CDTXMania.tテクスチャの解放( ref this.tx背景 );\r
+                               //CDTXMania.tテクスチャの解放( ref this.tx背景 );\r
                                CDTXMania.tテクスチャの解放( ref this.txヒットバー );\r
                                CDTXMania.tテクスチャの解放( ref this.txヒットバーGB );\r
                                CDTXMania.tテクスチャの解放( ref this.txチップ );\r
                                CDTXMania.tテクスチャの解放( ref this.txレーンフレームGB );\r
-                               CDTXMania.tテクスチャの解放( ref this.txWailing枠 );\r
+                               //CDTXMania.tテクスチャの解放( ref this.txWailing枠 );\r
                                base.OnManagedリソースの解放();\r
                        }\r
                }\r
@@ -375,7 +366,7 @@ namespace DTXMania
                                        this.actFI.tフェードイン開始();\r
                                        base.b初めての進行描画 = false;\r
                                }\r
-                               if( ( CDTXMania.ConfigIni.bSTAGEFAILED有効 && ( this.actGauge.db現在のゲージ値 <= -0.1 ) ) && ( base.eフェーズID == CStage.Eフェーズ.共通_通常状態 ) )\r
+                               if( ( CDTXMania.ConfigIni.bSTAGEFAILED有効 && ( this.actGauge.db現在のゲージ値.Drums <= -0.1 ) ) && ( base.eフェーズID == CStage.Eフェーズ.共通_通常状態 ) )\r
                                {\r
                                        this.actStageFailed.Start();\r
                                        CDTXMania.DTX.t全チップの再生停止();\r
@@ -402,7 +393,7 @@ namespace DTXMania
                                this.t進行描画・WailingBonus();\r
                                this.t進行描画・譜面スクロール速度();\r
                                this.t進行描画・チップアニメ();\r
-                               flag = this.t進行描画・チップ();\r
+                               flag = this.t進行描画・チップ(E楽器パート.DRUMS);\r
                                this.t進行描画・演奏情報();\r
                                this.t進行描画・ドラムパッド();\r
                                this.t進行描画・判定文字列2・判定ライン上指定の場合();\r
@@ -435,231 +426,237 @@ namespace DTXMania
 \r
                #region [ private ]\r
                //-----------------\r
-               private class STHITCOUNTOFRANK\r
-               {\r
-                       // Fields\r
-                       public int Good;\r
-                       public int Great;\r
-                       public int Miss;\r
-                       public int Perfect;\r
-                       public int Poor;\r
-\r
-                       // Properties\r
-                       public int this[ int index ]\r
-                       {\r
-                               get\r
-                               {\r
-                                       switch( index )\r
-                                       {\r
-                                               case 0:\r
-                                                       return this.Perfect;\r
-\r
-                                               case 1:\r
-                                                       return this.Great;\r
-\r
-                                               case 2:\r
-                                                       return this.Good;\r
-\r
-                                               case 3:\r
-                                                       return this.Poor;\r
-\r
-                                               case 4:\r
-                                                       return this.Miss;\r
-                                       }\r
-                                       throw new IndexOutOfRangeException();\r
-                               }\r
-                               set\r
-                               {\r
-                                       switch( index )\r
-                                       {\r
-                                               case 0:\r
-                                                       this.Perfect = value;\r
-                                                       return;\r
-\r
-                                               case 1:\r
-                                                       this.Great = value;\r
-                                                       return;\r
-\r
-                                               case 2:\r
-                                                       this.Good = value;\r
-                                                       return;\r
-\r
-                                               case 3:\r
-                                                       this.Poor = value;\r
-                                                       return;\r
-\r
-                                               case 4:\r
-                                                       this.Miss = value;\r
-                                                       return;\r
-                                       }\r
-                                       throw new IndexOutOfRangeException();\r
-                               }\r
-                       }\r
-               }\r
-\r
-               [StructLayout( LayoutKind.Sequential )]\r
-               private struct STKARAUCHI\r
-               {\r
-                       public CDTX.CChip HH;\r
-                       public CDTX.CChip SD;\r
-                       public CDTX.CChip BD;\r
-                       public CDTX.CChip HT;\r
-                       public CDTX.CChip LT;\r
-                       public CDTX.CChip FT;\r
-                       public CDTX.CChip CY;\r
-                       public CDTX.CChip HHO;\r
-                       public CDTX.CChip RD;\r
-                       public CDTX.CChip LC;\r
-                       public CDTX.CChip this[ int index ]\r
-                       {\r
-                               get\r
-                               {\r
-                                       switch( index )\r
-                                       {\r
-                                               case 0:\r
-                                                       return this.HH;\r
-\r
-                                               case 1:\r
-                                                       return this.SD;\r
-\r
-                                               case 2:\r
-                                                       return this.BD;\r
-\r
-                                               case 3:\r
-                                                       return this.HT;\r
-\r
-                                               case 4:\r
-                                                       return this.LT;\r
-\r
-                                               case 5:\r
-                                                       return this.FT;\r
-\r
-                                               case 6:\r
-                                                       return this.CY;\r
-\r
-                                               case 7:\r
-                                                       return this.HHO;\r
-\r
-                                               case 8:\r
-                                                       return this.RD;\r
-\r
-                                               case 9:\r
-                                                       return this.LC;\r
-                                       }\r
-                                       throw new IndexOutOfRangeException();\r
-                               }\r
-                               set\r
-                               {\r
-                                       switch( index )\r
-                                       {\r
-                                               case 0:\r
-                                                       this.HH = value;\r
-                                                       return;\r
-\r
-                                               case 1:\r
-                                                       this.SD = value;\r
-                                                       return;\r
-\r
-                                               case 2:\r
-                                                       this.BD = value;\r
-                                                       return;\r
-\r
-                                               case 3:\r
-                                                       this.HT = value;\r
-                                                       return;\r
-\r
-                                               case 4:\r
-                                                       this.LT = value;\r
-                                                       return;\r
-\r
-                                               case 5:\r
-                                                       this.FT = value;\r
-                                                       return;\r
-\r
-                                               case 6:\r
-                                                       this.CY = value;\r
-                                                       return;\r
-\r
-                                               case 7:\r
-                                                       this.HHO = value;\r
-                                                       return;\r
-\r
-                                               case 8:\r
-                                                       this.RD = value;\r
-                                                       return;\r
-\r
-                                               case 9:\r
-                                                       this.LC = value;\r
-                                                       return;\r
-                                       }\r
-                                       throw new IndexOutOfRangeException();\r
-                               }\r
-                       }\r
-               }\r
-\r
-               private CAct演奏AVI actAVI;\r
-               private CAct演奏BGA actBGA;\r
+               //private class STHITCOUNTOFRANK\r
+               //{\r
+               //    // Fields\r
+               //    public int Good;\r
+               //    public int Great;\r
+               //    public int Miss;\r
+               //    public int Perfect;\r
+               //    public int Poor;\r
+\r
+               //    // Properties\r
+               //    public int this[ int index ]\r
+               //    {\r
+               //        get\r
+               //        {\r
+               //            switch( index )\r
+               //            {\r
+               //                case 0:\r
+               //                    return this.Perfect;\r
+\r
+               //                case 1:\r
+               //                    return this.Great;\r
+\r
+               //                case 2:\r
+               //                    return this.Good;\r
+\r
+               //                case 3:\r
+               //                    return this.Poor;\r
+\r
+               //                case 4:\r
+               //                    return this.Miss;\r
+               //            }\r
+               //            throw new IndexOutOfRangeException();\r
+               //        }\r
+               //        set\r
+               //        {\r
+               //            switch( index )\r
+               //            {\r
+               //                case 0:\r
+               //                    this.Perfect = value;\r
+               //                    return;\r
+\r
+               //                case 1:\r
+               //                    this.Great = value;\r
+               //                    return;\r
+\r
+               //                case 2:\r
+               //                    this.Good = value;\r
+               //                    return;\r
+\r
+               //                case 3:\r
+               //                    this.Poor = value;\r
+               //                    return;\r
+\r
+               //                case 4:\r
+               //                    this.Miss = value;\r
+               //                    return;\r
+               //            }\r
+               //            throw new IndexOutOfRangeException();\r
+               //        }\r
+               //    }\r
+               //}\r
+\r
+               //[StructLayout( LayoutKind.Sequential )]\r
+               //private struct STKARAUCHI\r
+               //{\r
+               //    public CDTX.CChip HH;\r
+               //    public CDTX.CChip SD;\r
+               //    public CDTX.CChip BD;\r
+               //    public CDTX.CChip HT;\r
+               //    public CDTX.CChip LT;\r
+               //    public CDTX.CChip FT;\r
+               //    public CDTX.CChip CY;\r
+               //    public CDTX.CChip HHO;\r
+               //    public CDTX.CChip RD;\r
+               //    public CDTX.CChip LC;\r
+               //    public CDTX.CChip this[ int index ]\r
+               //    {\r
+               //        get\r
+               //        {\r
+               //            switch( index )\r
+               //            {\r
+               //                case 0:\r
+               //                    return this.HH;\r
+\r
+               //                case 1:\r
+               //                    return this.SD;\r
+\r
+               //                case 2:\r
+               //                    return this.BD;\r
+\r
+               //                case 3:\r
+               //                    return this.HT;\r
+\r
+               //                case 4:\r
+               //                    return this.LT;\r
+\r
+               //                case 5:\r
+               //                    return this.FT;\r
+\r
+               //                case 6:\r
+               //                    return this.CY;\r
+\r
+               //                case 7:\r
+               //                    return this.HHO;\r
+\r
+               //                case 8:\r
+               //                    return this.RD;\r
+\r
+               //                case 9:\r
+               //                    return this.LC;\r
+               //            }\r
+               //            throw new IndexOutOfRangeException();\r
+               //        }\r
+               //        set\r
+               //        {\r
+               //            switch( index )\r
+               //            {\r
+               //                case 0:\r
+               //                    this.HH = value;\r
+               //                    return;\r
+\r
+               //                case 1:\r
+               //                    this.SD = value;\r
+               //                    return;\r
+\r
+               //                case 2:\r
+               //                    this.BD = value;\r
+               //                    return;\r
+\r
+               //                case 3:\r
+               //                    this.HT = value;\r
+               //                    return;\r
+\r
+               //                case 4:\r
+               //                    this.LT = value;\r
+               //                    return;\r
+\r
+               //                case 5:\r
+               //                    this.FT = value;\r
+               //                    return;\r
+\r
+               //                case 6:\r
+               //                    this.CY = value;\r
+               //                    return;\r
+\r
+               //                case 7:\r
+               //                    this.HHO = value;\r
+               //                    return;\r
+\r
+               //                case 8:\r
+               //                    this.RD = value;\r
+               //                    return;\r
+\r
+               //                case 9:\r
+               //                    this.LC = value;\r
+               //                    return;\r
+               //            }\r
+               //            throw new IndexOutOfRangeException();\r
+               //        }\r
+               //    }\r
+               //}\r
+\r
+               //private CAct演奏AVI actAVI;\r
+               //private CAct演奏BGA actBGA;\r
                private CAct演奏DrumsチップファイアD actChipFireD;\r
-               private CAct演奏DrumsチップファイアGB actChipFireGB;\r
-               private CAct演奏DrumsコンボDGB actCOMBO;\r
-               private CAct演奏DrumsDanger actDANGER;\r
-               private CActFIFOBlack actFI;\r
-               private CActFIFOBlack actFO;\r
-        private CActFIFOWhite actFOClear;\r
-        private CAct演奏Drumsゲージ actGauge;\r
+               //private CAct演奏DrumsチップファイアGB actChipFireGB;\r
+               //private CAct演奏DrumsコンボDGB actCombo;\r
+               //private CAct演奏DrumsDanger actDANGER;\r
+               //private CActFIFOBlack actFI;\r
+               //private CActFIFOBlack actFO;\r
+               //private CActFIFOWhite actFOClear;\r
+               //private CAct演奏Drumsゲージ actGauge;\r
                private CAct演奏Drumsグラフ actGraph;   // #24074 2011.01.23 add ikanick\r
-               private CAct演奏Drums判定文字列 actJudgeString;\r
-               private CAct演奏DrumsレーンフラッシュD actLaneFlushD;\r
-               private CAct演奏DrumsレーンフラッシュGB actLaneFlushGB;\r
+               //private CAct演奏Drums判定文字列 actJudgeString;\r
+               //private CAct演奏DrumsレーンフラッシュD actLaneFlushD;\r
+               //private CAct演奏DrumsレーンフラッシュGB actLaneFlushGB;\r
                private CAct演奏Drumsパッド actPad;\r
-               private CAct演奏パネル文字列 actPanel;\r
-               private CAct演奏演奏情報 actPlayInfo;\r
-               private CAct演奏DrumsRGB actRGB;\r
-               private CAct演奏Drumsスコア actScore;\r
-               private CAct演奏ステージ失敗 actStageFailed;\r
-               private CAct演奏Drumsステータスパネル actStatusPanels;\r
-               private CAct演奏DrumsWailingBonus actWailingBonus;\r
-               private CAct演奏スクロール速度 act譜面スクロール速度;\r
-               private bool bPAUSE;\r
+               //private CAct演奏パネル文字列 actPanel;\r
+               //private CAct演奏演奏情報 actPlayInfo;\r
+               //private CAct演奏DrumsRGB actRGB;\r
+               //private CAct演奏Drumsスコア actScore;\r
+               //private CAct演奏ステージ失敗 actStageFailed;\r
+               //private CAct演奏Drumsステータスパネル actStatusPanels;\r
+               //private CAct演奏DrumsWailingBonus actWailingBonus;\r
+               //private CAct演奏スクロール速度 act譜面スクロール速度;\r
+               //private bool bPAUSE;\r
                private bool bフィルイン中;\r
-               private STDGBVALUE<bool> b演奏にMIDI入力を使った;\r
-               private STDGBVALUE<bool> b演奏にキーボードを使った;\r
-               private STDGBVALUE<bool> b演奏にジョイパッドを使った;\r
-               private STDGBVALUE<bool> b演奏にマウスを使った;\r
-               private CCounter ctWailingチップ模様アニメ;\r
-               private STDGBVALUE<CCounter> ctチップ模様アニメ;\r
-               private readonly Eパッド[] eチャンネルtoパッド;\r
-               private E演奏画面の戻り値 eフェードアウト完了時の戻り値;\r
-               private readonly int[,] nBGAスコープチャンネルマップ;\r
-               private readonly int[] nチャンネル0Atoパッド08 = new int[] { 1, 2, 3, 4, 5, 7, 6, 1, 8, 0 };\r
-               private readonly int[] nチャンネル0Atoレーン07 = new int[] { 1, 2, 3, 4, 5, 7, 6, 1, 7, 0 };\r
+               //private STDGBVALUE<bool> b演奏にMIDI入力を使った;\r
+               //private STDGBVALUE<bool> b演奏にキーボードを使った;\r
+               //private STDGBVALUE<bool> b演奏にジョイパッドを使った;\r
+               //private STDGBVALUE<bool> b演奏にマウスを使った;\r
+               //private CCounter ctWailingチップ模様アニメ;\r
+               //private STDGBVALUE<CCounter> ctチップ模様アニメ;\r
+               private readonly Eパッド[] eチャンネルtoパッド = new Eパッド[]\r
+               {\r
+                       Eパッド.HH, Eパッド.SD, Eパッド.BD, Eパッド.HT,\r
+                       Eパッド.LT, Eパッド.CY, Eパッド.FT, Eパッド.HHO,\r
+                       Eパッド.RD, Eパッド.UNKNOWN, Eパッド.UNKNOWN, Eパッド.LC\r
+               };\r
+               //private E演奏画面の戻り値 eフェードアウト完了時の戻り値;\r
+               //private readonly int[,] nBGAスコープチャンネルマップ;\r
+               //private readonly int[,] nBGAスコープチャンネルマップ = new int[ , ] { { 0xc4, 0xc7, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xe0 }, { 4, 7, 0x55, 0x56, 0x57, 0x58, 0x59, 0x60 } };\r
+               //private readonly int[] nチャンネル0Atoパッド08 = new int[] { 1, 2, 3, 4, 5, 7, 6, 1, 8, 0 };\r
+               //private readonly int[] nチャンネル0Atoレーン07 = new int[] { 1, 2, 3, 4, 5, 7, 6, 1, 7, 0 };\r
                private readonly int[] nチャンネルtoX座標 = new int[] { 0x4c, 110, 0x91, 0xc0, 0xe2, 0x126, 260, 0x4f, 300, 0x23 };\r
-               private readonly int[] nパッド0Atoチャンネル0A = new int[] { 0x11, 0x12, 0x13, 20, 0x15, 0x17, 0x16, 0x18, 0x19, 0x1a };\r
-               private readonly int[] nパッド0Atoパッド08 = new int[] { 1, 2, 3, 4, 5, 6, 7, 1, 8, 0 };\r
-               private readonly int[] nパッド0Atoレーン07 = new int[] { 1, 2, 3, 4, 5, 6, 7, 1, 7, 0 };\r
-               private STDGBVALUE<STHITCOUNTOFRANK> nヒット数・Auto含まない;\r
-               private STDGBVALUE<STHITCOUNTOFRANK> nヒット数・Auto含む;\r
-               private int n現在のトップChip = -1;\r
-               private int[] n最後に再生したBGMの実WAV番号 = new int[ 50 ];\r
-               private int n最後に再生したHHのチャンネル番号;\r
-               private List<int> L最後に再生したHHの実WAV番号;              // #23921 2011.1.4 yyagi: change "int" to "List<int>", for recording multiple wav No.\r
-               private int n最後に再生したギターの実WAV番号;\r
-               private int n最後に再生したベースの実WAV番号;\r
-               private STDGBVALUE<Queue<CDTX.CChip>> queWailing;\r
-               private STDGBVALUE<CDTX.CChip> r現在の歓声Chip;\r
-               private CDTX.CChip r現在の空うちギターChip;\r
-               private STKARAUCHI r現在の空うちドラムChip;\r
-               private CDTX.CChip r現在の空うちベースChip;\r
-               private CDTX.CChip r次にくるギターChip;\r
-               private CDTX.CChip r次にくるベースChip;\r
-               private CTexture txWailing枠;\r
-               private CTexture txチップ;\r
-               private CTexture txヒットバー;\r
+               //private readonly int[] nパッド0Atoチャンネル0A = new int[] { 0x11, 0x12, 0x13, 20, 0x15, 0x17, 0x16, 0x18, 0x19, 0x1a };\r
+               //private readonly int[] nパッド0Atoパッド08 = new int[] { 1, 2, 3, 4, 5, 6, 7, 1, 8, 0 };\r
+               //private readonly int[] nパッド0Atoレーン07 = new int[] { 1, 2, 3, 4, 5, 6, 7, 1, 7, 0 };\r
+               //private STDGBVALUE<STHITCOUNTOFRANK> nヒット数・Auto含まない;\r
+               //private STDGBVALUE<STHITCOUNTOFRANK> nヒット数・Auto含む;\r
+               // private int n現在のトップChip = -1;\r
+               //private int[] n最後に再生したBGMの実WAV番号 = new int[ 50 ];\r
+               //private int n最後に再生したHHのチャンネル番号;\r
+               //private List<int> L最後に再生したHHの実WAV番号;            // #23921 2011.1.4 yyagi: change "int" to "List<int>", for recording multiple wav No.\r
+               //private int n最後に再生したギターの実WAV番号;\r
+               //private int n最後に再生したベースの実WAV番号;\r
+               //private STDGBVALUE<Queue<CDTX.CChip>> queWailing;\r
+               //private STDGBVALUE<CDTX.CChip> r現在の歓声Chip;\r
+               //private CDTX.CChip r現在の空うちギターChip;\r
+               //private STKARAUCHI r現在の空うちドラムChip;\r
+               //private CDTX.CChip r現在の空うちベースChip;\r
+               //private CDTX.CChip r次にくるギターChip;\r
+               //private CDTX.CChip r次にくるベースChip;\r
+               //private CTexture txWailing枠;\r
+               //private CTexture txチップ;\r
+               //private CTexture txヒットバー;\r
                private CTexture txヒットバーGB;\r
                private CTexture txレーンフレームGB;\r
-               private CTexture tx背景;\r
-               private STDGBVALUE<int> nInputAdjustTimeMs;                     // #23580 2011.1.3 yyagi\r
-               private CConfigIni.STAUTOPLAY bIsAutoPlay;                      // #24239 2011.1.23 yyagi\r
+               //private CTexture tx背景;\r
+               // private STDGBVALUE<int> nInputAdjustTimeMs;                  // #23580 2011.1.3 yyagi\r
+               //private CConfigIni.STAUTOPLAY bIsAutoPlay;                    // #24239 2011.1.23 yyagi\r
 \r
                private bool bフィルイン区間の最後のChipである( CDTX.CChip pChip )\r
                {\r
@@ -682,2207 +679,1672 @@ namespace DTXMania
                        }\r
                        return true;\r
                }\r
-               private E判定 e指定時刻からChipのJUDGEを返す( long nTime, CDTX.CChip pChip, int nInputAdjustTime )\r
+//        private E判定 e指定時刻からChipのJUDGEを返す( long nTime, CDTX.CChip pChip, int nInputAdjustTime )\r
+//        {\r
+//            if( pChip != null )\r
+//            {\r
+//                pChip.nLag = (int) ( nTime + nInputAdjustTime - pChip.n発声時刻ms );             // #23580 2011.1.3 yyagi: add "nInputAdjustTime" to add input timing adjust feature\r
+//                int nDeltaTime = Math.Abs( pChip.nLag);\r
+////Debug.WriteLine("nAbsTime=" + (nTime - pChip.n発声時刻ms) + ", nDeltaTime=" + (nTime + nInputAdjustTime - pChip.n発声時刻ms));\r
+//                if( nDeltaTime <= CDTXMania.nPerfect範囲ms )\r
+//                {\r
+//                    return E判定.Perfect;\r
+//                }\r
+//                if( nDeltaTime <= CDTXMania.nGreat範囲ms )\r
+//                {\r
+//                    return E判定.Great;\r
+//                }\r
+//                if( nDeltaTime <= CDTXMania.nGood範囲ms )\r
+//                {\r
+//                    return E判定.Good;\r
+//                }\r
+//                if( nDeltaTime <= CDTXMania.nPoor範囲ms )\r
+//                {\r
+//                    return E判定.Poor;\r
+//                }\r
+//            }\r
+//            return E判定.Miss;\r
+//        }\r
+               //private CDTX.CChip r空うちChip( E楽器パート part, Eパッド pad )\r
+               //{\r
+               //    switch( part )\r
+               //    {\r
+               //        case E楽器パート.DRUMS:\r
+               //            switch( pad )\r
+               //            {\r
+               //                case Eパッド.HH:\r
+               //                    if( this.r現在の空うちドラムChip.HH != null )\r
+               //                    {\r
+               //                        return this.r現在の空うちドラムChip.HH;\r
+               //                    }\r
+               //                    if( CDTXMania.ConfigIni.eHHGroup != EHHGroup.ハイハットのみ打ち分ける )\r
+               //                    {\r
+               //                        if( CDTXMania.ConfigIni.eHHGroup == EHHGroup.左シンバルのみ打ち分ける )\r
+               //                        {\r
+               //                            return this.r現在の空うちドラムChip.HHO;\r
+               //                        }\r
+               //                        if( this.r現在の空うちドラムChip.HHO != null )\r
+               //                        {\r
+               //                            return this.r現在の空うちドラムChip.HHO;\r
+               //                        }\r
+               //                    }\r
+               //                    return this.r現在の空うちドラムChip.LC;\r
+\r
+               //                case Eパッド.SD:\r
+               //                    return this.r現在の空うちドラムChip.SD;\r
+\r
+               //                case Eパッド.BD:\r
+               //                    return this.r現在の空うちドラムChip.BD;\r
+\r
+               //                case Eパッド.HT:\r
+               //                    return this.r現在の空うちドラムChip.HT;\r
+\r
+               //                case Eパッド.LT:\r
+               //                    if( this.r現在の空うちドラムChip.LT != null )\r
+               //                    {\r
+               //                        return this.r現在の空うちドラムChip.LT;\r
+               //                    }\r
+               //                    if( CDTXMania.ConfigIni.eFTGroup == EFTGroup.共通 )\r
+               //                    {\r
+               //                        return this.r現在の空うちドラムChip.FT;\r
+               //                    }\r
+               //                    return null;\r
+\r
+               //                case Eパッド.FT:\r
+               //                    if( this.r現在の空うちドラムChip.FT != null )\r
+               //                    {\r
+               //                        return this.r現在の空うちドラムChip.FT;\r
+               //                    }\r
+               //                    if( CDTXMania.ConfigIni.eFTGroup == EFTGroup.共通 )\r
+               //                    {\r
+               //                        return this.r現在の空うちドラムChip.LT;\r
+               //                    }\r
+               //                    return null;\r
+\r
+               //                case Eパッド.CY:\r
+               //                    if( this.r現在の空うちドラムChip.CY != null )\r
+               //                    {\r
+               //                        return this.r現在の空うちドラムChip.CY;\r
+               //                    }\r
+               //                    if( CDTXMania.ConfigIni.eCYGroup == ECYGroup.共通 )\r
+               //                    {\r
+               //                        return this.r現在の空うちドラムChip.RD;\r
+               //                    }\r
+               //                    return null;\r
+\r
+               //                case Eパッド.HHO:\r
+               //                    if( this.r現在の空うちドラムChip.HHO != null )\r
+               //                    {\r
+               //                        return this.r現在の空うちドラムChip.HHO;\r
+               //                    }\r
+               //                    if( CDTXMania.ConfigIni.eHHGroup != EHHGroup.ハイハットのみ打ち分ける )\r
+               //                    {\r
+               //                        if( CDTXMania.ConfigIni.eHHGroup == EHHGroup.左シンバルのみ打ち分ける )\r
+               //                        {\r
+               //                            return this.r現在の空うちドラムChip.HH;\r
+               //                        }\r
+               //                        if( this.r現在の空うちドラムChip.HH != null )\r
+               //                        {\r
+               //                            return this.r現在の空うちドラムChip.HH;\r
+               //                        }\r
+               //                    }\r
+               //                    return this.r現在の空うちドラムChip.LC;\r
+\r
+               //                case Eパッド.RD:\r
+               //                    if( this.r現在の空うちドラムChip.RD != null )\r
+               //                    {\r
+               //                        return this.r現在の空うちドラムChip.RD;\r
+               //                    }\r
+               //                    if( CDTXMania.ConfigIni.eCYGroup == ECYGroup.共通 )\r
+               //                    {\r
+               //                        return this.r現在の空うちドラムChip.CY;\r
+               //                    }\r
+               //                    return null;\r
+\r
+               //                case Eパッド.LC:\r
+               //                    if( this.r現在の空うちドラムChip.LC != null )\r
+               //                    {\r
+               //                        return this.r現在の空うちドラムChip.LC;\r
+               //                    }\r
+               //                    if( ( CDTXMania.ConfigIni.eHHGroup != EHHGroup.ハイハットのみ打ち分ける ) && ( CDTXMania.ConfigIni.eHHGroup != EHHGroup.全部共通 ) )\r
+               //                    {\r
+               //                        return null;\r
+               //                    }\r
+               //                    if( this.r現在の空うちドラムChip.HH != null )\r
+               //                    {\r
+               //                        return this.r現在の空うちドラムChip.HH;\r
+               //                    }\r
+               //                    return this.r現在の空うちドラムChip.HHO;\r
+               //            }\r
+               //            break;\r
+\r
+               //        case E楽器パート.GUITAR:\r
+               //            return this.r現在の空うちギターChip;\r
+\r
+               //        case E楽器パート.BASS:\r
+               //            return this.r現在の空うちベースChip;\r
+               //    }\r
+               //    return null;\r
+               //}\r
+               //private CDTX.CChip r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( long nTime, int nChannelFlag, int nInputAdjustTime )\r
+               //{\r
+               //    nTime += nInputAdjustTime;                                                // #24239 2011.1.23 yyagi InputAdjust\r
+       \r
+               //    int num5;\r
+               //    if( this.n現在のトップChip == -1 )\r
+               //    {\r
+               //        return null;\r
+               //    }\r
+               //    int count = CDTXMania.DTX.listChip.Count;\r
+               //    int num4 = num5 = this.n現在のトップChip;\r
+               //    if( this.n現在のトップChip >= count )\r
+               //    {\r
+               //        num4 = num5 = count - 1;\r
+               //    }\r
+               //    int num2 = num4;\r
+               //    while( num2 < count )\r
+               //    {\r
+               //        CDTX.CChip chip = CDTXMania.DTX.listChip[ num2 ];\r
+               //        if( ( ( nChannelFlag >= 0x11 ) && ( nChannelFlag <= 0x1a ) ) && ( ( chip.nチャンネル番号 == nChannelFlag ) || ( chip.nチャンネル番号 == ( nChannelFlag + 0x20 ) ) ) )\r
+               //        {\r
+               //            if( chip.n発声時刻ms > nTime )\r
+               //            {\r
+               //                break;\r
+               //            }\r
+               //            num5 = num2;\r
+               //        }\r
+               //        else if( ( ( nChannelFlag == 0x2f ) && ( chip.e楽器パート == E楽器パート.GUITAR ) ) || ( ( ( nChannelFlag >= 0x20 ) && ( nChannelFlag <= 0x28 ) ) && ( chip.nチャンネル番号 == nChannelFlag ) ) )\r
+               //        {\r
+               //            if( chip.n発声時刻ms > nTime )\r
+               //            {\r
+               //                break;\r
+               //            }\r
+               //            num5 = num2;\r
+               //        }\r
+               //        else if( ( ( nChannelFlag == 0xaf ) && ( chip.e楽器パート == E楽器パート.BASS ) ) || ( ( ( nChannelFlag >= 0xa0 ) && ( nChannelFlag <= 0xa8 ) ) && ( chip.nチャンネル番号 == nChannelFlag ) ) )\r
+               //        {\r
+               //            if( chip.n発声時刻ms > nTime )\r
+               //            {\r
+               //                break;\r
+               //            }\r
+               //            num5 = num2;\r
+               //        }\r
+               //        num2++;\r
+               //    }\r
+               //    int num3 = num5;\r
+               //    while( num3 >= 0 )\r
+               //    {\r
+               //        CDTX.CChip chip2 = CDTXMania.DTX.listChip[ num3 ];\r
+               //        if( ( nChannelFlag >= 0x11 ) && ( nChannelFlag <= 0x1a ) )\r
+               //        {\r
+               //            if( ( chip2.nチャンネル番号 == nChannelFlag ) || ( chip2.nチャンネル番号 == ( nChannelFlag + 0x20 ) ) )\r
+               //            {\r
+               //                break;\r
+               //            }\r
+               //        }\r
+               //        else if( ( ( nChannelFlag == 0x2f ) && ( chip2.e楽器パート == E楽器パート.GUITAR ) ) || ( ( ( nChannelFlag >= 0x20 ) && ( nChannelFlag <= 40 ) ) && ( chip2.nチャンネル番号 == nChannelFlag ) ) )\r
+               //        {\r
+               //            if( ( chip2.nチャンネル番号 >= 0x20 ) && ( chip2.nチャンネル番号 <= 0x28 ) )\r
+               //            {\r
+               //                break;\r
+               //            }\r
+               //        }\r
+               //        else if( ( ( ( nChannelFlag == 0xaf ) && ( chip2.e楽器パート == E楽器パート.BASS ) ) || ( ( ( nChannelFlag >= 0xa0 ) && ( nChannelFlag <= 0xa8 ) ) && ( chip2.nチャンネル番号 == nChannelFlag ) ) ) && ( ( chip2.nチャンネル番号 >= 0xa0 ) && ( chip2.nチャンネル番号 <= 0xa8 ) ) )\r
+               //        {\r
+               //            break;\r
+               //        }\r
+               //        num3--;\r
+               //    }\r
+               //    if( ( num2 == count ) && ( num3 < 0 ) )\r
+               //    {\r
+               //        return null;\r
+               //    }\r
+               //    if( num2 == count )\r
+               //    {\r
+               //        return CDTXMania.DTX.listChip[ num3 ];\r
+               //    }\r
+               //    if( num3 < 0 )\r
+               //    {\r
+               //        return CDTXMania.DTX.listChip[ num2 ];\r
+               //    }\r
+               //    CDTX.CChip chip3 = CDTXMania.DTX.listChip[ num2 ];\r
+               //    CDTX.CChip chip4 = CDTXMania.DTX.listChip[ num3 ];\r
+               //    int num6 = Math.Abs( (int) ( nTime - chip3.n発声時刻ms ) );\r
+               //    int num7 = Math.Abs( (int) ( nTime - chip4.n発声時刻ms ) );\r
+               //    if( num6 >= num7 )\r
+               //    {\r
+               //        return chip4;\r
+               //    }\r
+               //    return chip3;\r
+               //}\r
+               //private CDTX.CChip r指定時刻に一番近い未ヒットChip( long nTime, int nChannelFlag, int nInputAdjustTime )\r
+               //{\r
+               //      return this.r指定時刻に一番近い未ヒットChip( nTime, nChannelFlag, nInputAdjustTime, 0 );\r
+               //}\r
+               //private CDTX.CChip r指定時刻に一番近い未ヒットChip( long nTime, int nChannelFlag, int nInputAdjustTime, int n検索範囲時間ms )\r
+               //{\r
+               //    nTime += nInputAdjustTime;\r
+\r
+               //    int num5;\r
+               //    int num6;\r
+               //    if( this.n現在のトップChip == -1 )\r
+               //    {\r
+               //        return null;\r
+               //    }\r
+               //    int count = CDTXMania.DTX.listChip.Count;\r
+               //    int num4 = num5 = this.n現在のトップChip;\r
+               //    if( this.n現在のトップChip >= count )\r
+               //    {\r
+               //        num4 = num5 = count - 1;\r
+               //    }\r
+               //    int num2 = num4;\r
+               //    while( num2 < count )\r
+               //    {\r
+               //        CDTX.CChip chip = CDTXMania.DTX.listChip[ num2 ];\r
+               //        if( ( !chip.bHit && ( nChannelFlag >= 0x11 ) ) && ( nChannelFlag <= 0x1a ) )\r
+               //        {\r
+               //            if( ( chip.nチャンネル番号 == nChannelFlag ) || ( chip.nチャンネル番号 == ( nChannelFlag + 0x20 ) ) )\r
+               //            {\r
+               //                if( chip.n発声時刻ms > nTime )\r
+               //                {\r
+               //                    break;\r
+               //                }\r
+               //                num5 = num2;\r
+               //            }\r
+               //        }\r
+               //        else if( !chip.bHit && ( ( ( nChannelFlag == 0x2f ) && ( chip.e楽器パート == E楽器パート.GUITAR ) ) || ( ( ( nChannelFlag >= 0x20 ) && ( nChannelFlag <= 40 ) ) && ( chip.nチャンネル番号 == nChannelFlag ) ) ) )\r
+               //        {\r
+               //            if( chip.n発声時刻ms > nTime )\r
+               //            {\r
+               //                break;\r
+               //            }\r
+               //            num5 = num2;\r
+               //        }\r
+               //        else if( !chip.bHit && ( ( ( nChannelFlag == 0xaf ) && ( chip.e楽器パート == E楽器パート.BASS ) ) || ( ( ( nChannelFlag >= 160 ) && ( nChannelFlag <= 0xa8 ) ) && ( chip.nチャンネル番号 == nChannelFlag ) ) ) )\r
+               //        {\r
+               //            if( chip.n発声時刻ms > nTime )\r
+               //            {\r
+               //                break;\r
+               //            }\r
+               //            num5 = num2;\r
+               //        }\r
+               //        num2++;\r
+               //    }\r
+               //    int num3 = num5;\r
+               //    while( num3 >= 0 )\r
+               //    {\r
+               //        CDTX.CChip chip2 = CDTXMania.DTX.listChip[ num3 ];\r
+               //        if( ( ( ( !chip2.bHit && ( nChannelFlag >= 0x11 ) ) && ( ( nChannelFlag <= 0x1a ) && ( ( chip2.nチャンネル番号 == nChannelFlag ) || ( chip2.nチャンネル番号 == ( nChannelFlag + 0x20 ) ) ) ) ) || ( !chip2.bHit && ( ( ( nChannelFlag == 0x2f ) && ( chip2.e楽器パート == E楽器パート.GUITAR ) ) || ( ( ( nChannelFlag >= 0x20 ) && ( nChannelFlag <= 40 ) ) && ( chip2.nチャンネル番号 == nChannelFlag ) ) ) ) ) || ( !chip2.bHit && ( ( ( nChannelFlag == 0xaf ) && ( chip2.e楽器パート == E楽器パート.BASS ) ) || ( ( ( nChannelFlag >= 160 ) && ( nChannelFlag <= 0xa8 ) ) && ( chip2.nチャンネル番号 == nChannelFlag ) ) ) ) )\r
+               //        {\r
+               //            break;\r
+               //        }\r
+               //        num3--;\r
+               //    }\r
+               //    if( ( num2 == count ) && ( num3 < 0 ) )\r
+               //    {\r
+               //        return null;\r
+               //    }\r
+               //    CDTX.CChip chip3 = null;\r
+               //    if( num2 == count )\r
+               //    {\r
+               //        chip3 = CDTXMania.DTX.listChip[ num3 ];\r
+               //        num6 = Math.Abs( (int) ( nTime - CDTXMania.DTX.listChip[ num3 ].n発声時刻ms ) );\r
+               //    }\r
+               //    else if( num3 < 0 )\r
+               //    {\r
+               //        chip3 = CDTXMania.DTX.listChip[ num2 ];\r
+               //        num6 = Math.Abs( (int) ( nTime - CDTXMania.DTX.listChip[ num2 ].n発声時刻ms ) );\r
+               //    }\r
+               //    else\r
+               //    {\r
+               //        int num7 = Math.Abs( (int) ( nTime - CDTXMania.DTX.listChip[ num2 ].n発声時刻ms ) );\r
+               //        int num8 = Math.Abs( (int) ( nTime - CDTXMania.DTX.listChip[ num3 ].n発声時刻ms ) );\r
+               //        if( num7 < num8 )\r
+               //        {\r
+               //            chip3 = CDTXMania.DTX.listChip[ num2 ];\r
+               //            num6 = Math.Abs( (int) ( nTime - CDTXMania.DTX.listChip[ num2 ].n発声時刻ms ) );\r
+               //        }\r
+               //        else\r
+               //        {\r
+               //            chip3 = CDTXMania.DTX.listChip[ num3 ];\r
+               //            num6 = Math.Abs( (int) ( nTime - CDTXMania.DTX.listChip[ num3 ].n発声時刻ms ) );\r
+               //        }\r
+               //    }\r
+               //    if( ( n検索範囲時間ms > 0 ) && ( num6 > n検索範囲時間ms ) )\r
+               //    {\r
+               //        return null;\r
+               //    }\r
+               //    return chip3;\r
+               //}\r
+               //private CDTX.CChip r次にくるギターChipを更新して返す()\r
+               //{\r
+               //    int nInputAdjustTime = this.bIsAutoPlay.Guitar ? 0 : this.nInputAdjustTimeMs.Guitar;\r
+               //    this.r次にくるギターChip = this.r指定時刻に一番近い未ヒットChip( CDTXMania.Timer.n現在時刻, 0x2f, nInputAdjustTime, 500 );\r
+               //    return this.r次にくるギターChip;\r
+               //}\r
+               //private CDTX.CChip r次にくるベースChipを更新して返す()\r
+               //{\r
+               //    int nInputAdjustTime = this.bIsAutoPlay.Bass? 0 : this.nInputAdjustTimeMs.Bass;\r
+               //    this.r次にくるベースChip = this.r指定時刻に一番近い未ヒットChip( CDTXMania.Timer.n現在時刻, 0xaf, nInputAdjustTime, 500 );\r
+               //    return this.r次にくるベースChip;\r
+               //}\r
+               //private void tサウンド再生( CDTX.CChip rChip, long n再生開始システム時刻ms, E楽器パート part )\r
+               //{\r
+               //    this.tサウンド再生( rChip, n再生開始システム時刻ms, part, CDTXMania.ConfigIni.n手動再生音量, false, false );\r
+               //}\r
+               //private void tサウンド再生( CDTX.CChip rChip, long n再生開始システム時刻ms, E楽器パート part, int n音量 )\r
+               //{\r
+               //    this.tサウンド再生( rChip, n再生開始システム時刻ms, part, n音量, false, false );\r
+               //}\r
+               //private void tサウンド再生( CDTX.CChip rChip, long n再生開始システム時刻ms, E楽器パート part, int n音量, bool bモニタ )\r
+               //{\r
+               //    this.tサウンド再生( rChip, n再生開始システム時刻ms, part, n音量, bモニタ, false );\r
+               //}\r
+//        private void tサウンド再生( CDTX.CChip pChip, long n再生開始システム時刻ms, E楽器パート part, int n音量, bool bモニタ, bool b音程をずらして再生 )\r
+//        {\r
+//            if( pChip != null )\r
+//            {\r
+//                switch( part )\r
+//                {\r
+//                    case E楽器パート.DRUMS:\r
+//                        {\r
+//                            int index = pChip.nチャンネル番号;\r
+//                            if ( ( index >= 0x11 ) && ( index <= 0x1a ) )\r
+//                            {\r
+//                                index -= 0x11;\r
+//                            }\r
+//                            else\r
+//                            {\r
+//                                if ( ( index < 0x31 ) || ( index > 0x3a ) )\r
+//                                {\r
+//                                    return;\r
+//                                }\r
+//                                index -= 0x31;\r
+//                            }\r
+//                            int nLane = this.nチャンネル0Atoレーン07[ index ];\r
+//                            if( ( nLane == 1 ) &&    // 今回演奏するのがHC or HO\r
+//                                ( index == 0 || ( index == 7 && this.n最後に再生したHHのチャンネル番号 != 0x18 && this.n最後に再生したHHのチャンネル番号 != 0x38 ) )\r
+//                                // HCを演奏するか、またはHO演奏&以前HO演奏でない&以前不可視HO演奏でない\r
+//                            )\r
+//                            {\r
+//                        // #23921 2011.1.4 yyagi: 2種類以上のオープンハイハットが発音済みだと、最後のHHOしか消せない問題に対応。\r
+//#if TEST_NOTEOFFMODE // 2011.1.1 yyagi test\r
+//                                if (CDTXMania.DTX.bHH演奏で直前のHHを消音する)\r
+//                                {\r
+//#endif\r
+//                                    for (int i = 0; i < this.L最後に再生したHHの実WAV番号.Count; i++)             // #23921 2011.1.4 yyagi\r
+//                                    {\r
+//                                        // CDTXMania.DTX.tWavの再生停止(this.L最後に再生したHHの実WAV番号);\r
+//                                        CDTXMania.DTX.tWavの再生停止(this.L最後に再生したHHの実WAV番号[i]);  // #23921 yyagi ストック分全て消音する\r
+//                                    }\r
+//                                    this.L最後に再生したHHの実WAV番号.Clear();\r
+//#if TEST_NOTEOFFMODE // 2011.1.1 yyagi test\r
+//                                }\r
+//#endif\r
+//                                //this.n最後に再生したHHの実WAV番号 = pChip.n整数値・内部番号;\r
+//                                this.n最後に再生したHHのチャンネル番号 = pChip.nチャンネル番号;\r
+//                            }\r
+//#if TEST_NOTEOFFMODE // 2011.1.4 yyagi test\r
+//                            if (CDTXMania.DTX.bHH演奏で直前のHHを消音する)\r
+//                            {\r
+//#endif\r
+//                                if (index == 7 || index == 0x27)                                             // #23921 HOまたは不可視HO演奏時はそのチップ番号をストックしておく\r
+//                                {\r
+//                                    if (this.L最後に再生したHHの実WAV番号.Count >= 16)    // #23921 ただしストック数が16以上になるようなら、頭の1個を削って常に16未満に抑える\r
+//                                    {                                                                                                        // (ストックが増えてList<>のrealloc()が発生するのを予防する)\r
+//                                        this.L最後に再生したHHの実WAV番号.RemoveAt(0);\r
+//                                    }\r
+//                                    if (this.L最後に再生したHHの実WAV番号.IndexOf(pChip.n整数値・内部番号) < 0)   // チップ音がまだストックされてなければ\r
+//                                    {\r
+//                                        this.L最後に再生したHHの実WAV番号.Add(pChip.n整数値・内部番号);                   // ストックする\r
+//                                    }\r
+//                                }\r
+//#if TEST_NOTEOFFMODE // 2011.1.4 yyagi test\r
+//                            }\r
+//#endif\r
+//                            CDTXMania.DTX.tチップの再生( pChip, n再生開始システム時刻ms, nLane, n音量, bモニタ );\r
+//                            return;\r
+//                        }\r
+//                    case E楽器パート.GUITAR:\r
+//#if TEST_NOTEOFFMODE // 2011.1.1 yyagi test\r
+//                        if (CDTXMania.DTX.bGUITAR演奏で直前のGUITARを消音する) {\r
+//#endif\r
+//                            CDTXMania.DTX.tWavの再生停止(this.n最後に再生したギターの実WAV番号);\r
+//#if TEST_NOTEOFFMODE\r
+//                        }\r
+//#endif\r
+//                        CDTXMania.DTX.tチップの再生(pChip, n再生開始システム時刻ms, 8, n音量, bモニタ, b音程をずらして再生);\r
+//                        this.n最後に再生したギターの実WAV番号 = pChip.n整数値・内部番号;\r
+//                        return;\r
+\r
+//                    case E楽器パート.BASS:\r
+//#if TEST_NOTEOFFMODE\r
+//                        if (CDTXMania.DTX.bBASS演奏で直前のBASSを消音する) {\r
+//#endif\r
+//                            CDTXMania.DTX.tWavの再生停止(this.n最後に再生したベースの実WAV番号);\r
+//#if TEST_NOTEOFFMODE\r
+//                        }\r
+//#endif\r
+//                        CDTXMania.DTX.tチップの再生( pChip, n再生開始システム時刻ms, 9, n音量, bモニタ, b音程をずらして再生 );\r
+//                        this.n最後に再生したベースの実WAV番号 = pChip.n整数値・内部番号;\r
+//                        return;\r
+//                }\r
+//            }\r
+//        }\r
+               //private void tステータスパネルの選択()\r
+               //{\r
+               //    if( CDTXMania.bコンパクトモード )\r
+               //    {\r
+               //        this.actStatusPanels.tラベル名からステータスパネルを決定する( null );\r
+               //    }\r
+               //    else if( CDTXMania.stage選曲.r確定された曲 != null )\r
+               //    {\r
+               //        this.actStatusPanels.tラベル名からステータスパネルを決定する( CDTXMania.stage選曲.r確定された曲.ar難易度ラベル[ CDTXMania.stage選曲.n確定された曲の難易度 ] );\r
+               //    }\r
+               //}\r
+               protected override E判定 tチップのヒット処理( long nHitTime, CDTX.CChip pChip )\r
                {\r
-                       if( pChip != null )\r
-                       {\r
-                               pChip.nLag = (int) ( nTime + nInputAdjustTime - pChip.n発声時刻ms );                // #23580 2011.1.3 yyagi: add "nInputAdjustTime" to add input timing adjust feature\r
-                               int nDeltaTime = Math.Abs( pChip.nLag);\r
-//Debug.WriteLine("nAbsTime=" + (nTime - pChip.n発声時刻ms) + ", nDeltaTime=" + (nTime + nInputAdjustTime - pChip.n発声時刻ms));\r
-                               if( nDeltaTime <= CDTXMania.nPerfect範囲ms )\r
-                               {\r
-                                       return E判定.Perfect;\r
-                               }\r
-                               if( nDeltaTime <= CDTXMania.nGreat範囲ms )\r
-                               {\r
-                                       return E判定.Great;\r
-                               }\r
-                               if( nDeltaTime <= CDTXMania.nGood範囲ms )\r
-                               {\r
-                                       return E判定.Good;\r
-                               }\r
-                               if( nDeltaTime <= CDTXMania.nPoor範囲ms )\r
-                               {\r
-                                       return E判定.Poor;\r
-                               }\r
-                       }\r
-                       return E判定.Miss;\r
+                       E判定 eJudgeResult = tチップのヒット処理( nHitTime, pChip, E楽器パート.DRUMS );\r
+                       // #24074 2011.01.23 add ikanick\r
+                       this.actGraph.dbグラフ値現在_渡 = CScoreIni.t演奏型スキルを計算して返す( CDTXMania.DTX.n可視チップ数.Drums, this.nヒット数・Auto含まない.Drums.Perfect, this.nヒット数・Auto含まない.Drums.Great, this.nヒット数・Auto含まない.Drums.Good, this.nヒット数・Auto含まない.Drums.Poor, this.nヒット数・Auto含まない.Drums.Miss );\r
+                       return eJudgeResult;\r
                }\r
-               private CDTX.CChip r空うちChip( E楽器パート part, Eパッド pad )\r
+               //private E判定 tチップのヒット処理( long nHitTime, CDTX.CChip pChip )\r
+               //{\r
+               //    pChip.bHit = true;\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
+               //    {\r
+               //        bPChipIsAutoPlay = true;\r
+               //    }\r
+               //    else\r
+               //    {\r
+               //        this.bAUTOでないチップが1つでもバーを通過した = true;\r
+               //    }\r
+               //    E判定 eJudgeResult = E判定.Auto;\r
+               //    switch (pChip.e楽器パート)\r
+               //    {\r
+               //        case E楽器パート.DRUMS:\r
+               //            {\r
+               //                int nInputAdjustTime = bIsAutoPlay[ this.nチャンネル0Atoレーン07[ pChip.nチャンネル番号 - 0x11 ] ] ? 0 : this.nInputAdjustTimeMs.Drums;\r
+               //                eJudgeResult = this.e指定時刻からChipのJUDGEを返す( nHitTime, pChip, nInputAdjustTime );\r
+               //                this.actJudgeString.Start( this.nチャンネル0Atoレーン07[ pChip.nチャンネル番号 - 0x11 ], bIsAutoPlay[ this.nチャンネル0Atoレーン07[ pChip.nチャンネル番号 - 0x11 ] ] ? E判定.Auto : eJudgeResult, pChip.nLag );\r
+               //            }\r
+               //            break;\r
+\r
+               //        case E楽器パート.GUITAR:\r
+               //            {\r
+               //                int nInputAdjustTime = bIsAutoPlay.Guitar ? 0 : this.nInputAdjustTimeMs.Guitar;\r
+               //                eJudgeResult = this.e指定時刻からChipのJUDGEを返す( nHitTime, pChip, nInputAdjustTime );\r
+               //                this.actJudgeString.Start( 10, bIsAutoPlay.Guitar ? E判定.Auto : eJudgeResult, pChip.nLag );\r
+               //            }\r
+               //            break;\r
+\r
+               //        case E楽器パート.BASS:\r
+               //            {\r
+               //                int nInputAdjustTime = bIsAutoPlay.Bass ? 0 : this.nInputAdjustTimeMs.Bass;\r
+               //                eJudgeResult = this.e指定時刻からChipのJUDGEを返す( nHitTime, pChip, nInputAdjustTime );\r
+               //                this.actJudgeString.Start( 11, bIsAutoPlay.Bass ? E判定.Auto : eJudgeResult, pChip.nLag );\r
+               //            }\r
+               //            break;\r
+               //    }\r
+               //    if( !bPChipIsAutoPlay && ( pChip.e楽器パート != E楽器パート.UNKNOWN ) )\r
+               //    {\r
+               //        this.t判定にあわせてゲージを増減する( E楽器パート.DRUMS, pChip.e楽器パート, eJudgeResult );\r
+               //    }\r
+               //    switch( pChip.e楽器パート )\r
+               //    {\r
+               //        case E楽器パート.DRUMS:\r
+               //            switch ( eJudgeResult )\r
+               //            {\r
+               //                case E判定.Miss:\r
+               //                case E判定.Bad:\r
+               //                    this.nヒット数・Auto含む.Drums.Miss++;\r
+               //                    if ( !bPChipIsAutoPlay )\r
+               //                    {\r
+               //                        this.nヒット数・Auto含まない.Drums.Miss++;\r
+               //                    }\r
+               //                    break;\r
+               //                default:\r
+               //                    this.nヒット数・Auto含む.Drums[ (int) eJudgeResult ]++;\r
+               //                    if ( !bPChipIsAutoPlay )\r
+               //                    {\r
+               //                        this.nヒット数・Auto含まない.Drums[ (int) eJudgeResult ]++;\r
+               //                    }\r
+               //                    break;\r
+               //            }\r
+\r
+               //            if (CDTXMania.ConfigIni.bドラムが全部オートプレイである || !bPChipIsAutoPlay)\r
+               //            {\r
+               //                switch (eJudgeResult)\r
+               //                {\r
+               //                    case E判定.Perfect:\r
+               //                    case E判定.Great:\r
+               //                    case E判定.Good:\r
+               //                        this.actCombo.n現在のコンボ数.Drums++;\r
+               //                        break;\r
+\r
+               //                    default:\r
+               //                        this.actCombo.n現在のコンボ数.Drums = 0;\r
+               //                        break;\r
+               //                }\r
+               //            }\r
+               //            break;\r
+\r
+               //        case E楽器パート.GUITAR:\r
+               //            switch( eJudgeResult )\r
+               //            {\r
+               //                case E判定.Miss:\r
+               //                case E判定.Bad:\r
+               //                    this.nヒット数・Auto含む.Guitar.Miss++;\r
+               //                    if ( !bIsAutoPlay.Guitar )\r
+               //                    {\r
+               //                        this.nヒット数・Auto含まない.Guitar.Miss++;\r
+               //                    }\r
+               //                       break;\r
+               //                default:    // #24068 2011.1.10 ikanick changed\r
+               //                    this.nヒット数・Auto含む.Guitar[ (int) eJudgeResult ]++;\r
+               //                    if ( !bIsAutoPlay.Guitar )\r
+               //                    {\r
+               //                        this.nヒット数・Auto含まない.Guitar[ (int) eJudgeResult ]++;\r
+               //                    }\r
+               //                    break;\r
+               //            }\r
+               //            switch (eJudgeResult)\r
+               //            {\r
+               //                case E判定.Perfect:\r
+               //                case E判定.Great:\r
+               //                case E判定.Good:\r
+               //                    this.actCombo.n現在のコンボ数.Guitar++;\r
+               //                    break;\r
+\r
+               //                default:\r
+               //                    this.actCombo.n現在のコンボ数.Guitar = 0;\r
+               //                    break;\r
+               //            }\r
+               //            break;\r
+\r
+               //        case E楽器パート.BASS:\r
+               //            switch( eJudgeResult )\r
+               //            {\r
+               //                case E判定.Miss:\r
+               //                case E判定.Bad:\r
+               //                    this.nヒット数・Auto含む.Bass.Miss++;\r
+               //                    if ( !bIsAutoPlay.Bass )\r
+               //                    {\r
+               //                        this.nヒット数・Auto含まない.Bass.Miss++;\r
+               //                    }\r
+               //                    break;\r
+               //                default:    // #24068 2011.1.10 ikanick changed\r
+               //                    this.nヒット数・Auto含む.Bass[ (int) eJudgeResult ]++;\r
+               //                    if ( !bIsAutoPlay.Bass )\r
+               //                    {\r
+               //                        this.nヒット数・Auto含まない.Bass[ (int) eJudgeResult ]++;\r
+               //                    }\r
+               //                    break;\r
+               //            }\r
+\r
+               //            switch( eJudgeResult )\r
+               //            {\r
+               //                case E判定.Perfect:\r
+               //                case E判定.Great:\r
+               //                case E判定.Good:\r
+               //                    this.actCombo.n現在のコンボ数.Bass++;\r
+               //                    break;\r
+\r
+               //                default:\r
+               //                    this.actCombo.n現在のコンボ数.Bass = 0;\r
+               //                    break;\r
+               //            }\r
+               //            break;\r
+\r
+               //        default:\r
+               //            break;\r
+               //    }\r
+               //    if( ( !bPChipIsAutoPlay && ( pChip.e楽器パート != E楽器パート.UNKNOWN ) ) && ( ( eJudgeResult != E判定.Miss ) && ( eJudgeResult != E判定.Bad ) ) )\r
+               //    {\r
+               //        int nCombos = 0;\r
+               //        switch (pChip.e楽器パート) {\r
+               //            case E楽器パート.DRUMS:\r
+               //                nCombos = this.actCombo.n現在のコンボ数.Drums;\r
+               //                break;\r
+               //            case E楽器パート.GUITAR:\r
+               //                nCombos = this.actCombo.n現在のコンボ数.Guitar;\r
+               //                break;\r
+               //            case E楽器パート.BASS:\r
+               //                nCombos = this.actCombo.n現在のコンボ数.Bass;\r
+               //                break;\r
+               //        }\r
+               //        long nScore = this.actScore.Get( pChip.e楽器パート );\r
+               //        long[] numArray = new long[] { 350L, 200L, 50L, 0L };\r
+               //        if( ( nCombos <= 500 ) || ( eJudgeResult == E判定.Good ) )\r
+               //        {\r
+               //            nScore += numArray[ (int) eJudgeResult ] * nCombos;\r
+               //        }\r
+               //        else if( ( eJudgeResult == E判定.Perfect ) || ( eJudgeResult == E判定.Great ) )\r
+               //        {\r
+               //            nScore += numArray[ (int) eJudgeResult ] * 500L;\r
+               //        }\r
+               //        this.actScore.Set( pChip.e楽器パート, nScore );\r
+               //    }\r
+               //    // #24074 2011.01.23 add ikanick\r
+               //    this.actGraph.dbグラフ値現在_渡 = CScoreIni.t演奏型スキルを計算して返す( CDTXMania.DTX.n可視チップ数.Drums, this.nヒット数・Auto含まない.Drums.Perfect, this.nヒット数・Auto含まない.Drums.Great, this.nヒット数・Auto含まない.Drums.Good, this.nヒット数・Auto含まない.Drums.Poor, this.nヒット数・Auto含まない.Drums.Miss );\r
+\r
+               //    return eJudgeResult;\r
+               //}\r
+               protected override void tチップのヒット処理・BadならびにTight時のMiss( E楽器パート part )\r
                {\r
-                       switch( part )\r
-                       {\r
-                               case E楽器パート.DRUMS:\r
-                                       switch( pad )\r
-                                       {\r
-                                               case Eパッド.HH:\r
-                                                       if( this.r現在の空うちドラムChip.HH != null )\r
-                                                       {\r
-                                                               return this.r現在の空うちドラムChip.HH;\r
-                                                       }\r
-                                                       if( CDTXMania.ConfigIni.eHHGroup != EHHGroup.ハイハットのみ打ち分ける )\r
-                                                       {\r
-                                                               if( CDTXMania.ConfigIni.eHHGroup == EHHGroup.左シンバルのみ打ち分ける )\r
-                                                               {\r
-                                                                       return this.r現在の空うちドラムChip.HHO;\r
-                                                               }\r
-                                                               if( this.r現在の空うちドラムChip.HHO != null )\r
-                                                               {\r
-                                                                       return this.r現在の空うちドラムChip.HHO;\r
-                                                               }\r
-                                                       }\r
-                                                       return this.r現在の空うちドラムChip.LC;\r
-\r
-                                               case Eパッド.SD:\r
-                                                       return this.r現在の空うちドラムChip.SD;\r
-\r
-                                               case Eパッド.BD:\r
-                                                       return this.r現在の空うちドラムChip.BD;\r
-\r
-                                               case Eパッド.HT:\r
-                                                       return this.r現在の空うちドラムChip.HT;\r
-\r
-                                               case Eパッド.LT:\r
-                                                       if( this.r現在の空うちドラムChip.LT != null )\r
-                                                       {\r
-                                                               return this.r現在の空うちドラムChip.LT;\r
-                                                       }\r
-                                                       if( CDTXMania.ConfigIni.eFTGroup == EFTGroup.共通 )\r
-                                                       {\r
-                                                               return this.r現在の空うちドラムChip.FT;\r
-                                                       }\r
-                                                       return null;\r
-\r
-                                               case Eパッド.FT:\r
-                                                       if( this.r現在の空うちドラムChip.FT != null )\r
-                                                       {\r
-                                                               return this.r現在の空うちドラムChip.FT;\r
-                                                       }\r
-                                                       if( CDTXMania.ConfigIni.eFTGroup == EFTGroup.共通 )\r
-                                                       {\r
-                                                               return this.r現在の空うちドラムChip.LT;\r
-                                                       }\r
-                                                       return null;\r
-\r
-                                               case Eパッド.CY:\r
-                                                       if( this.r現在の空うちドラムChip.CY != null )\r
-                                                       {\r
-                                                               return this.r現在の空うちドラムChip.CY;\r
-                                                       }\r
-                                                       if( CDTXMania.ConfigIni.eCYGroup == ECYGroup.共通 )\r
-                                                       {\r
-                                                               return this.r現在の空うちドラムChip.RD;\r
-                                                       }\r
-                                                       return null;\r
-\r
-                                               case Eパッド.HHO:\r
-                                                       if( this.r現在の空うちドラムChip.HHO != null )\r
-                                                       {\r
-                                                               return this.r現在の空うちドラムChip.HHO;\r
-                                                       }\r
-                                                       if( CDTXMania.ConfigIni.eHHGroup != EHHGroup.ハイハットのみ打ち分ける )\r
-                                                       {\r
-                                                               if( CDTXMania.ConfigIni.eHHGroup == EHHGroup.左シンバルのみ打ち分ける )\r
-                                                               {\r
-                                                                       return this.r現在の空うちドラムChip.HH;\r
-                                                               }\r
-                                                               if( this.r現在の空うちドラムChip.HH != null )\r
-                                                               {\r
-                                                                       return this.r現在の空うちドラムChip.HH;\r
-                                                               }\r
-                                                       }\r
-                                                       return this.r現在の空うちドラムChip.LC;\r
-\r
-                                               case Eパッド.RD:\r
-                                                       if( this.r現在の空うちドラムChip.RD != null )\r
-                                                       {\r
-                                                               return this.r現在の空うちドラムChip.RD;\r
-                                                       }\r
-                                                       if( CDTXMania.ConfigIni.eCYGroup == ECYGroup.共通 )\r
-                                                       {\r
-                                                               return this.r現在の空うちドラムChip.CY;\r
-                                                       }\r
-                                                       return null;\r
-\r
-                                               case Eパッド.LC:\r
-                                                       if( this.r現在の空うちドラムChip.LC != null )\r
-                                                       {\r
-                                                               return this.r現在の空うちドラムChip.LC;\r
-                                                       }\r
-                                                       if( ( CDTXMania.ConfigIni.eHHGroup != EHHGroup.ハイハットのみ打ち分ける ) && ( CDTXMania.ConfigIni.eHHGroup != EHHGroup.全部共通 ) )\r
-                                                       {\r
-                                                               return null;\r
-                                                       }\r
-                                                       if( this.r現在の空うちドラムChip.HH != null )\r
-                                                       {\r
-                                                               return this.r現在の空うちドラムChip.HH;\r
-                                                       }\r
-                                                       return this.r現在の空うちドラムChip.HHO;\r
-                                       }\r
-                                       break;\r
-\r
-                               case E楽器パート.GUITAR:\r
-                                       return this.r現在の空うちギターChip;\r
-\r
-                               case E楽器パート.BASS:\r
-                                       return this.r現在の空うちベースChip;\r
-                       }\r
-                       return null;\r
+                       this.tチップのヒット処理・BadならびにTight時のMiss( part, 0, E楽器パート.DRUMS );\r
                }\r
-               private CDTX.CChip r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( long nTime, int nChannelFlag, int nInputAdjustTime )\r
+               protected override void tチップのヒット処理・BadならびにTight時のMiss( E楽器パート part, int nLane )\r
                {\r
-                       nTime += nInputAdjustTime;                                              // #24239 2011.1.23 yyagi InputAdjust\r
-       \r
-                       int num5;\r
-                       if( this.n現在のトップChip == -1 )\r
+                       this.tチップのヒット処理・BadならびにTight時のMiss( part, nLane, E楽器パート.DRUMS );\r
+               }\r
+               //private void tチップのヒット処理・BadならびにTight時のMiss( E楽器パート part, int nLane )\r
+               //{\r
+               //    this.bAUTOでないチップが1つでもバーを通過した = true;\r
+               //    this.t判定にあわせてゲージを増減する( E楽器パート.DRUMS, part, E判定.Miss );\r
+               //    switch( part )\r
+               //    {\r
+               //        case E楽器パート.DRUMS:\r
+               //            if( ( nLane >= 0 ) && ( nLane <= 7 ) )\r
+               //            {\r
+               //                this.actJudgeString.Start( nLane, CDTXMania.ConfigIni.bAutoPlay[ nLane ] ? E判定.Auto : E判定.Miss, 999 );\r
+               //            }\r
+               //            this.actCombo.n現在のコンボ数.Drums = 0;\r
+               //            return;\r
+\r
+               //        case E楽器パート.GUITAR:\r
+               //            this.actJudgeString.Start( 10, E判定.Bad, 999 );\r
+               //            this.actCombo.n現在のコンボ数.Guitar = 0;\r
+               //            return;\r
+\r
+               //        case E楽器パート.BASS:\r
+               //            this.actJudgeString.Start( 11, E判定.Bad, 999 );\r
+               //            this.actCombo.n現在のコンボ数.Bass = 0;\r
+               //            return;\r
+               //    }\r
+               //}\r
+               private bool tドラムヒット処理( long nHitTime, Eパッド type, CDTX.CChip pChip, int n強弱度合い0to127 )\r
+               {\r
+                       if( pChip == null )\r
+                       {\r
+                               return false;\r
+                       }\r
+                       int index = pChip.nチャンネル番号;\r
+                       if ( ( index >= 0x11 ) && ( index <= 0x1a ) )\r
+                       {\r
+                               index -= 0x11;\r
+                       }\r
+                       else if ( ( index >= 0x31 ) && ( index <= 0x3a ) )\r
+                       {\r
+                               index -= 0x31;\r
+                       }\r
+                       int num2 = this.nチャンネル0Atoレーン07[ index ];\r
+                       int nLane = this.nチャンネル0Atoパッド08[ index ];\r
+                       bool bPChipIsAutoPlay = bIsAutoPlay[ num2 ];\r
+                       int nInputAdjustTime = bPChipIsAutoPlay ? 0 : this.nInputAdjustTimeMs.Drums;\r
+                       E判定 e判定 = this.e指定時刻からChipのJUDGEを返す( nHitTime, pChip, nInputAdjustTime );\r
+                       if( e判定 == E判定.Miss )\r
                        {\r
-                               return null;\r
+                               return false;\r
                        }\r
-                       int count = CDTXMania.DTX.listChip.Count;\r
-                       int num4 = num5 = this.n現在のトップChip;\r
-                       if( this.n現在のトップChip >= count )\r
+                       this.tチップのヒット処理( nHitTime, pChip );\r
+                       this.actLaneFlushD.Start( (Eドラムレーン) num2, ( (float) n強弱度合い0to127 ) / 127f );\r
+                       this.actPad.Hit( nLane );\r
+                       if( ( e判定 != E判定.Poor ) && ( e判定 != E判定.Miss ) )\r
                        {\r
-                               num4 = num5 = count - 1;\r
+                               bool flag = this.bフィルイン中;\r
+                               bool flag2 = this.bフィルイン中 && this.bフィルイン区間の最後のChipである( pChip );\r
+                               bool flag3 = flag2;\r
+                               this.actChipFireD.Start( (Eドラムレーン) num2, flag, flag2, flag3 );\r
                        }\r
-                       int num2 = num4;\r
-                       while( num2 < count )\r
+                       if( CDTXMania.ConfigIni.bドラム打音を発声する )\r
                        {\r
-                               CDTX.CChip chip = CDTXMania.DTX.listChip[ num2 ];\r
-                               if( ( ( nChannelFlag >= 0x11 ) && ( nChannelFlag <= 0x1a ) ) && ( ( chip.nチャンネル番号 == nChannelFlag ) || ( chip.nチャンネル番号 == ( nChannelFlag + 0x20 ) ) ) )\r
+                               CDTX.CChip rChip = null;\r
+                               bool flag4 = true;\r
+                               if( ( ( type == Eパッド.HH ) || ( type == Eパッド.HHO ) ) || ( type == Eパッド.LC ) )\r
                                {\r
-                                       if( chip.n発声時刻ms > nTime )\r
-                                       {\r
-                                               break;\r
-                                       }\r
-                                       num5 = num2;\r
+                                       flag4 = CDTXMania.ConfigIni.eHitSoundPriorityHH == E打ち分け時の再生の優先順位.ChipがPadより優先;\r
                                }\r
-                               else if( ( ( nChannelFlag == 0x2f ) && ( chip.e楽器パート == E楽器パート.GUITAR ) ) || ( ( ( nChannelFlag >= 0x20 ) && ( nChannelFlag <= 0x28 ) ) && ( chip.nチャンネル番号 == nChannelFlag ) ) )\r
+                               else if( ( type == Eパッド.LT ) || ( type == Eパッド.FT ) )\r
                                {\r
-                                       if( chip.n発声時刻ms > nTime )\r
-                                       {\r
-                                               break;\r
-                                       }\r
-                                       num5 = num2;\r
+                                       flag4 = CDTXMania.ConfigIni.eHitSoundPriorityFT == E打ち分け時の再生の優先順位.ChipがPadより優先;\r
                                }\r
-                               else if( ( ( nChannelFlag == 0xaf ) && ( chip.e楽器パート == E楽器パート.BASS ) ) || ( ( ( nChannelFlag >= 0xa0 ) && ( nChannelFlag <= 0xa8 ) ) && ( chip.nチャンネル番号 == nChannelFlag ) ) )\r
+                               else if( ( type == Eパッド.CY ) || ( type == Eパッド.RD ) )\r
                                {\r
-                                       if( chip.n発声時刻ms > nTime )\r
-                                       {\r
-                                               break;\r
-                                       }\r
-                                       num5 = num2;\r
+                                       flag4 = CDTXMania.ConfigIni.eHitSoundPriorityCY == E打ち分け時の再生の優先順位.ChipがPadより優先;\r
                                }\r
-                               num2++;\r
-                       }\r
-                       int num3 = num5;\r
-                       while( num3 >= 0 )\r
-                       {\r
-                               CDTX.CChip chip2 = CDTXMania.DTX.listChip[ num3 ];\r
-                               if( ( nChannelFlag >= 0x11 ) && ( nChannelFlag <= 0x1a ) )\r
+                               if( flag4 )\r
                                {\r
-                                       if( ( chip2.nチャンネル番号 == nChannelFlag ) || ( chip2.nチャンネル番号 == ( nChannelFlag + 0x20 ) ) )\r
-                                       {\r
-                                               break;\r
-                                       }\r
+                                       rChip = pChip;\r
                                }\r
-                               else if( ( ( nChannelFlag == 0x2f ) && ( chip2.e楽器パート == E楽器パート.GUITAR ) ) || ( ( ( nChannelFlag >= 0x20 ) && ( nChannelFlag <= 40 ) ) && ( chip2.nチャンネル番号 == nChannelFlag ) ) )\r
+                               else\r
                                {\r
-                                       if( ( chip2.nチャンネル番号 >= 0x20 ) && ( chip2.nチャンネル番号 <= 0x28 ) )\r
+                                       Eパッド hH = type;\r
+                                       if( !CDTXMania.DTX.bチップがある.HHOpen && ( type == Eパッド.HHO ) )\r
                                        {\r
-                                               break;\r
+                                               hH = Eパッド.HH;\r
+                                       }\r
+                                       if( !CDTXMania.DTX.bチップがある.Ride && ( type == Eパッド.RD ) )\r
+                                       {\r
+                                               hH = Eパッド.CY;\r
+                                       }\r
+                                       if( !CDTXMania.DTX.bチップがある.LeftCymbal && ( type == Eパッド.LC ) )\r
+                                       {\r
+                                               hH = Eパッド.HH;\r
+                                       }\r
+                                       rChip = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nHitTime, this.nパッド0Atoチャンネル0A[ (int) hH ], nInputAdjustTime );\r
+                                       if( rChip == null )\r
+                                       {\r
+                                               rChip = pChip;\r
                                        }\r
                                }\r
-                               else if( ( ( ( nChannelFlag == 0xaf ) && ( chip2.e楽器パート == E楽器パート.BASS ) ) || ( ( ( nChannelFlag >= 0xa0 ) && ( nChannelFlag <= 0xa8 ) ) && ( chip2.nチャンネル番号 == nChannelFlag ) ) ) && ( ( chip2.nチャンネル番号 >= 0xa0 ) && ( chip2.nチャンネル番号 <= 0xa8 ) ) )\r
-                               {\r
-                                       break;\r
-                               }\r
-                               num3--;\r
-                       }\r
-                       if( ( num2 == count ) && ( num3 < 0 ) )\r
-                       {\r
-                               return null;\r
-                       }\r
-                       if( num2 == count )\r
-                       {\r
-                               return CDTXMania.DTX.listChip[ num3 ];\r
-                       }\r
-                       if( num3 < 0 )\r
-                       {\r
-                               return CDTXMania.DTX.listChip[ num2 ];\r
-                       }\r
-                       CDTX.CChip chip3 = CDTXMania.DTX.listChip[ num2 ];\r
-                       CDTX.CChip chip4 = CDTXMania.DTX.listChip[ num3 ];\r
-                       int num6 = Math.Abs( (int) ( nTime - chip3.n発声時刻ms ) );\r
-                       int num7 = Math.Abs( (int) ( nTime - chip4.n発声時刻ms ) );\r
-                       if( num6 >= num7 )\r
-                       {\r
-                               return chip4;\r
+                               this.tサウンド再生( rChip, CDTXMania.Timer.nシステム時刻, E楽器パート.DRUMS, CDTXMania.ConfigIni.n手動再生音量, CDTXMania.ConfigIni.b演奏音を強調する.Drums );\r
                        }\r
-                       return chip3;\r
+                       return true;\r
                }\r
-               private CDTX.CChip r指定時刻に一番近い未ヒットChip( long nTime, int nChannelFlag, int nInputAdjustTime )\r
+               //private void tパネル文字列の設定()\r
+               //{\r
+               //    this.actPanel.SetPanelString( string.IsNullOrEmpty( CDTXMania.DTX.PANEL ) ? CDTXMania.DTX.TITLE : CDTXMania.DTX.PANEL );\r
+               //}\r
+               //private void tキー入力()\r
+               //{\r
+               //    IInputDevice keyboard = CDTXMania.Input管理.Keyboard;\r
+               //    if ( keyboard.bキーが押された( (int) SlimDX.DirectInput.Key.F1 ) &&\r
+               //        ( keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.RightShift ) || keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.LeftShift) ) )\r
+               //    { // shift+f1 (pause)\r
+               //        this.bPAUSE = !this.bPAUSE;\r
+               //        if( this.bPAUSE )\r
+               //        {\r
+               //            CDTXMania.Timer.t一時停止();\r
+               //            CDTXMania.DTX.t全チップの再生一時停止();\r
+               //        }\r
+               //        else\r
+               //        {\r
+               //            CDTXMania.Timer.t再開();\r
+               //            CDTXMania.DTX.t全チップの再生再開();\r
+               //        }\r
+               //    }\r
+               //    if( ( !this.bPAUSE && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED ) ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) )\r
+               //    {\r
+               //        this.t入力処理・ドラム();\r
+               //        this.t入力処理・ギター();\r
+               //        this.t入力処理・ベース();\r
+               //        if ( keyboard.bキーが押された( (int)SlimDX.DirectInput.Key.UpArrow ) && ( keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.RightShift ) || keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.LeftShift ) ) )\r
+               //        {     // shift + UpArrow (BGMAdjust)\r
+               //            CDTXMania.DTX.t各自動再生音チップの再生時刻を変更する( ( keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.LeftControl ) || keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.RightControl) ) ? 1 : 10 );\r
+               //            CDTXMania.DTX.tWave再生位置自動補正();\r
+               //        }\r
+               //        else if ( keyboard.bキーが押された( (int)SlimDX.DirectInput.Key.DownArrow ) && ( keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.RightShift ) || keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.LeftShift ) ) )\r
+               //        {     // shift + DownArrow (BGMAdjust)\r
+               //            CDTXMania.DTX.t各自動再生音チップの再生時刻を変更する( ( keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.LeftControl ) || keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.RightControl ) ) ? -1 : -10 );\r
+               //            CDTXMania.DTX.tWave再生位置自動補正();\r
+               //        }\r
+               //        else if ( keyboard.bキーが押された( (int)SlimDX.DirectInput.Key.UpArrow ) )\r
+               //        {     // UpArrow(scrollspeed up)\r
+               //            CDTXMania.ConfigIni.n譜面スクロール速度.Drums = Math.Min( CDTXMania.ConfigIni.n譜面スクロール速度.Drums + 1, 1999 );\r
+               //        }\r
+               //        else if ( keyboard.bキーが押された( (int)SlimDX.DirectInput.Key.DownArrow ) )\r
+               //        {     // DownArrow (scrollspeed down)\r
+               //            CDTXMania.ConfigIni.n譜面スクロール速度.Drums = Math.Max( CDTXMania.ConfigIni.n譜面スクロール速度.Drums - 1, 0 );\r
+               //        }\r
+               //        else if ( keyboard.bキーが押された( (int)SlimDX.DirectInput.Key.Delete ) )\r
+               //        {     // del (debug info)\r
+               //            CDTXMania.ConfigIni.b演奏情報を表示する = !CDTXMania.ConfigIni.b演奏情報を表示する;\r
+               //        }\r
+               //        else if ( keyboard.bキーが押された( (int)SlimDX.DirectInput.Key.LeftArrow ) )          // #24243 2011.1.16 yyagi UI for InputAdjustTime in playing screen.\r
+               //        {\r
+               //            ChangeInputAdjustTimeInPlaying( keyboard, -1 );\r
+               //        }\r
+               //        else if ( keyboard.bキーが押された( (int) SlimDX.DirectInput.Key.RightArrow ) )                // #24243 2011.1.16 yyagi UI for InputAdjustTime in playing screen.\r
+               //        {\r
+               //            ChangeInputAdjustTimeInPlaying( keyboard, +1 );\r
+               //        }\r
+               //        else if ( ( base.eフェーズID == CStage.Eフェーズ.共通_通常状態 ) && ( keyboard.bキーが押された( (int)SlimDX.DirectInput.Key.Escape ) || CDTXMania.Pad.b押されたGB( Eパッド.FT ) ) )\r
+               //        {     // escape (exit)\r
+               //            this.actFO.tフェードアウト開始();\r
+               //            base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト;\r
+               //            this.eフェードアウト完了時の戻り値 = E演奏画面の戻り値.演奏中断;\r
+               //        }\r
+               //    }\r
+               //}\r
+\r
+               protected override void ドラムスクロール速度アップ()\r
                {\r
-                       return this.r指定時刻に一番近い未ヒットChip( nTime, nChannelFlag, nInputAdjustTime, 0 );\r
+                       CDTXMania.ConfigIni.n譜面スクロール速度.Drums = Math.Min( CDTXMania.ConfigIni.n譜面スクロール速度.Drums + 1, 1999 );\r
                }\r
-               private CDTX.CChip r指定時刻に一番近い未ヒットChip( long nTime, int nChannelFlag, int nInputAdjustTime, int n検索範囲時間ms )\r
+               protected override void ドラムスクロール速度ダウン()\r
                {\r
-                       nTime += nInputAdjustTime;\r
+                       CDTXMania.ConfigIni.n譜面スクロール速度.Drums = Math.Max( CDTXMania.ConfigIni.n譜面スクロール速度.Drums - 1, 0 );\r
+               }\r
 \r
-                       int num5;\r
-                       int num6;\r
-                       if( this.n現在のトップChip == -1 )\r
-                       {\r
-                               return null;\r
-                       }\r
-                       int count = CDTXMania.DTX.listChip.Count;\r
-                       int num4 = num5 = this.n現在のトップChip;\r
-                       if( this.n現在のトップChip >= count )\r
-                       {\r
-                               num4 = num5 = count - 1;\r
-                       }\r
-                       int num2 = num4;\r
-                       while( num2 < count )\r
-                       {\r
-                               CDTX.CChip chip = CDTXMania.DTX.listChip[ num2 ];\r
-                               if( ( !chip.bHit && ( nChannelFlag >= 0x11 ) ) && ( nChannelFlag <= 0x1a ) )\r
-                               {\r
-                                       if( ( chip.nチャンネル番号 == nChannelFlag ) || ( chip.nチャンネル番号 == ( nChannelFlag + 0x20 ) ) )\r
-                                       {\r
-                                               if( chip.n発声時刻ms > nTime )\r
-                                               {\r
-                                                       break;\r
-                                               }\r
-                                               num5 = num2;\r
-                                       }\r
-                               }\r
-                               else if( !chip.bHit && ( ( ( nChannelFlag == 0x2f ) && ( chip.e楽器パート == E楽器パート.GUITAR ) ) || ( ( ( nChannelFlag >= 0x20 ) && ( nChannelFlag <= 40 ) ) && ( chip.nチャンネル番号 == nChannelFlag ) ) ) )\r
-                               {\r
-                                       if( chip.n発声時刻ms > nTime )\r
-                                       {\r
-                                               break;\r
-                                       }\r
-                                       num5 = num2;\r
-                               }\r
-                               else if( !chip.bHit && ( ( ( nChannelFlag == 0xaf ) && ( chip.e楽器パート == E楽器パート.BASS ) ) || ( ( ( nChannelFlag >= 160 ) && ( nChannelFlag <= 0xa8 ) ) && ( chip.nチャンネル番号 == nChannelFlag ) ) ) )\r
-                               {\r
-                                       if( chip.n発声時刻ms > nTime )\r
-                                       {\r
-                                               break;\r
-                                       }\r
-                                       num5 = num2;\r
-                               }\r
-                               num2++;\r
-                       }\r
-                       int num3 = num5;\r
-                       while( num3 >= 0 )\r
-                       {\r
-                               CDTX.CChip chip2 = CDTXMania.DTX.listChip[ num3 ];\r
-                               if( ( ( ( !chip2.bHit && ( nChannelFlag >= 0x11 ) ) && ( ( nChannelFlag <= 0x1a ) && ( ( chip2.nチャンネル番号 == nChannelFlag ) || ( chip2.nチャンネル番号 == ( nChannelFlag + 0x20 ) ) ) ) ) || ( !chip2.bHit && ( ( ( nChannelFlag == 0x2f ) && ( chip2.e楽器パート == E楽器パート.GUITAR ) ) || ( ( ( nChannelFlag >= 0x20 ) && ( nChannelFlag <= 40 ) ) && ( chip2.nチャンネル番号 == nChannelFlag ) ) ) ) ) || ( !chip2.bHit && ( ( ( nChannelFlag == 0xaf ) && ( chip2.e楽器パート == E楽器パート.BASS ) ) || ( ( ( nChannelFlag >= 160 ) && ( nChannelFlag <= 0xa8 ) ) && ( chip2.nチャンネル番号 == nChannelFlag ) ) ) ) )\r
-                               {\r
-                                       break;\r
-                               }\r
-                               num3--;\r
-                       }\r
-                       if( ( num2 == count ) && ( num3 < 0 ) )\r
-                       {\r
-                               return null;\r
-                       }\r
-                       CDTX.CChip chip3 = null;\r
-                       if( num2 == count )\r
-                       {\r
-                               chip3 = CDTXMania.DTX.listChip[ num3 ];\r
-                               num6 = Math.Abs( (int) ( nTime - CDTXMania.DTX.listChip[ num3 ].n発声時刻ms ) );\r
-                       }\r
-                       else if( num3 < 0 )\r
-                       {\r
-                               chip3 = CDTXMania.DTX.listChip[ num2 ];\r
-                               num6 = Math.Abs( (int) ( nTime - CDTXMania.DTX.listChip[ num2 ].n発声時刻ms ) );\r
-                       }\r
-                       else\r
-                       {\r
-                               int num7 = Math.Abs( (int) ( nTime - CDTXMania.DTX.listChip[ num2 ].n発声時刻ms ) );\r
-                               int num8 = Math.Abs( (int) ( nTime - CDTXMania.DTX.listChip[ num3 ].n発声時刻ms ) );\r
-                               if( num7 < num8 )\r
-                               {\r
-                                       chip3 = CDTXMania.DTX.listChip[ num2 ];\r
-                                       num6 = Math.Abs( (int) ( nTime - CDTXMania.DTX.listChip[ num2 ].n発声時刻ms ) );\r
-                               }\r
-                               else\r
-                               {\r
-                                       chip3 = CDTXMania.DTX.listChip[ num3 ];\r
-                                       num6 = Math.Abs( (int) ( nTime - CDTXMania.DTX.listChip[ num3 ].n発声時刻ms ) );\r
-                               }\r
-                       }\r
-                       if( ( n検索範囲時間ms > 0 ) && ( num6 > n検索範囲時間ms ) )\r
-                       {\r
-                               return null;\r
-                       }\r
-                       return chip3;\r
-               }\r
-               private CDTX.CChip r次にくるギターChipを更新して返す()\r
-               {\r
-                       int nInputAdjustTime = this.bIsAutoPlay.Guitar ? 0 : this.nInputAdjustTimeMs.Guitar;\r
-                       this.r次にくるギターChip = this.r指定時刻に一番近い未ヒットChip( CDTXMania.Timer.n現在時刻, 0x2f, nInputAdjustTime, 500 );\r
-                       return this.r次にくるギターChip;\r
-               }\r
-               private CDTX.CChip r次にくるベースChipを更新して返す()\r
+       \r
+               protected override void t進行描画・AVI()\r
                {\r
-                       int nInputAdjustTime = this.bIsAutoPlay.Bass? 0 : this.nInputAdjustTimeMs.Bass;\r
-                       this.r次にくるベースChip = this.r指定時刻に一番近い未ヒットChip( CDTXMania.Timer.n現在時刻, 0xaf, nInputAdjustTime, 500 );\r
-                       return this.r次にくるベースChip;\r
+                       base.t進行描画・AVI( 0x152, 0x39 );\r
                }\r
-               private void tサウンド再生( CDTX.CChip rChip, long n再生開始システム時刻ms, E楽器パート part )\r
+               protected override void t進行描画・BGA()\r
                {\r
-                       this.tサウンド再生( rChip, n再生開始システム時刻ms, part, CDTXMania.ConfigIni.n手動再生音量, false, false );\r
+                       base.t進行描画・BGA( 0x152, 0x39 );\r
                }\r
-               private void tサウンド再生( CDTX.CChip rChip, long n再生開始システム時刻ms, E楽器パート part, int n音量 )\r
+               protected override void t進行描画・DANGER()\r
                {\r
-                       this.tサウンド再生( rChip, n再生開始システム時刻ms, part, n音量, false, false );\r
+                   this.actDANGER.t進行描画( this.actGauge.db現在のゲージ値.Drums < 0.3 );\r
                }\r
-               private void tサウンド再生( CDTX.CChip rChip, long n再生開始システム時刻ms, E楽器パート part, int n音量, bool bモニタ )\r
+               //private void t進行描画・MIDIBGM()\r
+               //{\r
+               //    if( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED )\r
+               //    {\r
+               //        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進行描画・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
+               //    {\r
+               //        this.eフェードアウト完了時の戻り値 = E演奏画面の戻り値.ステージ失敗;\r
+               //        base.eフェーズID = CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト;\r
+               //        this.actFO.tフェードアウト開始();\r
+               //    }\r
+               //}\r
+               //private void t進行描画・WailingBonus()\r
+               //{\r
+               //    if( ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) )\r
+               //    {\r
+               //        this.actWailingBonus.On進行描画();\r
+               //    }\r
+               //}\r
+               protected override void t進行描画・Wailing枠()\r
                {\r
-                       this.tサウンド再生( rChip, n再生開始システム時刻ms, part, n音量, bモニタ, false );\r
+                       base.t進行描画・Wailing枠( 0x24b, 0x1de,\r
+                               CDTXMania.ConfigIni.bReverse.Guitar ? ( 400 - this.txWailing枠.sz画像サイズ.Height ) : 0x45,\r
+                               CDTXMania.ConfigIni.bReverse.Bass ? ( 400 - this.txWailing枠.sz画像サイズ.Height ) : 0x45\r
+                       );\r
                }\r
-               private void tサウンド再生( CDTX.CChip pChip, long n再生開始システム時刻ms, E楽器パート part, int n音量, bool bモニタ, bool b音程をずらして再生 )\r
+               private void t進行描画・ギターベースフレーム()\r
                {\r
-                       if( pChip != null )\r
+                       if( ( ( CDTXMania.ConfigIni.eDark != Eダークモード.HALF ) && ( CDTXMania.ConfigIni.eDark != Eダークモード.FULL ) ) && CDTXMania.ConfigIni.bGuitar有効 )\r
                        {\r
-                               switch( part )\r
+                               if( CDTXMania.DTX.bチップがある.Guitar )\r
                                {\r
-                                       case E楽器パート.DRUMS:\r
+                                       for( int i = 0; i < 0x163; i += 0x80 )\r
+                                       {\r
+                                               Rectangle rectangle = new Rectangle( 0, 0, 0x6d, 0x80 );\r
+                                               if( ( i + 0x80 ) > 0x163 )\r
                                                {\r
-                                                       int index = pChip.nチャンネル番号;\r
-                                                       if( ( index < 0x11 ) || ( index > 0x1a ) )\r
-                                                       {\r
-                                                               if( ( index < 0x31 ) || ( index > 0x3a ) )\r
-                                                               {\r
-                                                                       return;\r
-                                                               }\r
-                                                               index -= 0x31;\r
-                                                       }\r
-                                                       else\r
-                                                       {\r
-                                                               index -= 0x11;\r
-                                                       }\r
-                                                       int nLane = this.nチャンネル0Atoレーン07[ index ];\r
-                                                       if( ( nLane == 1 ) &&   // 今回演奏するのがHC or HO\r
-                                                               ( index == 0 || ( index == 7 && this.n最後に再生したHHのチャンネル番号 != 0x18 && this.n最後に再生したHHのチャンネル番号 != 0x38 ) )\r
-                                                               // HCを演奏するか、またはHO演奏&以前HO演奏でない&以前不可視HO演奏でない\r
-                                                       )\r
-                                                       {\r
-                                               // #23921 2011.1.4 yyagi: 2種類以上のオープンハイハットが発音済みだと、最後のHHOしか消せない問題に対応。\r
-#if TEST_NOTEOFFMODE   // 2011.1.1 yyagi test\r
-                                                               if (CDTXMania.DTX.bHH演奏で直前のHHを消音する)\r
-                                                               {\r
-#endif\r
-                                                                       for (int i = 0; i < this.L最後に再生したHHの実WAV番号.Count; i++)            // #23921 2011.1.4 yyagi\r
-                                                                       {\r
-                                                                               // CDTXMania.DTX.tWavの再生停止(this.L最後に再生したHHの実WAV番号);\r
-                                                                               CDTXMania.DTX.tWavの再生停止(this.L最後に再生したHHの実WAV番号[i]);     // #23921 yyagi ストック分全て消音する\r
-                                                                       }\r
-                                                                       this.L最後に再生したHHの実WAV番号.Clear();\r
-#if TEST_NOTEOFFMODE   // 2011.1.1 yyagi test\r
-                                                               }\r
-#endif\r
-                                                               //this.n最後に再生したHHの実WAV番号 = pChip.n整数値・内部番号;\r
-                                                               this.n最後に再生したHHのチャンネル番号 = pChip.nチャンネル番号;\r
-                                                       }\r
-#if TEST_NOTEOFFMODE   // 2011.1.4 yyagi test\r
-                                                       if (CDTXMania.DTX.bHH演奏で直前のHHを消音する)\r
-                                                       {\r
-#endif\r
-                                                               if (index == 7 || index == 0x27)                                                // #23921 HOまたは不可視HO演奏時はそのチップ番号をストックしておく\r
-                                                               {\r
-                                                                       if (this.L最後に再生したHHの実WAV番号.Count >= 16)   // #23921 ただしストック数が16以上になるようなら、頭の1個を削って常に16未満に抑える\r
-                                                                       {                                                                                                       // (ストックが増えてList<>のrealloc()が発生するのを予防する)\r
-                                                                               this.L最後に再生したHHの実WAV番号.RemoveAt(0);\r
-                                                                       }\r
-                                                                       if (this.L最後に再生したHHの実WAV番号.IndexOf(pChip.n整数値・内部番号) < 0)  // チップ音がまだストックされてなければ\r
-                                                                       {\r
-                                                                               this.L最後に再生したHHの実WAV番号.Add(pChip.n整数値・内部番号);                      // ストックする\r
-                                                                       }\r
-                                                               }\r
-#if TEST_NOTEOFFMODE   // 2011.1.4 yyagi test\r
-                                                       }\r
-#endif\r
-                                                       CDTXMania.DTX.tチップの再生( pChip, n再生開始システム時刻ms, nLane, n音量, bモニタ );\r
-                                                       return;\r
+                                                       rectangle.Height -= ( i + 0x80 ) - 0x163;\r
                                                }\r
-                                       case E楽器パート.GUITAR:\r
-#if TEST_NOTEOFFMODE   // 2011.1.1 yyagi test\r
-                                               if (CDTXMania.DTX.bGUITAR演奏で直前のGUITARを消音する) {\r
-#endif\r
-                                                       CDTXMania.DTX.tWavの再生停止(this.n最後に再生したギターの実WAV番号);\r
-#if TEST_NOTEOFFMODE\r
+                                               if( this.txレーンフレームGB != null )\r
+                                               {\r
+                                                       this.txレーンフレームGB.t2D描画( CDTXMania.app.Device, 0x1fb, 0x39 + i, rectangle );\r
                                                }\r
-#endif\r
-                                               CDTXMania.DTX.tチップの再生(pChip, n再生開始システム時刻ms, 8, n音量, bモニタ, b音程をずらして再生);\r
-                                               this.n最後に再生したギターの実WAV番号 = pChip.n整数値・内部番号;\r
-                                               return;\r
-\r
-                                       case E楽器パート.BASS:\r
-#if TEST_NOTEOFFMODE\r
-                                               if (CDTXMania.DTX.bBASS演奏で直前のBASSを消音する) {\r
-#endif\r
-                                                       CDTXMania.DTX.tWavの再生停止(this.n最後に再生したベースの実WAV番号);\r
-#if TEST_NOTEOFFMODE\r
+                                       }\r
+                               }\r
+                               if( CDTXMania.DTX.bチップがある.Bass )\r
+                               {\r
+                                       for( int j = 0; j < 0x163; j += 0x80 )\r
+                                       {\r
+                                               Rectangle rectangle2 = new Rectangle( 0, 0, 0x6d, 0x80 );\r
+                                               if( ( j + 0x80 ) > 0x163 )\r
+                                               {\r
+                                                       rectangle2.Height -= ( j + 0x80 ) - 0x163;\r
                                                }\r
-#endif\r
-                                               CDTXMania.DTX.tチップの再生( pChip, n再生開始システム時刻ms, 9, n音量, bモニタ, b音程をずらして再生 );\r
-                                               this.n最後に再生したベースの実WAV番号 = pChip.n整数値・内部番号;\r
-                                               return;\r
+                                               if( this.txレーンフレームGB != null )\r
+                                               {\r
+                                                       this.txレーンフレームGB.t2D描画( CDTXMania.app.Device, 0x18e, 0x39 + j, rectangle2 );\r
+                                               }\r
+                                       }\r
                                }\r
                        }\r
                }\r
-               private void tステータスパネルの選択()\r
-               {\r
-                       if( CDTXMania.bコンパクトモード )\r
-                       {\r
-                               this.actStatusPanels.tラベル名からステータスパネルを決定する( null );\r
-                       }\r
-                       else if( CDTXMania.stage選曲.r確定された曲 != null )\r
-                       {\r
-                               this.actStatusPanels.tラベル名からステータスパネルを決定する( CDTXMania.stage選曲.r確定された曲.ar難易度ラベル[ CDTXMania.stage選曲.n確定された曲の難易度 ] );\r
-                       }\r
-               }\r
-               private E判定 tチップのヒット処理( long nHitTime, CDTX.CChip pChip )\r
+               private void t進行描画・ギターベース判定ライン()                // yyagi: ギタレボモードとは座標が違うだけですが、まとめづらかったのでそのまま放置してます。\r
                {\r
-                       pChip.bHit = true;\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
-                       {\r
-                               bPChipIsAutoPlay = true;\r
-                       }\r
-                       else\r
-                       {\r
-                               this.bAUTOでないチップが1つでもバーを通過した = true;\r
-                       }\r
-                       E判定 eJudgeResult = E判定.Auto;\r
-                       switch (pChip.e楽器パート)\r
-                       {\r
-                               case E楽器パート.DRUMS:\r
-                                       {\r
-                                               int nInputAdjustTime = bIsAutoPlay[ this.nチャンネル0Atoレーン07[ pChip.nチャンネル番号 - 0x11 ] ] ? 0 : this.nInputAdjustTimeMs.Drums;\r
-                                               eJudgeResult = this.e指定時刻からChipのJUDGEを返す( nHitTime, pChip, nInputAdjustTime );\r
-                                               this.actJudgeString.Start( this.nチャンネル0Atoレーン07[ pChip.nチャンネル番号 - 0x11 ], bIsAutoPlay[ this.nチャンネル0Atoレーン07[ pChip.nチャンネル番号 - 0x11 ] ] ? E判定.Auto : eJudgeResult, pChip.nLag );\r
-                                       }\r
-                                       break;\r
-\r
-                               case E楽器パート.GUITAR:\r
-                                       {\r
-                                               int nInputAdjustTime = bIsAutoPlay.Guitar ? 0 : this.nInputAdjustTimeMs.Guitar;\r
-                                               eJudgeResult = this.e指定時刻からChipのJUDGEを返す( nHitTime, pChip, nInputAdjustTime );\r
-                                               this.actJudgeString.Start( 10, bIsAutoPlay.Guitar ? E判定.Auto : eJudgeResult, pChip.nLag );\r
-                                       }\r
-                                       break;\r
-\r
-                               case E楽器パート.BASS:\r
-                                       {\r
-                                               int nInputAdjustTime = bIsAutoPlay.Bass ? 0 : this.nInputAdjustTimeMs.Bass;\r
-                                               eJudgeResult = this.e指定時刻からChipのJUDGEを返す( nHitTime, pChip, nInputAdjustTime );\r
-                                               this.actJudgeString.Start( 11, bIsAutoPlay.Bass ? E判定.Auto : eJudgeResult, pChip.nLag );\r
-                                       }\r
-                                       break;\r
-                       }\r
-                       if( !bPChipIsAutoPlay && ( pChip.e楽器パート != E楽器パート.UNKNOWN ) )\r
-                       {\r
-                               this.t判定にあわせてゲージを増減する( pChip.e楽器パート, eJudgeResult );\r
-                       }\r
-                       switch( pChip.e楽器パート )\r
+                       if ( ( CDTXMania.ConfigIni.eDark != Eダークモード.FULL ) && CDTXMania.ConfigIni.bGuitar有効 )\r
                        {\r
-                               case E楽器パート.DRUMS:\r
-                                       switch ( eJudgeResult )\r
-                                       {\r
-                                               case E判定.Miss:\r
-                                               case E判定.Bad:\r
-                                                       this.nヒット数・Auto含む.Drums.Miss++;\r
-                                                       if ( !bPChipIsAutoPlay )\r
-                                                       {\r
-                                                               this.nヒット数・Auto含まない.Drums.Miss++;\r
-                                                       }\r
-                                                       break;\r
-                                               default:\r
-                                                       this.nヒット数・Auto含む.Drums[ (int) eJudgeResult ]++;\r
-                                                       if ( !bPChipIsAutoPlay )\r
-                                                       {\r
-                                                               this.nヒット数・Auto含まない.Drums[ (int) eJudgeResult ]++;\r
-                                                       }\r
-                                                       break;\r
-                                       }\r
-\r
-                                       if (CDTXMania.ConfigIni.bドラムが全部オートプレイである || !bPChipIsAutoPlay)\r
+                               if ( CDTXMania.DTX.bチップがある.Guitar )\r
+                               {\r
+                                       int y = ( CDTXMania.ConfigIni.bReverse.Guitar ? 0x176 : 0x5f ) - 3;\r
+                                       for ( int i = 0; i < 3; i++ )\r
                                        {\r
-                                               switch (eJudgeResult)\r
+                                               if ( this.txヒットバーGB != null )\r
                                                {\r
-                                                       case E判定.Perfect:\r
-                                                       case E判定.Great:\r
-                                                       case E判定.Good:\r
-                                                               this.actCOMBO.n現在のコンボ数.Drums++;\r
-                                                               break;\r
-\r
-                                                       default:\r
-                                                               this.actCOMBO.n現在のコンボ数.Drums = 0;\r
-                                                               break;\r
+                                                       this.txヒットバーGB.t2D描画( CDTXMania.app.Device, 0x1fd + ( 0x1a * i ), y );\r
+                                                       this.txヒットバーGB.t2D描画( CDTXMania.app.Device, ( 0x1fd + ( 0x1a * i ) ) + 0x10, y, new Rectangle( 0, 0, 10, 0x10 ) );\r
                                                }\r
                                        }\r
-                                       break;\r
-\r
-                               case E楽器パート.GUITAR:\r
-                                       switch( eJudgeResult )\r
-                                       {\r
-                                               case E判定.Miss:\r
-                                               case E判定.Bad:\r
-                                                       this.nヒット数・Auto含む.Guitar.Miss++;\r
-                                                       if ( !bIsAutoPlay.Guitar )\r
-                                                       {\r
-                                                               this.nヒット数・Auto含まない.Guitar.Miss++;\r
-                                                       }\r
-                               break;\r
-                                               default:    // #24068 2011.1.10 ikanick changed\r
-                                                       this.nヒット数・Auto含む.Guitar[ (int) eJudgeResult ]++;\r
-                                                       if ( !bIsAutoPlay.Guitar )\r
-                                                       {\r
-                                                               this.nヒット数・Auto含まない.Guitar[ (int) eJudgeResult ]++;\r
-                                                       }\r
-                                                       break;\r
-                                       }\r
-                                       switch (eJudgeResult)\r
-                                       {\r
-                                               case E判定.Perfect:\r
-                                               case E判定.Great:\r
-                                               case E判定.Good:\r
-                                                       this.actCOMBO.n現在のコンボ数.Guitar++;\r
-                                                       break;\r
-\r
-                                               default:\r
-                                                       this.actCOMBO.n現在のコンボ数.Guitar = 0;\r
-                                                       break;\r
-                                       }\r
-                                       break;\r
-\r
-                               case E楽器パート.BASS:\r
-                                       switch( eJudgeResult )\r
-                                       {\r
-                                               case E判定.Miss:\r
-                                               case E判定.Bad:\r
-                                                       this.nヒット数・Auto含む.Bass.Miss++;\r
-                                                       if ( !bIsAutoPlay.Bass )\r
-                                                       {\r
-                                                               this.nヒット数・Auto含まない.Bass.Miss++;\r
-                                                       }\r
-                                                       break;\r
-                                               default:    // #24068 2011.1.10 ikanick changed\r
-                                                       this.nヒット数・Auto含む.Bass[ (int) eJudgeResult ]++;\r
-                                                       if ( !bIsAutoPlay.Bass )\r
-                                                       {\r
-                                                               this.nヒット数・Auto含まない.Bass[ (int) eJudgeResult ]++;\r
-                                                       }\r
-                                                       break;\r
-                                       }\r
-\r
-                                       switch( eJudgeResult )\r
-                                       {\r
-                                               case E判定.Perfect:\r
-                                               case E判定.Great:\r
-                                               case E判定.Good:\r
-                                                       this.actCOMBO.n現在のコンボ数.Bass++;\r
-                                                       break;\r
-\r
-                                               default:\r
-                                                       this.actCOMBO.n現在のコンボ数.Bass = 0;\r
-                                                       break;\r
-                                       }\r
-                                       break;\r
-\r
-                               default:\r
-                                       break;\r
-                       }\r
-                       if( ( !bPChipIsAutoPlay && ( pChip.e楽器パート != E楽器パート.UNKNOWN ) ) && ( ( eJudgeResult != E判定.Miss ) && ( eJudgeResult != E判定.Bad ) ) )\r
-                       {\r
-                               int nCombos = 0;\r
-                               switch (pChip.e楽器パート) {\r
-                                       case E楽器パート.DRUMS:\r
-                                               nCombos = this.actCOMBO.n現在のコンボ数.Drums;\r
-                                               break;\r
-                                       case E楽器パート.GUITAR:\r
-                                               nCombos = this.actCOMBO.n現在のコンボ数.Guitar;\r
-                                               break;\r
-                                       case E楽器パート.BASS:\r
-                                               nCombos = this.actCOMBO.n現在のコンボ数.Bass;\r
-                                               break;\r
                                }\r
-                               long nScore = this.actScore.Get( pChip.e楽器パート );\r
-                               long[] numArray = new long[] { 350L, 200L, 50L, 0L };\r
-                               if( ( nCombos <= 500 ) || ( eJudgeResult == E判定.Good ) )\r
+                               if ( CDTXMania.DTX.bチップがある.Bass )\r
                                {\r
-                                       nScore += numArray[ (int) eJudgeResult ] * nCombos;\r
-                               }\r
-                               else if( ( eJudgeResult == E判定.Perfect ) || ( eJudgeResult == E判定.Great ) )\r
-                               {\r
-                                       nScore += numArray[ (int) eJudgeResult ] * 500L;\r
+                                       int y = ( CDTXMania.ConfigIni.bReverse.Bass ? 0x176 : 0x5f ) - 3;\r
+                                       for ( int j = 0; j < 3; j++ )\r
+                                       {\r
+                                               if ( this.txヒットバーGB != null )\r
+                                               {\r
+                                                       this.txヒットバーGB.t2D描画( CDTXMania.app.Device, 400 + ( 0x1a * j ), y );\r
+                                                       this.txヒットバーGB.t2D描画( CDTXMania.app.Device, ( 400 + ( 0x1a * j ) ) + 0x10, y, new Rectangle( 0, 0, 10, 0x10 ) );\r
+                                               }\r
+                                       }\r
                                }\r
-                               this.actScore.Set( pChip.e楽器パート, nScore );\r
                        }\r
-            // #24074 2011.01.23 add ikanick\r
-                       this.actGraph.dbグラフ値現在_渡 = CScoreIni.t演奏型スキルを計算して返す( CDTXMania.DTX.n可視チップ数.Drums, this.nヒット数・Auto含まない.Drums.Perfect, this.nヒット数・Auto含まない.Drums.Great, this.nヒット数・Auto含まない.Drums.Good, this.nヒット数・Auto含まない.Drums.Poor, this.nヒット数・Auto含まない.Drums.Miss );\r
-\r
-            return eJudgeResult;\r
                }\r
-               private void tチップのヒット処理・BadならびにTight時のMiss( E楽器パート part )\r
+               //private void t進行描画・ゲージ()\r
+               //{\r
+               //    if( ( ( CDTXMania.ConfigIni.eDark != Eダークモード.HALF ) && ( CDTXMania.ConfigIni.eDark != Eダークモード.FULL ) ) && ( ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) ) )\r
+               //    {\r
+               //        this.actGauge.On進行描画();\r
+               //    }\r
+               //}\r
+        // #24074 2011.01.23 add ikanick\r
+        private void t進行描画・グラフ()        \r
+        {\r
+                       if ( !CDTXMania.ConfigIni.bストイックモード && !CDTXMania.ConfigIni.bドラムが全部オートプレイである && CDTXMania.ConfigIni.bGraph.Drums )\r
+                       {\r
+                this.actGraph.On進行描画();\r
+            }\r
+        }\r
+        //------------------------------------------------\r
+               //private void t進行描画・コンボ()\r
+               //{\r
+               //    this.actCOMBO.On進行描画();\r
+               //}\r
+               //private void t進行描画・スコア()\r
+               //{\r
+               //    this.actScore.On進行描画();\r
+               //}\r
+               //private void t進行描画・ステータスパネル()\r
+               //{\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
+\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
+//                            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 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:       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 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:       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
+//                    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.tチップのヒット処理・BadならびにTight時のMiss( part, 0 );\r
+                       this.actChipFireD.On進行描画();\r
                }\r
-               private void tチップのヒット処理・BadならびにTight時のMiss( E楽器パート part, int nLane )\r
+               //private void t進行描画・チップファイアGB()\r
+               //{\r
+               //    this.actChipFireGB.On進行描画();\r
+               //}\r
+               private void t進行描画・ドラムパッド()\r
                {\r
-                       this.bAUTOでないチップが1つでもバーを通過した = true;\r
-                       this.t判定にあわせてゲージを増減する( part, E判定.Miss );\r
-                       switch( part )\r
+                       if( CDTXMania.ConfigIni.eDark != Eダークモード.FULL )\r
                        {\r
-                               case E楽器パート.DRUMS:\r
-                                       if( ( nLane >= 0 ) && ( nLane <= 7 ) )\r
-                                       {\r
-                                               this.actJudgeString.Start( nLane, CDTXMania.ConfigIni.bAutoPlay[ nLane ] ? E判定.Auto : E判定.Miss, 999 );\r
-                                       }\r
-                                       this.actCOMBO.n現在のコンボ数.Drums = 0;\r
-                                       return;\r
-\r
-                               case E楽器パート.GUITAR:\r
-                                       this.actJudgeString.Start( 10, E判定.Bad, 999 );\r
-                                       this.actCOMBO.n現在のコンボ数.Guitar = 0;\r
-                                       return;\r
-\r
-                               case E楽器パート.BASS:\r
-                                       this.actJudgeString.Start( 11, E判定.Bad, 999 );\r
-                                       this.actCOMBO.n現在のコンボ数.Bass = 0;\r
-                                       return;\r
+                               this.actPad.On進行描画();\r
                        }\r
                }\r
-               private bool tドラムヒット処理( long nHitTime, Eパッド type, CDTX.CChip pChip, int n強弱度合い0to127 )\r
+               protected override void t進行描画・パネル文字列()\r
                {\r
-                       if( pChip == null )\r
-                       {\r
-                               return false;\r
-                       }\r
-                       bool bPChipIsAutoPlay = bIsAutoPlay[ this.nチャンネル0Atoレーン07[ pChip.nチャンネル番号 - 0x11 ] ];\r
-                       int nInputAdjustTime = bPChipIsAutoPlay ? 0 : this.nInputAdjustTimeMs.Drums;\r
-                       E判定 e判定 = this.e指定時刻からChipのJUDGEを返す( nHitTime, pChip, nInputAdjustTime );\r
-                       if( e判定 == E判定.Miss )\r
-                       {\r
-                               return false;\r
-                       }\r
-                       this.tチップのヒット処理( nHitTime, pChip );\r
-                       int index = pChip.nチャンネル番号;\r
-                       if( ( index >= 0x11 ) && ( index <= 0x1a ) )\r
-                       {\r
-                               index -= 0x11;\r
-                       }\r
-                       else if( ( index >= 0x31 ) && ( index <= 0x3a ) )\r
-                       {\r
-                               index -= 0x31;\r
-                       }\r
-                       int num2 = this.nチャンネル0Atoレーン07[ index ];\r
-                       int nLane = this.nチャンネル0Atoパッド08[ index ];\r
-                       this.actLaneFlushD.Start( (Eドラムレーン) num2, ( (float) n強弱度合い0to127 ) / 127f );\r
-                       this.actPad.Hit( nLane );\r
-                       if( ( e判定 != E判定.Poor ) && ( e判定 != E判定.Miss ) )\r
-                       {\r
-                               bool flag = this.bフィルイン中;\r
-                               bool flag2 = this.bフィルイン中 && this.bフィルイン区間の最後のChipである( pChip );\r
-                               bool flag3 = flag2;\r
-                               this.actChipFireD.Start( (Eドラムレーン) num2, flag, flag2, flag3 );\r
-                       }\r
-                       if( CDTXMania.ConfigIni.bドラム打音を発声する )\r
-                       {\r
-                               CDTX.CChip rChip = null;\r
-                               bool flag4 = true;\r
-                               if( ( ( type == Eパッド.HH ) || ( type == Eパッド.HHO ) ) || ( type == Eパッド.LC ) )\r
-                               {\r
-                                       flag4 = CDTXMania.ConfigIni.eHitSoundPriorityHH == E打ち分け時の再生の優先順位.ChipがPadより優先;\r
-                               }\r
-                               else if( ( type == Eパッド.LT ) || ( type == Eパッド.FT ) )\r
-                               {\r
-                                       flag4 = CDTXMania.ConfigIni.eHitSoundPriorityFT == E打ち分け時の再生の優先順位.ChipがPadより優先;\r
-                               }\r
-                               else if( ( type == Eパッド.CY ) || ( type == Eパッド.RD ) )\r
-                               {\r
-                                       flag4 = CDTXMania.ConfigIni.eHitSoundPriorityCY == E打ち分け時の再生の優先順位.ChipがPadより優先;\r
-                               }\r
-                               if( flag4 )\r
-                               {\r
-                                       rChip = pChip;\r
-                               }\r
-                               else\r
-                               {\r
-                                       Eパッド hH = type;\r
-                                       if( !CDTXMania.DTX.bチップがある.HHOpen && ( type == Eパッド.HHO ) )\r
-                                       {\r
-                                               hH = Eパッド.HH;\r
-                                       }\r
-                                       if( !CDTXMania.DTX.bチップがある.Ride && ( type == Eパッド.RD ) )\r
-                                       {\r
-                                               hH = Eパッド.CY;\r
-                                       }\r
-                                       if( !CDTXMania.DTX.bチップがある.LeftCymbal && ( type == Eパッド.LC ) )\r
-                                       {\r
-                                               hH = Eパッド.HH;\r
-                                       }\r
-                                       rChip = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nHitTime, this.nパッド0Atoチャンネル0A[ (int) hH ], nInputAdjustTime );\r
-                                       if( rChip == null )\r
-                                       {\r
-                                               rChip = pChip;\r
-                                       }\r
-                               }\r
-                               this.tサウンド再生( rChip, CDTXMania.Timer.nシステム時刻, E楽器パート.DRUMS, CDTXMania.ConfigIni.n手動再生音量, CDTXMania.ConfigIni.b演奏音を強調する.Drums );\r
-                       }\r
-                       return true;\r
-               }\r
-               private void tパネル文字列の設定()\r
-               {\r
-                       this.actPanel.SetPanelString( string.IsNullOrEmpty( CDTXMania.DTX.PANEL ) ? CDTXMania.DTX.TITLE : CDTXMania.DTX.PANEL );\r
-               }\r
-               private void tキー入力()\r
-               {\r
-                       IInputDevice keyboard = CDTXMania.Input管理.Keyboard;\r
-                       if ( keyboard.bキーが押された( (int) SlimDX.DirectInput.Key.F1 ) &&\r
-                               ( keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.RightShift ) || keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.LeftShift) ) )\r
-                       {       // shift+f1 (pause)\r
-                               this.bPAUSE = !this.bPAUSE;\r
-                               if( this.bPAUSE )\r
-                               {\r
-                                       CDTXMania.Timer.t一時停止();\r
-                                       CDTXMania.DTX.t全チップの再生一時停止();\r
-                               }\r
-                               else\r
-                               {\r
-                                       CDTXMania.Timer.t再開();\r
-                                       CDTXMania.DTX.t全チップの再生再開();\r
-                               }\r
-                       }\r
-                       if( ( !this.bPAUSE && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED ) ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) )\r
-                       {\r
-                               this.t入力処理・ドラム();\r
-                               this.t入力処理・ギター();\r
-                               this.t入力処理・ベース();\r
-                               if ( keyboard.bキーが押された( (int)SlimDX.DirectInput.Key.UpArrow ) && ( keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.RightShift ) || keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.LeftShift ) ) )\r
-                               {       // shift + UpArrow (BGMAdjust)\r
-                                       CDTXMania.DTX.t各自動再生音チップの再生時刻を変更する( ( keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.LeftControl ) || keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.RightControl) ) ? 1 : 10 );\r
-                                       CDTXMania.DTX.tWave再生位置自動補正();\r
-                               }\r
-                               else if ( keyboard.bキーが押された( (int)SlimDX.DirectInput.Key.DownArrow ) && ( keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.RightShift ) || keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.LeftShift ) ) )\r
-                               {       // shift + DownArrow (BGMAdjust)\r
-                                       CDTXMania.DTX.t各自動再生音チップの再生時刻を変更する( ( keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.LeftControl ) || keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.RightControl ) ) ? -1 : -10 );\r
-                                       CDTXMania.DTX.tWave再生位置自動補正();\r
-                               }\r
-                               else if ( keyboard.bキーが押された( (int)SlimDX.DirectInput.Key.UpArrow ) )\r
-                               {       // UpArrow(scrollspeed up)\r
-                                       CDTXMania.ConfigIni.n譜面スクロール速度.Drums = Math.Min( CDTXMania.ConfigIni.n譜面スクロール速度.Drums + 1, 1999 );\r
-                               }\r
-                               else if ( keyboard.bキーが押された( (int)SlimDX.DirectInput.Key.DownArrow ) )\r
-                               {       // DownArrow (scrollspeed down)\r
-                                       CDTXMania.ConfigIni.n譜面スクロール速度.Drums = Math.Max( CDTXMania.ConfigIni.n譜面スクロール速度.Drums - 1, 0 );\r
-                               }\r
-                               else if ( keyboard.bキーが押された( (int)SlimDX.DirectInput.Key.Delete ) )\r
-                               {       // del (debug info)\r
-                                       CDTXMania.ConfigIni.b演奏情報を表示する = !CDTXMania.ConfigIni.b演奏情報を表示する;\r
-                               }\r
-                               else if ( keyboard.bキーが押された( (int)SlimDX.DirectInput.Key.LeftArrow ) )            // #24243 2011.1.16 yyagi UI for InputAdjustTime in playing screen.\r
-                               {\r
-                                       ChangeInputAdjustTimeInPlaying( keyboard, -1 );\r
-                               }\r
-                               else if ( keyboard.bキーが押された( (int) SlimDX.DirectInput.Key.RightArrow ) )          // #24243 2011.1.16 yyagi UI for InputAdjustTime in playing screen.\r
-                               {\r
-                                       ChangeInputAdjustTimeInPlaying( keyboard, +1 );\r
-                               }\r
-                               else if ( ( base.eフェーズID == CStage.Eフェーズ.共通_通常状態 ) && ( keyboard.bキーが押された( (int)SlimDX.DirectInput.Key.Escape ) || CDTXMania.Pad.b押されたGB( Eパッド.FT ) ) )\r
-                               {       // escape (exit)\r
-                                       this.actFO.tフェードアウト開始();\r
-                                       base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト;\r
-                                       this.eフェードアウト完了時の戻り値 = E演奏画面の戻り値.演奏中断;\r
-                               }\r
-                       }\r
-               }\r
-               private void ChangeInputAdjustTimeInPlaying( IInputDevice keyboard, int plusminus )             // #24243 2011.1.16 yyagi UI for InputAdjustTime in playing screen.\r
-               {\r
-                       int part, offset = plusminus;\r
-                       if ( keyboard.bキーが押されている( (int) SlimDX.DirectInput.Key.LeftShift ) || keyboard.bキーが押されている( (int) SlimDX.DirectInput.Key.RightShift ) )      // Guitar InputAdjustTime\r
-                       {\r
-                               part = (int) E楽器パート.GUITAR;\r
-                       }\r
-                       else if ( keyboard.bキーが押されている( (int) SlimDX.DirectInput.Key.LeftAlt ) || keyboard.bキーが押されている( (int) SlimDX.DirectInput.Key.RightAlt ) )     // Bass InputAdjustTime\r
-                       {\r
-                               part = (int) E楽器パート.BASS;\r
-                       }\r
-                       else    // Drums InputAdjustTime\r
-                       {\r
-                               part = (int) E楽器パート.DRUMS;\r
-                       }\r
-                       if ( !keyboard.bキーが押されている( (int) SlimDX.DirectInput.Key.LeftControl ) && !keyboard.bキーが押されている( (int) SlimDX.DirectInput.Key.RightControl ) )\r
-                       {\r
-                               offset *= 10;\r
-                       }\r
-\r
-                       this.nInputAdjustTimeMs[ part ] += offset;\r
-                       if ( this.nInputAdjustTimeMs[ part ] > 0 )\r
-                       {\r
-                               this.nInputAdjustTimeMs[ part ] = 0;\r
-                       }\r
-                       else if ( this.nInputAdjustTimeMs[ part ] < -99 )\r
-                       {\r
-                               this.nInputAdjustTimeMs[ part ] = -99;\r
-                       }\r
-                       CDTXMania.ConfigIni.nInputAdjustTimeMs[ part ] = this.nInputAdjustTimeMs[ part ];\r
-               }\r
-               private void t進行描画・AVI()\r
-               {\r
-                       if( ( ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) ) && ( !CDTXMania.ConfigIni.bストイックモード && CDTXMania.ConfigIni.bAVI有効 ) )\r
-                       {\r
-                               this.actAVI.t進行描画( 0x152, 0x39 );\r
-                       }\r
-               }\r
-               private void t進行描画・BGA()\r
-               {\r
-                       if( ( ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) ) && ( !CDTXMania.ConfigIni.bストイックモード && CDTXMania.ConfigIni.bBGA有効 ) )\r
-                       {\r
-                               this.actBGA.t進行描画( 0x152, 0x39 );\r
-                       }\r
-               }\r
-               private void t進行描画・DANGER()\r
-               {\r
-                       this.actDANGER.t進行描画( this.actGauge.db現在のゲージ値 < 0.3 );\r
-               }\r
-               private void t進行描画・MIDIBGM()\r
-               {\r
-                       if( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED )\r
-                       {\r
-                               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進行描画・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
-                       {\r
-                               this.eフェードアウト完了時の戻り値 = E演奏画面の戻り値.ステージ失敗;\r
-                               base.eフェーズID = CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト;\r
-                               this.actFO.tフェードアウト開始();\r
-                       }\r
-               }\r
-               private void t進行描画・WailingBonus()\r
-               {\r
-                       if( ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) )\r
-                       {\r
-                               this.actWailingBonus.On進行描画();\r
-                       }\r
-               }\r
-               private void t進行描画・Wailing枠()\r
-               {\r
-                       if( ( CDTXMania.ConfigIni.eDark != Eダークモード.FULL ) && CDTXMania.ConfigIni.bGuitar有効 )\r
-                       {\r
-                               if( CDTXMania.DTX.bチップがある.Guitar && ( this.txWailing枠 != null ) )\r
-                               {\r
-                                       this.txWailing枠.t2D描画( CDTXMania.app.Device, 0x24b, CDTXMania.ConfigIni.bReverse.Guitar ? ( 400 - this.txWailing枠.sz画像サイズ.Height ) : 0x45 );\r
-                               }\r
-                               if( CDTXMania.DTX.bチップがある.Bass && ( this.txWailing枠 != null ) )\r
-                               {\r
-                                       this.txWailing枠.t2D描画( CDTXMania.app.Device, 0x1de, CDTXMania.ConfigIni.bReverse.Bass ? ( 400 - this.txWailing枠.sz画像サイズ.Height ) : 0x45 );\r
-                               }\r
-                       }\r
-               }\r
-               private void t進行描画・ギターベースフレーム()\r
-               {\r
-                       if( ( ( CDTXMania.ConfigIni.eDark != Eダークモード.HALF ) && ( CDTXMania.ConfigIni.eDark != Eダークモード.FULL ) ) && CDTXMania.ConfigIni.bGuitar有効 )\r
-                       {\r
-                               if( CDTXMania.DTX.bチップがある.Guitar )\r
-                               {\r
-                                       for( int i = 0; i < 0x163; i += 0x80 )\r
-                                       {\r
-                                               Rectangle rectangle = new Rectangle( 0, 0, 0x6d, 0x80 );\r
-                                               if( ( i + 0x80 ) > 0x163 )\r
-                                               {\r
-                                                       rectangle.Height -= ( i + 0x80 ) - 0x163;\r
-                                               }\r
-                                               if( this.txレーンフレームGB != null )\r
-                                               {\r
-                                                       this.txレーンフレームGB.t2D描画( CDTXMania.app.Device, 0x1fb, 0x39 + i, rectangle );\r
-                                               }\r
-                                       }\r
-                               }\r
-                               if( CDTXMania.DTX.bチップがある.Bass )\r
-                               {\r
-                                       for( int j = 0; j < 0x163; j += 0x80 )\r
-                                       {\r
-                                               Rectangle rectangle2 = new Rectangle( 0, 0, 0x6d, 0x80 );\r
-                                               if( ( j + 0x80 ) > 0x163 )\r
-                                               {\r
-                                                       rectangle2.Height -= ( j + 0x80 ) - 0x163;\r
-                                               }\r
-                                               if( this.txレーンフレームGB != null )\r
-                                               {\r
-                                                       this.txレーンフレームGB.t2D描画( CDTXMania.app.Device, 0x18e, 0x39 + j, rectangle2 );\r
-                                               }\r
-                                       }\r
-                               }\r
-                       }\r
-               }\r
-               private void t進行描画・ギターベース判定ライン()\r
-               {\r
-                       if( ( CDTXMania.ConfigIni.eDark != Eダークモード.FULL ) && CDTXMania.ConfigIni.bGuitar有効 )\r
-                       {\r
-                               if( CDTXMania.DTX.bチップがある.Guitar )\r
-                               {\r
-                                       int y = ( CDTXMania.ConfigIni.bReverse.Guitar ? 0x176 : 0x5f ) - 3;\r
-                                       for( int i = 0; i < 3; i++ )\r
-                                       {\r
-                                               if( this.txヒットバーGB != null )\r
-                                               {\r
-                                                       this.txヒットバーGB.t2D描画( CDTXMania.app.Device, 0x1fd + ( 0x1a * i ), y );\r
-                                                       this.txヒットバーGB.t2D描画( CDTXMania.app.Device, ( 0x1fd + ( 0x1a * i ) ) + 0x10, y, new Rectangle( 0, 0, 10, 0x10 ) );\r
-                                               }\r
-                                       }\r
-                               }\r
-                               if( CDTXMania.DTX.bチップがある.Bass )\r
-                               {\r
-                                       int num3 = ( CDTXMania.ConfigIni.bReverse.Bass ? 0x176 : 0x5f ) - 3;\r
-                                       for( int j = 0; j < 3; j++ )\r
-                                       {\r
-                                               if( this.txヒットバーGB != null )\r
-                                               {\r
-                                                       this.txヒットバーGB.t2D描画( CDTXMania.app.Device, 400 + ( 0x1a * j ), num3 );\r
-                                                       this.txヒットバーGB.t2D描画( CDTXMania.app.Device, ( 400 + ( 0x1a * j ) ) + 0x10, num3, new Rectangle( 0, 0, 10, 0x10 ) );\r
-                                               }\r
-                                       }\r
-                               }\r
-                       }\r
-               }\r
-               private void t進行描画・ゲージ()\r
-               {\r
-                       if( ( ( CDTXMania.ConfigIni.eDark != Eダークモード.HALF ) && ( CDTXMania.ConfigIni.eDark != Eダークモード.FULL ) ) && ( ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) ) )\r
-                       {\r
-                               this.actGauge.On進行描画();\r
-                       }\r
-        }\r
-        // #24074 2011.01.23 add ikanick\r
-        private void t進行描画・グラフ()        \r
-        {\r
-                       if ( !CDTXMania.ConfigIni.bストイックモード && !CDTXMania.ConfigIni.bドラムが全部オートプレイである && CDTXMania.ConfigIni.bGraph.Drums )\r
-                       {\r
-                this.actGraph.On進行描画();\r
-            }\r
-        }\r
-        //------------------------------------------------\r
-               private void t進行描画・コンボ()\r
-               {\r
-                       this.actCOMBO.On進行描画();\r
-               }\r
-               private void t進行描画・スコア()\r
-               {\r
-                       this.actScore.On進行描画();\r
-               }\r
-               private void t進行描画・ステータスパネル()\r
-               {\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
-\r
-                       //double speed = 264.0; // BPM150の時の1小節の長さ[dot]\r
-                       double speed = 234.0;   // BPM150の時の1小節の長さ[dot]\r
-\r
-                       double num = ( ( ( ( this.act譜面スクロール速度.db現在の譜面スクロール速度.Drums + 1.0 ) * 0.5 ) * 37.5 ) * speed ) / 60000.0;\r
-                       double num2 = ( ( ( ( ( this.act譜面スクロール速度.db現在の譜面スクロール速度.Guitar + 1.0 ) * 0.5 ) * 0.5 ) * 37.5 ) * speed ) / 60000.0;\r
-                       double num3 = ( ( ( ( ( this.act譜面スクロール速度.db現在の譜面スクロール速度.Bass + 1.0 ) * 0.5 ) * 0.5 ) * 37.5 ) * speed ) / 60000.0;\r
-                       int num4 = this.n現在のトップChip;\r
-                       if( num4 == -1 )\r
-                       {\r
-                               return true;\r
-                       }\r
-                       CDTX dTX = CDTXMania.DTX;\r
-                       CConfigIni configIni = CDTXMania.ConfigIni;\r
-                       while( num4 < dTX.listChip.Count )\r
-                       {\r
-                               int num6;\r
-                               CDTX.CChip pChip = dTX.listChip[ num4 ];\r
-                               pChip.nバーからの距離dot.Drums = (int) ( ( pChip.n発声時刻ms - CDTXMania.Timer.n現在時刻 ) * num );\r
-                               pChip.nバーからの距離dot.Guitar = (int) ( ( pChip.n発声時刻ms - CDTXMania.Timer.n現在時刻 ) * num2 );\r
-                               pChip.nバーからの距離dot.Bass = (int) ( ( pChip.n発声時刻ms - CDTXMania.Timer.n現在時刻 ) * num3 );\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( ( ( num4 == this.n現在のトップChip ) && ( pChip.nバーからの距離dot.Drums < -65 ) ) && pChip.bHit )\r
-                               {\r
-                                       this.n現在のトップChip++;\r
-                                       num4 = 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
-                                       // int[] nInputAdjustTimes = new int[] { this.nInputAdjustTimeMs_Drums, this.nInputAdjustTimeMs_Guitar, this.nInputAdjustTimeMs_Bass };\r
-                                       // nInputAdjustTime = nInputAdjustTimes[(int)pChip.e楽器パート];\r
-                                       nInputAdjustTime = this.nInputAdjustTimeMs[(int)pChip.e楽器パート];\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
-                                               num6 = this.nチャンネル0Atoレーン07[ pChip.nチャンネル番号 - 0x11 ];\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 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[ num6 ] && !pChip.bHit ) && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
-                                                       {\r
-                                                               pChip.bHit = true;\r
-                                                               this.actLaneFlushD.Start( (Eドラムレーン) num6, ( (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ドラムレーン) num6, 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
-                                               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
-                               num4++;\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
-               private void t進行描画・パネル文字列()\r
-               {\r
-                       if( ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) )\r
-                       {\r
-                               this.actPanel.t進行描画( 0x150, 0x1ab );\r
-                       }\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
-\r
-                               case CStage.Eフェーズ.演奏_STAGE_CLEAR_フェードアウト:\r
-                                       if( this.actFOClear.On進行描画() == 0 )\r
-                                       {\r
-                                               break;\r
-                                       }\r
-                                       return true;\r
-                       }\r
-                       return false;\r
-               }\r
-               private void t進行描画・レーンフラッシュD()\r
-               {\r
-                       if( ( ( CDTXMania.ConfigIni.eDark != Eダークモード.HALF ) && ( CDTXMania.ConfigIni.eDark != Eダークモード.FULL ) ) && ( ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) ) )\r
-                       {\r
-                               this.actLaneFlushD.On進行描画();\r
-                       }\r
-               }\r
-               private void t進行描画・レーンフラッシュGB()\r
-               {\r
-                       if( ( ( CDTXMania.ConfigIni.eDark != Eダークモード.HALF ) && ( CDTXMania.ConfigIni.eDark != Eダークモード.FULL ) ) && CDTXMania.ConfigIni.bGuitar有効 )\r
-                       {\r
-                               this.actLaneFlushGB.On進行描画();\r
-                       }\r
-               }\r
-               private void t進行描画・演奏情報()\r
-               {\r
-                       if( !CDTXMania.ConfigIni.b演奏情報を表示しない )\r
-                       {\r
-                               this.actPlayInfo.t進行描画( 0x152, 0x39 );\r
-                       }\r
-               }\r
-               private void t進行描画・背景()\r
-               {\r
-                       if( CDTXMania.ConfigIni.eDark == Eダークモード.OFF )\r
-                       {\r
-                               if( this.tx背景 != null )\r
-                               {\r
-                                       this.tx背景.t2D描画( CDTXMania.app.Device, 0, 0 );\r
-                               }\r
-                       }\r
-                       else\r
-                       {\r
-                               CDTXMania.app.Device.Clear( ClearFlags.ZBuffer | ClearFlags.Target, Color.Black, 0f, 0 );\r
-                       }\r
-               }\r
-               private void t進行描画・判定ライン()\r
-               {\r
-                       if( CDTXMania.ConfigIni.eDark != Eダークモード.FULL )\r
-                       {\r
-                               int y = CDTXMania.ConfigIni.bReverse.Drums ? 0x35 : 0x1a3;\r
-                               for( int i = 0x20; i < 0x14f; i += 8 )\r
-                               {\r
-                                       if( this.txヒットバー != null )\r
-                                       {\r
-                                               this.txヒットバー.t2D描画( CDTXMania.app.Device, i, y, new Rectangle( 0, 0, ( ( i + 8 ) >= 0x14f ) ? ( 7 - ( ( i + 8 ) - 0x14f ) ) : 8, 8 ) );\r
-                                       }\r
-                               }\r
-                       }\r
-               }\r
-               private void t進行描画・判定文字列1・通常位置指定の場合()\r
-               {\r
-                       if( ( (E判定文字表示位置) CDTXMania.ConfigIni.判定文字表示位置.Drums ) != E判定文字表示位置.判定ライン上または横 )\r
-                       {\r
-                               this.actJudgeString.On進行描画();\r
-                       }\r
-               }\r
-               private void t進行描画・判定文字列2・判定ライン上指定の場合()\r
-               {\r
-                       if( ( (E判定文字表示位置) CDTXMania.ConfigIni.判定文字表示位置.Drums ) == E判定文字表示位置.判定ライン上または横 )\r
-                       {\r
-                               this.actJudgeString.On進行描画();\r
-                       }\r
-               }\r
-               private void t進行描画・譜面スクロール速度()\r
-               {\r
-                       this.act譜面スクロール速度.On進行描画();\r
-               }\r
-               private void t入力メソッド記憶( E楽器パート part )\r
-               {\r
-                       if( CDTXMania.Pad.st検知したデバイス.Keyboard )\r
-                       {\r
-                               this.b演奏にキーボードを使った[ (int) part ] = true;\r
-                       }\r
-                       if( CDTXMania.Pad.st検知したデバイス.Joypad )\r
-                       {\r
-                               this.b演奏にジョイパッドを使った[ (int) part ] = true;\r
-                       }\r
-                       if( CDTXMania.Pad.st検知したデバイス.MIDIIN )\r
-                       {\r
-                               this.b演奏にMIDI入力を使った[ (int) part ] = true;\r
-                       }\r
-                       if( CDTXMania.Pad.st検知したデバイス.Mouse )\r
-                       {\r
-                               this.b演奏にマウスを使った[ (int) part ] = true;\r
-                       }\r
+                       base.t進行描画・パネル文字列( 0x150, 0x1ab );\r
                }\r
-               private void t入力処理・ギター()\r
-               {\r
-                       if ( CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.Decide ) && CDTXMania.Pad.b押された( E楽器パート.GUITAR, Eパッド.B ) )\r
-                       {\r
-                               CDTXMania.ConfigIni.n譜面スクロール速度.Guitar = Math.Min( CDTXMania.ConfigIni.n譜面スクロール速度.Guitar + 1, 0x7cf );\r
-                       }\r
-                       if ( CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.Decide ) && CDTXMania.Pad.b押された( E楽器パート.GUITAR, Eパッド.R ) )\r
-                       {\r
-                               CDTXMania.ConfigIni.n譜面スクロール速度.Guitar = Math.Max( CDTXMania.ConfigIni.n譜面スクロール速度.Guitar - 1, 0 );\r
-                       }\r
-\r
-                       if ( CDTXMania.ConfigIni.bGuitar有効 && CDTXMania.DTX.bチップがある.Guitar )\r
-                       {\r
-                               if ( bIsAutoPlay.Guitar )\r
-                               {\r
-                                       CDTX.CChip chip = this.r次にくるギターChipを更新して返す();\r
-                                       if( chip != null )\r
-                                       {\r
-                                               if( ( chip.nチャンネル番号 & 4 ) != 0 )\r
-                                               {\r
-                                                       this.actLaneFlushGB.Start( 0 );\r
-                                                       this.actRGB.Push( 0 );\r
-                                               }\r
-                                               if( ( chip.nチャンネル番号 & 2 ) != 0 )\r
-                                               {\r
-                                                       this.actLaneFlushGB.Start( 1 );\r
-                                                       this.actRGB.Push( 1 );\r
-                                               }\r
-                                               if( ( chip.nチャンネル番号 & 1 ) != 0 )\r
-                                               {\r
-                                                       this.actLaneFlushGB.Start( 2 );\r
-                                                       this.actRGB.Push( 2 );\r
-                                               }\r
-                                       }\r
-                               }\r
-                               else\r
-                               {\r
-                                       int flagR = CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.R) ? 4 : 0;\r
-                                       this.t入力メソッド記憶( E楽器パート.GUITAR );\r
-                                       int flagG = CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.G ) ? 2 : 0;\r
-                                       this.t入力メソッド記憶( E楽器パート.GUITAR );\r
-                                       int flagB = CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.B ) ? 1 : 0;\r
-                                       this.t入力メソッド記憶( E楽器パート.GUITAR );\r
-                                       int flagRGB =  flagR | flagG  | flagB;\r
-                                       if( flagR != 0 )\r
-                                       {\r
-                                               this.actLaneFlushGB.Start( 0 );\r
-                                               this.actRGB.Push( 0 );\r
-                                       }\r
-                                       if( flagG != 0 )\r
-                                       {\r
-                                               this.actLaneFlushGB.Start( 1 );\r
-                                               this.actRGB.Push( 1 );\r
-                                       }\r
-                                       if( flagB != 0 )\r
-                                       {\r
-                                               this.actLaneFlushGB.Start( 2 );\r
-                                               this.actRGB.Push( 2 );\r
-                                       }\r
-                                       List<STInputEvent> events = CDTXMania.Pad.GetEvents( E楽器パート.GUITAR, Eパッド.Pick );\r
-                                       if( ( events != null ) && ( events.Count > 0 ) )\r
-                                       {\r
-                                               this.t入力メソッド記憶( E楽器パート.GUITAR );\r
-                                               foreach( STInputEvent event2 in events )\r
-                                               {\r
-                                                       CDTX.CChip chip4;\r
-                                                       if( !event2.b押された )\r
-                                                       {\r
-                                                               continue;\r
-                                                       }\r
-                                                       long nTime = event2.nTimeStamp - CDTXMania.Timer.n前回リセットした時のシステム時刻;\r
-                                                       CDTX.CChip pChip = this.r指定時刻に一番近い未ヒットChip( nTime, 0x2f, this.nInputAdjustTimeMs.Guitar );\r
-                                                       E判定 e判定 = this.e指定時刻からChipのJUDGEを返す( nTime, pChip, this.nInputAdjustTimeMs.Guitar );\r
-                                                       if( ( ( pChip != null ) && ( ( pChip.nチャンネル番号 & 15 ) == flagRGB ) ) && ( e判定 != E判定.Miss ) )\r
-                                                       {\r
-                                                               if( ( flagR != 0 ) || ( flagRGB == 0 ) )\r
-                                                               {\r
-                                                                       this.actChipFireGB.Start( 0 );\r
-                                                               }\r
-                                                               if( ( flagG != 0 ) || ( flagRGB == 0 ) )\r
-                                                               {\r
-                                                                       this.actChipFireGB.Start( 1 );\r
-                                                               }\r
-                                                               if( ( flagB != 0 ) || ( flagRGB == 0 ) )\r
-                                                               {\r
-                                                                       this.actChipFireGB.Start( 2 );\r
-                                                               }\r
-                                                               this.tチップのヒット処理( nTime, pChip );\r
-                                                               this.tサウンド再生( pChip, CDTXMania.Timer.nシステム時刻, E楽器パート.GUITAR, CDTXMania.ConfigIni.n手動再生音量, CDTXMania.ConfigIni.b演奏音を強調する.Guitar, e判定 == E判定.Poor );\r
-                                                               CDTX.CChip item = this.r指定時刻に一番近い未ヒットChip( nTime, 40, this.nInputAdjustTimeMs.Guitar, 140 );\r
-                                                               if( item != null )\r
-                                                               {\r
-                                                                       this.queWailing.Guitar.Enqueue( item );\r
-                                                               }\r
-                                                               continue;\r
-                                                       }\r
-                                                       if( ( ( chip4 = this.r現在の空うちギターChip ) != null ) || ( ( chip4 = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, 0x2f, this.nInputAdjustTimeMs.Guitar ) ) != null ) )\r
-                                                       {\r
-                                                               this.tサウンド再生( chip4, CDTXMania.Timer.nシステム時刻, E楽器パート.GUITAR, CDTXMania.ConfigIni.n手動再生音量, CDTXMania.ConfigIni.b演奏音を強調する.Guitar, true );\r
-                                                       }\r
-                                                       if( !CDTXMania.ConfigIni.bLight.Guitar )\r
-                                                       {\r
-                                                               this.tチップのヒット処理・BadならびにTight時のMiss( E楽器パート.GUITAR );\r
-                                                       }\r
-                                               }\r
-                                       }\r
-                                       List<STInputEvent> list2 = CDTXMania.Pad.GetEvents( E楽器パート.GUITAR, Eパッド.Wail );\r
-                                       if( ( list2 != null ) && ( list2.Count > 0 ) )\r
-                                       {\r
-                                               foreach( STInputEvent event3 in list2 )\r
-                                               {\r
-                                                       CDTX.CChip chip5;\r
-                                                       if( !event3.b押された )\r
-                                                       {\r
-                                                               continue;\r
-                                                       }\r
-                                                       long num6 = event3.nTimeStamp - CDTXMania.Timer.n前回リセットした時のシステム時刻;\r
-                                                       while( ( this.queWailing.Guitar.Count > 0 ) && ( ( chip5 = this.queWailing.Guitar.Dequeue() ) != null ) )\r
-                                                       {\r
-                                                               if( ( num6 - chip5.n発声時刻ms ) <= 800 )           // #24245 2011.1.26 yyagi: 800 -> 1000\r
-                                                               {\r
-                                                                       chip5.bHit = true;\r
-                                                                       this.actWailingBonus.Start( E楽器パート.GUITAR, this.r現在の歓声Chip.Guitar );\r
-                                                                       if( !bIsAutoPlay.Guitar )\r
-                                                                       {\r
-                                                                               int nCombo = ( this.actCOMBO.n現在のコンボ数.Guitar < 500 ) ? this.actCOMBO.n現在のコンボ数.Guitar : 500;\r
-                                                                               this.actScore.Set( E楽器パート.GUITAR, this.actScore.Get( E楽器パート.GUITAR ) + ( nCombo * 3000L ) );                // #24245 2011.1.26 yyagi changed DRUMS->GUITAR, add nCombo conditions\r
-                                                                       }\r
-                                                               }\r
-                                                       }\r
-                                               }\r
-                                       }\r
-                               }\r
-                       }\r
+               //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
+\r
+               //        case CStage.Eフェーズ.演奏_STAGE_CLEAR_フェードアウト:\r
+               //            if( this.actFOClear.On進行描画() == 0 )\r
+               //            {\r
+               //                break;\r
+               //            }\r
+               //            return true;\r
+               //    }\r
+               //    return false;\r
+               //}\r
+               //private void t進行描画・レーンフラッシュD()\r
+               //{\r
+               //    if( ( ( CDTXMania.ConfigIni.eDark != Eダークモード.HALF ) && ( CDTXMania.ConfigIni.eDark != Eダークモード.FULL ) ) && ( ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) ) )\r
+               //    {\r
+               //        this.actLaneFlushD.On進行描画();\r
+               //    }\r
+               //}\r
+               //private void t進行描画・レーンフラッシュGB()\r
+               //{\r
+               //    if( ( ( CDTXMania.ConfigIni.eDark != Eダークモード.HALF ) && ( CDTXMania.ConfigIni.eDark != Eダークモード.FULL ) ) && CDTXMania.ConfigIni.bGuitar有効 )\r
+               //    {\r
+               //        this.actLaneFlushGB.On進行描画();\r
+               //    }\r
+               //}\r
+               protected override void t進行描画・演奏情報()\r
+               {\r
+                       base.t進行描画・演奏情報( 0x152, 0x39 );\r
                }\r
-               private void t入力処理・ドラム()\r
+               //private void t進行描画・背景()\r
+               //{\r
+               //    if( CDTXMania.ConfigIni.eDark == Eダークモード.OFF )\r
+               //    {\r
+               //        if( this.tx背景 != null )\r
+               //        {\r
+               //            this.tx背景.t2D描画( CDTXMania.app.Device, 0, 0 );\r
+               //        }\r
+               //    }\r
+               //    else\r
+               //    {\r
+               //        CDTXMania.app.Device.Clear( ClearFlags.ZBuffer | ClearFlags.Target, Color.Black, 0f, 0 );\r
+               //    }\r
+               //}\r
+               //private void t進行描画・判定ライン()\r
+               //{\r
+               //    if( CDTXMania.ConfigIni.eDark != Eダークモード.FULL )\r
+               //    {\r
+               //        int y = CDTXMania.ConfigIni.bReverse.Drums ? 0x35 : 0x1a3;\r
+               //        for( int i = 0x20; i < 0x14f; i += 8 )\r
+               //        {\r
+               //            if( this.txヒットバー != null )\r
+               //            {\r
+               //                this.txヒットバー.t2D描画( CDTXMania.app.Device, i, y, new Rectangle( 0, 0, ( ( i + 8 ) >= 0x14f ) ? ( 7 - ( ( i + 8 ) - 0x14f ) ) : 8, 8 ) );\r
+               //            }\r
+               //        }\r
+               //    }\r
+               //}\r
+               //private void t進行描画・判定文字列1・通常位置指定の場合()\r
+               //{\r
+               //    if( ( (E判定文字表示位置) CDTXMania.ConfigIni.判定文字表示位置.Drums ) != E判定文字表示位置.判定ライン上または横 )\r
+               //    {\r
+               //        this.actJudgeString.On進行描画();\r
+               //    }\r
+               //}\r
+               //private void t進行描画・判定文字列2・判定ライン上指定の場合()\r
+               //{\r
+               //    if( ( (E判定文字表示位置) CDTXMania.ConfigIni.判定文字表示位置.Drums ) == E判定文字表示位置.判定ライン上または横 )\r
+               //    {\r
+               //        this.actJudgeString.On進行描画();\r
+               //    }\r
+               //}\r
+               //private void t進行描画・譜面スクロール速度()\r
+               //{\r
+               //    this.act譜面スクロール速度.On進行描画();\r
+               //}\r
+               //private void t入力メソッド記憶( E楽器パート part )\r
+               //{\r
+               //    if( CDTXMania.Pad.st検知したデバイス.Keyboard )\r
+               //    {\r
+               //        this.b演奏にキーボードを使った[ (int) part ] = true;\r
+               //    }\r
+               //    if( CDTXMania.Pad.st検知したデバイス.Joypad )\r
+               //    {\r
+               //        this.b演奏にジョイパッドを使った[ (int) part ] = true;\r
+               //    }\r
+               //    if( CDTXMania.Pad.st検知したデバイス.MIDIIN )\r
+               //    {\r
+               //        this.b演奏にMIDI入力を使った[ (int) part ] = true;\r
+               //    }\r
+               //    if( CDTXMania.Pad.st検知したデバイス.Mouse )\r
+               //    {\r
+               //        this.b演奏にマウスを使った[ (int) part ] = true;\r
+               //    }\r
+               //}\r
+               //protected override void t入力処理・ギター()\r
+               //{\r
+               //    if ( CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.Decide ) && CDTXMania.Pad.b押された( E楽器パート.GUITAR, Eパッド.B ) )\r
+               //    {\r
+               //        CDTXMania.ConfigIni.n譜面スクロール速度.Guitar = Math.Min( CDTXMania.ConfigIni.n譜面スクロール速度.Guitar + 1, 0x7cf );\r
+               //    }\r
+               //    if ( CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.Decide ) && CDTXMania.Pad.b押された( E楽器パート.GUITAR, Eパッド.R ) )\r
+               //    {\r
+               //        CDTXMania.ConfigIni.n譜面スクロール速度.Guitar = Math.Max( CDTXMania.ConfigIni.n譜面スクロール速度.Guitar - 1, 0 );\r
+               //    }\r
+\r
+               //    if ( CDTXMania.ConfigIni.bGuitar有効 && CDTXMania.DTX.bチップがある.Guitar )\r
+               //    {\r
+               //        if ( bIsAutoPlay.Guitar )\r
+               //        {\r
+               //            CDTX.CChip chip = this.r次にくるギターChipを更新して返す();\r
+               //            if( chip != null )\r
+               //            {\r
+               //                if( ( chip.nチャンネル番号 & 4 ) != 0 )\r
+               //                {\r
+               //                    this.actLaneFlushGB.Start( 0 );\r
+               //                    this.actRGB.Push( 0 );\r
+               //                }\r
+               //                if( ( chip.nチャンネル番号 & 2 ) != 0 )\r
+               //                {\r
+               //                    this.actLaneFlushGB.Start( 1 );\r
+               //                    this.actRGB.Push( 1 );\r
+               //                }\r
+               //                if( ( chip.nチャンネル番号 & 1 ) != 0 )\r
+               //                {\r
+               //                    this.actLaneFlushGB.Start( 2 );\r
+               //                    this.actRGB.Push( 2 );\r
+               //                }\r
+               //            }\r
+               //        }\r
+               //        else\r
+               //        {\r
+               //            int flagR = CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.R) ? 4 : 0;\r
+               //            this.t入力メソッド記憶( E楽器パート.GUITAR );\r
+               //            int flagG = CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.G ) ? 2 : 0;\r
+               //            this.t入力メソッド記憶( E楽器パート.GUITAR );\r
+               //            int flagB = CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.B ) ? 1 : 0;\r
+               //            this.t入力メソッド記憶( E楽器パート.GUITAR );\r
+               //            int flagRGB =  flagR | flagG  | flagB;\r
+               //            if( flagR != 0 )\r
+               //            {\r
+               //                this.actLaneFlushGB.Start( 0 );\r
+               //                this.actRGB.Push( 0 );\r
+               //            }\r
+               //            if( flagG != 0 )\r
+               //            {\r
+               //                this.actLaneFlushGB.Start( 1 );\r
+               //                this.actRGB.Push( 1 );\r
+               //            }\r
+               //            if( flagB != 0 )\r
+               //            {\r
+               //                this.actLaneFlushGB.Start( 2 );\r
+               //                this.actRGB.Push( 2 );\r
+               //            }\r
+               //            List<STInputEvent> events = CDTXMania.Pad.GetEvents( E楽器パート.GUITAR, Eパッド.Pick );\r
+               //            if( ( events != null ) && ( events.Count > 0 ) )\r
+               //            {\r
+               //                this.t入力メソッド記憶( E楽器パート.GUITAR );\r
+               //                foreach( STInputEvent event2 in events )\r
+               //                {\r
+               //                    CDTX.CChip chip4;\r
+               //                    if( !event2.b押された )\r
+               //                    {\r
+               //                        continue;\r
+               //                    }\r
+               //                    long nTime = event2.nTimeStamp - CDTXMania.Timer.n前回リセットした時のシステム時刻;\r
+               //                    CDTX.CChip pChip = this.r指定時刻に一番近い未ヒットChip( nTime, 0x2f, this.nInputAdjustTimeMs.Guitar );\r
+               //                    E判定 e判定 = this.e指定時刻からChipのJUDGEを返す( nTime, pChip, this.nInputAdjustTimeMs.Guitar );\r
+               //                    if( ( ( pChip != null ) && ( ( pChip.nチャンネル番号 & 15 ) == flagRGB ) ) && ( e判定 != E判定.Miss ) )\r
+               //                    {\r
+               //                        if( ( flagR != 0 ) || ( flagRGB == 0 ) )\r
+               //                        {\r
+               //                            this.actChipFireGB.Start( 0 );\r
+               //                        }\r
+               //                        if( ( flagG != 0 ) || ( flagRGB == 0 ) )\r
+               //                        {\r
+               //                            this.actChipFireGB.Start( 1 );\r
+               //                        }\r
+               //                        if( ( flagB != 0 ) || ( flagRGB == 0 ) )\r
+               //                        {\r
+               //                            this.actChipFireGB.Start( 2 );\r
+               //                        }\r
+               //                        this.tチップのヒット処理( nTime, pChip );\r
+               //                        this.tサウンド再生( pChip, CDTXMania.Timer.nシステム時刻, E楽器パート.GUITAR, CDTXMania.ConfigIni.n手動再生音量, CDTXMania.ConfigIni.b演奏音を強調する.Guitar, e判定 == E判定.Poor );\r
+               //                        CDTX.CChip item = this.r指定時刻に一番近い未ヒットChip( nTime, 40, this.nInputAdjustTimeMs.Guitar, 140 );\r
+               //                        if( item != null )\r
+               //                        {\r
+               //                            this.queWailing.Guitar.Enqueue( item );\r
+               //                        }\r
+               //                        continue;\r
+               //                    }\r
+               //                    if( ( ( chip4 = this.r現在の空うちギターChip ) != null ) || ( ( chip4 = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, 0x2f, this.nInputAdjustTimeMs.Guitar ) ) != null ) )\r
+               //                    {\r
+               //                        this.tサウンド再生( chip4, CDTXMania.Timer.nシステム時刻, E楽器パート.GUITAR, CDTXMania.ConfigIni.n手動再生音量, CDTXMania.ConfigIni.b演奏音を強調する.Guitar, true );\r
+               //                    }\r
+               //                    if( !CDTXMania.ConfigIni.bLight.Guitar )\r
+               //                    {\r
+               //                        this.tチップのヒット処理・BadならびにTight時のMiss( E楽器パート.GUITAR );\r
+               //                    }\r
+               //                }\r
+               //            }\r
+               //            List<STInputEvent> list2 = CDTXMania.Pad.GetEvents( E楽器パート.GUITAR, Eパッド.Wail );\r
+               //            if( ( list2 != null ) && ( list2.Count > 0 ) )\r
+               //            {\r
+               //                foreach( STInputEvent event3 in list2 )\r
+               //                {\r
+               //                    CDTX.CChip chip5;\r
+               //                    if( !event3.b押された )\r
+               //                    {\r
+               //                        continue;\r
+               //                    }\r
+               //                    long num6 = event3.nTimeStamp - CDTXMania.Timer.n前回リセットした時のシステム時刻;\r
+               //                    while( ( this.queWailing.Guitar.Count > 0 ) && ( ( chip5 = this.queWailing.Guitar.Dequeue() ) != null ) )\r
+               //                    {\r
+               //                        if( ( num6 - chip5.n発声時刻ms ) <= 800 )         // #24245 2011.1.26 yyagi: 800 -> 1000\r
+               //                        {\r
+               //                            chip5.bHit = true;\r
+               //                            this.actWailingBonus.Start( E楽器パート.GUITAR, this.r現在の歓声Chip.Guitar );\r
+               //                            if( !bIsAutoPlay.Guitar )\r
+               //                            {\r
+               //                                int nCombo = ( this.actCombo.n現在のコンボ数.Guitar < 500 ) ? this.actCombo.n現在のコンボ数.Guitar : 500;\r
+               //                                this.actScore.Set( E楽器パート.GUITAR, this.actScore.Get( E楽器パート.GUITAR ) + ( nCombo * 3000L ) );              // #24245 2011.1.26 yyagi changed DRUMS->GUITAR, add nCombo conditions\r
+               //                            }\r
+               //                        }\r
+               //                    }\r
+               //                }\r
+               //            }\r
+               //        }\r
+               //    }\r
+               //}\r
+               protected override void t入力処理・ドラム()\r
                {\r
                        for( int nPad = 0; nPad < 10; nPad++ )\r
                        {\r
@@ -4093,321 +3555,879 @@ namespace DTXMania
                                }\r
                        }\r
                }\r
-               private void t入力処理・ベース()\r
+               //protected override void t入力処理・ベース()\r
+               //{\r
+               //    if ( CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.Decide ) && CDTXMania.Pad.b押された( E楽器パート.BASS, Eパッド.B ) )\r
+               //    {\r
+               //        CDTXMania.ConfigIni.n譜面スクロール速度.Bass = Math.Min( CDTXMania.ConfigIni.n譜面スクロール速度.Bass + 1, 0x7cf );\r
+               //    }\r
+               //    if ( CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.Decide ) && CDTXMania.Pad.b押された( E楽器パート.BASS, Eパッド.R ) )\r
+               //    {\r
+               //        CDTXMania.ConfigIni.n譜面スクロール速度.Bass = Math.Max( CDTXMania.ConfigIni.n譜面スクロール速度.Bass - 1, 0 );\r
+               //    }\r
+\r
+               //    if ( CDTXMania.ConfigIni.bGuitar有効 && CDTXMania.DTX.bチップがある.Bass )\r
+               //    {\r
+               //        if( bIsAutoPlay.Bass )\r
+               //        {\r
+               //            CDTX.CChip chip = this.r次にくるベースChipを更新して返す();\r
+               //            if( chip != null )\r
+               //            {\r
+               //                if( ( chip.nチャンネル番号 & 4 ) != 0 )\r
+               //                {\r
+               //                    this.actLaneFlushGB.Start( 3 );\r
+               //                    this.actRGB.Push( 3 );\r
+               //                }\r
+               //                if( ( chip.nチャンネル番号 & 2 ) != 0 )\r
+               //                {\r
+               //                    this.actLaneFlushGB.Start( 4 );\r
+               //                    this.actRGB.Push( 4 );\r
+               //                }\r
+               //                if( ( chip.nチャンネル番号 & 1 ) != 0 )\r
+               //                {\r
+               //                    this.actLaneFlushGB.Start( 5 );\r
+               //                    this.actRGB.Push( 5 );\r
+               //                }\r
+               //            }\r
+               //        }\r
+               //        else\r
+               //        {\r
+               //            int flagR = CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.R ) ? 4 : 0;\r
+               //            this.t入力メソッド記憶( E楽器パート.BASS );\r
+               //            int flagG = CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.G ) ? 2 : 0;\r
+               //            this.t入力メソッド記憶( E楽器パート.BASS );\r
+               //            int flagB = CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.B ) ? 1 : 0;\r
+               //            this.t入力メソッド記憶( E楽器パート.BASS );\r
+               //            int flagRGB = flagR | flagG | flagB;\r
+               //            if( flagR != 0 )\r
+               //            {\r
+               //                this.actLaneFlushGB.Start( 3 );\r
+               //                this.actRGB.Push( 3 );\r
+               //            }\r
+               //            if( flagG != 0 )\r
+               //            {\r
+               //                this.actLaneFlushGB.Start( 4 );\r
+               //                this.actRGB.Push( 4 );\r
+               //            }\r
+               //            if( flagB != 0 )\r
+               //            {\r
+               //                this.actLaneFlushGB.Start( 5 );\r
+               //                this.actRGB.Push( 5 );\r
+               //            }\r
+               //            List<STInputEvent> events = CDTXMania.Pad.GetEvents( E楽器パート.BASS, Eパッド.Pick );\r
+               //            if( ( events != null ) && ( events.Count > 0 ) )\r
+               //            {\r
+               //                foreach( STInputEvent event2 in events )\r
+               //                {\r
+               //                    CDTX.CChip chip4;\r
+               //                    if( !event2.b押された )\r
+               //                    {\r
+               //                        continue;\r
+               //                    }\r
+               //                    this.t入力メソッド記憶( E楽器パート.BASS );\r
+               //                    long nTime = event2.nTimeStamp - CDTXMania.Timer.n前回リセットした時のシステム時刻;\r
+               //                    CDTX.CChip pChip = this.r指定時刻に一番近い未ヒットChip( nTime, 0xaf, this.nInputAdjustTimeMs.Bass );\r
+               //                    E判定 e判定 = this.e指定時刻からChipのJUDGEを返す( nTime, pChip, this.nInputAdjustTimeMs.Bass );\r
+               //                    if( ( ( pChip != null ) && ( ( pChip.nチャンネル番号 & 15 ) == flagRGB ) ) && ( e判定 != E判定.Miss ) )\r
+               //                    {\r
+               //                        if( ( flagR != 0 ) || ( flagRGB == 0 ) )\r
+               //                        {\r
+               //                            this.actChipFireGB.Start( 3 );\r
+               //                        }\r
+               //                        if( ( flagG != 0 ) || ( flagRGB == 0 ) )\r
+               //                        {\r
+               //                            this.actChipFireGB.Start( 4 );\r
+               //                        }\r
+               //                        if( ( flagB != 0 ) || ( flagRGB == 0 ) )\r
+               //                        {\r
+               //                            this.actChipFireGB.Start( 5 );\r
+               //                        }\r
+               //                        this.tチップのヒット処理( nTime, pChip );\r
+               //                        this.tサウンド再生( pChip, CDTXMania.Timer.nシステム時刻, E楽器パート.BASS, CDTXMania.ConfigIni.n手動再生音量, CDTXMania.ConfigIni.b演奏音を強調する.Bass, e判定 == E判定.Poor );\r
+               //                        CDTX.CChip item = this.r指定時刻に一番近い未ヒットChip( nTime, 0xa8, this.nInputAdjustTimeMs.Bass, 140 );\r
+               //                        if( item != null )\r
+               //                        {\r
+               //                            this.queWailing.Bass.Enqueue( item );\r
+               //                        }\r
+               //                        continue;\r
+               //                    }\r
+               //                    if ( ( ( chip4 = this.r現在の空うちベースChip ) != null ) || ( ( chip4 = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, 0xaf, this.nInputAdjustTimeMs.Bass ) ) != null ) )\r
+               //                    {\r
+               //                        this.tサウンド再生( chip4, CDTXMania.Timer.nシステム時刻, E楽器パート.BASS, CDTXMania.ConfigIni.n手動再生音量, CDTXMania.ConfigIni.b演奏音を強調する.Bass, true );\r
+               //                    }\r
+               //                    if( !CDTXMania.ConfigIni.bLight.Bass )\r
+               //                    {\r
+               //                        this.tチップのヒット処理・BadならびにTight時のMiss( E楽器パート.BASS );\r
+               //                    }\r
+               //                }\r
+               //            }\r
+               //            List<STInputEvent> list2 = CDTXMania.Pad.GetEvents( E楽器パート.BASS, Eパッド.Wail );\r
+               //            if( ( list2 != null ) && ( list2.Count > 0 ) )\r
+               //            {\r
+               //                foreach( STInputEvent event3 in list2 )\r
+               //                {\r
+               //                    CDTX.CChip chip5;\r
+               //                    if( !event3.b押された )\r
+               //                    {\r
+               //                        continue;\r
+               //                    }\r
+               //                    long num6 = event3.nTimeStamp - CDTXMania.Timer.n前回リセットした時のシステム時刻;\r
+               //                    while( ( this.queWailing.Bass.Count > 0 ) && ( ( chip5 = this.queWailing.Bass.Dequeue() ) != null ) )\r
+               //                    {\r
+               //                        if( ( num6 - chip5.n発声時刻ms ) <= 1000 )                // #24245 2011.1.26 yyagi: 800 -> 1000\r
+               //                        {\r
+               //                            chip5.bHit = true;\r
+               //                            this.actWailingBonus.Start( E楽器パート.BASS, this.r現在の歓声Chip.Bass );\r
+               //                            if( !bIsAutoPlay.Bass )\r
+               //                            {\r
+               //                                int nCombo = ( this.actCombo.n現在のコンボ数.Bass < 500 ) ? this.actCombo.n現在のコンボ数.Bass : 500;\r
+               //                                this.actScore.Set( E楽器パート.BASS, this.actScore.Get( E楽器パート.BASS ) + ( nCombo * 3000L ) );          // #24245 2011.1.26 yyagi changed DRUMS->BASS, add nCombo conditions\r
+               //                            }\r
+               //                        }\r
+               //                    }\r
+               //                }\r
+               //            }\r
+               //        }\r
+               //    }\r
+               //}\r
+\r
+               protected override void t背景テクスチャの生成()\r
                {\r
-                       if ( CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.Decide ) && CDTXMania.Pad.b押された( E楽器パート.BASS, Eパッド.B ) )\r
-                       {\r
-                               CDTXMania.ConfigIni.n譜面スクロール速度.Bass = Math.Min( CDTXMania.ConfigIni.n譜面スクロール速度.Bass + 1, 0x7cf );\r
-                       }\r
-                       if ( CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.Decide ) && CDTXMania.Pad.b押された( E楽器パート.BASS, Eパッド.R ) )\r
+                       Rectangle bgrect = new Rectangle( 338, 57, 278, 355 );\r
+                       string DefaultBgFilename = @"Graphics\ScreenPlayDrums background.jpg";\r
+                       string BgFilename = "";\r
+                       if ( ( ( CDTXMania.DTX.BACKGROUND != null ) && ( CDTXMania.DTX.BACKGROUND.Length > 0 ) ) && !CDTXMania.ConfigIni.bストイックモード )\r
                        {\r
-                               CDTXMania.ConfigIni.n譜面スクロール速度.Bass = Math.Max( CDTXMania.ConfigIni.n譜面スクロール速度.Bass - 1, 0 );\r
+                               BgFilename = CDTXMania.DTX.strフォルダ名 + CDTXMania.DTX.BACKGROUND;\r
                        }\r
+                       base.t背景テクスチャの生成( DefaultBgFilename, bgrect, BgFilename );\r
+               }\r
+               //private void t背景テクスチャの生成()\r
+               //{\r
+               //    Bitmap image = null;\r
+               //    string path = "";\r
+               //    bool flag = true;\r
+               //    if( ( ( CDTXMania.DTX.BACKGROUND != null ) && ( CDTXMania.DTX.BACKGROUND.Length > 0 ) ) && !CDTXMania.ConfigIni.bストイックモード )\r
+               //    {\r
+               //        path = CDTXMania.DTX.strフォルダ名 + CDTXMania.DTX.BACKGROUND;\r
+               //        if( File.Exists( path ) )\r
+               //        {\r
+               //            try\r
+               //            {\r
+               //                Bitmap bitmap2 = null;\r
+               //                bitmap2 = new Bitmap( path );\r
+               //                if( ( bitmap2.Size.Width == 0 ) && ( bitmap2.Size.Height == 0 ) )\r
+               //                {\r
+               //                    this.tx背景 = null;\r
+               //                    return;\r
+               //                }\r
+               //                Bitmap bitmap3 = new Bitmap( 640, 480 );\r
+               //                Graphics graphics = Graphics.FromImage( bitmap3 );\r
+               //                for( int i = 0; i < 480; i += bitmap2.Size.Height )\r
+               //                {\r
+               //                    for( int j = 0; j < 640; j += bitmap2.Size.Width )\r
+               //                    {\r
+               //                        graphics.DrawImage( bitmap2, j, i, bitmap2.Width, bitmap2.Height );\r
+               //                    }\r
+               //                }\r
+               //                graphics.Dispose();\r
+               //                bitmap2.Dispose();\r
+               //                image = new Bitmap( CSkin.Path( @"Graphics\ScreenPlayDrums background.jpg" ) );\r
+               //                graphics = Graphics.FromImage( image );\r
+               //                ColorMatrix matrix2 = new ColorMatrix();\r
+               //                matrix2.Matrix00 = 1f;\r
+               //                matrix2.Matrix11 = 1f;\r
+               //                matrix2.Matrix22 = 1f;\r
+               //                matrix2.Matrix33 = ( (float) CDTXMania.ConfigIni.n背景の透過度 ) / 255f;\r
+               //                matrix2.Matrix44 = 1f;\r
+               //                ColorMatrix newColorMatrix = matrix2;\r
+               //                ImageAttributes imageAttr = new ImageAttributes();\r
+               //                imageAttr.SetColorMatrix( newColorMatrix );\r
+               //                graphics.DrawImage( bitmap3, new Rectangle( 0, 0, 640, 480 ), 0, 0, 640, 480, GraphicsUnit.Pixel, imageAttr );\r
+               //                imageAttr.Dispose();\r
+               //                graphics.DrawImage( bitmap3, new Rectangle( 0x152, 0x39, 0x116, 0x163 ), 0x152, 0x39, 0x116, 0x163, GraphicsUnit.Pixel );\r
+               //                graphics.Dispose();\r
+               //                bitmap3.Dispose();\r
+               //                flag = false;\r
+               //            }\r
+               //            catch\r
+               //            {\r
+               //                Trace.TraceError( "背景画像の読み込みに失敗しました。({0})", new object[] { path } );\r
+               //            }\r
+               //        }\r
+               //    }\r
+               //    if( flag )\r
+               //    {\r
+               //        path = CSkin.Path( @"Graphics\ScreenPlayDrums background.jpg" );\r
+               //        try\r
+               //        {\r
+               //            image = new Bitmap( path );\r
+               //        }\r
+               //        catch\r
+               //        {\r
+               //            Trace.TraceError( "背景画像の読み込みに失敗しました。({0})", new object[] { path } );\r
+               //            this.tx背景 = null;\r
+               //            return;\r
+               //        }\r
+               //    }\r
+               //    if( ( CDTXMania.DTX.listBMP.Count > 0 ) || ( CDTXMania.DTX.listBMPTEX.Count > 0 ) )\r
+               //    {\r
+               //        Graphics graphics2 = Graphics.FromImage( image );\r
+               //        graphics2.FillRectangle( Brushes.Black, 0x152, 0x39, 0x116, 0x163 );\r
+               //        graphics2.Dispose();\r
+               //    }\r
+               //    try\r
+               //    {\r
+               //        this.tx背景 = new CTexture( CDTXMania.app.Device, image, CDTXMania.TextureFormat );\r
+               //    }\r
+               //    catch( CTextureCreateFailedException )\r
+               //    {\r
+               //        Trace.TraceError( "背景テクスチャの生成に失敗しました。" );\r
+               //        this.tx背景 = null;\r
+               //    }\r
+               //    image.Dispose();\r
+               //}\r
+\r
+\r
+//#if true             // DAMAGELEVELTUNING\r
+//        // ----------------------------------\r
+//        public float[,] fDamageGaugeDelta = {                        // #23625 2011.1.10 ickw_284: tuned damage/recover factors\r
+//            // drums,   guitar,  bass\r
+//            {  0.004f,  0.006f,  0.006f  },\r
+//            {  0.002f,  0.003f,  0.003f  },\r
+//            {  0.000f,  0.000f,  0.000f  },\r
+//            { -0.020f, -0.030f,      -0.030f  },\r
+//            { -0.050f, -0.050f, -0.050f  }\r
+//        };\r
+//        public float[] fDamageLevelFactor = {\r
+//            0.5f, 1.0f, 1.5f\r
+//        };\r
+//        // ----------------------------------\r
+//#endif\r
+\r
+//        private void t判定にあわせてゲージを増減する( E楽器パート part, E判定 e今回の判定 )\r
+//        {\r
+//            double fDamage;\r
+\r
+//#if true     // DAMAGELEVELTUNING\r
+//            switch (e今回の判定)\r
+//            {\r
+//                case E判定.Perfect:\r
+//                case E判定.Great:\r
+//                case E判定.Good:\r
+//                case E判定.Poor:\r
+//                    fDamage = fDamageGaugeDelta[(int)e今回の判定, (int)part];\r
+//                    break;\r
+//                case E判定.Miss:\r
+//                    fDamage = fDamageGaugeDelta[(int)e今回の判定, (int)part];\r
+//                    switch (CDTXMania.ConfigIni.eダメージレベル)\r
+//                    {\r
+//                        case Eダメージレベル.少ない:\r
+//                        case Eダメージレベル.普通:\r
+//                        case Eダメージレベル.大きい:\r
+//                            fDamage *= fDamageLevelFactor[(int)CDTXMania.ConfigIni.eダメージレベル];\r
+//                            break;\r
+//                    }\r
+//                    break;\r
+\r
+//                default:\r
+//                    fDamage = 0.0f;\r
+//                    break;\r
+//            }\r
+//#else                                                                                                        // before applying #23625 modifications\r
+//            switch (e今回の判定)\r
+//            {\r
+//                case E判定.Perfect:\r
+//                    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
+\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
-                       if ( CDTXMania.ConfigIni.bGuitar有効 && CDTXMania.DTX.bチップがある.Bass )\r
+               protected override void t進行描画・チップ・ドラムス( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip )\r
+               {\r
+                       if ( configIni.bDrums有効 )\r
                        {\r
-                               if( bIsAutoPlay.Bass )\r
+                               if ( configIni.bSudden.Drums )\r
                                {\r
-                                       CDTX.CChip chip = this.r次にくるベースChipを更新して返す();\r
-                                       if( chip != null )\r
+                                       if ( pChip.nバーからの距離dot.Drums < 200 )\r
                                        {\r
-                                               if( ( chip.nチャンネル番号 & 4 ) != 0 )\r
-                                               {\r
-                                                       this.actLaneFlushGB.Start( 3 );\r
-                                                       this.actRGB.Push( 3 );\r
-                                               }\r
-                                               if( ( chip.nチャンネル番号 & 2 ) != 0 )\r
-                                               {\r
-                                                       this.actLaneFlushGB.Start( 4 );\r
-                                                       this.actRGB.Push( 4 );\r
-                                               }\r
-                                               if( ( chip.nチャンネル番号 & 1 ) != 0 )\r
-                                               {\r
-                                                       this.actLaneFlushGB.Start( 5 );\r
-                                                       this.actRGB.Push( 5 );\r
-                                               }\r
+                                               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
-                               else\r
+                               if ( configIni.bHidden.Drums )\r
                                {\r
-                                       int flagR = CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.R ) ? 4 : 0;\r
-                                       this.t入力メソッド記憶( E楽器パート.BASS );\r
-                                       int flagG = CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.G ) ? 2 : 0;\r
-                                       this.t入力メソッド記憶( E楽器パート.BASS );\r
-                                       int flagB = CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.B ) ? 1 : 0;\r
-                                       this.t入力メソッド記憶( E楽器パート.BASS );\r
-                                       int flagRGB = flagR | flagG | flagB;\r
-                                       if( flagR != 0 )\r
+                                       if ( pChip.nバーからの距離dot.Drums < 100 )\r
                                        {\r
-                                               this.actLaneFlushGB.Start( 3 );\r
-                                               this.actRGB.Push( 3 );\r
+                                               pChip.b可視 = false;\r
                                        }\r
-                                       if( flagG != 0 )\r
+                                       else if ( pChip.nバーからの距離dot.Drums < 150 )\r
                                        {\r
-                                               this.actLaneFlushGB.Start( 4 );\r
-                                               this.actRGB.Push( 4 );\r
+                                               pChip.b可視 = true;\r
+                                               pChip.n透明度 = (int) ( ( ( (double) ( pChip.nバーからの距離dot.Drums - 100 ) ) * 255.0 ) / 50.0 );\r
                                        }\r
-                                       if( flagB != 0 )\r
+                               }\r
+                               if ( !pChip.bHit && pChip.b可視 )\r
+                               {\r
+                                       if ( this.txチップ != null )\r
                                        {\r
-                                               this.actLaneFlushGB.Start( 5 );\r
-                                               this.actRGB.Push( 5 );\r
+                                               this.txチップ.n透明度 = pChip.n透明度;\r
                                        }\r
-                                       List<STInputEvent> events = CDTXMania.Pad.GetEvents( E楽器パート.BASS, Eパッド.Pick );\r
-                                       if( ( events != null ) && ( events.Count > 0 ) )\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
-                                               foreach( STInputEvent event2 in events )\r
-                                               {\r
-                                                       CDTX.CChip chip4;\r
-                                                       if( !event2.b押された )\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
-                                                               continue;\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 4, new Rectangle( 0x2c, num9 * 7, 0x20, 8 ) );\r
                                                        }\r
-                                                       this.t入力メソッド記憶( E楽器パート.BASS );\r
-                                                       long nTime = event2.nTimeStamp - CDTXMania.Timer.n前回リセットした時のシステム時刻;\r
-                                                       CDTX.CChip pChip = this.r指定時刻に一番近い未ヒットChip( nTime, 0xaf, this.nInputAdjustTimeMs.Bass );\r
-                                                       E判定 e判定 = this.e指定時刻からChipのJUDGEを返す( nTime, pChip, this.nInputAdjustTimeMs.Bass );\r
-                                                       if( ( ( pChip != null ) && ( ( pChip.nチャンネル番号 & 15 ) == flagRGB ) ) && ( e判定 != E判定.Miss ) )\r
+                                                       break;\r
+\r
+                                               case 0x12:\r
+                                                       x = ( x + 0x10 ) - ( (int) ( ( 32.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
+                                                       if ( this.txチップ != null )\r
                                                        {\r
-                                                               if( ( flagR != 0 ) || ( flagRGB == 0 ) )\r
-                                                               {\r
-                                                                       this.actChipFireGB.Start( 3 );\r
-                                                               }\r
-                                                               if( ( flagG != 0 ) || ( flagRGB == 0 ) )\r
-                                                               {\r
-                                                                       this.actChipFireGB.Start( 4 );\r
-                                                               }\r
-                                                               if( ( flagB != 0 ) || ( flagRGB == 0 ) )\r
-                                                               {\r
-                                                                       this.actChipFireGB.Start( 5 );\r
-                                                               }\r
-                                                               this.tチップのヒット処理( nTime, pChip );\r
-                                                               this.tサウンド再生( pChip, CDTXMania.Timer.nシステム時刻, E楽器パート.BASS, CDTXMania.ConfigIni.n手動再生音量, CDTXMania.ConfigIni.b演奏音を強調する.Bass, e判定 == E判定.Poor );\r
-                                                               CDTX.CChip item = this.r指定時刻に一番近い未ヒットChip( nTime, 0xa8, this.nInputAdjustTimeMs.Bass, 140 );\r
-                                                               if( item != null )\r
-                                                               {\r
-                                                                       this.queWailing.Bass.Enqueue( item );\r
-                                                               }\r
-                                                               continue;\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 4, new Rectangle( 0x4c, num9 * 7, 0x20, 8 ) );\r
                                                        }\r
-                                                       if ( ( ( chip4 = this.r現在の空うちベースChip ) != null ) || ( ( chip4 = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, 0xaf, this.nInputAdjustTimeMs.Bass ) ) != null ) )\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.tサウンド再生( chip4, CDTXMania.Timer.nシステム時刻, E楽器パート.BASS, CDTXMania.ConfigIni.n手動再生音量, CDTXMania.ConfigIni.b演奏音を強調する.Bass, true );\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 5, new Rectangle( 0, num9 * 9, 0x2c, 10 ) );\r
                                                        }\r
-                                                       if( !CDTXMania.ConfigIni.bLight.Bass )\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.tチップのヒット処理・BadならびにTight時のMiss( E楽器パート.BASS );\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 4, new Rectangle( 0x6c, num9 * 7, 0x20, 8 ) );\r
                                                        }\r
-                                               }\r
-                                       }\r
-                                       List<STInputEvent> list2 = CDTXMania.Pad.GetEvents( E楽器パート.BASS, Eパッド.Wail );\r
-                                       if( ( list2 != null ) && ( list2.Count > 0 ) )\r
-                                       {\r
-                                               foreach( STInputEvent event3 in list2 )\r
-                                               {\r
-                                                       CDTX.CChip chip5;\r
-                                                       if( !event3.b押された )\r
+                                                       break;\r
+\r
+                                               case 0x15:\r
+                                                       x = ( x + 0x10 ) - ( (int) ( ( 32.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
+                                                       if ( this.txチップ != null )\r
                                                        {\r
-                                                               continue;\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 4, new Rectangle( 140, num9 * 7, 0x20, 8 ) );\r
                                                        }\r
-                                                       long num6 = event3.nTimeStamp - CDTXMania.Timer.n前回リセットした時のシステム時刻;\r
-                                                       while( ( this.queWailing.Bass.Count > 0 ) && ( ( chip5 = this.queWailing.Bass.Dequeue() ) != null ) )\r
+                                                       break;\r
+\r
+                                               case 0x16:\r
+                                                       x = ( x + 0x13 ) - ( (int) ( ( 38.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
+                                                       if ( this.txチップ != null )\r
                                                        {\r
-                                                               if( ( num6 - chip5.n発声時刻ms ) <= 1000 )          // #24245 2011.1.26 yyagi: 800 -> 1000\r
-                                                               {\r
-                                                                       chip5.bHit = true;\r
-                                                                       this.actWailingBonus.Start( E楽器パート.BASS, this.r現在の歓声Chip.Bass );\r
-                                                                       if( !bIsAutoPlay.Bass )\r
-                                                                       {\r
-                                                                               int nCombo = ( this.actCOMBO.n現在のコンボ数.Bass < 500 ) ? this.actCOMBO.n現在のコンボ数.Bass : 500;\r
-                                                                               this.actScore.Set( E楽器パート.BASS, this.actScore.Get( E楽器パート.BASS ) + ( nCombo * 3000L ) );            // #24245 2011.1.26 yyagi changed DRUMS->BASS, add nCombo conditions\r
-                                                                       }\r
-                                                               }\r
+                                                               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
-                                               }\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
+\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
-               private void t背景テクスチャの生成()\r
+               protected override void t進行描画・チップ・ギター( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip )\r
                {\r
-                       Bitmap image = null;\r
-                       string path = "";\r
-                       bool flag = true;\r
-                       if( ( ( CDTXMania.DTX.BACKGROUND != null ) && ( CDTXMania.DTX.BACKGROUND.Length > 0 ) ) && !CDTXMania.ConfigIni.bストイックモード )\r
+                       if ( configIni.bGuitar有効 )\r
                        {\r
-                               path = CDTXMania.DTX.strフォルダ名 + CDTXMania.DTX.BACKGROUND;\r
-                               if( File.Exists( path ) )\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
-                                       try\r
+                                       int nバーからの距離 = configIni.bReverse.Guitar ? ( 0x176 - pChip.nバーからの距離dot.Guitar ) : ( 0x5f + pChip.nバーからの距離dot.Guitar );\r
+                                       if ( ( nバーからの距離 > 0x39 ) && ( nバーからの距離 < 0x19c ) )\r
                                        {\r
-                                               Bitmap bitmap2 = null;\r
-                                               bitmap2 = new Bitmap( path );\r
-                                               if( ( bitmap2.Size.Width == 0 ) && ( bitmap2.Size.Height == 0 ) )\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
-                                                       this.tx背景 = null;\r
-                                                       return;\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
-                                               Bitmap bitmap3 = new Bitmap( 640, 480 );\r
-                                               Graphics graphics = Graphics.FromImage( bitmap3 );\r
-                                               for( int i = 0; i < 480; i += bitmap2.Size.Height )\r
+                                               else\r
                                                {\r
-                                                       for( int j = 0; j < 640; j += bitmap2.Size.Width )\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
-                                                               graphics.DrawImage( bitmap2, j, i, bitmap2.Width, bitmap2.Height );\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, 0x1fd, nバーからの距離 - 3, rectangle2 );\r
                                                        }\r
                                                }\r
-                                               graphics.Dispose();\r
-                                               bitmap2.Dispose();\r
-                                               image = new Bitmap( CSkin.Path( @"Graphics\ScreenPlayDrums background.jpg" ) );\r
-                                               graphics = Graphics.FromImage( image );\r
-                                               ColorMatrix matrix2 = new ColorMatrix();\r
-                                               matrix2.Matrix00 = 1f;\r
-                                               matrix2.Matrix11 = 1f;\r
-                                               matrix2.Matrix22 = 1f;\r
-                                               matrix2.Matrix33 = ( (float) CDTXMania.ConfigIni.n背景の透過度 ) / 255f;\r
-                                               matrix2.Matrix44 = 1f;\r
-                                               ColorMatrix newColorMatrix = matrix2;\r
-                                               ImageAttributes imageAttr = new ImageAttributes();\r
-                                               imageAttr.SetColorMatrix( newColorMatrix );\r
-                                               graphics.DrawImage( bitmap3, new Rectangle( 0, 0, 640, 480 ), 0, 0, 640, 480, GraphicsUnit.Pixel, imageAttr );\r
-                                               imageAttr.Dispose();\r
-                                               graphics.DrawImage( bitmap3, new Rectangle( 0x152, 0x39, 0x116, 0x163 ), 0x152, 0x39, 0x116, 0x163, GraphicsUnit.Pixel );\r
-                                               graphics.Dispose();\r
-                                               bitmap3.Dispose();\r
-                                               flag = false;\r
                                        }\r
-                                       catch\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
-                                               Trace.TraceError( "背景画像の読み込みに失敗しました。({0})", new object[] { path } );\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
-                       if( flag )\r
+               }\r
+               protected override void t進行描画・チップ・ギター・ウェイリング( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip )\r
+               {\r
+                       if ( configIni.bGuitar有効 )\r
                        {\r
-                               path = CSkin.Path( @"Graphics\ScreenPlayDrums background.jpg" );\r
-                               try\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
-                                       image = new Bitmap( path );\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
-                               catch\r
+                               if ( !pChip.bHit && ( pChip.nバーからの距離dot.Guitar < 0 ) )\r
                                {\r
-                                       Trace.TraceError( "背景画像の読み込みに失敗しました。({0})", new object[] { path } );\r
-                                       this.tx背景 = null;\r
-                                       return;\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
-                       if( ( CDTXMania.DTX.listBMP.Count > 0 ) || ( CDTXMania.DTX.listBMPTEX.Count > 0 ) )\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
-                               Graphics graphics2 = Graphics.FromImage( image );\r
-                               graphics2.FillRectangle( Brushes.Black, 0x152, 0x39, 0x116, 0x163 );\r
-                               graphics2.Dispose();\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
-                       try\r
+               }\r
+               protected override void t進行描画・チップ・ベース( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip )\r
+               {\r
+                       if ( configIni.bGuitar有効 )\r
                        {\r
-                               this.tx背景 = new CTexture( CDTXMania.app.Device, image, CDTXMania.TextureFormat );\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
-                       catch( CTextureCreateFailedException )\r
+                       if ( !pChip.bHit && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
                        {\r
-                               Trace.TraceError( "背景テクスチャの生成に失敗しました。" );\r
-                               this.tx背景 = null;\r
+                               this.tサウンド再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.BASS, dTX.nモニタを考慮した音量( E楽器パート.BASS ) );\r
+                               pChip.bHit = true;\r
                        }\r
-                       image.Dispose();\r
                }\r
-\r
-\r
-#if true               // DAMAGELEVELTUNING\r
-               // ----------------------------------\r
-               public float[,] fDamageGaugeDelta = {                   // #23625 2011.1.10 ickw_284: tuned damage/recover factors\r
-                       // drums,   guitar,  bass\r
-                       {  0.004f,  0.006f,  0.006f  },\r
-                       {  0.002f,  0.003f,  0.003f  },\r
-                       {  0.000f,  0.000f,  0.000f  },\r
-                       { -0.020f, -0.030f,     -0.030f  },\r
-                       { -0.050f, -0.050f, -0.050f  }\r
-               };\r
-               public float[] fDamageLevelFactor = {\r
-                       0.5f, 1.0f, 1.5f\r
-               };\r
-               // ----------------------------------\r
-#endif\r
-\r
-               private void t判定にあわせてゲージを増減する( E楽器パート part, E判定 e今回の判定 )\r
+               protected override void t進行描画・チップ・ベース・ウェイリング( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip )\r
                {\r
-                       double fDamage;\r
-\r
-#if true       // DAMAGELEVELTUNING\r
-                       switch (e今回の判定)\r
+                       if ( configIni.bGuitar有効 )\r
                        {\r
-                               case E判定.Perfect:\r
-                               case E判定.Great:\r
-                               case E判定.Good:\r
-                               case E判定.Poor:\r
-                                       fDamage = fDamageGaugeDelta[(int)e今回の判定, (int)part];\r
-                                       break;\r
-                               case E判定.Miss:\r
-                                       fDamage = fDamageGaugeDelta[(int)e今回の判定, (int)part];\r
-                                       switch (CDTXMania.ConfigIni.eダメージレベル)\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
-                                               case Eダメージレベル.少ない:\r
-                                               case Eダメージレベル.普通:\r
-                                               case Eダメージレベル.大きい:\r
-                                                       fDamage *= fDamageLevelFactor[(int)CDTXMania.ConfigIni.eダメージレベル];\r
-                                                       break;\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
-                                       break;\r
-\r
-                               default:\r
-                                       fDamage = 0.0f;\r
-                                       break;\r
-                       }\r
-#else                                                                                                  // before applying #23625 modifications\r
-                       switch (e今回の判定)\r
-                       {\r
-                               case E判定.Perfect:\r
-                                       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
-\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
+                               if ( !pChip.bHit && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
+                               {\r
+                                       pChip.bHit = true;\r
+                                       if ( configIni.bAutoPlay.Bass )\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
+                                               this.actWailingBonus.Start( E楽器パート.BASS, this.r現在の歓声Chip.Bass );\r
                                        }\r
-                                       break;\r
-\r
-                               default:\r
-                                       fDamage = 0.0;\r
-                                       break;\r
+                               }\r
+                               return;\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
+                       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