OSDN Git Service

#23921の修正をギター画面にも適用。
authoryyagi <yyagi@16f42ceb-6dc6-49c8-ba94-f2d53467949d>
Sun, 20 Feb 2011 07:11:08 +0000 (07:11 +0000)
committeryyagi <yyagi@16f42ceb-6dc6-49c8-ba94-f2d53467949d>
Sun, 20 Feb 2011 07:11:08 +0000 (07:11 +0000)
続3・演奏画面のリファクタ。ドラムとギター画面で共通で使用しているメソッドを1つにまとめる作業。まだ完全には作業完了していない。少しずつ慎重に進めます。次回以降、いよいよ本命部分(演奏コアの部分)のリファクタに着手。

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

DTXManiaプロジェクト/コード/ステージ/07.演奏/CAct演奏WailingBonus共通.cs [new file with mode: 0644]
DTXManiaプロジェクト/コード/ステージ/07.演奏/CAct演奏ステータスパネル共通.cs [new file with mode: 0644]
DTXManiaプロジェクト/コード/ステージ/07.演奏/CStage演奏画面共通.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/ギター画面/CAct演奏Guitarコンボ.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/ギター画面/CStage演奏ギター画面.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/ドラム画面/CAct演奏DrumsコンボDGB.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/ドラム画面/CStage演奏ドラム画面.cs

diff --git a/DTXManiaプロジェクト/コード/ステージ/07.演奏/CAct演奏WailingBonus共通.cs b/DTXManiaプロジェクト/コード/ステージ/07.演奏/CAct演奏WailingBonus共通.cs
new file mode 100644 (file)
index 0000000..76fccc9
--- /dev/null
@@ -0,0 +1,64 @@
+using System;\r
+using System.Collections.Generic;\r
+using System.Text;\r
+using System.Drawing;\r
+using FDK;\r
+\r
+namespace DTXMania\r
+{\r
+       internal abstract class CAct演奏WailingBonus共通 : CActivity\r
+       {\r
+               // メソッド\r
+\r
+               public CAct演奏WailingBonus共通()\r
+               {\r
+                       base.b活性化してない = true;\r
+               }\r
+\r
+               public void Start( E楽器パート part )\r
+               {\r
+                       this.Start( part, null );\r
+               }\r
+               public abstract void Start( E楽器パート part, CDTX.CChip r歓声Chip );\r
+\r
+\r
+\r
+               // CActivity 実装\r
+\r
+               public override void On活性化()\r
+               {\r
+                       base.On活性化();\r
+               }\r
+               public override void On非活性化()\r
+               {\r
+                       base.On非活性化();\r
+               }\r
+\r
+               public override void OnManagedリソースの作成()\r
+               {\r
+                       if ( !base.b活性化してない )\r
+                       {\r
+                               this.txWailingBonus = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenPlay wailing bonus.png" ) );\r
+                               base.OnManagedリソースの作成();\r
+                       }\r
+               }\r
+               public override void OnManagedリソースの解放()\r
+               {\r
+                       if ( !base.b活性化してない )\r
+                       {\r
+                               CDTXMania.tテクスチャの解放( ref this.txWailingBonus );\r
+                               base.OnManagedリソースの解放();\r
+                       }\r
+               }\r
+\r
+\r
+               // その他\r
+\r
+               #region [ private ]\r
+               //-----------------\r
+               protected CCounter[,] ct進行用 = new CCounter[ 3, 4 ];\r
+               protected CTexture txWailingBonus;\r
+               //-----------------\r
+               #endregion\r
+       }\r
+}\r
diff --git a/DTXManiaプロジェクト/コード/ステージ/07.演奏/CAct演奏ステータスパネル共通.cs b/DTXManiaプロジェクト/コード/ステージ/07.演奏/CAct演奏ステータスパネル共通.cs
new file mode 100644 (file)
index 0000000..66ef770
--- /dev/null
@@ -0,0 +1,134 @@
+using System;\r
+using System.Collections.Generic;\r
+using System.Text;\r
+using System.Runtime.InteropServices;\r
+using System.Drawing;\r
+using System.Diagnostics;\r
+using FDK;\r
+\r
+namespace DTXMania\r
+{\r
+       internal class CAct演奏ステータスパネル共通 : CActivity\r
+       {\r
+               // コンストラクタ\r
+               public CAct演奏ステータスパネル共通()\r
+               {\r
+                       this.stパネルマップ = new STATUSPANEL[ 12 ];              // yyagi: 以下、手抜きの初期化でスマン\r
+                                                                                                                               // { "DTXMANIA", 0 }, { "EXTREME", 1 }, ... みたいに書きたいが・・・\r
+                       string[] labels = new string[ 12 ] {\r
+                           "DTXMANIA", "EXTREME", "ADVANCED", "ADVANCE", "BASIC", "RAW",\r
+                           "REAL", "EASY", "EX-REAL", "ExREAL", "ExpertReal", "NORMAL"\r
+                       };\r
+                       int[] status = new int[ 12 ] {\r
+                           0, 1, 2, 2, 3, 4, 5, 6, 7, 7, 7, 8\r
+                       };\r
+\r
+                       for ( int i = 0; i < 12; i++ )\r
+                       {\r
+                               this.stパネルマップ[ i ] = new STATUSPANEL();\r
+                               this.stパネルマップ[ i ].status = status[ i ];\r
+                               this.stパネルマップ[ i ].label = labels[ i ];\r
+                       }\r
+\r
+                       #region [ 旧初期化処理(注釈化) ]\r
+                       //STATUSPANEL[] statuspanelArray = new STATUSPANEL[ 12 ];\r
+                       //STATUSPANEL statuspanel = new STATUSPANEL();\r
+                       //statuspanel.status = 0;\r
+                       //statuspanel.label = "DTXMANIA";\r
+                       //statuspanelArray[ 0 ] = statuspanel;\r
+                       //STATUSPANEL statuspanel2 = new STATUSPANEL();\r
+                       //statuspanel2.status = 1;\r
+                       //statuspanel2.label = "EXTREME";\r
+                       //statuspanelArray[ 1 ] = statuspanel2;\r
+                       //STATUSPANEL statuspanel3 = new STATUSPANEL();\r
+                       //statuspanel3.status = 2;\r
+                       //statuspanel3.label = "ADVANCED";\r
+                       //statuspanelArray[ 2 ] = statuspanel3;\r
+                       //STATUSPANEL statuspanel4 = new STATUSPANEL();\r
+                       //statuspanel4.status = 2;\r
+                       //statuspanel4.label = "ADVANCE";\r
+                       //statuspanelArray[ 3 ] = statuspanel4;\r
+                       //STATUSPANEL statuspanel5 = new STATUSPANEL();\r
+                       //statuspanel5.status = 3;\r
+                       //statuspanel5.label = "BASIC";\r
+                       //statuspanelArray[ 4 ] = statuspanel5;\r
+                       //STATUSPANEL statuspanel6 = new STATUSPANEL();\r
+                       //statuspanel6.status = 4;\r
+                       //statuspanel6.label = "RAW";\r
+                       //statuspanelArray[ 5 ] = statuspanel6;\r
+                       //STATUSPANEL statuspanel7 = new STATUSPANEL();\r
+                       //statuspanel7.status = 5;\r
+                       //statuspanel7.label = "REAL";\r
+                       //statuspanelArray[ 6 ] = statuspanel7;\r
+                       //STATUSPANEL statuspanel8 = new STATUSPANEL();\r
+                       //statuspanel8.status = 6;\r
+                       //statuspanel8.label = "EASY";\r
+                       //statuspanelArray[ 7 ] = statuspanel8;\r
+                       //STATUSPANEL statuspanel9 = new STATUSPANEL();\r
+                       //statuspanel9.status = 7;\r
+                       //statuspanel9.label = "EX-REAL";\r
+                       //statuspanelArray[ 8 ] = statuspanel9;\r
+                       //STATUSPANEL statuspanel10 = new STATUSPANEL();\r
+                       //statuspanel10.status = 7;\r
+                       //statuspanel10.label = "ExREAL";\r
+                       //statuspanelArray[ 9 ] = statuspanel10;\r
+                       //STATUSPANEL statuspanel11 = new STATUSPANEL();\r
+                       //statuspanel11.status = 7;\r
+                       //statuspanel11.label = "ExpertReal";\r
+                       //statuspanelArray[ 10 ] = statuspanel11;\r
+                       //STATUSPANEL statuspanel12 = new STATUSPANEL();\r
+                       //statuspanel12.status = 8;\r
+                       //statuspanel12.label = "NORMAL";\r
+                       //statuspanelArray[ 11 ] = statuspanel12;\r
+                       //this.stパネルマップ = statuspanelArray;\r
+                       #endregion\r
+                       base.b活性化してない = true;\r
+               }\r
+\r
+\r
+               // メソッド\r
+\r
+               public void tラベル名からステータスパネルを決定する( string strラベル名 )\r
+               {\r
+                       if ( string.IsNullOrEmpty( strラベル名 ) )\r
+                       {\r
+                               this.nStatus = 0;\r
+                       }\r
+                       else\r
+                       {\r
+                               foreach ( STATUSPANEL statuspanel in this.stパネルマップ )\r
+                               {\r
+                                       if ( strラベル名.Equals( statuspanel.label, StringComparison.CurrentCultureIgnoreCase ) )   // 2011.2.17 yyagi ignore case\r
+                                       {\r
+                                               this.nStatus = statuspanel.status;\r
+                                               return;\r
+                                       }\r
+                               }\r
+                               this.nStatus = 0;\r
+                       }\r
+               }\r
+\r
+               // CActivity 実装\r
+\r
+               public override void On活性化()\r
+               {\r
+                       this.nStatus = 0;\r
+                       base.On活性化();\r
+               }\r
+\r
+\r
+               #region [ protected ]\r
+               //-----------------\r
+               [StructLayout( LayoutKind.Sequential )]\r
+               protected struct STATUSPANEL\r
+               {\r
+                       public string label;\r
+                       public int status;\r
+               }\r
+\r
+               protected int nStatus;\r
+               protected STATUSPANEL[] stパネルマップ = null;\r
+               //-----------------\r
+               #endregion\r
+       }\r
+}\r
index 98b0ea5..e078762 100644 (file)
@@ -32,10 +32,21 @@ namespace DTXMania
                {\r
                        this.eフェードアウト完了時の戻り値 = E演奏画面の戻り値.継続;\r
                        this.n現在のトップChip = ( CDTXMania.DTX.listChip.Count > 0 ) ? 0 : -1;\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
-\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
@@ -65,6 +76,11 @@ namespace DTXMania
                        //this.bIsAutoPlay.Guitar = CDTXMania.ConfigIni.bAutoPlay.Guitar;\r
                        //this.bIsAutoPlay.Bass = CDTXMania.ConfigIni.bAutoPlay.Bass;\r
                        this.bIsAutoPlay = CDTXMania.ConfigIni.bAutoPlay;                                                                       // #24239 2011.1.23 yyagi\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
@@ -90,6 +106,8 @@ namespace DTXMania
                        if ( !base.b活性化してない )\r
                        {\r
                                CDTXMania.tテクスチャの解放( ref this.tx背景 );\r
+\r
+                               CDTXMania.tテクスチャの解放( ref this.txヒットバー );\r
                                CDTXMania.tテクスチャの解放( ref this.txWailing枠 );\r
                                base.OnManagedリソースの解放();\r
                        }\r
@@ -263,6 +281,8 @@ namespace DTXMania
 \r
                protected CAct演奏AVI actAVI;\r
                protected CAct演奏BGA actBGA;\r
+\r
+               protected CAct演奏Combo共通 actCombo;\r
                protected CActFIFOBlack actFI;\r
                protected CActFIFOBlack actFO;\r
                protected CActFIFOWhite actFOClear;\r
@@ -296,15 +316,25 @@ namespace DTXMania
                protected STDGBVALUE<STHITCOUNTOFRANK> nヒット数・Auto含まない;\r
                protected STDGBVALUE<STHITCOUNTOFRANK> nヒット数・Auto含む;\r
                protected int n現在のトップChip = -1;\r
+               protected int[] n最後に再生したBGMの実WAV番号 = new int[ 50 ];\r
+               protected int n最後に再生したHHのチャンネル番号;\r
 \r
+               protected int n最後に再生したギターの実WAV番号;\r
+               protected int n最後に再生したベースの実WAV番号;\r
+       \r
                protected STDGBVALUE<Queue<CDTX.CChip>> queWailing;\r
                protected STDGBVALUE<CDTX.CChip> r現在の歓声Chip;\r
-\r
+               protected CDTX.CChip r現在の空うちギターChip;\r
+               protected STKARAUCHI r現在の空うちドラムChip;\r
+               protected CDTX.CChip r現在の空うちベースChip;\r
                protected CDTX.CChip r次にくるギターChip;\r
                protected CDTX.CChip r次にくるベースChip;\r
                protected CTexture txWailing枠;\r
 \r
+               protected CTexture txヒットバー;\r
+\r
                protected CTexture tx背景;\r
+\r
                protected STDGBVALUE<int> nInputAdjustTimeMs;           // #23580 2011.1.3 yyagi\r
                protected CConfigIni.STAUTOPLAY bIsAutoPlay;            // #24239 2011.1.23 yyagi\r
 \r
@@ -751,7 +781,10 @@ namespace DTXMania
                                this.actGauge.On進行描画();\r
                        }\r
                }\r
-\r
+               protected void t進行描画・コンボ()\r
+               {\r
+                       this.actCombo.On進行描画();\r
+               }\r
                protected void t進行描画・スコア()\r
                {\r
                        this.actScore.On進行描画();\r
@@ -759,9 +792,12 @@ namespace DTXMania
 \r
                protected void t進行描画・チップアニメ()\r
                {\r
-                       for ( int i = 0; i < 3; i++ )\r
+                       for ( int i = 0; i < 3; i++ )                   // drums: 0-3 gt/bs: 1-3\r
                        {\r
-                               this.ctチップ模様アニメ[ i ].t進行Loop();\r
+                               if ( this.ctチップ模様アニメ[ i ] != null )\r
+                               {\r
+                                       this.ctチップ模様アニメ[ i ].t進行Loop();\r
+                               }\r
                        }\r
                        this.ctWailingチップ模様アニメ.t進行Loop();\r
                }\r
@@ -818,6 +854,21 @@ namespace DTXMania
                                CDTXMania.app.Device.Clear( ClearFlags.ZBuffer | ClearFlags.Target, Color.Black, 0f, 0 );\r
                        }\r
                }\r
+\r
+               protected 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
                protected void t進行描画・判定文字列()\r
                {\r
                        this.actJudgeString.On進行描画();\r
index 258656e..73fe811 100644 (file)
@@ -10,26 +10,26 @@ namespace DTXMania
 \r
                protected override void tコンボ表示・ギター( int nCombo値, int nジャンプインデックス )\r
                {\r
-                       int num = 230;\r
-                       int num2 = CDTXMania.ConfigIni.bReverse.Guitar ? 0x103 : 150;\r
+                       int x = 230;\r
+                       int y = CDTXMania.ConfigIni.bReverse.Guitar ? 0x103 : 150;\r
                        if( base.txCOMBOギター != null )\r
                        {\r
                                base.txCOMBOギター.n透明度 = 0xff;\r
                        }\r
-                       base.tコンボ表示・ベース( nCombo値, num, num2, nジャンプインデックス );\r
+                       base.tコンボ表示・ベース( nCombo値, x, y, nジャンプインデックス );\r
                }\r
                protected override void tコンボ表示・ドラム( int nCombo値, int nジャンプインデックス )\r
                {\r
                }\r
                protected override void tコンボ表示・ベース( int nCombo値, int nジャンプインデックス )\r
                {\r
-                       int num = 410;\r
-                       int num2 = CDTXMania.ConfigIni.bReverse.Bass ? 0x103 : 150;\r
+                       int x = 410;\r
+                       int y = CDTXMania.ConfigIni.bReverse.Bass ? 0x103 : 150;\r
                        if( base.txCOMBOギター != null )\r
                        {\r
                                base.txCOMBOギター.n透明度 = 0xff;\r
                        }\r
-                       base.tコンボ表示・ベース( nCombo値, num, num2, nジャンプインデックス );\r
+                       base.tコンボ表示・ベース( nCombo値, x, y, nジャンプインデックス );\r
                }\r
        }\r
 }\r
index d752f17..5e2d4c9 100644 (file)
@@ -170,22 +170,23 @@ namespace DTXMania
                {\r
                        //this.eフェードアウト完了時の戻り値 = E演奏画面の戻り値.継続;\r
                        //this.n現在のトップChip = ( CDTXMania.DTX.listChip.Count > 0 ) ? 0 : -1;\r
-                       this.n最後に再生したHHの実WAV番号 = -1;\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.n最後に再生したHHの実WAV番号 = -1;\r
+                       this.L最後に再生したHHの実WAV番号 = new List<int>( 16 );\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 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
@@ -214,12 +215,10 @@ namespace DTXMania
                        //this.bIsAutoPlay.Guitar = CDTXMania.ConfigIni.bAutoPlay.Guitar;\r
                        //this.bIsAutoPlay.Bass = CDTXMania.ConfigIni.bAutoPlay.Bass;\r
 \r
-                       if ( CDTXMania.ConfigIni.bIsSwappedGuitarBass ) // #24063 2011.1.24 yyagi Gt/Bsの譜面情報入れ替え\r
-                       {\r
-                               CDTXMania.DTX.SwapGuitarBassInfos();\r
-\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 OnManagedリソースの作成()\r
                {\r
@@ -238,7 +237,7 @@ namespace DTXMania
                        {\r
                                //CDTXMania.tテクスチャの解放( ref this.tx背景 );\r
                                CDTXMania.tテクスチャの解放( ref this.txチップ );\r
-                               CDTXMania.tテクスチャの解放( ref this.txヒットバー );\r
+                               //CDTXMania.tテクスチャの解放( ref this.txヒットバー );\r
                                //CDTXMania.tテクスチャの解放( ref this.txWailing枠 );\r
                                base.OnManagedリソースの解放();\r
                        }\r
@@ -255,6 +254,7 @@ namespace DTXMania
                                        CDTXMania.Timer.tリセット();\r
                                        this.ctチップ模様アニメ.Guitar = new CCounter( 0, 0x17, 20, CDTXMania.Timer );\r
                                        this.ctチップ模様アニメ.Bass = new CCounter( 0, 0x17, 20, CDTXMania.Timer );\r
+                                       this.ctチップ模様アニメ[ 0 ] = null;\r
                                        this.ctWailingチップ模様アニメ = new CCounter( 0, 4, 50, CDTXMania.Timer );\r
                                        base.eフェーズID = CStage.Eフェーズ.共通_フェードイン;\r
                                        this.actFI.tフェードイン開始();\r
@@ -537,7 +537,7 @@ namespace DTXMania
                //private CAct演奏AVI actAVI;\r
                //private CAct演奏BGA actBGA;\r
                private CAct演奏Guitarチップファイア actChipFire;\r
-               private CAct演奏Guitarコンボ actCombo;\r
+               //private CAct演奏Guitarコンボ actCombo;\r
                //private CActFIFOBlack actFI;\r
                //private CActFIFOBlack actFO;\r
                //private CActFIFOWhite actFOClear;\r
@@ -569,21 +569,22 @@ namespace DTXMania
                //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 int n最後に再生したHHの実WAV番号;\r
-               private int n最後に再生したギターの実WAV番号;\r
-               private int n最後に再生したベースの実WAV番号;\r
+               //private int[] n最後に再生したBGMの実WAV番号 = new int[ 50 ];\r
+               //private int n最後に再生したHHのチャンネル番号;\r
+               //private int n最後に再生したHHの実WAV番号;\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 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ヒットバー;\r
                //private CTexture tx背景;\r
                // private STDGBVALUE<int> nInputAdjustTimeMs;          // #23580 2011.1.3 yyagi\r
                //private STDGBVALUE<bool> bIsAutoPlay;                         // #24239 2011.1.23 yyagi\r
@@ -851,38 +852,65 @@ namespace DTXMania
                                switch( part )\r
                                {\r
                                        case E楽器パート.DRUMS:\r
-                                               if( CDTXMania.ConfigIni.bドラム打音を発声する )\r
                                                {\r
                                                        int index = pChip.nチャンネル番号;\r
-                                                       if( ( index >= 0x11 ) && ( index <= 0x1a ) )\r
+                                                       if ( ( index >= 0x11 ) && ( index <= 0x1a ) )\r
                                                        {\r
                                                                index -= 0x11;\r
                                                        }\r
                                                        else\r
                                                        {\r
-                                                               if( ( index < 0x31 ) || ( index > 0x3a ) )\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 ) && ( ( index == 0 ) || ( ( ( index == 7 ) && ( this.n最後に再生したHHのチャンネル番号 != 0x18 ) ) && ( this.n最後に再生したHHのチャンネル番号 != 0x38 ) ) ) )\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
-#if TEST_NOTEOFFMODE   // 2011.1.1 yyagi TEST\r
-                                                               if (CDTXMania.DTX.bHH演奏で直前のHHを消音する) {\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
-                                                                       CDTXMania.DTX.tWavの再生停止(this.n最後に再生したHHの実WAV番号);\r
-#if TEST_NOTEOFFMODE   // 2011.1.1 yyagi TEST\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の実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
-                                               return;\r
+\r
 \r
                                        case E楽器パート.GUITAR:\r
 #if TEST_NOTEOFFMODE   // 2011.1.1 yyagi TEST\r
@@ -1143,25 +1171,25 @@ namespace DTXMania
                }\r
                private void t進行描画・ギターベース判定ライン()\r
                {\r
-                       if( ( CDTXMania.ConfigIni.eDark != Eダークモード.FULL ) && CDTXMania.ConfigIni.bGuitar有効 )\r
+                       if ( ( CDTXMania.ConfigIni.eDark != Eダークモード.FULL ) && CDTXMania.ConfigIni.bGuitar有効 )\r
                        {\r
-                               if( CDTXMania.DTX.bチップがある.Guitar )\r
+                               if ( CDTXMania.DTX.bチップがある.Guitar )\r
                                {\r
                                        int y = ( CDTXMania.ConfigIni.bReverse.Guitar ? 0x171 : 40 ) - 3;\r
-                                       for( int i = 0; i < 4; i++ )\r
+                                       for ( int i = 0; i < 4; i++ )\r
                                        {\r
-                                               if( this.txヒットバー != null )\r
+                                               if ( this.txヒットバー != null )\r
                                                {\r
                                                        this.txヒットバー.t2D描画( CDTXMania.app.Device, 0x17 + ( 0x1c * i ), y, new Rectangle( 0, i * 8, 0x1c, 8 ) );\r
                                                }\r
                                        }\r
                                }\r
-                               if( CDTXMania.DTX.bチップがある.Bass )\r
+                               if ( CDTXMania.DTX.bチップがある.Bass )\r
                                {\r
                                        int num3 = ( CDTXMania.ConfigIni.bReverse.Bass ? 0x171 : 40 ) - 3;\r
-                                       for( int j = 0; j < 4; j++ )\r
+                                       for ( int j = 0; j < 4; j++ )\r
                                        {\r
-                                               if( this.txヒットバー != null )\r
+                                               if ( this.txヒットバー != null )\r
                                                {\r
                                                        this.txヒットバー.t2D描画( CDTXMania.app.Device, 0x1dd + ( 0x1c * j ), num3, new Rectangle( 0, j * 8, 0x1c, 8 ) );\r
                                                }\r
@@ -1176,10 +1204,10 @@ namespace DTXMania
                //        this.actGauge.On進行描画();\r
                //    }\r
                //}\r
-               private void t進行描画・コンボ()\r
-               {\r
-                       this.actCombo.On進行描画();\r
-               }\r
+               //private void t進行描画・コンボ()\r
+               //{\r
+               //    this.actCombo.On進行描画();\r
+               //}\r
                //private void t進行描画・スコア()\r
                //{\r
                //    this.actScore.On進行描画();\r
index 53a8a74..97c6e21 100644 (file)
@@ -10,12 +10,11 @@ namespace DTXMania
 \r
                protected override void tコンボ表示・ギター( int nCombo値, int nジャンプインデックス )\r
                {\r
-                       int num;\r
-                       int num2;\r
+                       int x, y;\r
                        if( CDTXMania.DTX.bチップがある.Bass )\r
                        {\r
-                               num = 0x222;\r
-                               num2 = CDTXMania.ConfigIni.bReverse.Guitar ? 0xaf : 270;\r
+                               x = 0x222;\r
+                               y = CDTXMania.ConfigIni.bReverse.Guitar ? 0xaf : 270;\r
                                if( base.txCOMBOギター != null )\r
                                {\r
                                        base.txCOMBOギター.n透明度 = 120;\r
@@ -23,14 +22,14 @@ namespace DTXMania
                        }\r
                        else\r
                        {\r
-                               num = 0x1c0;\r
-                               num2 = CDTXMania.ConfigIni.bReverse.Guitar ? 0xee : 0xcf;\r
+                               x = 0x1c0;\r
+                               y = CDTXMania.ConfigIni.bReverse.Guitar ? 0xee : 0xcf;\r
                                if( base.txCOMBOギター != null )\r
                                {\r
                                        base.txCOMBOギター.n透明度 = 0xff;\r
                                }\r
                        }\r
-                       base.tコンボ表示・ギター( nCombo値, num, num2, nジャンプインデックス );\r
+                       base.tコンボ表示・ギター( nCombo値, x, y, nジャンプインデックス );\r
                }\r
                protected override void tコンボ表示・ドラム( int nCombo値, int nジャンプインデックス )\r
                {\r
@@ -38,13 +37,13 @@ namespace DTXMania
                }\r
                protected override void tコンボ表示・ベース( int nCombo値, int nジャンプインデックス )\r
                {\r
-                       int num = 0x1b5;\r
-                       int num2 = CDTXMania.ConfigIni.bReverse.Bass ? 0xaf : 270;\r
+                       int x = 0x1b5;\r
+                       int y = CDTXMania.ConfigIni.bReverse.Bass ? 0xaf : 270;\r
                        if( base.txCOMBOギター != null )\r
                        {\r
                                base.txCOMBOギター.n透明度 = 120;\r
                        }\r
-                       base.tコンボ表示・ベース( nCombo値, num, num2, nジャンプインデックス );\r
+                       base.tコンボ表示・ベース( nCombo値, x, y, nジャンプインデックス );\r
                }\r
        }\r
 }\r
index 2d32542..261ad3d 100644 (file)
@@ -18,25 +18,24 @@ namespace DTXMania
 \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.eチャンネルtoパッド = new Eパッド[ 12 ];\r
+                       this.eチャンネルtoパッド[ 1 ] = Eパッド.SD;\r
+                       this.eチャンネルtoパッド[ 2 ] = Eパッド.BD;\r
+                       this.eチャンネルtoパッド[ 3 ] = Eパッド.HT;\r
+                       this.eチャンネルtoパッド[ 4 ] = Eパッド.LT;\r
+                       this.eチャンネルtoパッド[ 5 ] = Eパッド.CY;\r
+                       this.eチャンネルtoパッド[ 6 ] = Eパッド.FT;\r
+                       this.eチャンネルtoパッド[ 7 ] = Eパッド.HHO;\r
+                       this.eチャンネルtoパッド[ 8 ] = Eパッド.RD;\r
+                       this.eチャンネルtoパッド[ 9 ] = Eパッド.UNKNOWN;\r
+                       this.eチャンネルtoパッド[ 10 ] = Eパッド.UNKNOWN;\r
+                       this.eチャンネルtoパッド[ 11 ] = Eパッド.LC;\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,14 +72,14 @@ namespace DTXMania
                        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.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最大コンボ数 = this.actCombo.n現在のコンボ数.Drums最高値;\r
                                Drums.n全チップ数 = CDTXMania.DTX.n可視チップ数.Drums;\r
                                for( int i = 0; i < 10; i++ )\r
                                {\r
@@ -125,14 +124,14 @@ namespace DTXMania
                        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.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最大コンボ数 = this.actCombo.n現在のコンボ数.Guitar最高値;\r
                                Guitar.n全チップ数 = CDTXMania.DTX.n可視チップ数.Guitar;\r
                                for( int i = 0; i < 10; i++ )\r
                                {\r
@@ -177,14 +176,14 @@ namespace DTXMania
                        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.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最大コンボ数 = this.actCombo.n現在のコンボ数.Bass最高値;\r
                                Bass.n全チップ数 = CDTXMania.DTX.n可視チップ数.Bass;\r
                                for( int i = 0; i < 10; i++ )\r
                                {\r
@@ -256,21 +255,21 @@ namespace DTXMania
                        // 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.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 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
@@ -301,11 +300,10 @@ namespace DTXMania
             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
@@ -343,7 +341,7 @@ namespace DTXMania
                        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
@@ -594,7 +592,7 @@ namespace DTXMania
                //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演奏DrumsコンボDGB actCombo;\r
                private CAct演奏DrumsDanger actDANGER;\r
                //private CActFIFOBlack actFI;\r
                //private CActFIFOBlack actFO;\r
@@ -634,21 +632,21 @@ namespace DTXMania
                //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 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 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 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ヒットバー;\r
                private CTexture txヒットバーGB;\r
                private CTexture txレーンフレームGB;\r
                //private CTexture tx背景;\r
@@ -1046,18 +1044,18 @@ namespace DTXMania
                                        case E楽器パート.DRUMS:\r
                                                {\r
                                                        int index = pChip.nチャンネル番号;\r
-                                                       if( ( index < 0x11 ) || ( index > 0x1a ) )\r
+                                                       if ( ( index >= 0x11 ) && ( index <= 0x1a ) )\r
+                                                       {\r
+                                                               index -= 0x11;\r
+                                                       }\r
+                                                       else\r
                                                        {\r
-                                                               if( ( index < 0x31 ) || ( index > 0x3a ) )\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
@@ -1216,11 +1214,11 @@ namespace DTXMania
                                                        case E判定.Perfect:\r
                                                        case E判定.Great:\r
                                                        case E判定.Good:\r
-                                                               this.actCOMBO.n現在のコンボ数.Drums++;\r
+                                                               this.actCombo.n現在のコンボ数.Drums++;\r
                                                                break;\r
 \r
                                                        default:\r
-                                                               this.actCOMBO.n現在のコンボ数.Drums = 0;\r
+                                                               this.actCombo.n現在のコンボ数.Drums = 0;\r
                                                                break;\r
                                                }\r
                                        }\r
@@ -1250,11 +1248,11 @@ namespace DTXMania
                                                case E判定.Perfect:\r
                                                case E判定.Great:\r
                                                case E判定.Good:\r
-                                                       this.actCOMBO.n現在のコンボ数.Guitar++;\r
+                                                       this.actCombo.n現在のコンボ数.Guitar++;\r
                                                        break;\r
 \r
                                                default:\r
-                                                       this.actCOMBO.n現在のコンボ数.Guitar = 0;\r
+                                                       this.actCombo.n現在のコンボ数.Guitar = 0;\r
                                                        break;\r
                                        }\r
                                        break;\r
@@ -1284,11 +1282,11 @@ namespace DTXMania
                                                case E判定.Perfect:\r
                                                case E判定.Great:\r
                                                case E判定.Good:\r
-                                                       this.actCOMBO.n現在のコンボ数.Bass++;\r
+                                                       this.actCombo.n現在のコンボ数.Bass++;\r
                                                        break;\r
 \r
                                                default:\r
-                                                       this.actCOMBO.n現在のコンボ数.Bass = 0;\r
+                                                       this.actCombo.n現在のコンボ数.Bass = 0;\r
                                                        break;\r
                                        }\r
                                        break;\r
@@ -1301,13 +1299,13 @@ namespace DTXMania
                                int nCombos = 0;\r
                                switch (pChip.e楽器パート) {\r
                                        case E楽器パート.DRUMS:\r
-                                               nCombos = this.actCOMBO.n現在のコンボ数.Drums;\r
+                                               nCombos = this.actCombo.n現在のコンボ数.Drums;\r
                                                break;\r
                                        case E楽器パート.GUITAR:\r
-                                               nCombos = this.actCOMBO.n現在のコンボ数.Guitar;\r
+                                               nCombos = this.actCombo.n現在のコンボ数.Guitar;\r
                                                break;\r
                                        case E楽器パート.BASS:\r
-                                               nCombos = this.actCOMBO.n現在のコンボ数.Bass;\r
+                                               nCombos = this.actCombo.n現在のコンボ数.Bass;\r
                                                break;\r
                                }\r
                                long nScore = this.actScore.Get( pChip.e楽器パート );\r
@@ -1342,17 +1340,17 @@ namespace DTXMania
                                        {\r
                                                this.actJudgeString.Start( nLane, CDTXMania.ConfigIni.bAutoPlay[ nLane ] ? E判定.Auto : E判定.Miss, 999 );\r
                                        }\r
-                                       this.actCOMBO.n現在のコンボ数.Drums = 0;\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
+                                       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
+                                       this.actCombo.n現在のコンボ数.Bass = 0;\r
                                        return;\r
                        }\r
                }\r
@@ -1598,26 +1596,26 @@ namespace DTXMania
                }\r
                private void t進行描画・ギターベース判定ライン()\r
                {\r
-                       if( ( CDTXMania.ConfigIni.eDark != Eダークモード.FULL ) && CDTXMania.ConfigIni.bGuitar有効 )\r
+                       if ( ( CDTXMania.ConfigIni.eDark != Eダークモード.FULL ) && CDTXMania.ConfigIni.bGuitar有効 )\r
                        {\r
-                               if( CDTXMania.DTX.bチップがある.Guitar )\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
+                                       for ( int i = 0; i < 3; i++ )\r
                                        {\r
-                                               if( this.txヒットバーGB != null )\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
+                               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
+                                       for ( int j = 0; j < 3; j++ )\r
                                        {\r
-                                               if( this.txヒットバーGB != null )\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
@@ -1642,10 +1640,10 @@ namespace DTXMania
             }\r
         }\r
         //------------------------------------------------\r
-               private void t進行描画・コンボ()\r
-               {\r
-                       this.actCOMBO.On進行描画();\r
-               }\r
+               //private void t進行描画・コンボ()\r
+               //{\r
+               //    this.actCOMBO.On進行描画();\r
+               //}\r
                //private void t進行描画・スコア()\r
                //{\r
                //    this.actScore.On進行描画();\r
@@ -2230,7 +2228,7 @@ namespace DTXMania
                                                                        {\r
                                                                                this.bフィルイン中 = false;\r
                                                                        }\r
-                                                                       if( ( ( this.actCOMBO.n現在のコンボ数.Drums > 0 ) || configIni.bドラムが全部オートプレイである ) && configIni.b歓声を発声する )\r
+                                                                       if( ( ( this.actCombo.n現在のコンボ数.Drums > 0 ) || configIni.bドラムが全部オートプレイである ) && configIni.b歓声を発声する )\r
                                                                        {\r
                                                                                if( this.r現在の歓声Chip.Drums != null )\r
                                                                                {\r
@@ -2651,20 +2649,20 @@ namespace DTXMania
                //        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進行描画・判定ライン()\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
@@ -2827,7 +2825,7 @@ namespace DTXMania
                                                                        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
+                                                                               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
@@ -4173,7 +4171,7 @@ namespace DTXMania
                                                                        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
+                                                                               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