OSDN Git Service

#36043 演奏結果の格納を 演奏画面共通で行うようにメソッド並びに CDTXMania の処理を変更。
authorchnmr0 <chnmr0@16f42ceb-6dc6-49c8-ba94-f2d53467949d>
Sat, 27 Feb 2016 11:35:00 +0000 (11:35 +0000)
committerchnmr0 <chnmr0@16f42ceb-6dc6-49c8-ba94-f2d53467949d>
Sat, 27 Feb 2016 11:35:00 +0000 (11:35 +0000)
#36070 一部のメソッドとフィールドを統合。

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

19 files changed:
DTXManiaプロジェクト/コード/スコア、曲/CDTX.cs
DTXManiaプロジェクト/コード/スコア、曲/CScoreIni.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/CStage演奏画面共通.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/CWailingChip.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/C演奏判定ライン座標共通.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/ギター画面/CAct演奏GuitarWailingBonus.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/ギター画面/CAct演奏Guitarゲージ.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/ギター画面/CAct演奏Guitarチップファイア.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/ギター画面/CAct演奏GuitarレーンフラッシュGB.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/ギター画面/CAct演奏Guitar判定文字列.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/ギター画面/CStage演奏ギター画面.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/ドラム画面/CAct演奏DrumsコンボDGB.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/ドラム画面/CAct演奏DrumsチップファイアGB.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/ドラム画面/CAct演奏DrumsレーンフラッシュGB.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/ドラム画面/CAct演奏Drums判定文字列.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/ドラム画面/CStage演奏ドラム画面.cs
DTXManiaプロジェクト/コード/ステージ/08.結果/CActResultImage.cs
DTXManiaプロジェクト/コード/ステージ/08.結果/CStage結果.cs
DTXManiaプロジェクト/コード/全体/CDTXMania.cs

index 41235a7..18d40c4 100644 (file)
@@ -829,8 +829,6 @@ namespace DTXMania
                                {\r
                                        if ((cwav.rSound[i] != null) && cwav.rSound[i].b一時停止中)\r
                                        {\r
-                                               //long num1 = cwav.n一時停止時刻[ i ];\r
-                                               //long num2 = cwav.n再生開始時刻[ i ];\r
                                                cwav.n再生開始時刻[i] += CSound管理.rc演奏用タイマ.nシステム時刻ms - cwav.n一時停止時刻[i];\r
                                        }\r
                                }\r
index 4043981..84115a8 100644 (file)
@@ -1592,14 +1592,14 @@ namespace DTXMania
                        bGuitarを更新する = CDTXMania.Instance.ConfigIni.bGuitar有効 && CDTXMania.Instance.DTX.bチップがある.Guitar && !CDTXMania.Instance.ConfigIni.bギターが全部オートプレイである;\r
                        bBassを更新する =   CDTXMania.Instance.ConfigIni.bGuitar有効 && CDTXMania.Instance.DTX.bチップがある.Bass   && !CDTXMania.Instance.ConfigIni.bベースが全部オートプレイである;\r
                }\r
-               internal static int t総合ランク値を計算して返す( C演奏記録 Drums, C演奏記録 Guitar, C演奏記録 Bass )\r
+               internal static int t総合ランク値を計算して返す( STDGBVALUE<C演奏記録> record )\r
                {\r
-                       int nTotal   = Drums.n全チップ数              + Guitar.n全チップ数              + Bass.n全チップ数;\r
-                       int nPerfect = Drums.nPerfect数_Auto含まない + Guitar.nPerfect数_Auto含まない + Bass.nPerfect数_Auto含まない;    // #24569 2011.3.1 yyagi: to calculate result rank without AUTO chips\r
-                       int nGreat =   Drums.nGreat数_Auto含まない + Guitar.nGreat数_Auto含まない + Bass.nGreat数_Auto含まない;          //\r
-                       int nGood =    Drums.nGood数_Auto含まない + Guitar.nGood数_Auto含まない + Bass.nGood数_Auto含まない;             //\r
-                       int nPoor =    Drums.nPoor数_Auto含まない + Guitar.nPoor数_Auto含まない + Bass.nPoor数_Auto含まない;             //\r
-                       int nMiss =    Drums.nMiss数_Auto含まない + Guitar.nMiss数_Auto含まない + Bass.nMiss数_Auto含まない;             //\r
+                       int nTotal   = record.Drums.n全チップ数              + record.Guitar.n全チップ数              + record.Bass.n全チップ数;\r
+                       int nPerfect = record.Drums.nPerfect数_Auto含まない + record.Guitar.nPerfect数_Auto含まない + record.Bass.nPerfect数_Auto含まない;       // #24569 2011.3.1 yyagi: to calculate result rank without AUTO chips\r
+                       int nGreat =   record.Drums.nGreat数_Auto含まない + record.Guitar.nGreat数_Auto含まない + record.Bass.nGreat数_Auto含まない;             //\r
+                       int nGood =    record.Drums.nGood数_Auto含まない + record.Guitar.nGood数_Auto含まない + record.Bass.nGood数_Auto含まない;                //\r
+                       int nPoor =    record.Drums.nPoor数_Auto含まない + record.Guitar.nPoor数_Auto含まない + record.Bass.nPoor数_Auto含まない;                //\r
+                       int nMiss =    record.Drums.nMiss数_Auto含まない + record.Guitar.nMiss数_Auto含まない + record.Bass.nMiss数_Auto含まない;                //\r
                        return tランク値を計算して返す( nTotal, nPerfect, nGreat, nGood, nPoor, nMiss );\r
                }\r
 \r
index 1c2b1db..8d03b0b 100644 (file)
@@ -19,13 +19,115 @@ namespace DTXMania
        /// </summary>\r
        internal abstract partial class CStage演奏画面共通 : CStage\r
        {\r
-               // メソッド\r
+               // members\r
+\r
+               #region [Member_Activities]\r
+               protected CAct演奏AVI actAVI;\r
+               protected CAct演奏BGA actBGA;\r
+               protected CAct演奏チップファイアGB actChipFireGB;\r
+               protected CAct演奏Combo共通 actCombo;\r
+               protected CAct演奏Danger共通 actDANGER;\r
+               protected CActFIFOBlack actFI;\r
+               protected CActFIFOBlack actFO;\r
+               protected CActFIFOWhite actFOClear;\r
+               protected CAct演奏ゲージ共通 actGauge;\r
+               protected CAct演奏判定文字列共通 actJudgeString;\r
+               protected CAct演奏DrumsレーンフラッシュD actLaneFlushD;\r
+               protected CAct演奏レーンフラッシュGB共通 actLaneFlushGB;\r
+               protected CAct演奏パネル文字列 actPanel;\r
+               protected CAct演奏演奏情報 actPlayInfo;\r
+               protected CAct演奏RGB共通 actRGB;\r
+               protected CAct演奏スコア共通 actScore;\r
+               protected CAct演奏ステージ失敗 actStageFailed;\r
+               protected CAct演奏ステータスパネル共通 actStatusPanels;\r
+               protected CAct演奏WailingBonus共通 actWailingBonus;\r
+               protected CAct演奏スクロール速度 act譜面スクロール速度;\r
+               protected CAct演奏DrumsチップファイアD actChipFireD; // drums only\r
+               protected CAct演奏Drumsグラフ actGraph;   // drums only #24074 2011.01.23 add ikanick\r
+               protected CAct演奏Drumsパッド actPad; // drums only\r
+\r
+               #endregion\r
+\r
+               public C演奏判定ライン座標共通 演奏判定ライン座標;// #31602 2013.6.23 yyagi 表示遅延対策として、判定ラインの表示位置をずらす機能を追加する\r
+\r
+               protected bool bPAUSE;\r
+               protected STDGBVALUE<bool> b演奏にMIDI入力を使った;\r
+               protected STDGBVALUE<bool> b演奏にキーボードを使った;\r
+               protected STDGBVALUE<bool> b演奏にジョイパッドを使った;\r
+               protected STDGBVALUE<bool> b演奏にマウスを使った;\r
+               protected CCounter ctWailingチップ模様アニメ;\r
+               protected STDGBVALUE<CCounter> ctチップ模様アニメ;\r
+\r
+               protected E演奏画面の戻り値 eフェードアウト完了時の戻り値;\r
 \r
-               #region [ t演奏結果を格納する_ドラム() ]\r
-               public void t演奏結果を格納する_ドラム(out CScoreIni.C演奏記録 Drums)\r
+               protected readonly int[] nチャンネル0Atoパッド08 = new int[] { 1, 2, 3, 4, 5, 7, 6, 1, 8, 0 };\r
+               public static readonly int[] nチャンネル0Atoレーン07 = new int[] { 1, 2, 3, 4, 5, 7, 6, 1, 7, 0 };\r
+               protected readonly Ech定義[] nパッド0Atoチャンネル0A = new Ech定義[]\r
                {\r
-                       Drums = new CScoreIni.C演奏記録();\r
+                       Ech定義.HiHatClose,\r
+                       Ech定義.Snare,\r
+                       Ech定義.BassDrum,\r
+                       Ech定義.HighTom,\r
+                       Ech定義.LowTom,\r
+                       Ech定義.FloorTom,\r
+                       Ech定義.Cymbal,\r
+                       Ech定義.HiHatOpen,\r
+                       Ech定義.RideCymbal,\r
+                       Ech定義.LeftCymbal\r
+               };\r
+\r
+               protected readonly int[] nパッド0Atoパッド08 = new int[] { 1, 2, 3, 4, 5, 6, 7, 1, 8, 0 };        // パッド画像のヒット処理用\r
+               protected readonly int[] nパッド0Atoレーン07 = new int[] { 1, 2, 3, 4, 5, 6, 7, 1, 7, 0 };\r
+               protected STDGBVALUE<CHitCountOfRank> nヒット数_Auto含まない;\r
+               protected STDGBVALUE<CHitCountOfRank> nヒット数_Auto含む;\r
+               protected STDGBVALUE<CHitCountOfRank> nヒット数_TargetGhost; // #35411 2015.08.21 chnmr0 add\r
+               protected STDGBVALUE<int> nコンボ数_TargetGhost;\r
+               protected STDGBVALUE<int> n最大コンボ数_TargetGhost;\r
+               protected int n現在のトップChip = -1;\r
+               protected int[] n最後に再生したBGMの実WAV番号 = new int[50];\r
+               protected Ech定義 e最後に再生したHHのチャンネル番号;\r
+               protected List<int> L最後に再生したHHの実WAV番号;            // #23921 2011.1.4 yyagi: change "int" to "List<int>", for recording multiple wav No.\r
+               protected STLANEVALUE<int> n最後に再生した実WAV番号;  // #26388 2011.11.8 yyagi: change "n最後に再生した実WAV番号.GUITAR" and "n最後に再生した実WAV番号.BASS"\r
+\r
+               protected volatile Queue<STMixer> queueMixerSound;              // #24820 2013.1.21 yyagi まずは単純にAdd/Removeを1個のキューでまとめて管理するやり方で設計する\r
+               protected DateTime dtLastQueueOperation;\r
+               protected bool bIsDirectSound;\r
+               protected double db再生速度;\r
+               protected bool bValidScore;\r
+               protected STDGBVALUE<bool> bReverse;\r
+\r
+               protected STDGBVALUE<Queue<CChip>> queWailing;\r
+               protected STDGBVALUE<CChip> r現在の歓声Chip;\r
+               protected CChip[] r空打ちドラムチップ = new CChip[10];\r
+               protected CChip r現在の空うちギターChip;\r
+               protected ST空打ち r現在の空うちドラムChip;\r
+               protected CChip r現在の空うちベースChip;\r
+               protected CChip r次にくるギターChip;\r
+               protected CChip r次にくるベースChip;\r
+               protected CTexture txWailing枠;\r
+               protected CTexture txチップ;\r
+               protected CTexture txヒットバー;\r
+\r
+               protected CTexture tx背景;\r
 \r
+               protected STDGBVALUE<int> nInputAdjustTimeMs;           // #23580 2011.1.3 yyagi\r
+               protected STAUTOPLAY bIsAutoPlay;               // #24239 2011.1.23 yyagi\r
+               protected CInvisibleChip cInvisibleChip;\r
+               protected bool bUseOSTimer;\r
+               protected E判定表示優先度 e判定表示優先度;\r
+               protected CWailingChip共通[] cWailingChip;\r
+\r
+               private STDGBVALUE<CScoreIni.C演奏記録> record;\r
+\r
+               protected CTexture txレーンフレームGB; // drums only\r
+               protected bool bフィルイン中; // drums only\r
+\r
+               // メソッド\r
+               #region [ PlayRecordSave ]\r
+               private void t演奏結果を格納する_ドラム()\r
+               {\r
+                       record.Drums = new CScoreIni.C演奏記録();\r
+                       CScoreIni.C演奏記録 Drums = Record.Drums;\r
                        if (CDTXMania.Instance.DTX.bチップがある.Drums && !CDTXMania.Instance.ConfigIni.bギタレボモード)\r
                        {\r
                                Drums.nスコア = (long)this.actScore.Get(E楽器パート.DRUMS);\r
@@ -87,12 +189,10 @@ namespace DTXMania
                                Drums.bギターとベースを入れ替えた = CDTXMania.Instance.ConfigIni.bIsSwappedGuitarBass; // #35417 chnmr0 add\r
                        }\r
                }\r
-               #endregion\r
-               #region [ t演奏結果を格納する_ギター() ]\r
-               public void t演奏結果を格納する_ギター(out CScoreIni.C演奏記録 Guitar)\r
+               private void t演奏結果を格納する_ギター()\r
                {\r
-                       Guitar = new CScoreIni.C演奏記録();\r
-\r
+                       record.Guitar = new CScoreIni.C演奏記録();\r
+                       CScoreIni.C演奏記録 Guitar = Record.Guitar;\r
                        if (CDTXMania.Instance.DTX.bチップがある.Guitar)\r
                        {\r
                                Guitar.nスコア = (long)this.actScore.Get(E楽器パート.GUITAR);\r
@@ -153,12 +253,10 @@ namespace DTXMania
                                Guitar.bギターとベースを入れ替えた = CDTXMania.Instance.ConfigIni.bIsSwappedGuitarBass; // #35417 chnmr0 add\r
                        }\r
                }\r
-               #endregion\r
-               #region [ t演奏結果を格納する_ベース() ]\r
-               public void t演奏結果を格納する_ベース(out CScoreIni.C演奏記録 Bass)\r
+               private void t演奏結果を格納する_ベース()\r
                {\r
-                       Bass = new CScoreIni.C演奏記録();\r
-\r
+                       record.Bass = new CScoreIni.C演奏記録();\r
+                       CScoreIni.C演奏記録 Bass = Record.Bass;\r
                        if (CDTXMania.Instance.DTX.bチップがある.Bass)\r
                        {\r
                                Bass.nスコア = (long)this.actScore.Get(E楽器パート.BASS);\r
@@ -222,14 +320,10 @@ namespace DTXMania
                #endregion\r
 \r
                // CStage 実装\r
-\r
                public override void On活性化()\r
                {\r
-                       listChip = CDTXMania.Instance.DTX.listChip;\r
-                       listWAV = CDTXMania.Instance.DTX.listWAV;\r
-\r
                        this.eフェードアウト完了時の戻り値 = E演奏画面の戻り値.継続;\r
-                       this.n現在のトップChip = (listChip.Count > 0) ? 0 : -1;\r
+                       this.n現在のトップChip = (CDTXMania.Instance.DTX.listChip.Count > 0) ? 0 : -1;\r
                        this.L最後に再生したHHの実WAV番号 = new List<int>(16);\r
                        this.e最後に再生したHHのチャンネル番号 = 0;\r
                        this.n最後に再生した実WAV番号.Guitar = -1;\r
@@ -267,11 +361,9 @@ namespace DTXMania
 \r
                                this.nInputAdjustTimeMs[k] = CDTXMania.Instance.ConfigIni.nInputAdjustTimeMs[k];                        // #23580 2011.1.3 yyagi\r
                                //        2011.1.7 ikanick 修正\r
-                               //this.nJudgeLinePosY_delta[ k ] = CDTXMania.Instance.ConfigIni.nJudgeLinePosOffset[ k ];               // #31602 2013.6.23 yyagi\r
-\r
-                               this.演奏判定ライン座標.n判定位置[k] = CDTXMania.Instance.ConfigIni.e判定位置[k];\r
+                               this.演奏判定ライン座標.n判定位置[k] = CDTXMania.Instance.ConfigIni.e判定位置[k];//#31602 2013.6.23 yyagi\r
                                this.演奏判定ライン座標.nJudgeLinePosY_delta[k] = CDTXMania.Instance.ConfigIni.nJudgeLinePosOffset[k];\r
-                               this.bReverse[k] = CDTXMania.Instance.ConfigIni.bReverse[k];                                    //\r
+                               this.bReverse[k] = CDTXMania.Instance.ConfigIni.bReverse[k];\r
 \r
                        }\r
                        actCombo.演奏判定ライン座標 = 演奏判定ライン座標;\r
@@ -286,16 +378,9 @@ namespace DTXMania
                        base.On活性化();\r
                        this.tステータスパネルの選択();\r
                        this.tパネル文字列の設定();\r
-                       //this.演奏判定ライン座標();\r
 \r
                        this.bIsAutoPlay = CDTXMania.Instance.ConfigIni.bAutoPlay;                                                                      // #24239 2011.1.23 yyagi\r
-\r
-\r
-                       //this.bIsAutoPlay.Guitar = CDTXMania.Instance.ConfigIni.bギターが全部オートプレイである;\r
-                       //this.bIsAutoPlay.Bass = CDTXMania.Instance.ConfigIni.bベースが全部オートプレイである;\r
-                       //                      this.nRisky = CDTXMania.Instance.ConfigIni.nRisky;                                                                                      // #23559 2011.7.28 yyagi\r
                        actGauge.Init(CDTXMania.Instance.ConfigIni.nRisky);                                                                     // #23559 2011.7.28 yyagi\r
-                       this.nPolyphonicSounds = CDTXMania.Instance.ConfigIni.nPoliphonicSounds;\r
                        e判定表示優先度 = CDTXMania.Instance.ConfigIni.e判定表示優先度;\r
 \r
                        CDTXMania.Instance.Skin.tRemoveMixerAll();      // 効果音のストリームをミキサーから解除しておく\r
@@ -328,7 +413,7 @@ namespace DTXMania
                        }\r
 \r
                        #region [ 演奏開始前にmixer登録しておくべきサウンド(開幕してすぐに鳴らすことになるチップ音)を登録しておく ]\r
-                       foreach (CChip pChip in listChip)\r
+                       foreach (CChip pChip in CDTXMania.Instance.DTX.listChip)\r
                        {\r
                                //                              Debug.WriteLine( "CH=" + pChip.nチャンネル番号.ToString( "x2" ) + ", 整数値=" + pChip.n整数値 +  ", time=" + pChip.n発声時刻ms );\r
                                if (pChip.n発声時刻ms <= 0)\r
@@ -337,10 +422,10 @@ namespace DTXMania
                                        {\r
                                                pChip.bHit = true;\r
                                                //                                              Trace.TraceInformation( "first [DA] BAR=" + pChip.n発声位置 / 384 + " ch=" + pChip.nチャンネル番号.ToString( "x2" ) + ", wav=" + pChip.n整数値 + ", time=" + pChip.n発声時刻ms );\r
-                                               if (listWAV.ContainsKey(pChip.n整数値_内部番号))\r
+                                               if (CDTXMania.Instance.DTX.listWAV.ContainsKey(pChip.n整数値_内部番号))\r
                                                {\r
-                                                       CDTX.CWAV wc = listWAV[pChip.n整数値_内部番号];\r
-                                                       for (int i = 0; i < nPolyphonicSounds; i++)\r
+                                                       CDTX.CWAV wc = CDTXMania.Instance.DTX.listWAV[pChip.n整数値_内部番号];\r
+                                                       for (int i = 0; i < CDTXMania.Instance.ConfigIni.nPoliphonicSounds; i++)\r
                                                        {\r
                                                                if (wc.rSound[i] != null)\r
                                                                {\r
@@ -362,10 +447,6 @@ namespace DTXMania
                        {\r
                                CDTXMania.Instance.DTX.SwapGuitarBassInfos();\r
                        }\r
-                       //this.sw = new Stopwatch();\r
-                       //this.sw2 = new Stopwatch();\r
-                       //                      this.gclatencymode = GCSettings.LatencyMode;\r
-                       //                      GCSettings.LatencyMode = GCLatencyMode.Batch;   // 演奏画面中はGCを抑止する\r
                }\r
                public override void On非活性化()\r
                {\r
@@ -380,9 +461,6 @@ namespace DTXMania
                        this.ctチップ模様アニメ.Drums = null;\r
                        this.ctチップ模様アニメ.Guitar = null;\r
                        this.ctチップ模様アニメ.Bass = null;\r
-                       //listWAV.Clear();\r
-                       listWAV = null;\r
-                       listChip = null;\r
                        queueMixerSound.Clear();\r
                        queueMixerSound = null;\r
                        cInvisibleChip.Dispose();\r
@@ -411,112 +489,211 @@ namespace DTXMania
                                base.OnManagedリソースの解放();\r
                        }\r
                }\r
+               public override int On進行描画()\r
+               {\r
+                       if (!base.b活性化してない)\r
+                       {\r
+                               bool bIsFinishedPlaying = false;\r
+                               bool bIsFinishedFadeout = false;\r
 \r
-               // その他\r
+                               if (base.b初めての進行描画)\r
+                               {\r
+                                       this.PrepareAVITexture();\r
 \r
-               #region [ protected ]\r
-               //-----------------\r
-               protected CAct演奏AVI actAVI;\r
-               protected CAct演奏BGA actBGA;\r
+                                       CSound管理.rc演奏用タイマ.tリセット();\r
+                                       CDTXMania.Instance.Timer.tリセット();\r
+                                       if (!CDTXMania.Instance.ConfigIni.bギタレボモード)\r
+                                       {\r
+                                               this.ctチップ模様アニメ.Drums = new CCounter(0, 0x30, 10, CDTXMania.Instance.Timer);\r
+                                       }\r
+                                       this.ctチップ模様アニメ.Guitar = new CCounter(0, 0x17, 20, CDTXMania.Instance.Timer);\r
+                                       this.ctチップ模様アニメ.Bass = new CCounter(0, 0x17, 20, CDTXMania.Instance.Timer);\r
+                                       this.ctWailingチップ模様アニメ = new CCounter(0, 4, 50, CDTXMania.Instance.Timer);\r
 \r
-               protected CAct演奏チップファイアGB actChipFireGB;\r
-               protected CAct演奏Combo共通 actCombo;\r
-               protected CAct演奏Danger共通 actDANGER;\r
-               protected CActFIFOBlack actFI;\r
-               protected CActFIFOBlack actFO;\r
-               protected CActFIFOWhite actFOClear;\r
-               protected CAct演奏ゲージ共通 actGauge;\r
+                                       // this.actChipFireD.Start( Eレーン.HH );    // #31554 2013.6.12 yyagi\r
+                                       // 初チップヒット時のもたつき回避。最初にactChipFireD.Start()するときにJITが掛かって?\r
+                                       // ものすごく待たされる(2回目以降と比べると2,3桁tick違う)。そこで最初の画面フェードインの間に\r
+                                       // 一発Start()を掛けてJITの結果を生成させておく。\r
 \r
-               protected CAct演奏判定文字列共通 actJudgeString;\r
-               protected CAct演奏DrumsレーンフラッシュD actLaneFlushD;\r
-               protected CAct演奏レーンフラッシュGB共通 actLaneFlushGB;\r
-               protected CAct演奏パネル文字列 actPanel;\r
-               protected CAct演奏演奏情報 actPlayInfo;\r
-               protected CAct演奏RGB共通 actRGB;\r
-               protected CAct演奏スコア共通 actScore;\r
-               protected CAct演奏ステージ失敗 actStageFailed;\r
-               protected CAct演奏ステータスパネル共通 actStatusPanels;\r
-               protected CAct演奏WailingBonus共通 actWailingBonus;\r
-               protected CAct演奏スクロール速度 act譜面スクロール速度;\r
-               public C演奏判定ライン座標共通 演奏判定ライン座標;\r
-               protected bool bPAUSE;\r
-               protected STDGBVALUE<bool> b演奏にMIDI入力を使った;\r
-               protected STDGBVALUE<bool> b演奏にキーボードを使った;\r
-               protected STDGBVALUE<bool> b演奏にジョイパッドを使った;\r
-               protected STDGBVALUE<bool> b演奏にマウスを使った;\r
-               protected CCounter ctWailingチップ模様アニメ;\r
-               protected STDGBVALUE<CCounter> ctチップ模様アニメ;\r
+                                       base.eフェーズID = CStage.Eフェーズ.共通_フェードイン;\r
+                                       this.actFI.tフェードイン開始();\r
 \r
-               protected E演奏画面の戻り値 eフェードアウト完了時の戻り値;\r
+                                       if (CDTXMania.Instance.DTXVmode.Enabled)                        // DTXVモードなら\r
+                                       {\r
+                                               #region [ DTXV用の再生設定にする(全AUTOなど) ]\r
+                                               tDTXV用の設定();\r
+                                               #endregion\r
+                                               t演奏位置の変更(CDTXMania.Instance.DTXVmode.nStartBar);\r
+                                       }\r
 \r
-               protected readonly int[] nチャンネル0Atoパッド08 = new int[] { 1, 2, 3, 4, 5, 7, 6, 1, 8, 0 };\r
-               public static readonly int[] nチャンネル0Atoレーン07 = new int[] { 1, 2, 3, 4, 5, 7, 6, 1, 7, 0 };\r
-               protected readonly Ech定義[] nパッド0Atoチャンネル0A = new Ech定義[]\r
-               {\r
-                       Ech定義.HiHatClose,\r
-                       Ech定義.Snare,\r
-                       Ech定義.BassDrum,\r
-                       Ech定義.HighTom,\r
-                       Ech定義.LowTom,\r
-                       Ech定義.FloorTom,\r
-                       Ech定義.Cymbal,\r
-                       Ech定義.HiHatOpen,\r
-                       Ech定義.RideCymbal,\r
-                       Ech定義.LeftCymbal\r
-               };\r
-               protected readonly int[] nパッド0Atoパッド08 = new int[] { 1, 2, 3, 4, 5, 6, 7, 1, 8, 0 };        // パッド画像のヒット処理用\r
-               protected readonly int[] nパッド0Atoレーン07 = new int[] { 1, 2, 3, 4, 5, 6, 7, 1, 7, 0 };\r
-               protected STDGBVALUE<CHitCountOfRank> nヒット数_Auto含まない;\r
-               protected STDGBVALUE<CHitCountOfRank> nヒット数_Auto含む;\r
-               protected STDGBVALUE<CHitCountOfRank> nヒット数_TargetGhost; // #35411 2015.08.21 chnmr0 add\r
-               protected STDGBVALUE<int> nコンボ数_TargetGhost;\r
-               protected STDGBVALUE<int> n最大コンボ数_TargetGhost;\r
-               protected int n現在のトップChip = -1;\r
-               protected int[] n最後に再生したBGMの実WAV番号 = new int[50];\r
-               protected Ech定義 e最後に再生したHHのチャンネル番号;\r
-               protected List<int> L最後に再生したHHの実WAV番号;            // #23921 2011.1.4 yyagi: change "int" to "List<int>", for recording multiple wav No.\r
-               protected STLANEVALUE<int> n最後に再生した実WAV番号;  // #26388 2011.11.8 yyagi: change "n最後に再生した実WAV番号.GUITAR" and "n最後に再生した実WAV番号.BASS"\r
-               //                                                      into "n最後に再生した実WAV番号";\r
-               //              protected int n最後に再生した実WAV番号.GUITAR;\r
-               //              protected int n最後に再生した実WAV番号.BASS;\r
+                                       CDTXMania.Instance.Sound管理.tDisableUpdateBufferAutomatically();\r
+                                       base.b初めての進行描画 = false;\r
+                               }\r
 \r
-               protected volatile Queue<STMixer> queueMixerSound;              // #24820 2013.1.21 yyagi まずは単純にAdd/Removeを1個のキューでまとめて管理するやり方で設計する\r
-               protected DateTime dtLastQueueOperation;                                //\r
-               protected bool bIsDirectSound;                                                  //\r
-               protected double db再生速度;\r
-               protected bool bValidScore;\r
-               //              protected bool bDTXVmode;\r
-               //              protected STDGBVALUE<int> nJudgeLinePosY_delta;                 // #31602 2013.6.23 yyagi 表示遅延対策として、判定ラインの表示位置をずらす機能を追加する\r
-               protected STDGBVALUE<bool> bReverse;\r
+                               #region [ stage failed ]\r
+                               if (CDTXMania.Instance.ConfigIni.bギタレボモード)\r
+                               {\r
+                                       if (CDTXMania.Instance.ConfigIni.bSTAGEFAILED有効 && (base.eフェーズID == CStage.Eフェーズ.共通_通常状態))\r
+                                       {\r
+                                               bool failedCondition = false;\r
 \r
-               protected STDGBVALUE<Queue<CChip>> queWailing;\r
-               protected STDGBVALUE<CChip> r現在の歓声Chip;\r
-               protected CChip r現在の空うちギターChip;\r
-               protected ST空打ち r現在の空うちドラムChip;\r
-               protected CChip r現在の空うちベースChip;\r
-               protected CChip r次にくるギターChip;\r
-               protected CChip r次にくるベースChip;\r
-               protected CTexture txWailing枠;\r
-               protected CTexture txチップ;\r
-               protected CTexture txヒットバー;\r
+                                               if (CDTXMania.Instance.ConfigIni.bギタレボモード)\r
+                                               {\r
+                                                       bool bFailedGuitar = this.actGauge.IsFailed(E楽器パート.GUITAR); // #23630 2011.11.12 yyagi: deleted AutoPlay condition: not to be failed at once\r
+                                                       bool bFailedBass = this.actGauge.IsFailed(E楽器パート.BASS); // #23630\r
+                                                       bool bFailedNoChips = (!CDTXMania.Instance.DTX.bチップがある.Guitar && !CDTXMania.Instance.DTX.bチップがある.Bass); // #25216 2011.5.21 yyagi add condition\r
+                                                       failedCondition = bFailedGuitar || bFailedBass || bFailedNoChips; // #25216 2011.5.21 yyagi: changed codition: && -> ||\r
+                                               }\r
+                                               else\r
+                                               {\r
+                                                       failedCondition = this.actGauge.IsFailed(E楽器パート.DRUMS);\r
+                                               }\r
 \r
-               protected CTexture tx背景;\r
+                                               if (failedCondition)\r
+                                               {\r
+                                                       this.actStageFailed.Start();\r
+                                                       CDTXMania.Instance.DTX.t全チップの再生停止();\r
+                                                       base.eフェーズID = CStage.Eフェーズ.演奏_STAGE_FAILED;\r
+                                               }\r
+                                       }\r
+                               }\r
+                               #endregion\r
 \r
-               protected STDGBVALUE<int> nInputAdjustTimeMs;           // #23580 2011.1.3 yyagi\r
-               protected STAUTOPLAY bIsAutoPlay;               // #24239 2011.1.23 yyagi\r
-               //              protected int nRisky_InitialVar, nRiskyTime;            // #23559 2011.7.28 yyagi → CAct演奏ゲージ共通クラスに隠蔽\r
-               protected int nPolyphonicSounds;\r
-               protected List<CChip> listChip;\r
-               protected Dictionary<int, CDTX.CWAV> listWAV;\r
-               protected CInvisibleChip cInvisibleChip;\r
-               protected bool bUseOSTimer;\r
-               protected E判定表示優先度 e判定表示優先度;\r
-               protected CWailingChip共通[] cWailingChip;\r
+                               this.t進行描画_AVI();\r
+                               this.t進行描画_背景();\r
+                               this.t進行描画_MIDIBGM();\r
+                               this.t進行描画_パネル文字列();\r
+                               this.t進行描画_スコア();\r
+                               this.t進行描画_BGA();\r
+                               this.t進行描画_ステータスパネル();\r
+\r
+                               this.t進行描画_ギターベース判定ライン();\r
+                               this.t進行描画_レーンフラッシュGB();\r
+                               this.t進行描画_ゲージ();\r
+\r
+                               this.t進行描画_DANGER();\r
+                               this.t進行描画_WailingBonus();\r
+                               this.t進行描画_譜面スクロール速度();\r
+                               this.t進行描画_チップアニメ();\r
+                               bIsFinishedPlaying = this.t進行描画_チップ(CDTXMania.Instance.ConfigIni.bギタレボモード ? E楽器パート.GUITAR : E楽器パート.DRUMS);\r
+                               this.t進行描画_演奏情報();\r
+                               this.t進行描画_RGBボタン();\r
+                               if (CDTXMania.Instance.ConfigIni.bギタレボモード)\r
+                               {\r
+                                       this.t進行描画_判定文字列();\r
+                               }\r
+                               else\r
+                               {\r
+                                       this.t進行描画_判定文字列1_通常位置指定の場合();\r
+                               }\r
+                               this.t進行描画_コンボ();\r
+                               this.t進行描画_Wailing枠();\r
+                               this.t進行描画_チップファイアGB();\r
+                               this.t進行描画_STAGEFAILED();\r
+\r
+                               if (!CDTXMania.Instance.ConfigIni.bギタレボモード)\r
+                               {\r
+                                       this.t進行描画_ギターベースフレーム();\r
+                                       this.t進行描画_判定文字列2_判定ライン上指定の場合();\r
+                                       this.t進行描画_チップファイアD();\r
+                                       this.t進行描画_ドラムパッド();\r
+                                       this.t進行描画_ギターベース判定ライン();\r
+                                       this.t進行描画_判定ライン();\r
+                                       this.t進行描画_レーンフラッシュD();\r
+                                       this.t進行描画_グラフ();   // #24074 2011.01.23 add ikanick\r
+                               }\r
+\r
+                               bIsFinishedFadeout = this.t進行描画_フェードイン_アウト();\r
+                               if (bIsFinishedPlaying && (base.eフェーズID == CStage.Eフェーズ.共通_通常状態))\r
+                               {\r
+                                       if (CDTXMania.Instance.DTXVmode.Enabled)\r
+                                       {\r
+                                               if (CDTXMania.Instance.Timer.b停止していない)\r
+                                               {\r
+                                                       this.actPanel.Stop();                           // PANEL表示停止\r
+                                                       CDTXMania.Instance.Timer.t一時停止();               // 再生時刻カウンタ停止\r
+                                               }\r
+                                               Thread.Sleep(5);\r
+                                               // DTXCからの次のメッセージを待ち続ける\r
+                                       }\r
+                                       else\r
+                                       {\r
+                                               this.eフェードアウト完了時の戻り値 = E演奏画面の戻り値.ステージクリア;\r
+                                               base.eフェーズID = CStage.Eフェーズ.演奏_STAGE_CLEAR_フェードアウト;\r
+                                               this.actFOClear.tフェードアウト開始();\r
+                                               t演奏結果を格納する_ドラム();\r
+                                               t演奏結果を格納する_ギター();\r
+                                               t演奏結果を格納する_ベース();\r
+\r
+                                               if (!CDTXMania.Instance.ConfigIni.bギタレボモード)\r
+                                               {\r
+                                                       r空打ちドラムチップ = new CChip[10];\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
+                                                               {\r
+                                                                       r空打ちドラムチップ[i] = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(\r
+                                                                               CSound管理.rc演奏用タイマ.n現在時刻,\r
+                                                                               this.nパッド0Atoチャンネル0A[i],\r
+                                                                               this.nInputAdjustTimeMs.Drums);\r
+                                                               }\r
+                                                       }\r
+                                               }\r
+\r
+                                               if (CDTXMania.Instance.ConfigIni.bIsSwappedGuitarBass)          // #24063 2011.1.24 yyagi Gt/Bsを入れ替えていたなら、演奏結果も入れ替える\r
+                                               {\r
+                                                       CScoreIni.C演奏記録 t;\r
+                                                       t = record.Guitar;\r
+                                                       record.Guitar = record.Bass;\r
+                                                       record.Bass = t;\r
+\r
+                                                       // 譜面情報も元に戻す\r
+                                                       // #35417 2015.08.30 changed フラグにアクセスしている箇所が見つかったため有効化\r
+                                                       // #35417 2015.8.18 yyagi: AUTO系のフラグ入れ替えは削除可能!?。以後AUTOフラグに全くアクセスしておらず、意味がないため。\r
+                                                       // (直下でb全AUTOである にアクセスしているが、既に計算済みのクラスへのアクセスであり、ここでの交換対象ではない)\r
+                                                       CDTXMania.Instance.DTX.SwapGuitarBassInfos();\r
+                                                       // #24415 2011.2.27 yyagi\r
+                                                       // リザルト集計時のみ、Auto系のフラグも元に戻す。\r
+                                                       // これを戻すのは、リザルト集計後。\r
+                                                       // "case CStage.Eステージ.結果:"のところ。\r
+                                                       CDTXMania.Instance.ConfigIni.SwapGuitarBassInfos_AutoFlags();\r
+                                               }\r
+                                       }\r
+                               }\r
+                               if (this.eフェードアウト完了時の戻り値 == E演奏画面の戻り値.再読込_再演奏)\r
+                               {\r
+                                       bIsFinishedFadeout = true;\r
+                               }\r
+                               if (bIsFinishedFadeout)\r
+                               {\r
+                                       return (int)this.eフェードアウト完了時の戻り値;\r
+                               }\r
+\r
+                               ManageMixerQueue();\r
+\r
+                               // キー入力\r
 \r
-               //protected Stopwatch sw;               // 2011.6.13 最適化検討用のストップウォッチ\r
-               //protected Stopwatch sw2;\r
-               //              protected GCLatencyMode gclatencymode;\r
+                               if (CDTXMania.Instance.act現在入力を占有中のプラグイン == null)\r
+                               {\r
+                                       this.tキー入力();\r
+                               }\r
+                       }\r
+                       return 0;\r
+               }\r
 \r
+               // その他\r
+               public CChip[] GetNoChipDrums()\r
+               {\r
+                       return r空打ちドラムチップ;\r
+               }\r
+               public STDGBVALUE<CScoreIni.C演奏記録> Record\r
+               {\r
+                       get\r
+                       {\r
+                               return record;\r
+                       }\r
+               }\r
                public void AddMixer(CSound cs, bool _b演奏終了後も再生が続くチップである)\r
                {\r
                        STMixer stm = new STMixer()\r
@@ -573,7 +750,7 @@ namespace DTXMania
                {\r
                        if (CDTXMania.Instance.ConfigIni.bAVI有効)\r
                        {\r
-                               foreach (CChip pChip in listChip)\r
+                               foreach (CChip pChip in CDTXMania.Instance.DTX.listChip)\r
                                {\r
                                        if (pChip.eチャンネル番号 == Ech定義.Movie || pChip.eチャンネル番号 == Ech定義.MovieFull)\r
                                        {\r
@@ -913,17 +1090,19 @@ namespace DTXMania
                                this.actStatusPanels.tラベル名からステータスパネルを決定する(CDTXMania.Instance.stage選曲.r確定された曲.ar難易度ラベル[CDTXMania.Instance.stage選曲.n確定された曲の難易度]);\r
                        }\r
                }\r
-               protected E判定 tチップのヒット処理(long nHitTime, CChip pChip)\r
-               {\r
-                       return tチップのヒット処理(nHitTime, pChip, true);\r
-               }\r
-               protected abstract E判定 tチップのヒット処理(long nHitTime, CChip pChip, bool bCorrectLane);\r
-               protected E判定 tチップのヒット処理(long nHitTime, CChip pChip, E楽器パート screenmode)         // E楽器パート screenmode\r
-               {\r
-                       return tチップのヒット処理(nHitTime, pChip, screenmode, true);\r
-               }\r
-               protected E判定 tチップのヒット処理(long nHitTime, CChip pChip, E楽器パート screenmode, bool bCorrectLane)\r
+\r
+               protected E判定 tチップのヒット処理(long nHitTime, CChip pChip, bool bCorrectLane = true)\r
                {\r
+                       E楽器パート screenmode;\r
+                       if (CDTXMania.Instance.ConfigIni.bギタレボモード)\r
+                       {\r
+                               screenmode = E楽器パート.GUITAR;\r
+                       }\r
+                       else\r
+                       {\r
+                               screenmode = E楽器パート.DRUMS;\r
+                       }\r
+\r
                        pChip.bHit = true;\r
                        if (pChip.e楽器パート != E楽器パート.UNKNOWN)\r
                        {\r
@@ -959,91 +1138,55 @@ namespace DTXMania
 \r
                        if (!bPChipIsAutoPlay && (pChip.e楽器パート != E楽器パート.UNKNOWN))\r
                        {\r
-                               // this.t判定にあわせてゲージを増減する( screenmode, pChip.e楽器パート, eJudgeResult );\r
                                actGauge.Damage(screenmode, pChip.e楽器パート, eJudgeResult);\r
                        }\r
                        if (eJudgeResult == E判定.Poor || eJudgeResult == E判定.Miss || eJudgeResult == E判定.Bad)\r
                        {\r
                                cInvisibleChip.ShowChipTemporally(pChip.e楽器パート);\r
                        }\r
-                       switch (pChip.e楽器パート)\r
+\r
+                       if (pChip.e楽器パート != E楽器パート.UNKNOWN)\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.Instance.ConfigIni.bドラムが全部オートプレイである || !bPChipIsAutoPlay)\r
-                                       {\r
-                                               switch (eJudgeResult)\r
+                               switch (eJudgeResult)\r
+                               {\r
+                                       case E判定.Miss:\r
+                                       case E判定.Bad:\r
+                                               this.nヒット数_Auto含む[(int)pChip.e楽器パート].Miss++;\r
+                                               if (!bPChipIsAutoPlay)\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.nヒット数_Auto含まない[(int)pChip.e楽器パート].Miss++;\r
                                                }\r
-                                       }\r
-                                       break;\r
-\r
-                               case E楽器パート.GUITAR:\r
-                               case E楽器パート.BASS:\r
-                                       int indexInst = (int)pChip.e楽器パート;\r
-                                       switch (eJudgeResult)\r
-                                       {\r
-                                               case E判定.Miss:\r
-                                               case E判定.Bad:\r
-                                                       this.nヒット数_Auto含む[indexInst].Miss++;\r
-                                                       if (!bPChipIsAutoPlay)\r
-                                                       {\r
-                                                               this.nヒット数_Auto含まない[indexInst].Miss++;\r
-                                                       }\r
-                                                       break;\r
-                                               default:        // #24068 2011.1.10 ikanick changed\r
-                                                       // #24167 2011.1.16 yyagi changed\r
-                                                       this.nヒット数_Auto含む[indexInst][(int)eJudgeResult]++;\r
-                                                       if (!bPChipIsAutoPlay)\r
-                                                       {\r
-                                                               this.nヒット数_Auto含まない[indexInst][(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現在のコンボ数[indexInst]++;\r
-                                                       break;\r
+                                               break;\r
+                                       default:\r
+                                               // #24068 2011.1.10 ikanick changed (for Gt./Bs.)\r
+                                               // #24167 2011.1.16 yyagi changed  (for Gt./Bs.)\r
+                                               this.nヒット数_Auto含む[(int)pChip.e楽器パート][(int)eJudgeResult]++;\r
+                                               if (!bPChipIsAutoPlay)\r
+                                               {\r
+                                                       this.nヒット数_Auto含まない[(int)pChip.e楽器パート][(int)eJudgeResult]++;\r
+                                               }\r
+                                               break;\r
+                               }\r
+                       }\r
 \r
-                                               default:\r
-                                                       this.actCombo.n現在のコンボ数[indexInst] = 0;\r
-                                                       break;\r
-                                       }\r
-                                       break;\r
+                       if ((pChip.e楽器パート == E楽器パート.DRUMS && CDTXMania.Instance.ConfigIni.bドラムが全部オートプレイである || !bPChipIsAutoPlay) ||\r
+                               pChip.e楽器パート == E楽器パート.GUITAR || pChip.e楽器パート == E楽器パート.BASS)\r
+                       {\r
+                               // Dr. : 演奏したレーンだけコンボを増やす\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
-                                       break;\r
+                                       default:\r
+                                               this.actCombo.n現在のコンボ数.Drums = 0;\r
+                                               break;\r
+                               }\r
                        }\r
+\r
                        if ((!bPChipIsAutoPlay && (pChip.e楽器パート != E楽器パート.UNKNOWN)) && (eJudgeResult != E判定.Miss) && (eJudgeResult != E判定.Bad))\r
                        {\r
                                int nCombos = this.actCombo.n現在のコンボ数[(int)pChip.e楽器パート];\r
@@ -1059,19 +1202,41 @@ namespace DTXMania
                                }\r
                                this.actScore.Add(pChip.e楽器パート, bIsAutoPlay, nScoreDelta);\r
                        }\r
+\r
+                       if (!CDTXMania.Instance.ConfigIni.bギタレボモード)\r
+                       {\r
+                               // #24074 2011.01.23 add ikanick\r
+                               this.actGraph.dbグラフ値現在_渡 = CScoreIni.t演奏型スキルを計算して返す(CDTXMania.Instance.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, E楽器パート.DRUMS, bIsAutoPlay);\r
+                               // #35411 2015.09.07 add chnmr0\r
+                               if (CDTXMania.Instance.DTX.listTargetGhsotLag.Drums != null &&\r
+                                                                       CDTXMania.Instance.ConfigIni.eTargetGhost.Drums == ETargetGhostData.ONLINE &&\r
+                                       CDTXMania.Instance.DTX.n可視チップ数.Drums > 0)\r
+                               {\r
+                                       // Online Stats の計算式\r
+                                       this.actGraph.dbグラフ値現在_渡 = 100 *\r
+                                                                       (this.nヒット数_Auto含まない.Drums.Perfect * 17 +\r
+                                                                        this.nヒット数_Auto含まない.Drums.Great * 7 +\r
+                                                                        this.actCombo.n現在のコンボ数.Drums最高値 * 3) / (20.0 * CDTXMania.Instance.DTX.n可視チップ数.Drums);\r
+                               }\r
+                       }\r
                        return eJudgeResult;\r
                }\r
-               protected abstract void tチップのヒット処理_BadならびにTight時のMiss(E楽器パート part);\r
-               protected abstract void tチップのヒット処理_BadならびにTight時のMiss(E楽器パート part, int nLane);\r
-               protected void tチップのヒット処理_BadならびにTight時のMiss(E楽器パート part, E楽器パート screenmode)\r
-               {\r
-                       this.tチップのヒット処理_BadならびにTight時のMiss(part, 0, screenmode);\r
-               }\r
-               protected void tチップのヒット処理_BadならびにTight時のMiss(E楽器パート part, int nLane, E楽器パート screenmode)\r
+\r
+               private void tチップのヒット処理_BadならびにTight時のMiss(E楽器パート part, int nLane = 0)\r
                {\r
+                       E楽器パート screenmode;\r
+\r
+                       if (CDTXMania.Instance.ConfigIni.bギタレボモード)\r
+                       {\r
+                               screenmode = E楽器パート.GUITAR;\r
+                       }\r
+                       else\r
+                       {\r
+                               screenmode = E楽器パート.DRUMS;\r
+                       }\r
+\r
                        cInvisibleChip.StartSemiInvisible(part);\r
                        cInvisibleChip.ShowChipTemporally(part);\r
-                       //this.t判定にあわせてゲージを増減する( screenmode, part, E判定.Miss );\r
                        actGauge.Damage(screenmode, part, E判定.Miss);\r
                        switch (part)\r
                        {\r
@@ -1111,11 +1276,11 @@ namespace DTXMania
                        CChip ret = null;\r
 \r
                        nTime += nInputAdjustTime;\r
-                       if (this.n現在のトップChip >= 0 && this.n現在のトップChip < listChip.Count)\r
+                       if (this.n現在のトップChip >= 0 && this.n現在のトップChip < CDTXMania.Instance.DTX.listChip.Count)\r
                        {\r
                                int idxFuture = -1;\r
                                int idxPast = -1;\r
-                               int idxPastStart = listChip.Count - 1;\r
+                               int idxPastStart = CDTXMania.Instance.DTX.listChip.Count - 1;\r
                                Func<CChip, Func<CChip, bool>, bool> Found = (chip, futureOrPast) =>\r
                                {\r
                                        return futureOrPast(chip) &&\r
@@ -1134,9 +1299,9 @@ namespace DTXMania
                                Func<CChip, bool> OutOfRange = (chip) => { return n検索範囲時間ms > 0 && Math.Abs(nTime - chip.n発声時刻ms) > n検索範囲時間ms; };\r
 \r
                                // // 未来方向への検索\r
-                               for (int i = this.n現在のトップChip; i < listChip.Count; ++i)\r
+                               for (int i = this.n現在のトップChip; i < CDTXMania.Instance.DTX.listChip.Count; ++i)\r
                                {\r
-                                       CChip chip = listChip[i];\r
+                                       CChip chip = CDTXMania.Instance.DTX.listChip[i];\r
                                        if (Future(chip) && OutOfRange(chip))\r
                                        {\r
                                                //break;\r
@@ -1152,7 +1317,7 @@ namespace DTXMania
                                // 過去方向への検索\r
                                for (int i = idxPastStart; i >= 0; i--)\r
                                {\r
-                                       CChip chip = listChip[i];\r
+                                       CChip chip = CDTXMania.Instance.DTX.listChip[i];\r
                                        if (Past(chip) && OutOfRange(chip))\r
                                        {\r
                                                //break;\r
@@ -1171,94 +1336,1268 @@ namespace DTXMania
                                else if (idxPast >= 0)\r
                                {\r
                                        // 過去方向には見つかった\r
-                                       ret = listChip[idxPast];\r
+                                       ret = CDTXMania.Instance.DTX.listChip[idxPast];\r
                                }\r
                                else if (idxFuture >= 0)\r
                                {\r
                                        // 未来方向には見つかった\r
-                                       ret = listChip[idxFuture];\r
+                                       ret = CDTXMania.Instance.DTX.listChip[idxFuture];\r
                                }\r
                                else\r
                                {\r
                                        // どちらにも見つかった\r
-                                       long nTimeDiff_Future = Math.Abs(nTime - listChip[idxFuture].n発声時刻ms);\r
-                                       long nTimeDiff_Past = Math.Abs(nTime - listChip[idxPast].n発声時刻ms);\r
+                                       long nTimeDiff_Future = Math.Abs(nTime - CDTXMania.Instance.DTX.listChip[idxFuture].n発声時刻ms);\r
+                                       long nTimeDiff_Past = Math.Abs(nTime - CDTXMania.Instance.DTX.listChip[idxPast].n発声時刻ms);\r
                                        if (nTimeDiff_Future < nTimeDiff_Past)\r
                                        {\r
-                                               ret = listChip[idxFuture];\r
+                                               ret = CDTXMania.Instance.DTX.listChip[idxFuture];\r
                                        }\r
                                        else\r
                                        {\r
-                                               ret = listChip[idxPast];\r
+                                               ret = CDTXMania.Instance.DTX.listChip[idxPast];\r
+                                       }\r
+                               }\r
+\r
+                               if (ret != null)\r
+                               {\r
+                                       if (OutOfRange(ret))\r
+                                       {\r
+                                               // チップは見つかったが、検索範囲時間外だった場合\r
+                                               ret = null;\r
                                        }\r
                                }\r
+                       }\r
+                       return ret;\r
+               }\r
+\r
+               protected CChip r次に来る指定楽器Chipを更新して返す(E楽器パート inst)\r
+               {\r
+                       CChip ret = null;\r
+                       int nInputAdjustTime;\r
+                       if (inst == E楽器パート.GUITAR)\r
+                       {\r
+                               nInputAdjustTime = this.bIsAutoPlay.GtPick ? 0 : this.nInputAdjustTimeMs.Guitar;\r
+                               ret = this.r指定時刻に一番近い未ヒットChip(CSound管理.rc演奏用タイマ.n現在時刻, Ech定義.Guitar_WailingSound, nInputAdjustTime, 500);\r
+                               this.r次にくるギターChip = ret;\r
+                       }\r
+                       else if (inst == E楽器パート.BASS)\r
+                       {\r
+                               nInputAdjustTime = this.bIsAutoPlay.BsPick ? 0 : this.nInputAdjustTimeMs.Bass;\r
+                               ret = this.r指定時刻に一番近い未ヒットChip(CSound管理.rc演奏用タイマ.n現在時刻, Ech定義.Bass_WailingSound, nInputAdjustTime, 500);\r
+                               this.r次にくるベースChip = ret;\r
+                       }\r
+                       return ret;\r
+               }\r
+\r
+               protected void ChangeInputAdjustTimeInPlaying(IInputDevice keyboard, int plusminus)             // #23580 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] > 99)\r
+                       {\r
+                               this.nInputAdjustTimeMs[part] = 99;\r
+                       }\r
+                       else if (this.nInputAdjustTimeMs[part] < -99)\r
+                       {\r
+                               this.nInputAdjustTimeMs[part] = -99;\r
+                       }\r
+                       CDTXMania.Instance.ConfigIni.nInputAdjustTimeMs[part] = this.nInputAdjustTimeMs[part];\r
+               }\r
+\r
+               private void t入力処理_ドラム()\r
+               {\r
+                       for (int nPad = 0; nPad < (int)Eパッド.MAX; nPad++)          // #27029 2012.1.4 from: <10 to <=10; Eパッドの要素が1つ(HP)増えたため。\r
+                       //                2012.1.5 yyagi: (int)Eパッド.MAX に変更。Eパッドの要素数への依存を無くすため。\r
+                       {\r
+                               List<STInputEvent> listInputEvent = CDTXMania.Instance.Pad.GetEvents(E楽器パート.DRUMS, (Eパッド)nPad);\r
+\r
+                               if ((listInputEvent == null) || (listInputEvent.Count == 0))\r
+                                       continue;\r
+\r
+                               this.t入力メソッド記憶(E楽器パート.DRUMS);\r
+\r
+                               #region [ 打ち分けグループ調整 ]\r
+                               //-----------------------------\r
+                               EHHGroup eHHGroup = CDTXMania.Instance.ConfigIni.eHHGroup;\r
+                               EFTGroup eFTGroup = CDTXMania.Instance.ConfigIni.eFTGroup;\r
+                               ECYGroup eCYGroup = CDTXMania.Instance.ConfigIni.eCYGroup;\r
+\r
+                               if (!CDTXMania.Instance.DTX.bチップがある.Ride && (eCYGroup == ECYGroup.打ち分ける))\r
+                               {\r
+                                       eCYGroup = ECYGroup.共通;\r
+                               }\r
+                               if (!CDTXMania.Instance.DTX.bチップがある.HHOpen && (eHHGroup == EHHGroup.全部打ち分ける))\r
+                               {\r
+                                       eHHGroup = EHHGroup.左シンバルのみ打ち分ける;\r
+                               }\r
+                               if (!CDTXMania.Instance.DTX.bチップがある.HHOpen && (eHHGroup == EHHGroup.ハイハットのみ打ち分ける))\r
+                               {\r
+                                       eHHGroup = EHHGroup.全部共通;\r
+                               }\r
+                               if (!CDTXMania.Instance.DTX.bチップがある.LeftCymbal && (eHHGroup == EHHGroup.全部打ち分ける))\r
+                               {\r
+                                       eHHGroup = EHHGroup.ハイハットのみ打ち分ける;\r
+                               }\r
+                               if (!CDTXMania.Instance.DTX.bチップがある.LeftCymbal && (eHHGroup == EHHGroup.左シンバルのみ打ち分ける))\r
+                               {\r
+                                       eHHGroup = EHHGroup.全部共通;\r
+                               }\r
+                               //-----------------------------\r
+                               #endregion\r
+\r
+                               foreach (STInputEvent inputEvent in listInputEvent)\r
+                               {\r
+                                       if (!inputEvent.b押された)\r
+                                               continue;\r
+\r
+                                       long nTime = inputEvent.nTimeStamp - CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻;\r
+                                       int nPad09 = (nPad == (int)Eパッド.HP) ? (int)Eパッド.BD : nPad;          // #27029 2012.1.5 yyagi\r
+                                       int nInputAdjustTime = bIsAutoPlay[CStage演奏画面共通.nチャンネル0Atoレーン07[(int)nPad09]] ? 0 : nInputAdjustTimeMs.Drums;\r
+\r
+                                       bool bHitted = false;\r
+\r
+                                       #region [ (A) ヒットしていればヒット処理して次の inputEvent へ ]\r
+                                       //-----------------------------\r
+                                       switch (((Eパッド)nPad))\r
+                                       {\r
+                                               case Eパッド.HH:\r
+                                                       #region [ HHとLC(groupingしている場合) のヒット処理 ]\r
+                                                       //-----------------------------\r
+                                                       {\r
+                                                               if (inputEvent.nVelocity <= CDTXMania.Instance.ConfigIni.nVelocityMin.HH)\r
+                                                                       continue;       // 電子ドラムによる意図的なクロストークを無効にする\r
+\r
+                                                               CChip chipHC = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.HiHatClose, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);  // HiHat Close\r
+                                                               CChip chipHO = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.HiHatOpen, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);   // HiHat Open\r
+                                                               CChip chipLC = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.LeftCymbal, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);  // LC\r
+                                                               E判定 e判定HC = (chipHC != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipHC, nInputAdjustTime) : E判定.Miss;\r
+                                                               E判定 e判定HO = (chipHO != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipHO, nInputAdjustTime) : E判定.Miss;\r
+                                                               E判定 e判定LC = (chipLC != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipLC, nInputAdjustTime) : E判定.Miss;\r
+                                                               switch (eHHGroup)\r
+                                                               {\r
+                                                                       case EHHGroup.ハイハットのみ打ち分ける:\r
+                                                                               #region [ HCとLCのヒット処理 ]\r
+                                                                               //-----------------------------\r
+                                                                               if ((e判定HC != E判定.Miss) && (e判定LC != E判定.Miss))\r
+                                                                               {\r
+                                                                                       if (chipHC.n発声位置 < chipLC.n発声位置)\r
+                                                                                       {\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.HH, chipHC, inputEvent.nVelocity);\r
+                                                                                       }\r
+                                                                                       else if (chipHC.n発声位置 > chipLC.n発声位置)\r
+                                                                                       {\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.HH, chipLC, inputEvent.nVelocity);\r
+                                                                                       }\r
+                                                                                       else\r
+                                                                                       {\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.HH, chipHC, inputEvent.nVelocity);\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.HH, chipLC, inputEvent.nVelocity);\r
+                                                                                       }\r
+                                                                                       bHitted = true;\r
+                                                                               }\r
+                                                                               else if (e判定HC != E判定.Miss)\r
+                                                                               {\r
+                                                                                       this.tドラムヒット処理(nTime, Eパッド.HH, chipHC, inputEvent.nVelocity);\r
+                                                                                       bHitted = true;\r
+                                                                               }\r
+                                                                               else if (e判定LC != E判定.Miss)\r
+                                                                               {\r
+                                                                                       this.tドラムヒット処理(nTime, Eパッド.HH, chipLC, inputEvent.nVelocity);\r
+                                                                                       bHitted = true;\r
+                                                                               }\r
+                                                                               if (!bHitted)\r
+                                                                                       break;\r
+                                                                               continue;\r
+                                                                       //-----------------------------\r
+                                                                               #endregion\r
+\r
+                                                                       case EHHGroup.左シンバルのみ打ち分ける:\r
+                                                                               #region [ HCとHOのヒット処理 ]\r
+                                                                               //-----------------------------\r
+                                                                               if ((e判定HC != E判定.Miss) && (e判定HO != E判定.Miss))\r
+                                                                               {\r
+                                                                                       if (chipHC.n発声位置 < chipHO.n発声位置)\r
+                                                                                       {\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.HH, chipHC, inputEvent.nVelocity);\r
+                                                                                       }\r
+                                                                                       else if (chipHC.n発声位置 > chipHO.n発声位置)\r
+                                                                                       {\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.HH, chipHO, inputEvent.nVelocity);\r
+                                                                                       }\r
+                                                                                       else\r
+                                                                                       {\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.HH, chipHC, inputEvent.nVelocity);\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.HH, chipHO, inputEvent.nVelocity);\r
+                                                                                       }\r
+                                                                                       bHitted = true;\r
+                                                                               }\r
+                                                                               else if (e判定HC != E判定.Miss)\r
+                                                                               {\r
+                                                                                       this.tドラムヒット処理(nTime, Eパッド.HH, chipHC, inputEvent.nVelocity);\r
+                                                                                       bHitted = true;\r
+                                                                               }\r
+                                                                               else if (e判定HO != E判定.Miss)\r
+                                                                               {\r
+                                                                                       this.tドラムヒット処理(nTime, Eパッド.HH, chipHO, inputEvent.nVelocity);\r
+                                                                                       bHitted = true;\r
+                                                                               }\r
+                                                                               if (!bHitted)\r
+                                                                                       break;\r
+                                                                               continue;\r
+                                                                       //-----------------------------\r
+                                                                               #endregion\r
+\r
+                                                                       case EHHGroup.全部共通:\r
+                                                                               #region [ HC,HO,LCのヒット処理 ]\r
+                                                                               //-----------------------------\r
+                                                                               if (((e判定HC != E判定.Miss) && (e判定HO != E判定.Miss)) && (e判定LC != E判定.Miss))\r
+                                                                               {\r
+                                                                                       CChip chip;\r
+                                                                                       CChip[] chipArray = new CChip[] { chipHC, chipHO, chipLC };\r
+                                                                                       // ここから、chipArrayをn発生位置の小さい順に並び替える\r
+                                                                                       if (chipArray[1].n発声位置 > chipArray[2].n発声位置)\r
+                                                                                       {\r
+                                                                                               chip = chipArray[1];\r
+                                                                                               chipArray[1] = chipArray[2];\r
+                                                                                               chipArray[2] = chip;\r
+                                                                                       }\r
+                                                                                       if (chipArray[0].n発声位置 > chipArray[1].n発声位置)\r
+                                                                                       {\r
+                                                                                               chip = chipArray[0];\r
+                                                                                               chipArray[0] = chipArray[1];\r
+                                                                                               chipArray[1] = chip;\r
+                                                                                       }\r
+                                                                                       if (chipArray[1].n発声位置 > chipArray[2].n発声位置)\r
+                                                                                       {\r
+                                                                                               chip = chipArray[1];\r
+                                                                                               chipArray[1] = chipArray[2];\r
+                                                                                               chipArray[2] = chip;\r
+                                                                                       }\r
+                                                                                       this.tドラムヒット処理(nTime, Eパッド.HH, chipArray[0], inputEvent.nVelocity);\r
+                                                                                       if (chipArray[0].n発声位置 == chipArray[1].n発声位置)\r
+                                                                                       {\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.HH, chipArray[1], inputEvent.nVelocity);\r
+                                                                                       }\r
+                                                                                       if (chipArray[0].n発声位置 == chipArray[2].n発声位置)\r
+                                                                                       {\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.HH, chipArray[2], inputEvent.nVelocity);\r
+                                                                                       }\r
+                                                                                       bHitted = true;\r
+                                                                               }\r
+                                                                               else if ((e判定HC != E判定.Miss) && (e判定HO != E判定.Miss))\r
+                                                                               {\r
+                                                                                       if (chipHC.n発声位置 < chipHO.n発声位置)\r
+                                                                                       {\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.HH, chipHC, inputEvent.nVelocity);\r
+                                                                                       }\r
+                                                                                       else if (chipHC.n発声位置 > chipHO.n発声位置)\r
+                                                                                       {\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.HH, chipHO, inputEvent.nVelocity);\r
+                                                                                       }\r
+                                                                                       else\r
+                                                                                       {\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.HH, chipHC, inputEvent.nVelocity);\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.HH, chipHO, inputEvent.nVelocity);\r
+                                                                                       }\r
+                                                                                       bHitted = true;\r
+                                                                               }\r
+                                                                               else if ((e判定HC != E判定.Miss) && (e判定LC != E判定.Miss))\r
+                                                                               {\r
+                                                                                       if (chipHC.n発声位置 < chipLC.n発声位置)\r
+                                                                                       {\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.HH, chipHC, inputEvent.nVelocity);\r
+                                                                                       }\r
+                                                                                       else if (chipHC.n発声位置 > chipLC.n発声位置)\r
+                                                                                       {\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.HH, chipLC, inputEvent.nVelocity);\r
+                                                                                       }\r
+                                                                                       else\r
+                                                                                       {\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.HH, chipHC, inputEvent.nVelocity);\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.HH, chipLC, inputEvent.nVelocity);\r
+                                                                                       }\r
+                                                                                       bHitted = true;\r
+                                                                               }\r
+                                                                               else if ((e判定HO != E判定.Miss) && (e判定LC != E判定.Miss))\r
+                                                                               {\r
+                                                                                       if (chipHO.n発声位置 < chipLC.n発声位置)\r
+                                                                                       {\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.HH, chipHO, inputEvent.nVelocity);\r
+                                                                                       }\r
+                                                                                       else if (chipHO.n発声位置 > chipLC.n発声位置)\r
+                                                                                       {\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.HH, chipLC, inputEvent.nVelocity);\r
+                                                                                       }\r
+                                                                                       else\r
+                                                                                       {\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.HH, chipHO, inputEvent.nVelocity);\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.HH, chipLC, inputEvent.nVelocity);\r
+                                                                                       }\r
+                                                                                       bHitted = true;\r
+                                                                               }\r
+                                                                               else if (e判定HC != E判定.Miss)\r
+                                                                               {\r
+                                                                                       this.tドラムヒット処理(nTime, Eパッド.HH, chipHC, inputEvent.nVelocity);\r
+                                                                                       bHitted = true;\r
+                                                                               }\r
+                                                                               else if (e判定HO != E判定.Miss)\r
+                                                                               {\r
+                                                                                       this.tドラムヒット処理(nTime, Eパッド.HH, chipHO, inputEvent.nVelocity);\r
+                                                                                       bHitted = true;\r
+                                                                               }\r
+                                                                               else if (e判定LC != E判定.Miss)\r
+                                                                               {\r
+                                                                                       this.tドラムヒット処理(nTime, Eパッド.HH, chipLC, inputEvent.nVelocity);\r
+                                                                                       bHitted = true;\r
+                                                                               }\r
+                                                                               if (!bHitted)\r
+                                                                                       break;\r
+                                                                               continue;\r
+                                                                       //-----------------------------\r
+                                                                               #endregion\r
+\r
+                                                                       default:\r
+                                                                               #region [ 全部打ち分け時のヒット処理 ]\r
+                                                                               //-----------------------------\r
+                                                                               if (e判定HC != E判定.Miss)\r
+                                                                               {\r
+                                                                                       this.tドラムヒット処理(nTime, Eパッド.HH, chipHC, inputEvent.nVelocity);\r
+                                                                                       bHitted = true;\r
+                                                                               }\r
+                                                                               if (!bHitted)\r
+                                                                                       break;\r
+                                                                               continue;\r
+                                                                       //-----------------------------\r
+                                                                               #endregion\r
+                                                               }\r
+                                                               if (!bHitted)\r
+                                                                       break;\r
+                                                               continue;\r
+                                                       }\r
+                                               //-----------------------------\r
+                                                       #endregion\r
+\r
+                                               case Eパッド.SD:\r
+                                                       #region [ SDのヒット処理 ]\r
+                                                       //-----------------------------\r
+                                                       if (inputEvent.nVelocity <= CDTXMania.Instance.ConfigIni.nVelocityMin.SD)       // #23857 2010.12.12 yyagi: to support VelocityMin\r
+                                                               continue;       // 電子ドラムによる意図的なクロストークを無効にする\r
+                                                       if (!this.tドラムヒット処理(nTime, Eパッド.SD, this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.Snare, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1), inputEvent.nVelocity))\r
+                                                               break;\r
+                                                       continue;\r
+                                               //-----------------------------\r
+                                                       #endregion\r
+\r
+                                               case Eパッド.BD:\r
+                                                       #region [ BDのヒット処理 ]\r
+                                                       //-----------------------------\r
+                                                       if (inputEvent.nVelocity <= CDTXMania.Instance.ConfigIni.nVelocityMin.BD)       // #23857 2010.12.12 yyagi: to support VelocityMin\r
+                                                               continue;       // 電子ドラムによる意図的なクロストークを無効にする\r
+                                                       if (!this.tドラムヒット処理(nTime, Eパッド.BD, this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.BassDrum, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1), inputEvent.nVelocity))\r
+                                                               break;\r
+                                                       continue;\r
+                                               //-----------------------------\r
+                                                       #endregion\r
+\r
+                                               case Eパッド.HT:\r
+                                                       #region [ HTのヒット処理 ]\r
+                                                       //-----------------------------\r
+                                                       if (inputEvent.nVelocity <= CDTXMania.Instance.ConfigIni.nVelocityMin.HT)       // #23857 2010.12.12 yyagi: to support VelocityMin\r
+                                                               continue;       // 電子ドラムによる意図的なクロストークを無効にする\r
+                                                       if (this.tドラムヒット処理(nTime, Eパッド.HT, this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.HighTom, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1), inputEvent.nVelocity))\r
+                                                               continue;\r
+                                                       break;\r
+                                               //-----------------------------\r
+                                                       #endregion\r
+\r
+                                               case Eパッド.LT:\r
+                                                       #region [ LTとFT(groupingしている場合)のヒット処理 ]\r
+                                                       //-----------------------------\r
+                                                       {\r
+                                                               if (inputEvent.nVelocity <= CDTXMania.Instance.ConfigIni.nVelocityMin.LT)       // #23857 2010.12.12 yyagi: to support VelocityMin\r
+                                                                       continue;       // 電子ドラムによる意図的なクロストークを無効にする\r
+                                                               CChip chipLT = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.LowTom, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);\r
+                                                               CChip chipFT = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.FloorTom, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);\r
+                                                               E判定 e判定LT = (chipLT != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipLT, nInputAdjustTime) : E判定.Miss;\r
+                                                               E判定 e判定FT = (chipFT != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipFT, nInputAdjustTime) : E判定.Miss;\r
+                                                               switch (eFTGroup)\r
+                                                               {\r
+                                                                       case EFTGroup.打ち分ける:\r
+                                                                               #region [ LTのヒット処理 ]\r
+                                                                               //-----------------------------\r
+                                                                               if (e判定LT != E判定.Miss)\r
+                                                                               {\r
+                                                                                       this.tドラムヒット処理(nTime, Eパッド.LT, chipLT, inputEvent.nVelocity);\r
+                                                                                       bHitted = true;\r
+                                                                               }\r
+                                                                               break;\r
+                                                                       //-----------------------------\r
+                                                                               #endregion\r
+\r
+                                                                       case EFTGroup.共通:\r
+                                                                               #region [ LTとFTのヒット処理 ]\r
+                                                                               //-----------------------------\r
+                                                                               if ((e判定LT != E判定.Miss) && (e判定FT != E判定.Miss))\r
+                                                                               {\r
+                                                                                       if (chipLT.n発声位置 < chipFT.n発声位置)\r
+                                                                                       {\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.LT, chipLT, inputEvent.nVelocity);\r
+                                                                                       }\r
+                                                                                       else if (chipLT.n発声位置 > chipFT.n発声位置)\r
+                                                                                       {\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.LT, chipFT, inputEvent.nVelocity);\r
+                                                                                       }\r
+                                                                                       else\r
+                                                                                       {\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.LT, chipLT, inputEvent.nVelocity);\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.LT, chipFT, inputEvent.nVelocity);\r
+                                                                                       }\r
+                                                                                       bHitted = true;\r
+                                                                               }\r
+                                                                               else if (e判定LT != E判定.Miss)\r
+                                                                               {\r
+                                                                                       this.tドラムヒット処理(nTime, Eパッド.LT, chipLT, inputEvent.nVelocity);\r
+                                                                                       bHitted = true;\r
+                                                                               }\r
+                                                                               else if (e判定FT != E判定.Miss)\r
+                                                                               {\r
+                                                                                       this.tドラムヒット処理(nTime, Eパッド.LT, chipFT, inputEvent.nVelocity);\r
+                                                                                       bHitted = true;\r
+                                                                               }\r
+                                                                               break;\r
+                                                                       //-----------------------------\r
+                                                                               #endregion\r
+                                                               }\r
+                                                               if (!bHitted)\r
+                                                                       break;\r
+                                                               continue;\r
+                                                       }\r
+                                               //-----------------------------\r
+                                                       #endregion\r
+\r
+                                               case Eパッド.FT:\r
+                                                       #region [ FTとLT(groupingしている場合)のヒット処理 ]\r
+                                                       //-----------------------------\r
+                                                       {\r
+                                                               if (inputEvent.nVelocity <= CDTXMania.Instance.ConfigIni.nVelocityMin.FT)       // #23857 2010.12.12 yyagi: to support VelocityMin\r
+                                                                       continue;       // 電子ドラムによる意図的なクロストークを無効にする\r
+                                                               CChip chipLT = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.LowTom, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);\r
+                                                               CChip chipFT = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.FloorTom, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);\r
+                                                               E判定 e判定LT = (chipLT != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipLT, nInputAdjustTime) : E判定.Miss;\r
+                                                               E判定 e判定FT = (chipFT != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipFT, nInputAdjustTime) : E判定.Miss;\r
+                                                               switch (eFTGroup)\r
+                                                               {\r
+                                                                       case EFTGroup.打ち分ける:\r
+                                                                               #region [ FTのヒット処理 ]\r
+                                                                               //-----------------------------\r
+                                                                               if (e判定FT != E判定.Miss)\r
+                                                                               {\r
+                                                                                       this.tドラムヒット処理(nTime, Eパッド.FT, chipFT, inputEvent.nVelocity);\r
+                                                                                       bHitted = true;\r
+                                                                               }\r
+                                                                               //-----------------------------\r
+                                                                               #endregion\r
+                                                                               break;\r
+\r
+                                                                       case EFTGroup.共通:\r
+                                                                               #region [ FTとLTのヒット処理 ]\r
+                                                                               //-----------------------------\r
+                                                                               if ((e判定LT != E判定.Miss) && (e判定FT != E判定.Miss))\r
+                                                                               {\r
+                                                                                       if (chipLT.n発声位置 < chipFT.n発声位置)\r
+                                                                                       {\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.FT, chipLT, inputEvent.nVelocity);\r
+                                                                                       }\r
+                                                                                       else if (chipLT.n発声位置 > chipFT.n発声位置)\r
+                                                                                       {\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.FT, chipFT, inputEvent.nVelocity);\r
+                                                                                       }\r
+                                                                                       else\r
+                                                                                       {\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.FT, chipLT, inputEvent.nVelocity);\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.FT, chipFT, inputEvent.nVelocity);\r
+                                                                                       }\r
+                                                                                       bHitted = true;\r
+                                                                               }\r
+                                                                               else if (e判定LT != E判定.Miss)\r
+                                                                               {\r
+                                                                                       this.tドラムヒット処理(nTime, Eパッド.FT, chipLT, inputEvent.nVelocity);\r
+                                                                                       bHitted = true;\r
+                                                                               }\r
+                                                                               else if (e判定FT != E判定.Miss)\r
+                                                                               {\r
+                                                                                       this.tドラムヒット処理(nTime, Eパッド.FT, chipFT, inputEvent.nVelocity);\r
+                                                                                       bHitted = true;\r
+                                                                               }\r
+                                                                               //-----------------------------\r
+                                                                               #endregion\r
+                                                                               break;\r
+                                                               }\r
+                                                               if (!bHitted)\r
+                                                                       break;\r
+                                                               continue;\r
+                                                       }\r
+                                               //-----------------------------\r
+                                                       #endregion\r
+\r
+                                               case Eパッド.CY:\r
+                                                       #region [ CY(とLCとRD:groupingしている場合)のヒット処理 ]\r
+                                                       //-----------------------------\r
+                                                       {\r
+                                                               if (inputEvent.nVelocity <= CDTXMania.Instance.ConfigIni.nVelocityMin.CY)       // #23857 2010.12.12 yyagi: to support VelocityMin\r
+                                                                       continue;       // 電子ドラムによる意図的なクロストークを無効にする\r
+                                                               CChip chipCY = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.Cymbal, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);\r
+                                                               CChip chipRD = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.RideCymbal, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);\r
+                                                               CChip chipLC = CDTXMania.Instance.ConfigIni.bシンバルフリー ? this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.LeftCymbal, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1) : null;\r
+                                                               E判定 e判定CY = (chipCY != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipCY, nInputAdjustTime) : E判定.Miss;\r
+                                                               E判定 e判定RD = (chipRD != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipRD, nInputAdjustTime) : E判定.Miss;\r
+                                                               E判定 e判定LC = (chipLC != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipLC, nInputAdjustTime) : E判定.Miss;\r
+                                                               CChip[] chipArray = new CChip[] { chipCY, chipRD, chipLC };\r
+                                                               E判定[] e判定Array = new E判定[] { e判定CY, e判定RD, e判定LC };\r
+                                                               const int NumOfChips = 3;       // chipArray.GetLength(0)\r
+\r
+                                                               // CY/RD/LC群を, n発生位置の小さい順に並べる + nullを大きい方に退かす\r
+                                                               SortChipsByNTime(chipArray, e判定Array, NumOfChips);\r
+                                                               switch (eCYGroup)\r
+                                                               {\r
+                                                                       case ECYGroup.打ち分ける:\r
+                                                                               if (!CDTXMania.Instance.ConfigIni.bシンバルフリー)\r
+                                                                               {\r
+                                                                                       if (e判定CY != E判定.Miss)\r
+                                                                                       {\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.CY, chipCY, inputEvent.nVelocity);\r
+                                                                                               bHitted = true;\r
+                                                                                       }\r
+                                                                                       if (!bHitted)\r
+                                                                                               break;\r
+                                                                                       continue;\r
+                                                                               }\r
+                                                                               for (int i = 0; i < NumOfChips; i++)\r
+                                                                               {\r
+                                                                                       if ((e判定Array[i] != E判定.Miss) && ((chipArray[i] == chipCY) || (chipArray[i] == chipLC)))\r
+                                                                                       {\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.CY, chipArray[i], inputEvent.nVelocity);\r
+                                                                                               bHitted = true;\r
+                                                                                               break;\r
+                                                                                       }\r
+                                                                                       //num10++;\r
+                                                                               }\r
+                                                                               if (e判定CY != E判定.Miss)\r
+                                                                               {\r
+                                                                                       this.tドラムヒット処理(nTime, Eパッド.CY, chipCY, inputEvent.nVelocity);\r
+                                                                                       bHitted = true;\r
+                                                                               }\r
+                                                                               if (!bHitted)\r
+                                                                                       break;\r
+                                                                               continue;\r
+\r
+                                                                       case ECYGroup.共通:\r
+                                                                               if (!CDTXMania.Instance.ConfigIni.bシンバルフリー)\r
+                                                                               {\r
+                                                                                       for (int i = 0; i < NumOfChips; i++)\r
+                                                                                       {\r
+                                                                                               if ((e判定Array[i] != E判定.Miss) && ((chipArray[i] == chipCY) || (chipArray[i] == chipRD)))\r
+                                                                                               {\r
+                                                                                                       this.tドラムヒット処理(nTime, Eパッド.CY, chipArray[i], inputEvent.nVelocity);\r
+                                                                                                       bHitted = true;\r
+                                                                                                       break;\r
+                                                                                               }\r
+                                                                                       }\r
+                                                                                       if (!bHitted)\r
+                                                                                               break;\r
+                                                                                       continue;\r
+                                                                               }\r
+                                                                               for (int i = 0; i < NumOfChips; i++)\r
+                                                                               {\r
+                                                                                       if (e判定Array[i] != E判定.Miss)\r
+                                                                                       {\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.CY, chipArray[i], inputEvent.nVelocity);\r
+                                                                                               bHitted = true;\r
+                                                                                               break;\r
+                                                                                       }\r
+                                                                               }\r
+                                                                               if (!bHitted)\r
+                                                                                       break;\r
+                                                                               continue;\r
+                                                               }\r
+                                                               if (!bHitted)\r
+                                                                       break;\r
+                                                               continue;\r
+                                                       }\r
+                                               //-----------------------------\r
+                                                       #endregion\r
+\r
+                                               case Eパッド.HHO:\r
+                                                       #region [ HO(とHCとLC:groupingしている場合)のヒット処理 ]\r
+                                                       //-----------------------------\r
+                                                       {\r
+                                                               if (inputEvent.nVelocity <= CDTXMania.Instance.ConfigIni.nVelocityMin.HH)\r
+                                                                       continue;       // 電子ドラムによる意図的なクロストークを無効にする\r
+\r
+                                                               CChip chipHC = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.HiHatClose, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);\r
+                                                               CChip chipHO = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.HiHatOpen, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);\r
+                                                               CChip chipLC = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.LeftCymbal, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);\r
+                                                               E判定 e判定HC = (chipHC != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipHC, nInputAdjustTime) : E判定.Miss;\r
+                                                               E判定 e判定HO = (chipHO != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipHO, nInputAdjustTime) : E判定.Miss;\r
+                                                               E判定 e判定LC = (chipLC != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipLC, nInputAdjustTime) : E判定.Miss;\r
+                                                               switch (eHHGroup)\r
+                                                               {\r
+                                                                       case EHHGroup.全部打ち分ける:\r
+                                                                               if (e判定HO != E判定.Miss)\r
+                                                                               {\r
+                                                                                       this.tドラムヒット処理(nTime, Eパッド.HHO, chipHO, inputEvent.nVelocity);\r
+                                                                                       bHitted = true;\r
+                                                                               }\r
+                                                                               if (!bHitted)\r
+                                                                                       break;\r
+                                                                               continue;\r
+\r
+                                                                       case EHHGroup.ハイハットのみ打ち分ける:\r
+                                                                               if ((e判定HO != E判定.Miss) && (e判定LC != E判定.Miss))\r
+                                                                               {\r
+                                                                                       if (chipHO.n発声位置 < chipLC.n発声位置)\r
+                                                                                       {\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.HHO, chipHO, inputEvent.nVelocity);\r
+                                                                                       }\r
+                                                                                       else if (chipHO.n発声位置 > chipLC.n発声位置)\r
+                                                                                       {\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.HHO, chipLC, inputEvent.nVelocity);\r
+                                                                                       }\r
+                                                                                       else\r
+                                                                                       {\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.HHO, chipHO, inputEvent.nVelocity);\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.HHO, chipLC, inputEvent.nVelocity);\r
+                                                                                       }\r
+                                                                                       bHitted = true;\r
+                                                                               }\r
+                                                                               else if (e判定HO != E判定.Miss)\r
+                                                                               {\r
+                                                                                       this.tドラムヒット処理(nTime, Eパッド.HHO, chipHO, inputEvent.nVelocity);\r
+                                                                                       bHitted = true;\r
+                                                                               }\r
+                                                                               else if (e判定LC != E判定.Miss)\r
+                                                                               {\r
+                                                                                       this.tドラムヒット処理(nTime, Eパッド.HHO, chipLC, inputEvent.nVelocity);\r
+                                                                                       bHitted = true;\r
+                                                                               }\r
+                                                                               if (!bHitted)\r
+                                                                                       break;\r
+                                                                               continue;\r
+\r
+                                                                       case EHHGroup.左シンバルのみ打ち分ける:\r
+                                                                               if ((e判定HC != E判定.Miss) && (e判定HO != E判定.Miss))\r
+                                                                               {\r
+                                                                                       if (chipHC.n発声位置 < chipHO.n発声位置)\r
+                                                                                       {\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.HHO, chipHC, inputEvent.nVelocity);\r
+                                                                                       }\r
+                                                                                       else if (chipHC.n発声位置 > chipHO.n発声位置)\r
+                                                                                       {\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.HHO, chipHO, inputEvent.nVelocity);\r
+                                                                                       }\r
+                                                                                       else\r
+                                                                                       {\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.HHO, chipHC, inputEvent.nVelocity);\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.HHO, chipHO, inputEvent.nVelocity);\r
+                                                                                       }\r
+                                                                                       bHitted = true;\r
+                                                                               }\r
+                                                                               else if (e判定HC != E判定.Miss)\r
+                                                                               {\r
+                                                                                       this.tドラムヒット処理(nTime, Eパッド.HHO, chipHC, inputEvent.nVelocity);\r
+                                                                                       bHitted = true;\r
+                                                                               }\r
+                                                                               else if (e判定HO != E判定.Miss)\r
+                                                                               {\r
+                                                                                       this.tドラムヒット処理(nTime, Eパッド.HHO, chipHO, inputEvent.nVelocity);\r
+                                                                                       bHitted = true;\r
+                                                                               }\r
+                                                                               if (!bHitted)\r
+                                                                                       break;\r
+                                                                               continue;\r
+\r
+                                                                       case EHHGroup.全部共通:\r
+                                                                               if (((e判定HC != E判定.Miss) && (e判定HO != E判定.Miss)) && (e判定LC != E判定.Miss))\r
+                                                                               {\r
+                                                                                       CChip chip;\r
+                                                                                       CChip[] chipArray = new CChip[] { chipHC, chipHO, chipLC };\r
+                                                                                       // ここから、chipArrayをn発生位置の小さい順に並び替える\r
+                                                                                       if (chipArray[1].n発声位置 > chipArray[2].n発声位置)\r
+                                                                                       {\r
+                                                                                               chip = chipArray[1];\r
+                                                                                               chipArray[1] = chipArray[2];\r
+                                                                                               chipArray[2] = chip;\r
+                                                                                       }\r
+                                                                                       if (chipArray[0].n発声位置 > chipArray[1].n発声位置)\r
+                                                                                       {\r
+                                                                                               chip = chipArray[0];\r
+                                                                                               chipArray[0] = chipArray[1];\r
+                                                                                               chipArray[1] = chip;\r
+                                                                                       }\r
+                                                                                       if (chipArray[1].n発声位置 > chipArray[2].n発声位置)\r
+                                                                                       {\r
+                                                                                               chip = chipArray[1];\r
+                                                                                               chipArray[1] = chipArray[2];\r
+                                                                                               chipArray[2] = chip;\r
+                                                                                       }\r
+                                                                                       this.tドラムヒット処理(nTime, Eパッド.HHO, chipArray[0], inputEvent.nVelocity);\r
+                                                                                       if (chipArray[0].n発声位置 == chipArray[1].n発声位置)\r
+                                                                                       {\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.HHO, chipArray[1], inputEvent.nVelocity);\r
+                                                                                       }\r
+                                                                                       if (chipArray[0].n発声位置 == chipArray[2].n発声位置)\r
+                                                                                       {\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.HHO, chipArray[2], inputEvent.nVelocity);\r
+                                                                                       }\r
+                                                                                       bHitted = true;\r
+                                                                               }\r
+                                                                               else if ((e判定HC != E判定.Miss) && (e判定HO != E判定.Miss))\r
+                                                                               {\r
+                                                                                       if (chipHC.n発声位置 < chipHO.n発声位置)\r
+                                                                                       {\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.HHO, chipHC, inputEvent.nVelocity);\r
+                                                                                       }\r
+                                                                                       else if (chipHC.n発声位置 > chipHO.n発声位置)\r
+                                                                                       {\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.HHO, chipHO, inputEvent.nVelocity);\r
+                                                                                       }\r
+                                                                                       else\r
+                                                                                       {\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.HHO, chipHC, inputEvent.nVelocity);\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.HHO, chipHO, inputEvent.nVelocity);\r
+                                                                                       }\r
+                                                                                       bHitted = true;\r
+                                                                               }\r
+                                                                               else if ((e判定HC != E判定.Miss) && (e判定LC != E判定.Miss))\r
+                                                                               {\r
+                                                                                       if (chipHC.n発声位置 < chipLC.n発声位置)\r
+                                                                                       {\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.HHO, chipHC, inputEvent.nVelocity);\r
+                                                                                       }\r
+                                                                                       else if (chipHC.n発声位置 > chipLC.n発声位置)\r
+                                                                                       {\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.HHO, chipLC, inputEvent.nVelocity);\r
+                                                                                       }\r
+                                                                                       else\r
+                                                                                       {\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.HHO, chipHC, inputEvent.nVelocity);\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.HHO, chipLC, inputEvent.nVelocity);\r
+                                                                                       }\r
+                                                                                       bHitted = true;\r
+                                                                               }\r
+                                                                               else if ((e判定HO != E判定.Miss) && (e判定LC != E判定.Miss))\r
+                                                                               {\r
+                                                                                       if (chipHO.n発声位置 < chipLC.n発声位置)\r
+                                                                                       {\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.HHO, chipHO, inputEvent.nVelocity);\r
+                                                                                       }\r
+                                                                                       else if (chipHO.n発声位置 > chipLC.n発声位置)\r
+                                                                                       {\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.HHO, chipLC, inputEvent.nVelocity);\r
+                                                                                       }\r
+                                                                                       else\r
+                                                                                       {\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.HHO, chipHO, inputEvent.nVelocity);\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.HHO, chipLC, inputEvent.nVelocity);\r
+                                                                                       }\r
+                                                                                       bHitted = true;\r
+                                                                               }\r
+                                                                               else if (e判定HC != E判定.Miss)\r
+                                                                               {\r
+                                                                                       this.tドラムヒット処理(nTime, Eパッド.HHO, chipHC, inputEvent.nVelocity);\r
+                                                                                       bHitted = true;\r
+                                                                               }\r
+                                                                               else if (e判定HO != E判定.Miss)\r
+                                                                               {\r
+                                                                                       this.tドラムヒット処理(nTime, Eパッド.HHO, chipHO, inputEvent.nVelocity);\r
+                                                                                       bHitted = true;\r
+                                                                               }\r
+                                                                               else if (e判定LC != E判定.Miss)\r
+                                                                               {\r
+                                                                                       this.tドラムヒット処理(nTime, Eパッド.HHO, chipLC, inputEvent.nVelocity);\r
+                                                                                       bHitted = true;\r
+                                                                               }\r
+                                                                               if (!bHitted)\r
+                                                                                       break;\r
+                                                                               continue;\r
+                                                               }\r
+                                                               if (!bHitted)\r
+                                                                       break;\r
+                                                               continue;\r
+                                                       }\r
+                                               //-----------------------------\r
+                                                       #endregion\r
+\r
+                                               case Eパッド.RD:\r
+                                                       #region [ RD(とCYとLC:groupingしている場合)のヒット処理 ]\r
+                                                       //-----------------------------\r
+                                                       {\r
+                                                               if (inputEvent.nVelocity <= CDTXMania.Instance.ConfigIni.nVelocityMin.RD)       // #23857 2010.12.12 yyagi: to support VelocityMin\r
+                                                                       continue;       // 電子ドラムによる意図的なクロストークを無効にする\r
+                                                               CChip chipCY = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.Cymbal, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);\r
+                                                               CChip chipRD = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.RideCymbal, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);\r
+                                                               CChip chipLC = CDTXMania.Instance.ConfigIni.bシンバルフリー ? this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.LeftCymbal, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1) : null;\r
+                                                               E判定 e判定CY = (chipCY != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipCY, nInputAdjustTime) : E判定.Miss;\r
+                                                               E判定 e判定RD = (chipRD != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipRD, nInputAdjustTime) : E判定.Miss;\r
+                                                               E判定 e判定LC = (chipLC != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipLC, nInputAdjustTime) : E判定.Miss;\r
+                                                               CChip[] chipArray = new CChip[] { chipCY, chipRD, chipLC };\r
+                                                               E判定[] e判定Array = new E判定[] { e判定CY, e判定RD, e判定LC };\r
+                                                               const int NumOfChips = 3;       // chipArray.GetLength(0)\r
+\r
+                                                               // HH/CY群を, n発生位置の小さい順に並べる + nullを大きい方に退かす\r
+                                                               SortChipsByNTime(chipArray, e判定Array, NumOfChips);\r
+                                                               switch (eCYGroup)\r
+                                                               {\r
+                                                                       case ECYGroup.打ち分ける:\r
+                                                                               if (e判定RD != E判定.Miss)\r
+                                                                               {\r
+                                                                                       this.tドラムヒット処理(nTime, Eパッド.RD, chipRD, inputEvent.nVelocity);\r
+                                                                                       bHitted = true;\r
+                                                                               }\r
+                                                                               break;\r
+\r
+                                                                       case ECYGroup.共通:\r
+                                                                               if (!CDTXMania.Instance.ConfigIni.bシンバルフリー)\r
+                                                                               {\r
+                                                                                       for (int i = 0; i < NumOfChips; i++)\r
+                                                                                       {\r
+                                                                                               if ((e判定Array[i] != E判定.Miss) && ((chipArray[i] == chipCY) || (chipArray[i] == chipRD)))\r
+                                                                                               {\r
+                                                                                                       this.tドラムヒット処理(nTime, Eパッド.CY, chipArray[i], inputEvent.nVelocity);\r
+                                                                                                       bHitted = true;\r
+                                                                                                       break;\r
+                                                                                               }\r
+                                                                                       }\r
+                                                                                       break;\r
+                                                                               }\r
+                                                                               for (int i = 0; i < NumOfChips; i++)\r
+                                                                               {\r
+                                                                                       if (e判定Array[i] != E判定.Miss)\r
+                                                                                       {\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.CY, chipArray[i], inputEvent.nVelocity);\r
+                                                                                               bHitted = true;\r
+                                                                                               break;\r
+                                                                                       }\r
+                                                                               }\r
+                                                                               break;\r
+                                                               }\r
+                                                               if (bHitted)\r
+                                                               {\r
+                                                                       continue;\r
+                                                               }\r
+                                                               break;\r
+                                                       }\r
+                                               //-----------------------------\r
+                                                       #endregion\r
+\r
+                                               case Eパッド.LC:\r
+                                                       #region [ LC(とHC/HOとCYと:groupingしている場合)のヒット処理 ]\r
+                                                       //-----------------------------\r
+                                                       {\r
+                                                               if (inputEvent.nVelocity <= CDTXMania.Instance.ConfigIni.nVelocityMin.LC)       // #23857 2010.12.12 yyagi: to support VelocityMin\r
+                                                                       continue;       // 電子ドラムによる意図的なクロストークを無効にする\r
+                                                               CChip chipHC = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.HiHatClose, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);  // HC\r
+                                                               CChip chipHO = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.HiHatOpen, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);   // HO\r
+                                                               CChip chipLC = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.LeftCymbal, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);  // LC\r
+                                                               CChip chipCY = CDTXMania.Instance.ConfigIni.bシンバルフリー ? this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.Cymbal, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1) : null;\r
+                                                               CChip chipRD = CDTXMania.Instance.ConfigIni.bシンバルフリー ? this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.RideCymbal, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1) : null;\r
+                                                               E判定 e判定HC = (chipHC != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipHC, nInputAdjustTime) : E判定.Miss;\r
+                                                               E判定 e判定HO = (chipHO != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipHO, nInputAdjustTime) : E判定.Miss;\r
+                                                               E判定 e判定LC = (chipLC != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipLC, nInputAdjustTime) : E判定.Miss;\r
+                                                               E判定 e判定CY = (chipCY != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipCY, nInputAdjustTime) : E判定.Miss;\r
+                                                               E判定 e判定RD = (chipRD != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipRD, nInputAdjustTime) : E判定.Miss;\r
+                                                               CChip[] chipArray = new CChip[] { chipHC, chipHO, chipLC, chipCY, chipRD };\r
+                                                               E判定[] e判定Array = new E判定[] { e判定HC, e判定HO, e判定LC, e判定CY, e判定RD };\r
+                                                               const int NumOfChips = 5;       // chipArray.GetLength(0)\r
+\r
+                                                               // HH/CY群を, n発生位置の小さい順に並べる + nullを大きい方に退かす\r
+                                                               SortChipsByNTime(chipArray, e判定Array, NumOfChips);\r
+                                                               switch (eHHGroup)\r
+                                                               {\r
+                                                                       case EHHGroup.全部打ち分ける:\r
+                                                                       case EHHGroup.左シンバルのみ打ち分ける:\r
+                                                                               if (!CDTXMania.Instance.ConfigIni.bシンバルフリー)\r
+                                                                               {\r
+                                                                                       if (e判定LC != E判定.Miss)\r
+                                                                                       {\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.LC, chipLC, inputEvent.nVelocity);\r
+                                                                                               bHitted = true;\r
+                                                                                       }\r
+                                                                                       if (!bHitted)\r
+                                                                                               break;\r
+                                                                                       continue;\r
+                                                                               }\r
+                                                                               for (int i = 0; i < NumOfChips; i++)\r
+                                                                               {\r
+                                                                                       if ((e判定Array[i] != E判定.Miss) && (((chipArray[i] == chipLC) || (chipArray[i] == chipCY)) || ((chipArray[i] == chipRD) && (CDTXMania.Instance.ConfigIni.eCYGroup == ECYGroup.共通))))\r
+                                                                                       {\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.LC, chipArray[i], inputEvent.nVelocity);\r
+                                                                                               bHitted = true;\r
+                                                                                               break;\r
+                                                                                       }\r
+                                                                               }\r
+                                                                               if (!bHitted)\r
+                                                                                       break;\r
+                                                                               continue;\r
+\r
+                                                                       case EHHGroup.ハイハットのみ打ち分ける:\r
+                                                                       case EHHGroup.全部共通:\r
+                                                                               if (!CDTXMania.Instance.ConfigIni.bシンバルフリー)\r
+                                                                               {\r
+                                                                                       for (int i = 0; i < NumOfChips; i++)\r
+                                                                                       {\r
+                                                                                               if ((e判定Array[i] != E判定.Miss) && (((chipArray[i] == chipLC) || (chipArray[i] == chipHC)) || (chipArray[i] == chipHO)))\r
+                                                                                               {\r
+                                                                                                       this.tドラムヒット処理(nTime, Eパッド.LC, chipArray[i], inputEvent.nVelocity);\r
+                                                                                                       bHitted = true;\r
+                                                                                                       break;\r
+                                                                                               }\r
+                                                                                       }\r
+                                                                                       if (!bHitted)\r
+                                                                                               break;\r
+                                                                                       continue;\r
+                                                                               }\r
+                                                                               for (int i = 0; i < NumOfChips; i++)\r
+                                                                               {\r
+                                                                                       if ((e判定Array[i] != E判定.Miss) && ((chipArray[i] != chipRD) || (CDTXMania.Instance.ConfigIni.eCYGroup == ECYGroup.共通)))\r
+                                                                                       {\r
+                                                                                               this.tドラムヒット処理(nTime, Eパッド.LC, chipArray[i], inputEvent.nVelocity);\r
+                                                                                               bHitted = true;\r
+                                                                                               break;\r
+                                                                                       }\r
+                                                                               }\r
+                                                                               if (!bHitted)\r
+                                                                                       break;\r
+                                                                               continue;\r
+                                                               }\r
+                                                               if (!bHitted)\r
+                                                                       break;\r
+\r
+                                                               break;\r
+                                                       }\r
+                                               //-----------------------------\r
+                                                       #endregion\r
+\r
+                                               case Eパッド.HP:             // #27029 2012.1.4 from\r
+                                                       #region [ HPのヒット処理 ]\r
+                                                       //-----------------\r
+                                                       if (CDTXMania.Instance.ConfigIni.eBDGroup == EBDGroup.どっちもBD)\r
+                                                       {\r
+                                                               #region [ BDとみなしてヒット処理 ]\r
+                                                               //-----------------\r
+                                                               if (!this.tドラムヒット処理(nTime, Eパッド.BD, this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.BassDrum, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1), inputEvent.nVelocity))\r
+                                                                       break;\r
+                                                               continue;\r
+                                                               //-----------------\r
+                                                               #endregion\r
+                                                       }\r
+                                                       else\r
+                                                       {\r
+                                                               #region [ HPのヒット処理 ]\r
+                                                               //-----------------\r
+                                                               continue;       // 何もしない。この入力を完全に無視するので、break しないこと。\r
+                                                               //-----------------\r
+                                                               #endregion\r
+                                                       }\r
+                                               //-----------------\r
+                                                       #endregion\r
+                                       }\r
+                                       //-----------------------------\r
+                                       #endregion\r
+                                       #region [ (B) ヒットしてなかった場合は、レーンフラッシュ、パッドアニメ、空打ち音再生を実行 ]\r
+                                       //-----------------------------\r
+                                       int pad = nPad; // 以下、nPad の代わりに pad を用いる。(成りすまし用)\r
+\r
+                                       if (nPad == (int)Eパッド.HP) // #27029 2012.1.4 from: HP&BD 時の HiHatPedal の場合は BD に成りすます。\r
+                                               pad = (int)Eパッド.BD;               //( HP|BD 時のHP入力はここまでこないので無視。)\r
+\r
+                                       // レーンフラッシュ\r
+                                       this.actLaneFlushD.Start((Eレーン)this.nパッド0Atoレーン07[pad], ((float)inputEvent.nVelocity) / 127f);\r
+\r
+                                       // パッドアニメ\r
+                                       this.actPad.Hit(this.nパッド0Atoパッド08[pad]);\r
+\r
+                                       // 空打ち音\r
+                                       if (CDTXMania.Instance.ConfigIni.bドラム打音を発声する)\r
+                                       {\r
+                                               CChip rChip = this.r空うちChip(E楽器パート.DRUMS, (Eパッド)pad);\r
+                                               if (rChip != null)\r
+                                               {\r
+                                                       #region [ (B1) 空打ち音が譜面で指定されているのでそれを再生する。]\r
+                                                       //-----------------\r
+                                                       this.tサウンド再生(rChip, CSound管理.rc演奏用タイマ.nシステム時刻, E楽器パート.DRUMS, CDTXMania.Instance.ConfigIni.n手動再生音量, CDTXMania.Instance.ConfigIni.b演奏音を強調する.Drums);\r
+                                                       //-----------------\r
+                                                       #endregion\r
+                                               }\r
+                                               else\r
+                                               {\r
+                                                       #region [ (B2) 空打ち音が指定されていないので一番近いチップを探して再生する。]\r
+                                                       //-----------------\r
+                                                       switch (((Eパッド)pad))\r
+                                                       {\r
+                                                               case Eパッド.HH:\r
+                                                                       #region [ *** ]\r
+                                                                       //-----------------------------\r
+                                                                       {\r
+                                                                               CChip chipHC = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[0], nInputAdjustTime);\r
+                                                                               CChip chipHO = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[7], nInputAdjustTime);\r
+                                                                               CChip chipLC = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[9], nInputAdjustTime);\r
+                                                                               switch (CDTXMania.Instance.ConfigIni.eHHGroup)\r
+                                                                               {\r
+                                                                                       case EHHGroup.ハイハットのみ打ち分ける:\r
+                                                                                               rChip = (chipHC != null) ? chipHC : chipLC;\r
+                                                                                               break;\r
+\r
+                                                                                       case EHHGroup.左シンバルのみ打ち分ける:\r
+                                                                                               rChip = (chipHC != null) ? chipHC : chipHO;\r
+                                                                                               break;\r
+\r
+                                                                                       case EHHGroup.全部共通:\r
+                                                                                               if (chipHC != null)\r
+                                                                                               {\r
+                                                                                                       rChip = chipHC;\r
+                                                                                               }\r
+                                                                                               else if (chipHO == null)\r
+                                                                                               {\r
+                                                                                                       rChip = chipLC;\r
+                                                                                               }\r
+                                                                                               else if (chipLC == null)\r
+                                                                                               {\r
+                                                                                                       rChip = chipHO;\r
+                                                                                               }\r
+                                                                                               else if (chipHO.n発声位置 < chipLC.n発声位置)\r
+                                                                                               {\r
+                                                                                                       rChip = chipHO;\r
+                                                                                               }\r
+                                                                                               else\r
+                                                                                               {\r
+                                                                                                       rChip = chipLC;\r
+                                                                                               }\r
+                                                                                               break;\r
+\r
+                                                                                       default:\r
+                                                                                               rChip = chipHC;\r
+                                                                                               break;\r
+                                                                               }\r
+                                                                       }\r
+                                                                       //-----------------------------\r
+                                                                       #endregion\r
+                                                                       break;\r
+\r
+                                                               case Eパッド.LT:\r
+                                                                       #region [ *** ]\r
+                                                                       //-----------------------------\r
+                                                                       {\r
+                                                                               CChip chipLT = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[4], nInputAdjustTime);\r
+                                                                               CChip chipFT = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[5], nInputAdjustTime);\r
+                                                                               if (CDTXMania.Instance.ConfigIni.eFTGroup != EFTGroup.打ち分ける)\r
+                                                                                       rChip = (chipLT != null) ? chipLT : chipFT;\r
+                                                                               else\r
+                                                                                       rChip = chipLT;\r
+                                                                       }\r
+                                                                       //-----------------------------\r
+                                                                       #endregion\r
+                                                                       break;\r
+\r
+                                                               case Eパッド.FT:\r
+                                                                       #region [ *** ]\r
+                                                                       //-----------------------------\r
+                                                                       {\r
+                                                                               CChip chipLT = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[4], nInputAdjustTime);\r
+                                                                               CChip chipFT = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[5], nInputAdjustTime);\r
+                                                                               if (CDTXMania.Instance.ConfigIni.eFTGroup != EFTGroup.打ち分ける)\r
+                                                                                       rChip = (chipFT != null) ? chipFT : chipLT;\r
+                                                                               else\r
+                                                                                       rChip = chipFT;\r
+                                                                       }\r
+                                                                       //-----------------------------\r
+                                                                       #endregion\r
+                                                                       break;\r
+\r
+                                                               case Eパッド.CY:\r
+                                                                       #region [ *** ]\r
+                                                                       //-----------------------------\r
+                                                                       {\r
+                                                                               CChip chipCY = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[6], nInputAdjustTime);\r
+                                                                               CChip chipRD = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[8], nInputAdjustTime);\r
+                                                                               if (CDTXMania.Instance.ConfigIni.eCYGroup != ECYGroup.打ち分ける)\r
+                                                                                       rChip = (chipCY != null) ? chipCY : chipRD;\r
+                                                                               else\r
+                                                                                       rChip = chipCY;\r
+                                                                       }\r
+                                                                       //-----------------------------\r
+                                                                       #endregion\r
+                                                                       break;\r
+\r
+                                                               case Eパッド.HHO:\r
+                                                                       #region [ *** ]\r
+                                                                       //-----------------------------\r
+                                                                       {\r
+                                                                               CChip chipHC = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[0], nInputAdjustTime);\r
+                                                                               CChip chipHO = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[7], nInputAdjustTime);\r
+                                                                               CChip chipLC = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[9], nInputAdjustTime);\r
+                                                                               switch (CDTXMania.Instance.ConfigIni.eHHGroup)\r
+                                                                               {\r
+                                                                                       case EHHGroup.全部打ち分ける:\r
+                                                                                               rChip = chipHO;\r
+                                                                                               break;\r
+\r
+                                                                                       case EHHGroup.ハイハットのみ打ち分ける:\r
+                                                                                               rChip = (chipHO != null) ? chipHO : chipLC;\r
+                                                                                               break;\r
+\r
+                                                                                       case EHHGroup.左シンバルのみ打ち分ける:\r
+                                                                                               rChip = (chipHO != null) ? chipHO : chipHC;\r
+                                                                                               break;\r
+\r
+                                                                                       case EHHGroup.全部共通:\r
+                                                                                               if (chipHO != null)\r
+                                                                                               {\r
+                                                                                                       rChip = chipHO;\r
+                                                                                               }\r
+                                                                                               else if (chipHC == null)\r
+                                                                                               {\r
+                                                                                                       rChip = chipLC;\r
+                                                                                               }\r
+                                                                                               else if (chipLC == null)\r
+                                                                                               {\r
+                                                                                                       rChip = chipHC;\r
+                                                                                               }\r
+                                                                                               else if (chipHC.n発声位置 < chipLC.n発声位置)\r
+                                                                                               {\r
+                                                                                                       rChip = chipHC;\r
+                                                                                               }\r
+                                                                                               else\r
+                                                                                               {\r
+                                                                                                       rChip = chipLC;\r
+                                                                                               }\r
+                                                                                               break;\r
+                                                                               }\r
+                                                                       }\r
+                                                                       //-----------------------------\r
+                                                                       #endregion\r
+                                                                       break;\r
+\r
+                                                               case Eパッド.RD:\r
+                                                                       #region [ *** ]\r
+                                                                       //-----------------------------\r
+                                                                       {\r
+                                                                               CChip chipCY = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[6], nInputAdjustTime);\r
+                                                                               CChip chipRD = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[8], nInputAdjustTime);\r
+                                                                               if (CDTXMania.Instance.ConfigIni.eCYGroup != ECYGroup.打ち分ける)\r
+                                                                                       rChip = (chipRD != null) ? chipRD : chipCY;\r
+                                                                               else\r
+                                                                                       rChip = chipRD;\r
+                                                                       }\r
+                                                                       //-----------------------------\r
+                                                                       #endregion\r
+                                                                       break;\r
+\r
+                                                               case Eパッド.LC:\r
+                                                                       #region [ *** ]\r
+                                                                       //-----------------------------\r
+                                                                       {\r
+                                                                               CChip chipHC = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[0], nInputAdjustTime);\r
+                                                                               CChip chipHO = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[7], nInputAdjustTime);\r
+                                                                               CChip chipLC = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[9], nInputAdjustTime);\r
+                                                                               switch (CDTXMania.Instance.ConfigIni.eHHGroup)\r
+                                                                               {\r
+                                                                                       case EHHGroup.全部打ち分ける:\r
+                                                                                       case EHHGroup.左シンバルのみ打ち分ける:\r
+                                                                                               rChip = chipLC;\r
+                                                                                               break;\r
+\r
+                                                                                       case EHHGroup.ハイハットのみ打ち分ける:\r
+                                                                                       case EHHGroup.全部共通:\r
+                                                                                               if (chipLC != null)\r
+                                                                                               {\r
+                                                                                                       rChip = chipLC;\r
+                                                                                               }\r
+                                                                                               else if (chipHC == null)\r
+                                                                                               {\r
+                                                                                                       rChip = chipHO;\r
+                                                                                               }\r
+                                                                                               else if (chipHO == null)\r
+                                                                                               {\r
+                                                                                                       rChip = chipHC;\r
+                                                                                               }\r
+                                                                                               else if (chipHC.n発声位置 < chipHO.n発声位置)\r
+                                                                                               {\r
+                                                                                                       rChip = chipHC;\r
+                                                                                               }\r
+                                                                                               else\r
+                                                                                               {\r
+                                                                                                       rChip = chipHO;\r
+                                                                                               }\r
+                                                                                               break;\r
+                                                                               }\r
+                                                                       }\r
+                                                                       //-----------------------------\r
+                                                                       #endregion\r
+                                                                       break;\r
 \r
-                               if (ret != null)\r
-                               {\r
-                                       if (OutOfRange(ret))\r
-                                       {\r
-                                               // チップは見つかったが、検索範囲時間外だった場合\r
-                                               ret = null;\r
+                                                               default:\r
+                                                                       #region [ *** ]\r
+                                                                       //-----------------------------\r
+                                                                       rChip = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[pad], nInputAdjustTime);\r
+                                                                       //-----------------------------\r
+                                                                       #endregion\r
+                                                                       break;\r
+                                                       }\r
+                                                       if (rChip != null)\r
+                                                       {\r
+                                                               // 空打ち音が見つかったので再生する。\r
+                                                               this.tサウンド再生(rChip, CSound管理.rc演奏用タイマ.nシステム時刻, E楽器パート.DRUMS, CDTXMania.Instance.ConfigIni.n手動再生音量, CDTXMania.Instance.ConfigIni.b演奏音を強調する.Drums);\r
+                                                       }\r
+                                                       //-----------------\r
+                                                       #endregion\r
+                                               }\r
                                        }\r
+\r
+                                       // BAD or TIGHT 時の処理。\r
+                                       if (CDTXMania.Instance.ConfigIni.bTight)\r
+                                               this.tチップのヒット処理_BadならびにTight時のMiss(E楽器パート.DRUMS, this.nパッド0Atoレーン07[pad]);\r
+                                       //-----------------------------\r
+                                       #endregion\r
                                }\r
                        }\r
-                       return ret;\r
                }\r
-\r
-               protected CChip r次に来る指定楽器Chipを更新して返す(E楽器パート inst)\r
+               private void ドラムスクロール速度アップ()\r
                {\r
-                       CChip ret = null;\r
-                       int nInputAdjustTime;\r
-                       if (inst == E楽器パート.GUITAR)\r
-                       {\r
-                               nInputAdjustTime = this.bIsAutoPlay.GtPick ? 0 : this.nInputAdjustTimeMs.Guitar;\r
-                               ret = this.r指定時刻に一番近い未ヒットChip(CSound管理.rc演奏用タイマ.n現在時刻, Ech定義.Guitar_WailingSound, nInputAdjustTime, 500);\r
-                               this.r次にくるギターChip = ret;\r
-                       }\r
-                       else if (inst == E楽器パート.BASS)\r
-                       {\r
-                               nInputAdjustTime = this.bIsAutoPlay.BsPick ? 0 : this.nInputAdjustTimeMs.Bass;\r
-                               ret = this.r指定時刻に一番近い未ヒットChip(CSound管理.rc演奏用タイマ.n現在時刻, Ech定義.Bass_WailingSound, nInputAdjustTime, 500);\r
-                               this.r次にくるベースChip = ret;\r
-                       }\r
-                       return ret;\r
+                       float f = (float)this.演奏判定ライン座標.nJudgeLinePosY_delta.Drums / (CDTXMania.Instance.ConfigIni.n譜面スクロール速度.Drums + 1);\r
+                       Debug.WriteLine("scr=" + CDTXMania.Instance.ConfigIni.n譜面スクロール速度.Drums + ", f1=" + f);\r
+                       CDTXMania.Instance.ConfigIni.n譜面スクロール速度.Drums = Math.Min(CDTXMania.Instance.ConfigIni.n譜面スクロール速度.Drums + 1, 1999);\r
+                       f *= (CDTXMania.Instance.ConfigIni.n譜面スクロール速度.Drums + 1);\r
+                       Debug.WriteLine("scr=" + CDTXMania.Instance.ConfigIni.n譜面スクロール速度.Drums + ", f2=" + f);\r
+                       this.演奏判定ライン座標.nJudgeLinePosY_delta.Drums = (int)(f + 0.5);\r
+                       CDTXMania.Instance.ConfigIni.nJudgeLinePosOffset.Drums = (int)(f + 0.5);\r
                }\r
-\r
-               protected void ChangeInputAdjustTimeInPlaying(IInputDevice keyboard, int plusminus)             // #23580 2011.1.16 yyagi UI for InputAdjustTime in playing screen.\r
+               private void ドラムスクロール速度ダウン()\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] > 99)\r
-                       {\r
-                               this.nInputAdjustTimeMs[part] = 99;\r
-                       }\r
-                       else if (this.nInputAdjustTimeMs[part] < -99)\r
-                       {\r
-                               this.nInputAdjustTimeMs[part] = -99;\r
-                       }\r
-                       CDTXMania.Instance.ConfigIni.nInputAdjustTimeMs[part] = this.nInputAdjustTimeMs[part];\r
+                       float f = (float)this.演奏判定ライン座標.nJudgeLinePosY_delta.Drums / (CDTXMania.Instance.ConfigIni.n譜面スクロール速度.Drums + 1);\r
+                       CDTXMania.Instance.ConfigIni.n譜面スクロール速度.Drums = Math.Max(CDTXMania.Instance.ConfigIni.n譜面スクロール速度.Drums - 1, 0);\r
+                       f *= (CDTXMania.Instance.ConfigIni.n譜面スクロール速度.Drums + 1);\r
+                       this.演奏判定ライン座標.nJudgeLinePosY_delta.Drums = (int)(f + 0.5);\r
+                       CDTXMania.Instance.ConfigIni.nJudgeLinePosOffset.Drums = (int)(f + 0.5);\r
                }\r
 \r
-               protected abstract void t入力処理_ドラム();\r
-               protected abstract void ドラムスクロール速度アップ();\r
-               protected abstract void ドラムスクロール速度ダウン();\r
                private int nStartTime_ = 0;\r
                protected void tキー入力()\r
                {\r
@@ -1278,8 +2617,9 @@ namespace DTXMania
                                else\r
                                {\r
                                        CDTXMania.Instance.DTX.t全AVIの再生再開();\r
-                                       //CDTXMania.Instance.DTX.t全チップの再生再開();\r
+                                       // CDTXMania.Instance.DTX.t全チップの再生再開();\r
                                        #region [ PAUSE連打でのBGMずれ対策 (AVIはずれたままになるが無視・・・) ]\r
+\r
                                        List<CSound> pausedCSound = new List<CSound>();\r
                                        for (int i = this.n現在のトップChip; i >= 0; i--)\r
                                        {\r
@@ -1314,6 +2654,7 @@ namespace DTXMania
                                        {\r
                                                cs.tサウンドを再生する();\r
                                        }\r
+\r
                                        #endregion\r
                                        CDTXMania.Instance.Timer.t再開();\r
                                        CSound管理.rc演奏用タイマ.t再開();\r
@@ -1321,7 +2662,10 @@ namespace DTXMania
                        }\r
                        if ((!this.bPAUSE && (base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED)) && (base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト))\r
                        {\r
-                               this.t入力処理_ドラム();\r
+                               if (!CDTXMania.Instance.ConfigIni.bギタレボモード)\r
+                               {\r
+                                       this.t入力処理_ドラム();\r
+                               }\r
                                this.t入力処理_ギターベース(E楽器パート.GUITAR);\r
                                this.t入力処理_ギターベース(E楽器パート.BASS);\r
                                if (keyboard.bキーが押された((int)SlimDX.DirectInput.Key.UpArrow) && (keyboard.bキーが押されている((int)SlimDX.DirectInput.Key.RightShift) || keyboard.bキーが押されている((int)SlimDX.DirectInput.Key.LeftShift)))\r
@@ -1404,23 +2748,69 @@ namespace DTXMania
                                this.b演奏にマウスを使った[(int)part] = true;\r
                        }\r
                }\r
-               protected abstract void t進行描画_AVI();\r
-               protected void t進行描画_AVI(int x, int y)\r
+\r
+               protected void t進行描画_AVI()\r
+               {\r
+                       if ((\r
+                               (base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED) &&\r
+                               (base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト)) &&\r
+                               (!CDTXMania.Instance.ConfigIni.bストイックモード && CDTXMania.Instance.ConfigIni.bAVI有効))\r
+                       {\r
+                               if (CDTXMania.Instance.ConfigIni.bギタレボモード)\r
+                               {\r
+                                       this.actAVI.t進行描画(682, 112, 556, 710);\r
+                               }\r
+                               else\r
+                               {\r
+                                       if (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left)\r
+                                       {\r
+                                               this.actAVI.t進行描画(1153, 128, 556, 710);\r
+                                       }\r
+                                       else\r
+                                       {\r
+                                               this.actAVI.t進行描画(619 + 682, 128, 556, 710);\r
+                                       }\r
+                               }\r
+                       }\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.Instance.ConfigIni.bストイックモード && CDTXMania.Instance.ConfigIni.bAVI有効))\r
+                       if ((\r
+                               (base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED) &&\r
+                               (base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト)) &&\r
+                               (!CDTXMania.Instance.ConfigIni.bストイックモード && CDTXMania.Instance.ConfigIni.bBGA有効))\r
                        {\r
-                               this.actAVI.t進行描画(x, y, 556, 710);\r
+                               // DR\r
+                               if (CDTXMania.Instance.ConfigIni.bギタレボモード)\r
+                               {\r
+                                       this.actBGA.t進行描画(682, 112);\r
+                               }\r
+                               else\r
+                               {\r
+                                       if (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left)\r
+                                       {\r
+                                               this.actBGA.t進行描画(1153, 128);\r
+                                       }\r
+                                       else\r
+                                       {\r
+                                               this.actBGA.t進行描画(619 + 682, 128);\r
+                                       }\r
+                               }\r
                        }\r
                }\r
-               protected abstract void t進行描画_BGA();\r
-               protected void t進行描画_BGA(int x, int y)\r
+\r
+               private void t進行描画_DANGER()\r
                {\r
-                       if (((base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED) && (base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト)) && (!CDTXMania.Instance.ConfigIni.bストイックモード && CDTXMania.Instance.ConfigIni.bBGA有効))\r
+                       if (CDTXMania.Instance.ConfigIni.bギタレボモード)\r
+                       {\r
+                               this.actDANGER.t進行描画(false, this.actGauge.IsDanger(E楽器パート.GUITAR), this.actGauge.IsDanger(E楽器パート.BASS));// #23631 2011.4.19 yyagi\r
+                       }\r
+                       else\r
                        {\r
-                               this.actBGA.t進行描画(x, y);\r
+                               this.actDANGER.t進行描画(this.actGauge.IsDanger(E楽器パート.DRUMS), false, false);\r
                        }\r
                }\r
-               protected abstract void t進行描画_DANGER();\r
                protected void t進行描画_MIDIBGM()\r
                {\r
                        if (base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED)\r
@@ -1451,9 +2841,25 @@ namespace DTXMania
                                this.actWailingBonus.On進行描画();\r
                        }\r
                }\r
-               protected abstract void t進行描画_Wailing枠();\r
-               protected void t進行描画_Wailing枠(int GtWailingFrameX, int BsWailingFrameX, int GtWailingFrameY, int BsWailingFrameY)\r
+\r
+               private void t進行描画_Wailing枠()\r
                {\r
+                       int GtWailingFrameX;\r
+                       int BsWailingFrameX;\r
+                       int GtWailingFrameY = this.演奏判定ライン座標.n判定ラインY座標(E楽器パート.GUITAR, bReverse[(int)E楽器パート.GUITAR], true, true);\r
+                       int BsWailingFrameY = this.演奏判定ライン座標.n判定ラインY座標(E楽器パート.BASS, bReverse[(int)E楽器パート.BASS], true, true);\r
+\r
+                       if (CDTXMania.Instance.ConfigIni.bギタレボモード)\r
+                       {\r
+                               GtWailingFrameX = (int)(139 * Scale.X);\r
+                               BsWailingFrameX = (int)(593 * Scale.X);\r
+                       }\r
+                       else\r
+                       {\r
+                               GtWailingFrameX = (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? 1761 : 1690;\r
+                               BsWailingFrameX = (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? 1434 : 440;\r
+                       }\r
+\r
                        if ((CDTXMania.Instance.ConfigIni.eDark != Eダークモード.FULL) && CDTXMania.Instance.ConfigIni.bGuitar有効)\r
                        {\r
                                if (this.txWailing枠 != null)\r
@@ -1470,16 +2876,25 @@ namespace DTXMania
                        }\r
                }\r
 \r
-\r
                protected void t進行描画_チップファイアGB()\r
                {\r
                        this.actChipFireGB.On進行描画();\r
                }\r
-               protected abstract void t進行描画_パネル文字列();\r
-               protected void t進行描画_パネル文字列(int x, int y)\r
+               protected void t進行描画_パネル文字列()\r
                {\r
                        if ((base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED) && (base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト))\r
                        {\r
+                               int x, y;\r
+                               if (CDTXMania.Instance.ConfigIni.bギタレボモード)\r
+                               {\r
+                                       x = 0xb5;\r
+                                       y = 430;\r
+                               }\r
+                               else\r
+                               {\r
+                                       x = CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left ? 336 : 427;\r
+                                       y = 428;\r
+                               }\r
                                this.actPanel.t進行描画(x, y);\r
                        }\r
                }\r
@@ -1519,7 +2934,7 @@ namespace DTXMania
                        {\r
                                return true;\r
                        }\r
-                       if ((this.n現在のトップChip == -1) || (this.n現在のトップChip >= listChip.Count))\r
+                       if ((this.n現在のトップChip == -1) || (this.n現在のトップChip >= CDTXMania.Instance.DTX.listChip.Count))\r
                        {\r
                                return true;\r
                        }\r
@@ -1675,11 +3090,11 @@ namespace DTXMania
                                }\r
                                else if (pChip.bDrums可視チップ && pChip.b空打ちチップである)\r
                                {\r
-                                       this.t進行描画_チップ_空打ち音設定_ドラム(configIni, ref dTX, ref pChip);\r
+                                       this.t進行描画_チップ_空打ち音設定_ドラム(ref pChip);\r
                                }\r
                                else if (pChip.bDrums可視チップ_LP_LBD含まない)\r
                                {\r
-                                       this.t進行描画_チップ_ドラムス(configIni, ref dTX, ref pChip);\r
+                                       this.t進行描画_チップ_ドラムス(ref pChip);\r
                                }\r
                                else if (pChip[Ech定義.DrumsFillin] && !pChip.bHit && (pChip.nバーからの距離dot.Drums < 0))\r
                                {\r
@@ -1688,11 +3103,11 @@ namespace DTXMania
                                }\r
                                else if (pChip.bGuitar可視チップ)\r
                                {\r
-                                       this.t進行描画_チップ_ギターベース(configIni, ref dTX, ref pChip, E楽器パート.GUITAR);\r
+                                       this.t進行描画_チップ_ギターベース(ref pChip, E楽器パート.GUITAR);\r
                                }\r
                                else if (pChip[Ech定義.Guitar_Wailing])\r
                                {\r
-                                       this.té\80²è¡\8cæ\8f\8fç\94»_ã\83\81ã\83\83ã\83\97\82®ã\82¿ã\83¼_ã\82¦ã\82§ã\82¤ã\83ªã\83³ã\82°(configIni, ref dTX, ref pChip, !CDTXMania.Instance.ConfigIni.bDrumsæ\9c\89å\8a¹);\r
+                                       this.té\80²è¡\8cæ\8f\8fç\94»_ã\83\81ã\83\83ã\83\97\82¦ã\82§ã\82¤ã\83ªã\83³ã\82°(ref pChip);\r
                                }\r
                                else if (pChip[Ech定義.Guitar_WailingSound] && !pChip.bHit && (pChip.nバーからの距離dot.Guitar < 0))\r
                                {\r
@@ -1705,7 +3120,7 @@ namespace DTXMania
                                }\r
                                else if (pChip[Ech定義.BarLine])// 小節線\r
                                {\r
-                                       this.t進行描画_チップ_小節線(configIni, ref dTX, ref pChip);\r
+                                       this.t進行描画_チップ_小節線(ref pChip);\r
                                }\r
                                else if (pChip[Ech定義.BeatLine] && !pChip.bHit && (pChip.nバーからの距離dot.Drums < 0))// 拍線\r
                                {\r
@@ -1735,7 +3150,7 @@ namespace DTXMania
                                }\r
                                else if (pChip[Ech定義.FillIn])\r
                                {\r
-                                       this.t進行描画_チップ_フィルイン(configIni, ref dTX, ref pChip);\r
+                                       this.t進行描画_チップ_フィルイン(ref pChip);\r
                                }\r
                                else if (pChip.bMovie && !pChip.bHit && (pChip.nバーからの距離dot.Drums < 0))\r
                                {\r
@@ -1753,10 +3168,7 @@ namespace DTXMania
                                                switch (pChip.eAVI種別)\r
                                                {\r
                                                        case EAVI種別.AVI:\r
-                                                               //if ( pChip.rAVI != null )\r
                                                                {\r
-                                                                       //int startWidth = ( CDTXMania.Instance.DTX.bチップがある.BGA ) ? 278 : SampleFramework.GameWindowSize.Width;\r
-                                                                       //int startHeight = ( CDTXMania.Instance.DTX.bチップがある.BGA ) ? 355 : SampleFramework.GameWindowSize.Height;\r
                                                                        int startWidth = !this.actAVI.bFullScreenMovie ? 278 : SampleFramework.GameWindowSize.Width;\r
                                                                        int startHeight = !this.actAVI.bFullScreenMovie ? 355 : SampleFramework.GameWindowSize.Height;\r
                                                                        this.actAVI.Start(pChip.eチャンネル番号, pChip.rAVI, startWidth, startHeight, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, pChip.n発声時刻ms);\r
@@ -1813,11 +3225,11 @@ namespace DTXMania
 \r
                                else if (pChip.bBass可視チップ)\r
                                {\r
-                                       this.t進行描画_チップ_ギターベース(configIni, ref dTX, ref pChip, E楽器パート.BASS);\r
+                                       this.t進行描画_チップ_ギターベース(ref pChip, E楽器パート.BASS);\r
                                }\r
                                else if (pChip[Ech定義.Bass_Wailing])\r
                                {\r
-                                       this.té\80²è¡\8cæ\8f\8fç\94»_ã\83\81ã\83\83ã\83\97\83\99ã\83¼ã\82¹_ã\82¦ã\82§ã\82¤ã\83ªã\83³ã\82°(configIni, ref dTX, ref pChip, !CDTXMania.Instance.ConfigIni.bDrumsæ\9c\89å\8a¹);\r
+                                       this.té\80²è¡\8cæ\8f\8fç\94»_ã\83\81ã\83\83ã\83\97\82¦ã\82§ã\82¤ã\83ªã\83³ã\82°(ref pChip);\r
                                }\r
                                else if (pChip[Ech定義.Bass_WailingSound] && !pChip.bHit && (pChip.nバーからの距離dot.Bass < 0))\r
                                {\r
@@ -1848,12 +3260,12 @@ namespace DTXMania
                                {\r
                                        //Debug.WriteLine( "[DA(AddMixer)] BAR=" + pChip.n発声位置 / 384 + " ch=" + pChip.nチャンネル番号.ToString( "x2" ) + ", wav=" + pChip.n整数値.ToString( "x2" ) + ", time=" + pChip.n発声時刻ms );\r
                                        pChip.bHit = true;\r
-                                       if (listWAV.ContainsKey(pChip.n整数値_内部番号)) // 参照が遠いので後日最適化する\r
+                                       if (CDTXMania.Instance.DTX.listWAV.ContainsKey(pChip.n整数値_内部番号))  // 参照が遠いので後日最適化する\r
                                        {\r
-                                               CDTX.CWAV wc = listWAV[pChip.n整数値_内部番号];\r
+                                               CDTX.CWAV wc = CDTXMania.Instance.DTX.listWAV[pChip.n整数値_内部番号];\r
                                                //Debug.Write( "[AddMixer] BAR=" + pChip.n発声位置 / 384 + ", wav=" + Path.GetFileName( wc.strファイル名 ) + ", time=" + pChip.n発声時刻ms );\r
 \r
-                                               for (int i = 0; i < nPolyphonicSounds; i++)\r
+                                               for (int i = 0; i < CDTXMania.Instance.ConfigIni.nPoliphonicSounds; i++)\r
                                                {\r
                                                        if (wc.rSound[i] != null)\r
                                                        {\r
@@ -1876,11 +3288,11 @@ namespace DTXMania
                                {\r
                                        //Debug.WriteLine( "[DB(RemoveMixer)] BAR=" + pChip.n発声位置 / 384 + " ch=" + pChip.nチャンネル番号.ToString( "x2" ) + ", wav=" + pChip.n整数値.ToString( "x2" ) + ", time=" + pChip.n発声時刻ms );\r
                                        pChip.bHit = true;\r
-                                       if (listWAV.ContainsKey(pChip.n整数値_内部番号)) // 参照が遠いので後日最適化する\r
+                                       if (CDTXMania.Instance.DTX.listWAV.ContainsKey(pChip.n整数値_内部番号))  // 参照が遠いので後日最適化する\r
                                        {\r
-                                               CDTX.CWAV wc = listWAV[pChip.n整数値_内部番号];\r
+                                               CDTX.CWAV wc = CDTXMania.Instance.DTX.listWAV[pChip.n整数値_内部番号];\r
                                                //Debug.Write( "[DelMixer] BAR=" + pChip.n発声位置 / 384 +  ", wav=" + Path.GetFileName( wc.strファイル名 ) + ", time=" + pChip.n発声時刻ms );\r
-                                               for (int i = 0; i < nPolyphonicSounds; i++)\r
+                                               for (int i = 0; i < CDTXMania.Instance.ConfigIni.nPoliphonicSounds; i++)\r
                                                {\r
                                                        if (wc.rSound[i] != null)\r
                                                        {\r
@@ -2124,9 +3536,8 @@ namespace DTXMania
                        CDTXMania.Instance.ConfigIni.ドラムコンボ文字の表示位置 = Eドラムコンボ文字の表示位置.OFF;\r
                }\r
 \r
-               protected abstract void t進行描画_チップ_ドラムス(CConfigIni configIni, ref CDTX dTX, ref CChip pChip);\r
-               //protected abstract void t進行描画_チップ_ギター( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip );\r
-               protected abstract void t進行描画_チップ_ギターベース(CConfigIni configIni, ref CDTX dTX, ref CChip pChip, E楽器パート inst);\r
+               protected abstract void t進行描画_チップ_ドラムス(ref CChip pChip);\r
+               protected abstract void t進行描画_チップ_ギターベース(ref CChip pChip, E楽器パート inst);\r
                /// <summary>\r
                /// ギター・ベースのチップ表示\r
                /// </summary>\r
@@ -2151,17 +3562,17 @@ namespace DTXMania
                /// <param name="bassLeftyX">ベースチップ描画のx座標(Lefty)</param>\r
                /// <param name="drawDeltaX">描画のX座標間隔(R,G,B...)</param>\r
                /// <param name="chipTexDeltaX">テクスチャののX座標間隔(R,G,B...)</param>\r
-               protected void t進行描画_チップ_ギターベース(CConfigIni configIni, ref CDTX dTX, ref CChip pChip, E楽器パート inst,\r
+               protected void t進行描画_チップ_ギターベース(ref CChip pChip, E楽器パート inst,\r
                        int barYNormal, int barYReverse,\r
                        int showRangeY0, int showRangeY1, int openXg, int openXb,\r
                        int rectOpenOffsetX, int rectOpenOffsetY, int openChipWidth, int chipHeight, int chipWidth,\r
                        int guitarNormalX, int guitarLeftyX, int bassNormalX, int bassLeftyX, int drawDeltaX, int chipTexDeltaX)\r
                {\r
                        int instIndex = (int)inst;\r
-                       if (configIni.bGuitar有効)\r
+                       if (CDTXMania.Instance.ConfigIni.bGuitar有効)\r
                        {\r
                                #region [ Invisible処理 ]\r
-                               if (configIni.eInvisible[instIndex] != EInvisible.OFF)\r
+                               if (CDTXMania.Instance.ConfigIni.eInvisible[instIndex] != EInvisible.OFF)\r
                                {\r
                                        cInvisibleChip.SetInvisibleStatus(ref pChip);\r
                                }\r
@@ -2169,11 +3580,11 @@ namespace DTXMania
                                else\r
                                {\r
                                        #region [ Hidden/Sudden処理 ]\r
-                                       if (configIni.bSudden[instIndex])\r
+                                       if (CDTXMania.Instance.ConfigIni.bSudden[instIndex])\r
                                        {\r
                                                pChip.b可視 = (pChip.nバーからの距離dot[instIndex] < 200 * Scale.Y);\r
                                        }\r
-                                       if (configIni.bHidden[instIndex] && (pChip.nバーからの距離dot[instIndex] < 100 * Scale.Y))\r
+                                       if (CDTXMania.Instance.ConfigIni.bHidden[instIndex] && (pChip.nバーからの距離dot[instIndex] < 100 * Scale.Y))\r
                                        {\r
                                                pChip.b可視 = false;\r
                                        }\r
@@ -2194,13 +3605,13 @@ namespace DTXMania
                                        {\r
                                                this.txチップ.n透明度 = pChip.n透明度;\r
                                        }\r
-                                       int y = configIni.bReverse[instIndex] ?\r
+                                       int y = CDTXMania.Instance.ConfigIni.bReverse[instIndex] ?\r
                                                (int)(barYReverse - pChip.nバーからの距離dot[instIndex]) :\r
                                                (int)(barYNormal + pChip.nバーからの距離dot[instIndex]);\r
-                                       int n小節線消失距離dot = configIni.bReverse[instIndex] ?\r
+                                       int n小節線消失距離dot = CDTXMania.Instance.ConfigIni.bReverse[instIndex] ?\r
                                                (int)(-100 * Scale.Y) :\r
-                                               (configIni.e判定位置[instIndex] == E判定位置.標準) ? (int)(-36 * Scale.Y) : (int)(-25 * Scale.Y);\r
-                                       if (configIni.bReverse[instIndex])\r
+                                               (CDTXMania.Instance.ConfigIni.e判定位置[instIndex] == E判定位置.標準) ? (int)(-36 * Scale.Y) : (int)(-25 * Scale.Y);\r
+                                       if (CDTXMania.Instance.ConfigIni.bReverse[instIndex])\r
                                        {\r
                                                //showRangeY1 = barYReverse - n小節線消失距離dot;\r
                                        }\r
@@ -2239,13 +3650,13 @@ namespace DTXMania
                                                        int x;\r
                                                        if (inst == E楽器パート.GUITAR)\r
                                                        {\r
-                                                               x = (configIni.bLeft.Guitar) ? guitarLeftyX : guitarNormalX;\r
+                                                               x = (CDTXMania.Instance.ConfigIni.bLeft.Guitar) ? guitarLeftyX : guitarNormalX;\r
                                                        }\r
                                                        else\r
                                                        {\r
-                                                               x = (configIni.bLeft.Bass) ? bassLeftyX : bassNormalX;\r
+                                                               x = (CDTXMania.Instance.ConfigIni.bLeft.Bass) ? bassLeftyX : bassNormalX;\r
                                                        }\r
-                                                       int deltaX = (configIni.bLeft[instIndex]) ? -drawDeltaX : +drawDeltaX;\r
+                                                       int deltaX = (CDTXMania.Instance.ConfigIni.bLeft[instIndex]) ? -drawDeltaX : +drawDeltaX;\r
                                                        #endregion\r
                                                        //Trace.TraceInformation( "chip={0:x2}, E楽器パート={1}, x={2}", pChip.nチャンネル番号, inst, x );\r
                                                        #region [ Rチップ描画 ]\r
@@ -2373,7 +3784,7 @@ namespace DTXMania
                                                        bMiss = false;\r
                                                }\r
                                                pChip.bHit = true;\r
-                                               this.tサウンド再生(pChip, CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms + ghostLag, inst, dTX.nモニタを考慮した音量(inst), false, bMiss);\r
+                                               this.tサウンド再生(pChip, CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms + ghostLag, inst, CDTXMania.Instance.DTX.nモニタを考慮した音量(inst), false, bMiss);\r
                                                this.r次にくるギターChip = null;\r
                                                if (!bMiss)\r
                                                {\r
@@ -2399,47 +3810,43 @@ namespace DTXMania
                        if (!pChip.bHit && (pChip.nバーからの距離dot[instIndex] < 0))    // Guitar/Bass無効の場合は、自動演奏する\r
                        {\r
                                pChip.bHit = true;\r
-                               this.tサウンド再生(pChip, CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, inst, dTX.nモニタを考慮した音量(inst));\r
+                               this.tサウンド再生(pChip, CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, inst, CDTXMania.Instance.DTX.nモニタを考慮した音量(inst));\r
                        }\r
                }\r
 \r
 \r
-               protected virtual void t進行描画_チップ_ギターベース_ウェイリング(\r
-                       CConfigIni configIni, ref CDTX dTX, ref CChip pChip, E楽器パート inst, bool bGRmode)\r
+               private void t進行描画_チップ_ウェイリング(ref CChip pChip)\r
                {\r
-                       int indexInst = (int)inst;\r
-                       if (configIni.bGuitar有効)\r
+                       E楽器パート indexInst = pChip.bGuitar可視チップ_Wailing含む ? E楽器パート.GUITAR : E楽器パート.BASS;\r
+                       if (CDTXMania.Instance.ConfigIni.bGuitar有効)\r
                        {\r
                                #region [ Invisible処理 ]\r
-                               if (configIni.eInvisible[indexInst] != EInvisible.OFF)\r
+                               if (CDTXMania.Instance.ConfigIni.eInvisible[(int)indexInst] != EInvisible.OFF)\r
                                {\r
                                        cInvisibleChip.SetInvisibleStatus(ref pChip);\r
                                }\r
                                #endregion\r
                                #region [ Sudden/Hidden処理 ]\r
-                               if (configIni.bSudden[indexInst])\r
+                               if (CDTXMania.Instance.ConfigIni.bSudden[(int)indexInst])\r
                                {\r
-                                       pChip.b可視 = (pChip.nバーからの距離dot[indexInst] < 200 * Scale.Y);\r
+                                       pChip.b可視 = (pChip.nバーからの距離dot[(int)indexInst] < 200 * Scale.Y);\r
                                }\r
-                               if (configIni.bHidden[indexInst] && (pChip.nバーからの距離dot[indexInst] < 100 * Scale.Y))\r
+                               if (CDTXMania.Instance.ConfigIni.bHidden[(int)indexInst] && (pChip.nバーからの距離dot[(int)indexInst] < 100 * Scale.Y))\r
                                {\r
                                        pChip.b可視 = false;\r
                                }\r
                                #endregion\r
 \r
-                               cWailingChip[indexInst].t進行描画_チップ_ギターベース_ウェイリング(\r
-                                       configIni, ref dTX, ref pChip,\r
-                                       ref txチップ, ref 演奏判定ライン座標, ref ctWailingチップ模様アニメ\r
+                               cWailingChip[(int)indexInst].t進行描画_チップ_ウェイリング(ref pChip, ref txチップ, ref 演奏判定ライン座標, ref ctWailingチップ模様アニメ\r
                                );\r
 \r
-                               if (!pChip.bHit && (pChip.nバーからの距離dot[indexInst] < 0))\r
+                               if (!pChip.bHit && (pChip.nバーからの距離dot[(int)indexInst] < 0))\r
                                {\r
-                                       if (pChip.nバーからの距離dot[indexInst] < -234 * Scale.Y)        // #25253 2011.5.29 yyagi: Don't set pChip.bHit=true for wailing at once. It need to 1sec-delay (234pix per 1sec). \r
+                                       if (pChip.nバーからの距離dot[(int)indexInst] < -234 * Scale.Y)   // #25253 2011.5.29 yyagi: Don't set pChip.bHit=true for wailing at once. It need to 1sec-delay (234pix per 1sec). \r
                                        {\r
                                                pChip.bHit = true;\r
                                        }\r
-                                       bool autoW = (inst == E楽器パート.GUITAR) ? configIni.bAutoPlay.GtW : configIni.bAutoPlay.BsW;\r
-                                       //if ( configIni.bAutoPlay[ ((int) Eレーン.Guitar - 1) + indexInst ] )       // このような、バグの入りやすい書き方(GT/BSのindex値が他と異なる)はいずれ見直したい\r
+                                       bool autoW = (indexInst == E楽器パート.GUITAR) ? CDTXMania.Instance.ConfigIni.bAutoPlay.GtW : CDTXMania.Instance.ConfigIni.bAutoPlay.BsW;\r
                                        if (autoW)\r
                                        {\r
                                                //    pChip.bHit = true;                                                                // #25253 2011.5.29 yyagi: Set pChip.bHit=true if autoplay.\r
@@ -2447,29 +3854,115 @@ namespace DTXMania
                                                // #23886 2012.5.22 yyagi; To support auto Wailing; Don't do wailing for ALL wailing chips. Do wailing for queued wailing chip.\r
                                                // wailing chips are queued when 1) manually wailing and not missed at that time 2) AutoWailing=ON and not missed at that time\r
                                                long nTimeStamp_Wailed = pChip.n発声時刻ms + CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻;\r
-                                               DoWailingFromQueue(inst, nTimeStamp_Wailed, autoW);\r
+                                               DoWailingFromQueue(indexInst, nTimeStamp_Wailed, autoW);\r
                                        }\r
-                                       cInvisibleChip.StartSemiInvisible(inst);\r
+                                       cInvisibleChip.StartSemiInvisible(indexInst);\r
                                }\r
                                return;\r
                        }\r
                        pChip.bHit = true;\r
                }\r
-               protected virtual void t進行描画_チップ_ギター_ウェイリング(CConfigIni configIni, ref CDTX dTX, ref CChip pChip, bool bGRmode)\r
-               {\r
-                       t進行描画_チップ_ギターベース_ウェイリング(configIni, ref dTX, ref pChip, E楽器パート.GUITAR, bGRmode);\r
-               }\r
-               protected abstract void t進行描画_チップ_フィルイン(CConfigIni configIni, ref CDTX dTX, ref CChip pChip);\r
-               protected abstract void t進行描画_チップ_小節線(CConfigIni configIni, ref CDTX dTX, ref CChip pChip);\r
-               //protected abstract void t進行描画_チップ_ベース( CConfigIni configIni, ref CDTX dTX, ref CChip pChip );\r
-               protected virtual void t進行描画_チップ_ベース_ウェイリング(CConfigIni configIni, ref CDTX dTX, ref CChip pChip, bool bGRmode)\r
+\r
+               protected abstract void t進行描画_チップ_フィルイン(ref CChip pChip);\r
+               protected void t進行描画_チップ_小節線(ref CChip pChip)\r
                {\r
-                       t進行描画_チップ_ギターベース_ウェイリング(configIni, ref dTX, ref pChip, E楽器パート.BASS, bGRmode);\r
-               }\r
+                       CConfigIni configIni = CDTXMania.Instance.ConfigIni;\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再生位置自動調整機能有効 && (bIsDirectSound || bUseOSTimer))\r
+                               {\r
+                                       CDTXMania.Instance.DTX.tWave再生位置自動補正();\r
+                               }\r
+                               // dTX.tWaveBGM再生位置表示();            //デバッグ用\r
+                       }\r
+                       #region [ Drumsの小節線と、小節番号 ]\r
+                       if (configIni.bDrums有効)\r
+                       {\r
+                               if (configIni.b演奏情報を表示する && (configIni.eDark == Eダークモード.OFF))\r
+                               {\r
+                                       int n小節番号 = n小節番号plus1 - 1;\r
+                                       CDTXMania.Instance.act文字コンソール.tPrint(\r
+                                               configIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left ?\r
+                                                       999 : 619 + 682,\r
+                                               configIni.bReverse.Drums ?\r
+                                                       126 + pChip.nバーからの距離dot.Drums :\r
+                                                       911 - pChip.nバーからの距離dot.Drums,\r
+                                               C文字コンソール.Eフォント種別.白,\r
+                                               n小節番号.ToString()\r
+                                       );\r
+                               }\r
+                               if (((configIni.eDark != Eダークモード.FULL) && pChip.b可視) && (this.txチップ != null))\r
+                               {\r
+                                       this.txチップ.n透明度 = 255;\r
+                                       this.txチップ.t2D描画(CDTXMania.Instance.Device,\r
+                                               //3, 2.25\r
+                                               configIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left ?\r
+                                                       105 : 619,\r
+                                               configIni.bReverse.Drums ?\r
+                                                       124 + pChip.nバーからの距離dot.Drums : 947 - pChip.nバーからの距離dot.Drums,\r
+                                               new Rectangle(\r
+                                                       0,\r
+                                                       999,\r
+                                                       (configIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? 888 : 682,\r
+                                                       4\r
+                                               )\r
+                                       );\r
+                               }\r
+                       }\r
+                       #endregion\r
+                       if ((pChip.b可視 && configIni.bGuitar有効) && (configIni.eDark != Eダークモード.FULL) && (this.txチップ != null))\r
+                       {\r
+                               this.txチップ.n透明度 = 255;\r
+\r
+                               int[] barlineXGtBs = new int[3] { 0, 78, 480 * 3 }; // first element is padding \r
+                               int[,] barlineXDrCL = new int[3, 2] { { 0, 0 }, { 1521, 1450 }, { 1194, 200 } }; // first dimension is padding. [inst, left or center]\r
 \r
 \r
+                               for (E楽器パート gt = E楽器パート.GUITAR; gt <= E楽器パート.BASS; ++gt)\r
+                               {\r
+                                       int y = 演奏判定ライン座標.n判定ラインY座標(gt, CDTXMania.Instance.ConfigIni.bReverse[(int)gt]);\r
+                                       if (CDTXMania.Instance.ConfigIni.bReverse[(int)gt])\r
+                                       {\r
+                                               y = y - (int)(pChip.nバーからの距離dot[(int)gt]) - 1;\r
+                                       }\r
+                                       else\r
+                                       {\r
+                                               y = y + (int)(pChip.nバーからの距離dot[(int)gt]) - 1;\r
+                                       }\r
+                                       // Reverse時の小節線消失位置を、RGBボタンの真ん中程度に。\r
+                                       // 非Reverse時の消失処理は、従来通りt進行描画・チップ()にお任せ。\r
+                                       int n小節線消失距離dot = configIni.bReverse[(int)gt] ?\r
+                                               (int)(-100 * Scale.Y) :\r
+                                               (configIni.e判定位置[(int)gt] == E判定位置.標準) ?\r
+                                               (int)(CDTXMania.Instance.ConfigIni.bギタレボモード ? -36 : -50 * Scale.Y) : (int)(-25 * Scale.Y);\r
+\r
+                                       if ((CDTXMania.Instance.DTX.bチップがある[(int)gt]) &&\r
+                                               ((CDTXMania.Instance.ConfigIni.bギタレボモード ? 0 : 0x39) * Scale.Y < y) &&\r
+                                               ((y < (CDTXMania.Instance.ConfigIni.bギタレボモード ? 0x199 : 0x19c) * Scale.Y)) &&\r
+                                               (pChip.nバーからの距離dot.Guitar >= n小節線消失距離dot)\r
+                                               )\r
+                                       {\r
+                                               this.txチップ.t2D描画(\r
+                                                       CDTXMania.Instance.Device,\r
+                                                       CDTXMania.Instance.ConfigIni.bギタレボモード ? barlineXGtBs[(int)gt] :\r
+                                                       ((CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? barlineXDrCL[(int)gt, 0] : barlineXDrCL[(int)gt, 1]),\r
+                                                       y,\r
+                                                       new Rectangle(\r
+                                                               0,\r
+                                                               (int)((CDTXMania.Instance.ConfigIni.bギタレボモード ? 0xeb : 450) * Scale.Y),\r
+                                                               (int)((CDTXMania.Instance.ConfigIni.bギタレボモード ? 0x68 : 0x4e) * Scale.X),\r
+                                                               (int)(1 * Scale.Y)\r
+                                                       )\r
+                                               );\r
+                                       }\r
+                               }\r
+                       }\r
+               }\r
 \r
-               protected abstract void t進行描画_チップ_空打ち音設定_ドラム(CConfigIni configIni, ref CDTX dTX, ref CChip pChip);\r
+               protected abstract void t進行描画_チップ_空打ち音設定_ドラム(ref CChip pChip);\r
                protected void t進行描画_チップアニメ()\r
                {\r
                        for (int i = 0; i < 3; i++)                     // 0=drums, 1=guitar, 2=bass\r
@@ -2528,11 +4021,28 @@ namespace DTXMania
                                this.actLaneFlushGB.On進行描画();\r
                        }\r
                }\r
-               protected abstract void t進行描画_演奏情報();\r
-               protected void t進行描画_演奏情報(int x, int y)\r
+               protected void t進行描画_演奏情報()\r
                {\r
                        if (!CDTXMania.Instance.ConfigIni.b演奏情報を表示しない)\r
                        {\r
+                               int x, y;\r
+                               if (CDTXMania.Instance.ConfigIni.bギタレボモード)\r
+                               {\r
+                                       x = 0xb5;\r
+                                       y = 50;\r
+                               }\r
+                               else\r
+                               {\r
+                                       y = 57;\r
+                                       if (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left)\r
+                                       {\r
+                                               x = 338;\r
+                                       }\r
+                                       else\r
+                                       {\r
+                                               x = 450;\r
+                                       }\r
+                               }\r
                                this.actPlayInfo.t進行描画(x, y);\r
                        }\r
                }\r
@@ -2545,19 +4055,13 @@ namespace DTXMania
                                        this.tx背景.t2D描画(CDTXMania.Instance.Device, 0, 0);\r
                                }\r
                        }\r
-                       else\r
-                       {\r
-                               // FullHD版では、背景描画のさらに奥でAVI描画をするため、\r
-                               // Dark!=OFF時下記の画面クリアをすると、AVI描画がクリアされてしまう\r
-                               // CDTXMania.Instance.app.Device.Clear( ClearFlags.ZBuffer | ClearFlags.Target, Color.Black, 0f, 0 );\r
-                       }\r
                }\r
 \r
                protected void t進行描画_判定ライン()\r
                {\r
                        if (CDTXMania.Instance.ConfigIni.eDark != Eダークモード.FULL)\r
                        {\r
-                               int y = this.演奏判定ライン座標.n判定ラインY座標(E楽器パート.DRUMS, false, bReverse[(int)E楽器パート.DRUMS], false, true);    // -(int) ( 3 * Scale.Y );\r
+                               int y = this.演奏判定ライン座標.n判定ラインY座標(E楽器パート.DRUMS, bReverse[(int)E楽器パート.DRUMS], false, true);   // -(int) ( 3 * Scale.Y );\r
                                // #31602 2016.2.11 yyagi 描画遅延対策として、判定ラインの表示位置をオフセット調整できるようにする\r
                                // #31602 2013.6.23 yyagi 描画遅延対策として、判定ラインの表示位置をオフセット調整できるようにする\r
                                if (this.txヒットバー != null)\r
@@ -2606,7 +4110,8 @@ namespace DTXMania
 \r
                protected abstract void t背景テクスチャの生成();\r
                protected void t背景テクスチャの生成(string DefaultBgFilename, string DefaultLaneFilename, Rectangle bgrect, string bgfilename)\r
-               {                                                                       // Default...: レーン等があるレイヤー                bgfilename: DTXファイルで指定する背景\r
+               {\r
+                       // Default...: レーン等があるレイヤー                bgfilename: DTXファイルで指定する背景\r
                        Bitmap image = null;\r
                        bool bSuccessLoadDTXbgfile = false;\r
 \r
@@ -2666,15 +4171,6 @@ namespace DTXMania
                                        image = new Bitmap(CSkin.Path(DefaultBgFilename));      // レーン外のフレーム\r
                                        graphics3 = Graphics.FromImage(image);\r
 \r
-                                       //#region [ レーンのフレームがあれば、それを合成 ]\r
-                                       //if ( DefaultLaneFilename != "" )\r
-                                       //{\r
-                                       //      Bitmap bmLane = new Bitmap( CSkin.Path( DefaultLaneFilename ) );\r
-                                       //      graphics3.DrawImage( bmLane, offsetX[ nLanePosition ], 0 );\r
-                                       //      bmLane.Dispose();\r
-                                       //}\r
-                                       //#endregion\r
-\r
                                        ColorMatrix matrix2 = new ColorMatrix();\r
                                        matrix2.Matrix00 = 1f;\r
                                        matrix2.Matrix11 = 1f;\r
@@ -2802,8 +4298,6 @@ namespace DTXMania
                        int nAutoB = (autoB) ? 1 : 0;\r
                        int nAutoMask = nAutoW | nAutoR | nAutoG | nAutoB;\r
 \r
-                       //                      if ( bIsAutoPlay[ (int) Eレーン.Guitar - 1 + indexInst ] )   // このような、バグの入りやすい書き方(GT/BSのindex値が他と異なる)はいずれ見直したい\r
-                       //                      {\r
                        CChip chip = this.r次に来る指定楽器Chipを更新して返す(inst);\r
                        if (chip != null)\r
                        {\r
@@ -2822,10 +4316,7 @@ namespace DTXMania
                                        this.actLaneFlushGB.Start(B);\r
                                        this.actRGB.Push(B);\r
                                }\r
-                               //                      }\r
-\r
                        }\r
-                       //                      else\r
                        {\r
                                int pressingR = CDTXMania.Instance.Pad.b押されている(inst, Eパッド.R) ? 4 : 0;\r
                                this.t入力メソッド記憶(inst);\r
@@ -2945,6 +4436,202 @@ namespace DTXMania
                                }\r
                        }\r
                }\r
-               #endregion\r
+               protected abstract void t進行描画_ギターベース判定ライン();\r
+               private void t進行描画_ギターベースフレーム()\r
+               {\r
+                       if (((CDTXMania.Instance.ConfigIni.eDark != Eダークモード.HALF) && (CDTXMania.Instance.ConfigIni.eDark != Eダークモード.FULL)) && CDTXMania.Instance.ConfigIni.bGuitar有効)\r
+                       {\r
+                               if (CDTXMania.Instance.DTX.bチップがある.Guitar)\r
+                               {\r
+                                       int x = (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? 1521 : 1450;\r
+                                       for (int i = 0; i < 355; i += 0x80)\r
+                                       {\r
+                                               Rectangle rc = new Rectangle(0, 0, 327, 288);\r
+                                               if ((i + 0x80) > 355)\r
+                                               {\r
+                                                       rc.Height -= (int)((i + 0x80 - 355) * Scale.Y);\r
+                                               }\r
+                                               if (this.txレーンフレームGB != null)\r
+                                               {\r
+                                                       this.txレーンフレームGB.t2D描画(\r
+                                                               CDTXMania.Instance.Device,\r
+                                                               x,\r
+                                                               (57 + i) * Scale.Y,\r
+                                                               rc\r
+                                                       );\r
+                                               }\r
+                                       }\r
+                               }\r
+                               if (CDTXMania.Instance.DTX.bチップがある.Bass)\r
+                               {\r
+                                       int x = (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? 1194 : 200;\r
+                                       for (int i = 0; i < 355; i += 0x80)\r
+                                       {\r
+                                               Rectangle rc = new Rectangle(0, 0, 327, 288);\r
+                                               if ((i + 0x80) > 355)\r
+                                               {\r
+                                                       rc.Height -= (int)((i + 0x80 - 355) * Scale.Y);\r
+                                               }\r
+                                               if (this.txレーンフレームGB != null)\r
+                                               {\r
+                                                       this.txレーンフレームGB.t2D描画(CDTXMania.Instance.Device,\r
+                                                               x,\r
+                                                               (57 + i) * Scale.Y,\r
+                                                               rc\r
+                                                       );\r
+                                               }\r
+                                       }\r
+                               }\r
+                       }\r
+               }\r
+               private void t進行描画_グラフ()\r
+               {\r
+                       if (!CDTXMania.Instance.ConfigIni.bストイックモード && !CDTXMania.Instance.ConfigIni.bドラムが全部オートプレイである && CDTXMania.Instance.ConfigIni.bGraph.Drums)\r
+                       {\r
+                               this.actGraph.On進行描画();\r
+                       }\r
+               }\r
+\r
+               private void t進行描画_チップファイアD()\r
+               {\r
+                       this.actChipFireD.On進行描画();\r
+               }\r
+\r
+               private void t進行描画_ドラムパッド()\r
+               {\r
+                       if (CDTXMania.Instance.ConfigIni.eDark != Eダークモード.FULL)\r
+                       {\r
+                               this.actPad.On進行描画();\r
+                       }\r
+               }\r
+\r
+               // t入力処理・ドラム()からメソッドを抽出したもの。\r
+               /// <summary>\r
+               /// chipArrayの中を, n発生位置の小さい順に並べる + nullを大きい方に退かす。セットでe判定Arrayも並べ直す。\r
+               /// </summary>\r
+               /// <param name="chipArray">ソート対象chip群</param>\r
+               /// <param name="e判定Array">ソート対象e判定群</param>\r
+               /// <param name="NumOfChips">チップ数</param>\r
+               private static void SortChipsByNTime(CChip[] chipArray, E判定[] e判定Array, int NumOfChips)\r
+               {\r
+                       for (int i = 0; i < NumOfChips - 1; i++)\r
+                       {\r
+                               for (int j = NumOfChips - 1; j > i; j--)\r
+                               {\r
+                                       if ((chipArray[j - 1] == null) || ((chipArray[j] != null) && (chipArray[j - 1].n発声位置 > chipArray[j].n発声位置)))\r
+                                       {\r
+                                               // swap\r
+                                               CChip chipTemp = chipArray[j - 1];\r
+                                               chipArray[j - 1] = chipArray[j];\r
+                                               chipArray[j] = chipTemp;\r
+                                               E判定 e判定Temp = e判定Array[j - 1];\r
+                                               e判定Array[j - 1] = e判定Array[j];\r
+                                               e判定Array[j] = e判定Temp;\r
+                                       }\r
+                               }\r
+                       }\r
+               }\r
+               private bool tドラムヒット処理(long nHitTime, Eパッド type, CChip pChip, int n強弱度合い0to127)\r
+               {\r
+                       if (pChip == null)\r
+                       {\r
+                               return false;\r
+                       }\r
+                       // Ech定義 channel = pChip.eチャンネル番号;\r
+                       int index = -1;\r
+                       if (pChip.bDrums可視チップ_LP_LBD含まない)\r
+                       {\r
+                               index = pChip.nDrumsIndex;\r
+                       }\r
+                       else if (pChip.bDrums不可視チップ_LP_LBD含まない)\r
+                       {\r
+                               index = pChip.nDrumsIndexHidden;\r
+                       }\r
+                       int nLane = CStage演奏画面共通.nチャンネル0Atoレーン07[index];\r
+                       int nPad = this.nチャンネル0Atoパッド08[index];\r
+                       bool bPChipIsAutoPlay = bIsAutoPlay[nLane];\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
+                       this.actLaneFlushD.Start((Eレーン)nLane, ((float)n強弱度合い0to127) / 127f);\r
+                       this.actPad.Hit(nPad);\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
+                               // #31602 2013.6.24 yyagi 判定ラインの表示位置をずらしたら、チップのヒットエフェクトの表示もずらすために、nJudgeLine..を追加\r
+                               this.actChipFireD.Start((Eレーン)nLane, flag, flag2, flag2, 演奏判定ライン座標.nJudgeLinePosY_delta.Drums);\r
+                       }\r
+                       if (CDTXMania.Instance.ConfigIni.bドラム打音を発声する)\r
+                       {\r
+                               CChip rChip = null;\r
+                               bool bIsChipsoundPriorToPad = true;\r
+                               if (((type == Eパッド.HH) || (type == Eパッド.HHO)) || (type == Eパッド.LC))\r
+                               {\r
+                                       bIsChipsoundPriorToPad = CDTXMania.Instance.ConfigIni.eHitSoundPriorityHH == E打ち分け時の再生の優先順位.ChipがPadより優先;\r
+                               }\r
+                               else if ((type == Eパッド.LT) || (type == Eパッド.FT))\r
+                               {\r
+                                       bIsChipsoundPriorToPad = CDTXMania.Instance.ConfigIni.eHitSoundPriorityFT == E打ち分け時の再生の優先順位.ChipがPadより優先;\r
+                               }\r
+                               else if ((type == Eパッド.CY) || (type == Eパッド.RD))\r
+                               {\r
+                                       bIsChipsoundPriorToPad = CDTXMania.Instance.ConfigIni.eHitSoundPriorityCY == E打ち分け時の再生の優先順位.ChipがPadより優先;\r
+                               }\r
+                               if (bIsChipsoundPriorToPad)\r
+                               {\r
+                                       rChip = pChip;\r
+                               }\r
+                               else\r
+                               {\r
+                                       Eパッド hH = type;\r
+                                       if (!CDTXMania.Instance.DTX.bチップがある.HHOpen && (type == Eパッド.HHO))\r
+                                       {\r
+                                               hH = Eパッド.HH;\r
+                                       }\r
+                                       if (!CDTXMania.Instance.DTX.bチップがある.Ride && (type == Eパッド.RD))\r
+                                       {\r
+                                               hH = Eパッド.CY;\r
+                                       }\r
+                                       if (!CDTXMania.Instance.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, CSound管理.rc演奏用タイマ.nシステム時刻, E楽器パート.DRUMS, CDTXMania.Instance.ConfigIni.n手動再生音量, CDTXMania.Instance.ConfigIni.b演奏音を強調する.Drums);\r
+                       }\r
+                       return true;\r
+               }\r
+               protected bool bフィルイン区間の最後のChipである(CChip pChip)\r
+               {\r
+                       if (pChip == null)\r
+                       {\r
+                               return false;\r
+                       }\r
+                       int num = pChip.n発声位置;\r
+                       for (int i = CDTXMania.Instance.DTX.listChip.IndexOf(pChip) + 1; i < CDTXMania.Instance.DTX.listChip.Count; i++)\r
+                       {\r
+                               pChip = CDTXMania.Instance.DTX.listChip[i];\r
+                               if ((pChip[Ech定義.FillIn]) && (pChip.n整数値 == 2))\r
+                               {\r
+                                       return true;\r
+                               }\r
+                               if ((pChip.bDrums可視チップ_LP_LBD含まない) && (pChip.n発声位置 - num) > 0x18)\r
+                               {\r
+                                       return false;\r
+                               }\r
+                       }\r
+                       return true;\r
+               }\r
        }\r
 }\r
index 61dd797..9ff416e 100644 (file)
@@ -17,21 +17,21 @@ namespace DTXMania
 \r
                protected int[] y_base;\r
                protected int offset;\r
-               protected const int     WailingWidth  = (int) ( 20 * Scale.X );                 // ウェイリングチップ画像の幅: 4種全て同じ値\r
-               protected const int WailingHeight = (int) 120;  //( 50 * Scale.Y );                     // ウェイリングチップ画像の高さ: 4種全て同じ値\r
+               protected const int WailingWidth = (int)(20 * Scale.X);                 // ウェイリングチップ画像の幅: 4種全て同じ値\r
+               protected const int WailingHeight = (int)120;   // ウェイリングチップ画像の高さ: 4種全て同じ値\r
                protected int baseTextureOffsetX, baseTextureOffsetY;\r
 \r
                protected int drawX;\r
                protected int numA, numB, numC;\r
                protected int showRangeY1;\r
 \r
-       \r
+\r
                /// <summary>\r
                /// コンストラクタ\r
                /// </summary>\r
                protected CWailingChip共通()\r
                {\r
-                       y_base = new int[ 2 ];\r
+                       y_base = new int[2];\r
                }\r
 \r
                /// <summary>\r
@@ -43,48 +43,50 @@ namespace DTXMania
                /// <param name="txチップ"></param>\r
                /// <param name="演奏判定ライン座標"></param>\r
                /// <param name="ctWailingチップ模様アニメ"></param>\r
-               internal void té\80²è¡\8cæ\8f\8fç\94»_ã\83\81ã\83\83ã\83\97\82®ã\82¿ã\83¼ã\83\99ã\83¼ã\82¹_ã\82¦ã\82§ã\82¤ã\83ªã\83³ã\82°( CConfigIni configIni, ref CDTX dTX, ref CChip pChip,\r
-                       ref CTexture txチップ, ref C演奏判定ライン座標共通 演奏判定ライン座標, ref CCounter ctWailingチップ模様アニメ )\r
+               internal void té\80²è¡\8cæ\8f\8fç\94»_ã\83\81ã\83\83ã\83\97\82¦ã\82§ã\82¤ã\83ªã\83³ã\82°(ref CChip pChip, ref CTexture txã\83\81ã\83\83ã\83\97,\r
+                       ref C演奏判定ライン座標共通 演奏判定ライン座標, ref CCounter ctWailingチップ模様アニメ)\r
                {\r
-                       int indexInst = (int) eInst;\r
-                       if ( configIni.bGuitar有効 )\r
+                       int indexInst = (int)eInst;\r
+                       if (CDTXMania.Instance.ConfigIni.bGuitar有効)\r
                        {\r
-                               if ( !pChip.bHit && pChip.b可視 )\r
+                               if (!pChip.bHit && pChip.b可視)\r
                                {\r
-                                       if ( txチップ != null )\r
+                                       if (txチップ != null)\r
                                        {\r
                                                txチップ.n透明度 = pChip.n透明度;\r
                                        }\r
-                                       int y = configIni.bReverse.Guitar ?\r
-                                               ( y_base[ 1 ] - (int) ( pChip.nバーからの距離dot.Guitar ) ) :\r
-                                               ( y_base[ 0 ] + (int) ( pChip.nバーからの距離dot.Guitar ) );\r
+\r
+                                       E楽器パート gb = pChip.bGuitar可視チップ_Wailing含む ? E楽器パート.GUITAR : E楽器パート.BASS;\r
+                                       int y = CDTXMania.Instance.ConfigIni.bReverse[(int)gb] ?\r
+                                                (y_base[1] - (int)(pChip.nバーからの距離dot[(int)gb])) :\r
+                                                (y_base[0] + (int)(pChip.nバーからの距離dot[(int)gb]));\r
                                        numB = y - offset;                              // 4種全て同じ定義\r
                                        numC = 0;                                               // 4種全て同じ初期値\r
-                                       if ( ( numB < ( showRangeY1 + numA ) ) && ( numB > -numA ) )    // 以下のロジックは4種全て同じ\r
+                                       if ((numB < (showRangeY1 + numA)) && (numB > -numA))    // 以下のロジックは4種全て同じ\r
                                        {\r
                                                int c = ctWailingチップ模様アニメ.n現在の値;\r
                                                Rectangle rect = new Rectangle(\r
-                                                       baseTextureOffsetX + ( c * WailingWidth ),\r
+                                                       baseTextureOffsetX + (c * WailingWidth),\r
                                                        baseTextureOffsetY,\r
                                                        WailingWidth,\r
                                                        WailingHeight\r
                                                );\r
-                                               if ( numB < numA )\r
+                                               if (numB < numA)\r
                                                {\r
                                                        rect.Y += numA - numB;\r
                                                        rect.Height -= numA - numB;\r
                                                        numC = numA - numB;\r
                                                }\r
-                                               if ( numB > ( showRangeY1 - numA ) )\r
+                                               if (numB > (showRangeY1 - numA))\r
                                                {\r
-                                                       rect.Height -= numB - ( showRangeY1 - numA );\r
+                                                       rect.Height -= numB - (showRangeY1 - numA);\r
                                                }\r
-                                               if ( ( rect.Bottom > rect.Top ) && ( txチップ != null ) )\r
+                                               if ((rect.Bottom > rect.Top) && (txチップ != null))\r
                                                {\r
                                                        txチップ.t2D描画(\r
                                                                CDTXMania.Instance.Device,\r
                                                                drawX,\r
-                                                               ( ( y - numA ) + numC ),\r
+                                                               ((y - numA) + numC),\r
                                                                rect\r
                                                        );\r
                                                }\r
@@ -96,31 +98,28 @@ namespace DTXMania
                }\r
        }\r
 \r
-\r
-\r
-\r
        /// <summary>\r
        /// Drums画面 Guitar Wailingチップ描画関連\r
        /// </summary>\r
        public class CWailngChip_Guitar_Drum画面 : CWailingChip共通\r
        {\r
-               internal CWailngChip_Guitar_Drum画面( ref C演奏判定ライン座標共通 演奏判定ライン座標 ) : base()\r
+               internal CWailngChip_Guitar_Drum画面(ref C演奏判定ライン座標共通 演奏判定ライン座標)\r
+                       : base()\r
                {\r
                        eInst = E楽器パート.GUITAR;\r
-                       bGRmode = false;\r
 \r
-                       base.y_base[ 0 ] = 演奏判定ライン座標.n判定ラインY座標( eInst, bGRmode, false );                // 95\r
-                       base.y_base[ 1 ] = 演奏判定ライン座標.n判定ラインY座標( eInst, bGRmode, true  );                // 374\r
-                                                                                                                                                                                               // 判定バーのY座標:ドラム画面かギター画面かで変わる値\r
-                       offset = (int) ( 0x39 * Scale.Y );                                                                                              // ドラム画面かギター画面かで変わる値\r
+                       base.y_base[0] = 演奏判定ライン座標.n判定ラインY座標(eInst, false);             // 95\r
+                       base.y_base[1] = 演奏判定ライン座標.n判定ラインY座標(eInst, true);              // 374\r
+                       // 判定バーのY座標:ドラム画面かギター画面かで変わる値\r
+                       offset = (int)(0x39 * Scale.Y);                                                                                         // ドラム画面かギター画面かで変わる値\r
 \r
-                       baseTextureOffsetX  = 804;      // テクスチャ画像中のウェイリングチップ画像の位置X: ドラム画面かギター画面かで変わる値\r
-                       baseTextureOffsetY  = 392;      // テクスチャ画像中のウェイリングチップ画像の位置Y: ドラム画面かギター画面かで変わる値\r
+                       baseTextureOffsetX = 804;       // テクスチャ画像中のウェイリングチップ画像の位置X: ドラム画面かギター画面かで変わる値\r
+                       baseTextureOffsetY = 392;       // テクスチャ画像中のウェイリングチップ画像の位置Y: ドラム画面かギター画面かで変わる値\r
 \r
-                       drawX = (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left)? 1764 : 1764 - 71;       // ウェイリングチップ描画位置X座標: 4種全て異なる値\r
+                       drawX = (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? 1764 : 1764 - 71;      // ウェイリングチップ描画位置X座標: 4種全て異なる値\r
 \r
-                       numA = (int) ( 26 * Scale.Y );                  // ドラム画面かギター画面かで変わる値\r
-                       showRangeY1 = (int) ( 355 * Scale.Y );  // ドラム画面かギター画面かで変わる値\r
+                       numA = (int)(26 * Scale.Y);                     // ドラム画面かギター画面かで変わる値\r
+                       showRangeY1 = (int)(355 * Scale.Y);     // ドラム画面かギター画面かで変わる値\r
                }\r
        }\r
 \r
@@ -129,23 +128,23 @@ namespace DTXMania
        /// </summary>\r
        public class CWailngChip_Bass_Drum画面 : CWailingChip共通\r
        {\r
-               internal CWailngChip_Bass_Drum画面( ref C演奏判定ライン座標共通 演奏判定ライン座標 ) : base()\r
+               internal CWailngChip_Bass_Drum画面(ref C演奏判定ライン座標共通 演奏判定ライン座標)\r
+                       : base()\r
                {\r
                        eInst = E楽器パート.BASS;\r
-                       bGRmode = false;\r
 \r
-                       base.y_base[ 0 ] = 演奏判定ライン座標.n判定ラインY座標( eInst, bGRmode, false );        // 95\r
-                       base.y_base[ 1 ] = 演奏判定ライン座標.n判定ラインY座標( eInst, bGRmode, true );         // 374\r
+                       base.y_base[0] = 演奏判定ライン座標.n判定ラインY座標(eInst, false);     // 95\r
+                       base.y_base[1] = 演奏判定ライン座標.n判定ラインY座標(eInst, true);              // 374\r
                        // 判定バーのY座標:ドラム画面かギター画面かで変わる値\r
-                       offset = (int) ( 0x39 * Scale.Y );                                                                                              // ドラム画面かギター画面かで変わる値\r
+                       offset = (int)(0x39 * Scale.Y);                                                                                         // ドラム画面かギター画面かで変わる値\r
 \r
                        baseTextureOffsetX = 804;                               // テクスチャ画像中のウェイリングチップ画像の位置X: ドラム画面かギター画面かで変わる値\r
                        baseTextureOffsetY = 392;                               // テクスチャ画像中のウェイリングチップ画像の位置Y: ドラム画面かギター画面かで変わる値\r
 \r
-                       drawX = ( CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left ) ? 1437 : 1437 - 994;   // ウェイリングチップ描画位置X座標: 4種全て異なる値\r
+                       drawX = (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? 1437 : 1437 - 994;     // ウェイリングチップ描画位置X座標: 4種全て異なる値\r
 \r
-                       numA = (int) ( 26 * Scale.Y );                  // ドラム画面かギター画面かで変わる値\r
-                       showRangeY1 = (int) ( 355 * Scale.Y );  // ドラム画面かギター画面かで変わる値\r
+                       numA = (int)(26 * Scale.Y);                     // ドラム画面かギター画面かで変わる値\r
+                       showRangeY1 = (int)(355 * Scale.Y);     // ドラム画面かギター画面かで変わる値\r
                }\r
        }\r
 \r
@@ -154,22 +153,21 @@ namespace DTXMania
        /// </summary>\r
        public class CWailngChip_Guitar_GR画面 : CWailingChip共通\r
        {\r
-               internal CWailngChip_Guitar_GR画面( ref C演奏判定ライン座標共通 演奏判定ライン座標 ) : base()\r
+               internal CWailngChip_Guitar_GR画面(ref C演奏判定ライン座標共通 演奏判定ライン座標)\r
+                       : base()\r
                {\r
                        eInst = E楽器パート.GUITAR;\r
-                       bGRmode = true;\r
-\r
-                       base.y_base[ 0 ] = 演奏判定ライン座標.n判定ラインY座標( eInst, bGRmode, false );        // 95\r
-                       base.y_base[ 1 ] = 演奏判定ライン座標.n判定ラインY座標( eInst, bGRmode, true );         // 374\r
-                                                                                                       // 判定バーのY座標:ドラム画面かギター画面かで変わる値\r
-                       offset = (int) ( 0 * Scale.Y );                 // ドラム画面かギター画面かで変わる値\r
-                       baseTextureOffsetX = (int) ( 96 * Scale.X );    // テクスチャ画像中のウェイリングチップ画像の位置X: ドラム画面かギター画面かで変わる値\r
-                       baseTextureOffsetY = (int) (  0 * Scale.Y );    // テクスチャ画像中のウェイリングチップ画像の位置Y: ドラム画面かギター画面かで変わる値\r
+                       base.y_base[0] = 演奏判定ライン座標.n判定ラインY座標(eInst, false);     // 95\r
+                       base.y_base[1] = 演奏判定ライン座標.n判定ラインY座標(eInst, true);              // 374\r
+                       // 判定バーのY座標:ドラム画面かギター画面かで変わる値\r
+                       offset = (int)(0 * Scale.Y);                    // ドラム画面かギター画面かで変わる値\r
+                       baseTextureOffsetX = (int)(96 * Scale.X);       // テクスチャ画像中のウェイリングチップ画像の位置X: ドラム画面かギター画面かで変わる値\r
+                       baseTextureOffsetY = (int)(0 * Scale.Y);        // テクスチャ画像中のウェイリングチップ画像の位置Y: ドラム画面かギター画面かで変わる値\r
 \r
-                       drawX = (int) ( 140 * Scale.X );                // ウェイリングチップ描画位置X座標: 4種全て異なる値\r
+                       drawX = (int)(140 * Scale.X);           // ウェイリングチップ描画位置X座標: 4種全て異なる値\r
 \r
-                       numA = (int) ( 29 * Scale.Y );                  // ドラム画面かギター画面かで変わる値\r
-                       showRangeY1 = (int) ( 409 * Scale.Y );  // ドラム画面かギター画面かで変わる値\r
+                       numA = (int)(29 * Scale.Y);                     // ドラム画面かギター画面かで変わる値\r
+                       showRangeY1 = (int)(409 * Scale.Y);     // ドラム画面かギター画面かで変わる値\r
                }\r
        }\r
 \r
@@ -178,23 +176,22 @@ namespace DTXMania
        /// </summary>\r
        public class CWailngChip_Bass_GR画面 : CWailingChip共通\r
        {\r
-               internal CWailngChip_Bass_GR画面( ref C演奏判定ライン座標共通 演奏判定ライン座標 ) : base()\r
+               internal CWailngChip_Bass_GR画面(ref C演奏判定ライン座標共通 演奏判定ライン座標)\r
+                       : base()\r
                {\r
                        eInst = E楽器パート.BASS;\r
-                       bGRmode = true;\r
-\r
-                       base.y_base[ 0 ] = 演奏判定ライン座標.n判定ラインY座標( eInst, bGRmode, false );        // 95\r
-                       base.y_base[ 1 ] = 演奏判定ライン座標.n判定ラインY座標( eInst, bGRmode, true );         // 374\r
-                                                                                                                                               // 判定バーのY座標:ドラム画面かギター画面かで変わる値\r
-                       offset = (int) ( 0 * Scale.Y );                                                 // ドラム画面かギター画面かで変わる値\r
+                       base.y_base[0] = 演奏判定ライン座標.n判定ラインY座標(eInst, false);     // 95\r
+                       base.y_base[1] = 演奏判定ライン座標.n判定ラインY座標(eInst, true);              // 374\r
+                       // 判定バーのY座標:ドラム画面かギター画面かで変わる値\r
+                       offset = (int)(0 * Scale.Y);                                                    // ドラム画面かギター画面かで変わる値\r
 \r
-                       baseTextureOffsetX = (int) ( 96 * Scale.X );                            // テクスチャ画像中のウェイリングチップ画像の位置X: ドラム画面かギター画面かで変わる値\r
-                       baseTextureOffsetY = (int) (  0 * Scale.Y );                            // テクスチャ画像中のウェイリングチップ画像の位置Y: ドラム画面かギター画面かで変わる値\r
+                       baseTextureOffsetX = (int)(96 * Scale.X);                               // テクスチャ画像中のウェイリングチップ画像の位置X: ドラム画面かギター画面かで変わる値\r
+                       baseTextureOffsetY = (int)(0 * Scale.Y);                                // テクスチャ画像中のウェイリングチップ画像の位置Y: ドラム画面かギター画面かで変わる値\r
 \r
-                       drawX = (int) ( 594 * Scale.X );                                                        // ウェイリングチップ描画位置X座標: 4種全て異なる値\r
+                       drawX = (int)(594 * Scale.X);                                                   // ウェイリングチップ描画位置X座標: 4種全て異なる値\r
 \r
-                       numA = (int) ( 29 * Scale.Y );                  // ドラム画面かギター画面かで変わる値\r
-                       showRangeY1 = (int) ( 409 * Scale.Y );  // ドラム画面かギター画面かで変わる値\r
+                       numA = (int)(29 * Scale.Y);                     // ドラム画面かギター画面かで変わる値\r
+                       showRangeY1 = (int)(409 * Scale.Y);     // ドラム画面かギター画面かで変わる値\r
                }\r
        }\r
 }\r
index c32b553..ce04462 100644 (file)
@@ -13,8 +13,8 @@ namespace DTXMania
                /// <summary>\r
                /// 判定ラインのy座標\r
                /// </summary>\r
-               private STDGBVALUE<int>[,,] n判定ラインY座標元データ = null;                 // 補正無しの時の座標データ\r
-               private STDGBVALUE<int>[,,] n演奏RGBボタンY座標元データ = null;\r
+               private STDGBVALUE<int>[, ,] n判定ラインY座標元データ = null;                        // 補正無しの時の座標データ\r
+               private STDGBVALUE<int>[, ,] n演奏RGBボタンY座標元データ = null;\r
 \r
                /// <summary>\r
                /// 表示位置の補正データ\r
@@ -33,108 +33,89 @@ namespace DTXMania
                /// </summary>\r
                public C演奏判定ライン座標共通()\r
                {\r
-                       n判定ラインY座標元データ = new STDGBVALUE<int>[ 2, 2, 2 ];\r
+                       n判定ラインY座標元データ = new STDGBVALUE<int>[2, 2, 2];\r
                        #region [ 判定ライン座標の初期化]\r
                        // Normal, Drums画面, 判定ライン\r
-                       n判定ラインY座標元データ[ 0, 0, 0 ].Drums  = 942;\r
-                       n判定ラインY座標元データ[ 0, 0, 0 ].Guitar = (int)(95 * Scale.Y);\r
-                       n判定ラインY座標元データ[ 0, 0, 0 ].Bass   = (int)(95 * Scale.Y);\r
+                       n判定ラインY座標元データ[0, 0, 0].Drums = 942;\r
+                       n判定ラインY座標元データ[0, 0, 0].Guitar = (int)(95 * Scale.Y);\r
+                       n判定ラインY座標元データ[0, 0, 0].Bass = (int)(95 * Scale.Y);\r
                        // Reverse, Drums画面, 判定ライン\r
-                       n判定ラインY座標元データ[ 1, 0, 0 ].Drums  = 119;\r
-                       n判定ラインY座標元データ[ 1, 0, 0 ].Guitar = (int)(374 * Scale.Y);\r
-                       n判定ラインY座標元データ[ 1, 0, 0 ].Bass   = (int)(374 * Scale.Y);\r
+                       n判定ラインY座標元データ[1, 0, 0].Drums = 119;\r
+                       n判定ラインY座標元データ[1, 0, 0].Guitar = (int)(374 * Scale.Y);\r
+                       n判定ラインY座標元データ[1, 0, 0].Bass = (int)(374 * Scale.Y);\r
                        // Normal, Drums画面, Wailing枠\r
-                       n判定ラインY座標元データ[ 0, 0, 1 ].Drums  = 0;              //未使用\r
-                       n判定ラインY座標元データ[ 0, 0, 1 ].Guitar = (int)(69 * Scale.Y);\r
-                       n判定ラインY座標元データ[ 0, 0, 1 ].Bass   = (int)(69 * Scale.Y);\r
+                       n判定ラインY座標元データ[0, 0, 1].Drums = 0;         //未使用\r
+                       n判定ラインY座標元データ[0, 0, 1].Guitar = (int)(69 * Scale.Y);\r
+                       n判定ラインY座標元データ[0, 0, 1].Bass = (int)(69 * Scale.Y);\r
                        // Reverse, Drums画面, Wailing枠\r
-                       n判定ラインY座標元データ[ 1, 0, 1 ].Drums  = 0;              //未使用\r
-                       n判定ラインY座標元データ[ 1, 0, 1 ].Guitar = (int)(350 * Scale.Y);\r
-                       n判定ラインY座標元データ[ 1, 0, 1 ].Bass   = (int)(350 * Scale.Y);\r
+                       n判定ラインY座標元データ[1, 0, 1].Drums = 0;         //未使用\r
+                       n判定ラインY座標元データ[1, 0, 1].Guitar = (int)(350 * Scale.Y);\r
+                       n判定ラインY座標元データ[1, 0, 1].Bass = (int)(350 * Scale.Y);\r
 \r
                        // Normal, GR画面, 判定ライン\r
-                       n判定ラインY座標元データ[ 0, 1, 0 ].Drums  = 0;              //未使用\r
-                       n判定ラインY座標元データ[ 0, 1, 0 ].Guitar = (int)(40 * Scale.Y);\r
-                       n判定ラインY座標元データ[ 0, 1, 0 ].Bass   = (int)(40 * Scale.Y);\r
+                       n判定ラインY座標元データ[0, 1, 0].Drums = 0;         //未使用\r
+                       n判定ラインY座標元データ[0, 1, 0].Guitar = (int)(40 * Scale.Y);\r
+                       n判定ラインY座標元データ[0, 1, 0].Bass = (int)(40 * Scale.Y);\r
                        // Reverse, GR画面, 判定ライン\r
-                       n判定ラインY座標元データ[ 1, 1, 0 ].Drums  = 0;              //未使用\r
-                       n判定ラインY座標元データ[ 1, 1, 0 ].Guitar = (int)(369 * Scale.Y);\r
-                       n判定ラインY座標元データ[ 1, 1, 0 ].Bass   = (int)(369 * Scale.Y);\r
+                       n判定ラインY座標元データ[1, 1, 0].Drums = 0;         //未使用\r
+                       n判定ラインY座標元データ[1, 1, 0].Guitar = (int)(369 * Scale.Y);\r
+                       n判定ラインY座標元データ[1, 1, 0].Bass = (int)(369 * Scale.Y);\r
                        // Normal, GR画面, Wailing枠\r
-                       n判定ラインY座標元データ[ 0, 1, 1 ].Drums  = 0;              //未使用\r
-                       n判定ラインY座標元データ[ 0, 1, 1 ].Guitar = (int)(11 * Scale.Y);\r
-                       n判定ラインY座標元データ[ 0, 1, 1 ].Bass   = (int)(11 * Scale.Y);\r
+                       n判定ラインY座標元データ[0, 1, 1].Drums = 0;         //未使用\r
+                       n判定ラインY座標元データ[0, 1, 1].Guitar = (int)(11 * Scale.Y);\r
+                       n判定ラインY座標元データ[0, 1, 1].Bass = (int)(11 * Scale.Y);\r
                        // Reverse, GR画面, Wailing枠\r
-                       n判定ラインY座標元データ[ 1, 1, 1 ].Drums  = 0;              //未使用\r
-                       n判定ラインY座標元データ[ 1, 1, 1 ].Guitar = (int)(340 * Scale.Y);\r
-                       n判定ラインY座標元データ[ 1, 1, 1 ].Bass   = (int)(340 * Scale.Y);\r
+                       n判定ラインY座標元データ[1, 1, 1].Drums = 0;         //未使用\r
+                       n判定ラインY座標元データ[1, 1, 1].Guitar = (int)(340 * Scale.Y);\r
+                       n判定ラインY座標元データ[1, 1, 1].Bass = (int)(340 * Scale.Y);\r
                        #endregion\r
 \r
-                       n演奏RGBボタンY座標元データ = new STDGBVALUE<int>[ 2, 2, 2 ];\r
+                       n演奏RGBボタンY座標元データ = new STDGBVALUE<int>[2, 2, 2];\r
                        #region [ RGBボタン座標の初期化]\r
                        // Normal, Drums画面, RGBボタン\r
-                       n演奏RGBボタンY座標元データ[ 0, 0, 0 ].Drums  = 0;           // 未使用\r
-                       n演奏RGBボタンY座標元データ[ 0, 0, 0 ].Guitar = (int)(57 * Scale.Y);\r
-                       n演奏RGBボタンY座標元データ[ 0, 0, 0 ].Bass   = (int)(57 * Scale.Y);\r
+                       n演奏RGBボタンY座標元データ[0, 0, 0].Drums = 0;              // 未使用\r
+                       n演奏RGBボタンY座標元データ[0, 0, 0].Guitar = (int)(57 * Scale.Y);\r
+                       n演奏RGBボタンY座標元データ[0, 0, 0].Bass = (int)(57 * Scale.Y);\r
                        // Reverse, Drums画面, RGBボタン\r
-                       n演奏RGBボタンY座標元データ[ 1, 0, 0 ].Drums  = 0;           // 未使用\r
-                       n演奏RGBボタンY座標元データ[ 1, 0, 0 ].Guitar = (int)(57 * Scale.Y);\r
-                       n演奏RGBボタンY座標元データ[ 1, 0, 0 ].Bass   = (int)(57 * Scale.Y);\r
+                       n演奏RGBボタンY座標元データ[1, 0, 0].Drums = 0;              // 未使用\r
+                       n演奏RGBボタンY座標元データ[1, 0, 0].Guitar = (int)(57 * Scale.Y);\r
+                       n演奏RGBボタンY座標元データ[1, 0, 0].Bass = (int)(57 * Scale.Y);\r
                        // Normal, Drums画面, RGBボタン(Vシリーズ)\r
-                       n演奏RGBボタンY座標元データ[ 0, 0, 1 ].Drums  = 0;           // 未使用\r
-                       n演奏RGBボタンY座標元データ[ 0, 0, 1 ].Guitar = (int)(107 * Scale.Y);\r
-                       n演奏RGBボタンY座標元データ[ 0, 0, 1 ].Bass   = (int)(107 * Scale.Y);\r
+                       n演奏RGBボタンY座標元データ[0, 0, 1].Drums = 0;              // 未使用\r
+                       n演奏RGBボタンY座標元データ[0, 0, 1].Guitar = (int)(107 * Scale.Y);\r
+                       n演奏RGBボタンY座標元データ[0, 0, 1].Bass = (int)(107 * Scale.Y);\r
                        // Reverse, Drums画面, RGBボタン(Vシリーズ)\r
-                       n演奏RGBボタンY座標元データ[ 1, 0, 1 ].Drums  = 0;           // 未使用\r
-                       n演奏RGBボタンY座標元データ[ 1, 0, 1 ].Guitar = (int)(107 * Scale.Y);\r
-                       n演奏RGBボタンY座標元データ[ 1, 0, 1 ].Bass   = (int)(107 * Scale.Y);\r
+                       n演奏RGBボタンY座標元データ[1, 0, 1].Drums = 0;              // 未使用\r
+                       n演奏RGBボタンY座標元データ[1, 0, 1].Guitar = (int)(107 * Scale.Y);\r
+                       n演奏RGBボタンY座標元データ[1, 0, 1].Bass = (int)(107 * Scale.Y);\r
 \r
                        // Normal, GR画面, RGBボタン\r
-                       n演奏RGBボタンY座標元データ[ 0, 1, 0 ].Drums  = 0;           // 未使用\r
-                       n演奏RGBボタンY座標元データ[ 0, 1, 0 ].Guitar = (int)(3 * Scale.Y);\r
-                       n演奏RGBボタンY座標元データ[ 0, 1, 0 ].Bass   = (int)(3 * Scale.Y);\r
+                       n演奏RGBボタンY座標元データ[0, 1, 0].Drums = 0;              // 未使用\r
+                       n演奏RGBボタンY座標元データ[0, 1, 0].Guitar = (int)(3 * Scale.Y);\r
+                       n演奏RGBボタンY座標元データ[0, 1, 0].Bass = (int)(3 * Scale.Y);\r
                        // Reverse, GR画面, RGBボタン\r
-                       n演奏RGBボタンY座標元データ[ 1, 1, 0 ].Drums  = 0;           // 未使用\r
-                       n演奏RGBボタンY座標元データ[ 1, 1, 0 ].Guitar = (int)(3 * Scale.Y);\r
-                       n演奏RGBボタンY座標元データ[ 1, 1, 0 ].Bass   = (int)(3 * Scale.Y);\r
+                       n演奏RGBボタンY座標元データ[1, 1, 0].Drums = 0;              // 未使用\r
+                       n演奏RGBボタンY座標元データ[1, 1, 0].Guitar = (int)(3 * Scale.Y);\r
+                       n演奏RGBボタンY座標元データ[1, 1, 0].Bass = (int)(3 * Scale.Y);\r
                        // Normal, GR画面, RGBボタン(Vシリーズ)\r
-                       n演奏RGBボタンY座標元データ[ 0, 1, 1 ].Drums  = 0;           // 未使用\r
-                       n演奏RGBボタンY座標元データ[ 0, 1, 1 ].Guitar = (int)(44 * Scale.Y);\r
-                       n演奏RGBボタンY座標元データ[ 0, 1, 1 ].Bass   = (int)(44 * Scale.Y);\r
+                       n演奏RGBボタンY座標元データ[0, 1, 1].Drums = 0;              // 未使用\r
+                       n演奏RGBボタンY座標元データ[0, 1, 1].Guitar = (int)(44 * Scale.Y);\r
+                       n演奏RGBボタンY座標元データ[0, 1, 1].Bass = (int)(44 * Scale.Y);\r
                        // Reverse, GR画面, RGBボタン(Vシリーズ)\r
-                       n演奏RGBボタンY座標元データ[ 1, 1, 1 ].Drums  = 0;           // 未使用\r
-                       n演奏RGBボタンY座標元データ[ 1, 1, 1 ].Guitar = (int)(44 * Scale.Y);\r
-                       n演奏RGBボタンY座標元データ[ 1, 1, 1 ].Bass = (int) ( 44 * Scale.Y );\r
+                       n演奏RGBボタンY座標元データ[1, 1, 1].Drums = 0;              // 未使用\r
+                       n演奏RGBボタンY座標元データ[1, 1, 1].Guitar = (int)(44 * Scale.Y);\r
+                       n演奏RGBボタンY座標元データ[1, 1, 1].Bass = (int)(44 * Scale.Y);\r
                        #endregion\r
 \r
                        n判定位置 = new STDGBVALUE<E判定位置>();\r
-                       n判定位置.Drums  = E判定位置.標準;\r
+                       n判定位置.Drums = E判定位置.標準;\r
                        n判定位置.Guitar = E判定位置.標準;\r
-                       n判定位置.Bass   = E判定位置.標準;\r
+                       n判定位置.Bass = E判定位置.標準;\r
 \r
                        // 補正値は、Normal/Reverse, Drums/GR画面共通\r
-                       nJudgeLinePosY_delta.Drums  = 0;\r
+                       nJudgeLinePosY_delta.Drums = 0;\r
                        nJudgeLinePosY_delta.Guitar = 0;\r
-                       nJudgeLinePosY_delta.Bass   = 0;\r
-               }\r
-\r
-\r
-       \r
-               /// <summary>\r
-               /// 判定ラインのY座標を返す。\r
-               /// </summary>\r
-               /// <param name="eInst">E楽器パート</param>\r
-               /// <param name="bGRmode">GRmodeか否か</param>\r
-               /// <param name="bReverse">Reverseか否か</param>\r
-               /// <returns></returns>\r
-               public int n判定ラインY座標( E楽器パート eInst, bool bGRmode, bool bReverse )\r
-               {\r
-                       return n判定ラインY座標( eInst, bGRmode, bReverse, false, false );\r
-               }\r
-\r
-               public int n判定ラインY座標( E楽器パート eInst, bool bGRmode, bool bReverse, bool bWailingFrame )\r
-               {\r
-                       return n判定ラインY座標( eInst, bGRmode, bReverse, bWailingFrame, false );\r
+                       nJudgeLinePosY_delta.Bass = 0;\r
                }\r
 \r
                /// <summary>\r
@@ -146,51 +127,51 @@ namespace DTXMania
                /// <param name="bWailingFrame">Wailing枠の座標か、判定ラインの座標か</param>\r
                /// <param name="b補正あり">プレーヤーのライン表示位置補正情報を加えるかどうか</param>\r
                /// <returns></returns>\r
-               public int n判定ラインY座標( E楽器パート eInst, bool bGRmode, bool bReverse, bool bWailingFrame, bool b補正あり )\r
+               public int n判定ラインY座標(E楽器パート eInst, bool bReverse, bool bWailingFrame = false, bool b補正あり = false)\r
                {\r
-                       if ( eInst == E楽器パート.UNKNOWN )\r
+                       if (eInst == E楽器パート.UNKNOWN)\r
                        {\r
                                throw new ArgumentOutOfRangeException();\r
                        }\r
                        else\r
                        {\r
-                               int nReverse = bReverse ?      1 : 0;\r
-                               int nGRmode  = bGRmode ?       1 : 0;\r
+                               int nReverse = bReverse ? 1 : 0;\r
+                               int nGRmode = CDTXMania.Instance.ConfigIni.bギタレボモード ? 1 : 0;\r
                                int nWailing = bWailingFrame ? 1 : 0;\r
-                               int nInst    = (int) eInst;\r
-                               int ret = this.n判定ラインY座標元データ[ nReverse, nGRmode, nWailing ][ nInst ];             // 補正無しの値\r
-                               if ( bReverse )\r
+                               int nInst = (int)eInst;\r
+                               int ret = this.n判定ラインY座標元データ[nReverse, nGRmode, nWailing][nInst];         // 補正無しの値\r
+                               if (bReverse)\r
                                {\r
-                                       if ( eInst != E楽器パート.DRUMS && n判定位置[ nInst ] == E判定位置.Lower )\r
-                                               ret += (int) ( 13 * Scale.Y );\r
-                                       if ( b補正あり )\r
-                                       { \r
+                                       if (eInst != E楽器パート.DRUMS && n判定位置[nInst] == E判定位置.Lower)\r
+                                               ret += (int)(13 * Scale.Y);\r
+                                       if (b補正あり)\r
+                                       {\r
                                                if (eInst == E楽器パート.DRUMS)\r
                                                {\r
-                                                       ret += nJudgeLinePosY_delta[ nInst ];\r
+                                                       ret += nJudgeLinePosY_delta[nInst];\r
 \r
                                                }\r
                                                else\r
                                                {\r
-                                                       ret -= nJudgeLinePosY_delta[ nInst ];\r
+                                                       ret -= nJudgeLinePosY_delta[nInst];\r
                                                }\r
                                        }\r
 \r
                                }\r
                                else\r
                                {\r
-                                       if ( eInst != E楽器パート.DRUMS &&  n判定位置[ nInst ] == E判定位置.Lower )\r
-                                               ret += (int) ( 52 * Scale.Y );\r
-                                       if ( b補正あり )\r
+                                       if (eInst != E楽器パート.DRUMS && n判定位置[nInst] == E判定位置.Lower)\r
+                                               ret += (int)(52 * Scale.Y);\r
+                                       if (b補正あり)\r
                                        {\r
-                                               if ( eInst == E楽器パート.DRUMS )\r
+                                               if (eInst == E楽器パート.DRUMS)\r
                                                {\r
-                                                       ret += nJudgeLinePosY_delta[ nInst ];\r
+                                                       ret += nJudgeLinePosY_delta[nInst];\r
 \r
                                                }\r
                                                else\r
                                                {\r
-                                                       ret -= nJudgeLinePosY_delta[ nInst ];\r
+                                                       ret -= nJudgeLinePosY_delta[nInst];\r
                                                }\r
                                        }\r
                                }\r
@@ -198,23 +179,23 @@ namespace DTXMania
                        }\r
                }\r
 \r
-               public int n演奏RGBボタンY座標( E楽器パート eInst, bool bGRmode, bool bReverse )\r
+               public int n演奏RGBボタンY座標(E楽器パート eInst, bool bGRmode, bool bReverse)\r
                {\r
-                       if ( eInst == E楽器パート.DRUMS )\r
+                       if (eInst == E楽器パート.DRUMS)\r
                        {\r
                                throw new NotImplementedException();\r
                        }\r
-                       else if ( eInst == E楽器パート.UNKNOWN )\r
+                       else if (eInst == E楽器パート.UNKNOWN)\r
                        {\r
                                throw new ArgumentOutOfRangeException();\r
                        }\r
                        else\r
                        {\r
-                               int nInst    = (int) eInst;\r
-                               int nGRmode  = bGRmode ?  1 : 0;\r
+                               int nInst = (int)eInst;\r
+                               int nGRmode = bGRmode ? 1 : 0;\r
                                int nReverse = bReverse ? 1 : 0;\r
-                               int nVseries = (int) n判定位置[ nInst ];\r
-                               int ret = n演奏RGBボタンY座標元データ[ nReverse, nGRmode, nVseries ][ nInst ];               // 補正無しの値\r
+                               int nVseries = (int)n判定位置[nInst];\r
+                               int ret = n演奏RGBボタンY座標元データ[nReverse, nGRmode, nVseries][nInst];           // 補正無しの値\r
 \r
                                return ret;\r
                        }\r
index b99f9c1..1e1949b 100644 (file)
@@ -18,23 +18,23 @@ namespace DTXMania
                //{\r
                //    this.Start( part, null );\r
                //}\r
-               public override void Start( E楽器パート part, CChip r歓声Chip )\r
+               public override void Start(E楽器パート part, CChip r歓声Chip)\r
                {\r
-                       if( part != E楽器パート.DRUMS )\r
+                       if (part != E楽器パート.DRUMS)\r
                        {\r
-                               for( int i = 0; i < 4; i++ )\r
+                               for (int i = 0; i < 4; i++)\r
                                {\r
-                                       if( ( this.ct進行用[ (int) part, i ] == null ) || this.ct進行用[ (int) part, i ].b停止中 )\r
+                                       if ((this.ct進行用[(int)part, i] == null) || this.ct進行用[(int)part, i].b停止中)\r
                                        {\r
-                                               this.ct進行用[ (int) part, i ] = new CCounter( 0, 300, 2, CDTXMania.Instance.Timer );\r
-                                               if( CDTXMania.Instance.ConfigIni.b歓声を発声する )\r
+                                               this.ct進行用[(int)part, i] = new CCounter(0, 300, 2, CDTXMania.Instance.Timer);\r
+                                               if (CDTXMania.Instance.ConfigIni.b歓声を発声する)\r
                                                {\r
-                                                       if( r歓声Chip != null )\r
+                                                       if (r歓声Chip != null)\r
                                                        {\r
-                                                               CDTXMania.Instance.DTX.tチップの再生( r歓声Chip, CSound管理.rc演奏用タイマ.nシステム時刻, (int) Eレーン.BGM, CDTXMania.Instance.DTX.nモニタを考慮した音量( E楽器パート.UNKNOWN ) );\r
+                                                               CDTXMania.Instance.DTX.tチップの再生(r歓声Chip, CSound管理.rc演奏用タイマ.nシステム時刻, (int)Eレーン.BGM, CDTXMania.Instance.DTX.nモニタを考慮した音量(E楽器パート.UNKNOWN));\r
                                                                return;\r
                                                        }\r
-                                                       CDTXMania.Instance.Skin.sound歓声音.n位置_次に鳴るサウンド = ( part == E楽器パート.GUITAR ) ? -50 : 50;\r
+                                                       CDTXMania.Instance.Skin.sound歓声音.n位置_次に鳴るサウンド = (part == E楽器パート.GUITAR) ? -50 : 50;\r
                                                        CDTXMania.Instance.Skin.sound歓声音.t再生する();\r
                                                        return;\r
                                                }\r
@@ -49,109 +49,93 @@ namespace DTXMania
 \r
                public override void On活性化()\r
                {\r
-                       for( int i = 0; i < 3; i++ )\r
+                       for (int i = 0; i < 3; i++)\r
                        {\r
-                               for( int j = 0; j < 4; j++ )\r
+                               for (int j = 0; j < 4; j++)\r
                                {\r
-                                       this.ct進行用[ i, j ] = null;\r
+                                       this.ct進行用[i, j] = null;\r
                                }\r
                        }\r
                        base.On活性化();\r
                }\r
                public override int On進行描画()\r
                {\r
-                       if( !base.b活性化してない )\r
+                       if (!base.b活性化してない)\r
                        {\r
-                               for( int i = 0; i < 2; i++ )\r
+                               for (int i = 0; i < 2; i++)\r
                                {\r
-                                       E楽器パート e楽器パート = ( i == 0 ) ? E楽器パート.GUITAR : E楽器パート.BASS;\r
-                                       for( int k = 0; k < 4; k++ )\r
+                                       E楽器パート e楽器パート = (i == 0) ? E楽器パート.GUITAR : E楽器パート.BASS;\r
+                                       for (int k = 0; k < 4; k++)\r
                                        {\r
-                                               if( ( this.ct進行用[ (int) e楽器パート, k ] != null ) && !this.ct進行用[ (int) e楽器パート, k ].b停止中 )\r
+                                               if ((this.ct進行用[(int)e楽器パート, k] != null) && !this.ct進行用[(int)e楽器パート, k].b停止中)\r
                                                {\r
-                                                       if( this.ct進行用[ (int) e楽器パート, k ].b終了値に達した )\r
+                                                       if (this.ct進行用[(int)e楽器パート, k].b終了値に達した)\r
                                                        {\r
-                                                               this.ct進行用[ (int) e楽器パート, k ].t停止();\r
+                                                               this.ct進行用[(int)e楽器パート, k].t停止();\r
                                                        }\r
                                                        else\r
                                                        {\r
-                                                               this.ct進行用[ (int) e楽器パート, k ].t進行();\r
+                                                               this.ct進行用[(int)e楽器パート, k].t進行();\r
                                                        }\r
                                                }\r
                                        }\r
                                }\r
-                               for( int j = 0; j < 2; j++ )\r
+                               for (int j = 0; j < 2; j++)\r
                                {\r
-                                       E楽器パート e楽器パート2 = ( j == 0 ) ? E楽器パート.GUITAR : E楽器パート.BASS;\r
-                                       for( int m = 0; m < 4; m++ )\r
+                                       E楽器パート e楽器パート2 = (j == 0) ? E楽器パート.GUITAR : E楽器パート.BASS;\r
+                                       for (int m = 0; m < 4; m++)\r
                                        {\r
-                                               if( ( this.ct進行用[ (int) e楽器パート2, m ] != null ) && !this.ct進行用[ (int) e楽器パート2, m ].b停止中 )\r
+                                               if ((this.ct進行用[(int)e楽器パート2, m] != null) && !this.ct進行用[(int)e楽器パート2, m].b停止中)\r
                                                {\r
-                                                       int x = ( ( e楽器パート2 == E楽器パート.GUITAR ) ? 0x1a : 480 ) + 0x71;\r
+                                                       int x = ((e楽器パート2 == E楽器パート.GUITAR) ? 0x1a : 480) + 0x71;\r
                                                        int num6 = 0;\r
                                                        int num7 = 0;\r
-                                                       int num8 = this.ct進行用[ (int) e楽器パート2, m ].n現在の値;\r
-                                                       if( num8 < 100 )\r
+                                                       int num8 = this.ct進行用[(int)e楽器パート2, m].n現在の値;\r
+                                                       if (num8 < 100)\r
                                                        {\r
-                                                               num6 = (int) ( 64.0 + ( 290.0 * Math.Cos( Math.PI / 2 * ( ( (double) num8 ) / 100.0 ) ) ) );\r
+                                                               num6 = (int)(64.0 + (290.0 * Math.Cos(Math.PI / 2 * (((double)num8) / 100.0))));\r
                                                        }\r
-                                                       else if( num8 < 150 )\r
+                                                       else if (num8 < 150)\r
                                                        {\r
-                                                               num6 = (int) ( 64.0 + ( ( 150 - num8 ) * Math.Sin( ( Math.PI * ( ( num8 - 100 ) % 0x19 ) ) / 25.0 ) ) );\r
+                                                               num6 = (int)(64.0 + ((150 - num8) * Math.Sin((Math.PI * ((num8 - 100) % 0x19)) / 25.0)));\r
                                                        }\r
-                                                       else if( num8 < 200 )\r
+                                                       else if (num8 < 200)\r
                                                        {\r
                                                                num6 = 0x40;\r
                                                        }\r
                                                        else\r
                                                        {\r
-                                                               num6 = (int) ( 64.0 - ( ( (double) ( 290 * ( num8 - 200 ) ) ) / 100.0 ) );\r
+                                                               num6 = (int)(64.0 - (((double)(290 * (num8 - 200))) / 100.0));\r
                                                        }\r
-                                                       if( CDTXMania.Instance.ConfigIni.bReverse[ (int) e楽器パート2 ] )\r
+                                                       if (CDTXMania.Instance.ConfigIni.bReverse[(int)e楽器パート2])\r
                                                        {\r
-                                                               num6 = ( 0x199 - num6 ) - 0xf4;\r
+                                                               num6 = (0x199 - num6) - 0xf4;\r
                                                        }\r
-                                                       Rectangle rectangle = new Rectangle( 0, 0, 0x1a, 0x7a * 2 );\r
-                                                       if( ( 0x199 - num6 ) < rectangle.Bottom )\r
+                                                       Rectangle rectangle = new Rectangle(0, 0, 0x1a, 0x7a * 2);\r
+                                                       if ((0x199 - num6) < rectangle.Bottom)\r
                                                        {\r
-                                                               rectangle.Height = ( 0x199 - num6 ) - rectangle.Top;\r
+                                                               rectangle.Height = (0x199 - num6) - rectangle.Top;\r
                                                        }\r
-                                                       if( num6 < 0 )\r
+                                                       if (num6 < 0)\r
                                                        {\r
                                                                rectangle.Y = -num6;\r
                                                                rectangle.Height -= -num6;\r
                                                                num7 = -num6;\r
                                                        }\r
-                                                       if ( ( rectangle.Top < rectangle.Bottom ) && ( this.txWailingBonus != null ) )\r
+                                                       if ((rectangle.Top < rectangle.Bottom) && (this.txWailingBonus != null))\r
                                                        {\r
-                                                               rectangle.X = (int) ( rectangle.X * Scale.X );\r
-                                                               rectangle.Y = (int) ( rectangle.Y * Scale.Y );\r
-                                                               rectangle.Width = (int) ( rectangle.Width * Scale.X );\r
-                                                               rectangle.Height = (int) ( rectangle.Height * Scale.Y );\r
+                                                               rectangle.X = (int)(rectangle.X * Scale.X);\r
+                                                               rectangle.Y = (int)(rectangle.Y * Scale.Y);\r
+                                                               rectangle.Width = (int)(rectangle.Width * Scale.X);\r
+                                                               rectangle.Height = (int)(rectangle.Height * Scale.Y);\r
 \r
                                                                this.txWailingBonus.t2D描画(\r
                                                                        CDTXMania.Instance.Device,\r
                                                                        x * Scale.X,\r
-                                                                       ( num6 + num7 ) * Scale.Y,\r
+                                                                       (num6 + num7) * Scale.Y,\r
                                                                        rectangle\r
                                                                );\r
                                                        }\r
-                                                       //num7 = 0;\r
-                                                       //rectangle = new Rectangle( 0x1a, 0, 0x1a, 0x7a );\r
-                                                       //if( ( 0x199 - ( num6 + 0x7a ) ) < rectangle.Bottom )\r
-                                                       //{\r
-                                                       //    rectangle.Height = ( 0x199 - ( num6 + 0x7a ) ) - rectangle.Top;\r
-                                                       //}\r
-                                                       //if( ( num6 + 0x7a ) < 0 )\r
-                                                       //{\r
-                                                       //    rectangle.Y = -( num6 + 0x7a );\r
-                                                       //    rectangle.Height -= rectangle.Y;\r
-                                                       //    num7 = -( num6 + 0x7a );\r
-                                                       //}\r
-                                                       //if( ( rectangle.Top < rectangle.Bottom ) && ( this.txWailingBonus != null ) )\r
-                                                       //{\r
-                                                       //    this.txWailingBonus.t2D描画( CDTXMania.Instance.app.Device, x, ( num6 + num7 ) + 0x7a, rectangle );\r
-                                                       //}\r
                                                }\r
                                        }\r
                                }\r
index 6bc6cb8..f6e3aa5 100644 (file)
@@ -8,11 +8,6 @@ namespace DTXMania
 {\r
        internal class CAct演奏Guitarゲージ : CAct演奏ゲージ共通\r
        {\r
-               // プロパティ\r
-\r
-//             public STDGBVALUE<double> db現在のゲージ値;\r
-\r
-\r
                // コンストラクタ\r
 \r
                public CAct演奏Guitarゲージ()\r
@@ -25,9 +20,6 @@ namespace DTXMania
 \r
                public override void On活性化()\r
                {\r
-                       // CAct演奏ゲージ共通.Init()に移動\r
-//                     this.db現在のゲージ値.Guitar = ( CDTXMania.Instance.ConfigIni.nRisky > 0 ) ? 1.0 : 0.66666666666666663;\r
-//                     this.db現在のゲージ値.Bass   = ( CDTXMania.Instance.ConfigIni.nRisky > 0 ) ? 1.0 : 0.66666666666666663;\r
                        base.On活性化();\r
                }\r
                public override void On非活性化()\r
@@ -38,83 +30,83 @@ namespace DTXMania
                }\r
                public override void OnManagedリソースの作成()\r
                {\r
-                       if( !base.b活性化してない )\r
+                       if (!base.b活性化してない)\r
                        {\r
-                               this.txゲージ = TextureFactory.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenPlayGuitar gauge.png" ) );\r
+                               this.txゲージ = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenPlayGuitar gauge.png"));\r
                                base.OnManagedリソースの作成();\r
                        }\r
                }\r
                public override void OnManagedリソースの解放()\r
                {\r
-                       if( !base.b活性化してない )\r
+                       if (!base.b活性化してない)\r
                        {\r
-                               TextureFactory.tテクスチャの解放( ref this.txゲージ );\r
+                               TextureFactory.tテクスチャの解放(ref this.txゲージ);\r
                                base.OnManagedリソースの解放();\r
                        }\r
                }\r
                public override int On進行描画()\r
                {\r
-                       if( !base.b活性化してない )\r
+                       if (!base.b活性化してない)\r
                        {\r
                                int num;\r
                                int num9;\r
-                               if( base.b初めての進行描画 )\r
+                               if (base.b初めての進行描画)\r
                                {\r
-                                       this.ct本体移動 = new CCounter( 0, 0x1a, 20, CDTXMania.Instance.Timer );\r
-                                       this.ct本体振動 = new CCounter( 0, 360, 4, CDTXMania.Instance.Timer );\r
+                                       this.ct本体移動 = new CCounter(0, 0x1a, 20, CDTXMania.Instance.Timer);\r
+                                       this.ct本体振動 = new CCounter(0, 360, 4, CDTXMania.Instance.Timer);\r
                                        base.b初めての進行描画 = false;\r
                                }\r
                                this.ct本体移動.t進行Loop();\r
                                this.ct本体振動.t進行Loop();\r
 \r
                                #region [ ギターのゲージ ]\r
-                               if ( this.db現在のゲージ値.Guitar == 1.0 )       // ギターのゲージ\r
+                               if (this.db現在のゲージ値.Guitar == 1.0) // ギターのゲージ\r
                                {\r
-                                       num = (int) ( 128.0 * this.db現在のゲージ値.Guitar );\r
+                                       num = (int)(128.0 * this.db現在のゲージ値.Guitar);\r
                                }\r
                                else\r
                                {\r
-                                       num = (int) ( ( 128.0 * this.db現在のゲージ値.Guitar ) + ( 2.0 * Math.Sin( Math.PI * 2 * ( ( (double) this.ct本体振動.n現在の値 ) / 360.0 ) ) ) );\r
+                                       num = (int)((128.0 * this.db現在のゲージ値.Guitar) + (2.0 * Math.Sin(Math.PI * 2 * (((double)this.ct本体振動.n現在の値) / 360.0))));\r
                                }\r
-                               if( num > 0 )\r
+                               if (num > 0)\r
                                {\r
                                        Rectangle rectangle;\r
                                        int num2 = 0x1a - this.ct本体移動.n現在の値;\r
                                        int x = 0xb2 - num2;\r
                                        int num4 = num + num2;\r
-                                       while( num4 > 0 )\r
+                                       while (num4 > 0)\r
                                        {\r
-                                               if( this.db現在のゲージ値.Guitar == 1.0 )\r
+                                               if (this.db現在のゲージ値.Guitar == 1.0)\r
                                                {\r
-                                                       rectangle = new Rectangle( 0x1b, 0, 0x1b, 0x10 );\r
+                                                       rectangle = new Rectangle(0x1b, 0, 0x1b, 0x10);\r
                                                }\r
                                                else\r
                                                {\r
-                                                       rectangle = new Rectangle( 0, 0, 0x1b, 0x10 );\r
+                                                       rectangle = new Rectangle(0, 0, 0x1b, 0x10);\r
                                                }\r
-                                               if( x < 0xb2 )\r
+                                               if (x < 0xb2)\r
                                                {\r
                                                        int num5 = 0xb2 - x;\r
                                                        rectangle.X += num5;\r
                                                        rectangle.Width -= num5;\r
                                                        x += num5;\r
                                                }\r
-                                               if( ( x + rectangle.Width ) > ( 0xb2 + num ) )\r
+                                               if ((x + rectangle.Width) > (0xb2 + num))\r
                                                {\r
-                                                       int num6 = ( x + rectangle.Width ) - ( 0xb2 + num );\r
+                                                       int num6 = (x + rectangle.Width) - (0xb2 + num);\r
                                                        rectangle.Width -= num6;\r
                                                }\r
-                                               if( rectangle.Left >= rectangle.Right )\r
+                                               if (rectangle.Left >= rectangle.Right)\r
                                                {\r
                                                        break;\r
                                                }\r
-                                               if( this.txゲージ != null )\r
+                                               if (this.txゲージ != null)\r
                                                {\r
                                                        Rectangle rectangle1 = rectangle;\r
-                                                       rectangle1.X = (int) ( rectangle1.X * Scale.X );\r
-                                                       rectangle1.Y = (int) ( rectangle1.Y * Scale.Y );\r
-                                                       rectangle1.Width = (int) ( rectangle1.Width * Scale.X );\r
-                                                       rectangle1.Height = (int) ( rectangle1.Height * Scale.Y );\r
+                                                       rectangle1.X = (int)(rectangle1.X * Scale.X);\r
+                                                       rectangle1.Y = (int)(rectangle1.Y * Scale.Y);\r
+                                                       rectangle1.Width = (int)(rectangle1.Width * Scale.X);\r
+                                                       rectangle1.Height = (int)(rectangle1.Height * Scale.Y);\r
 \r
                                                        this.txゲージ.b加算合成 = false;\r
                                                        this.txゲージ.t2D描画(\r
@@ -127,28 +119,28 @@ namespace DTXMania
                                                num4 -= rectangle.Width;\r
                                                x += rectangle.Width;\r
                                        }\r
-                                       rectangle = new Rectangle( 0, 0x10, 0x40, 0x10 );\r
-                                       x = ( 0xb2 + num ) - 0x40;\r
-                                       if( x < 0xb2 )\r
+                                       rectangle = new Rectangle(0, 0x10, 0x40, 0x10);\r
+                                       x = (0xb2 + num) - 0x40;\r
+                                       if (x < 0xb2)\r
                                        {\r
                                                int num7 = 0xb2 - x;\r
                                                rectangle.X += num7;\r
                                                rectangle.Width -= num7;\r
                                                x += num7;\r
                                        }\r
-                                       if( ( x + rectangle.Width ) > ( 0xb2 + num ) )\r
+                                       if ((x + rectangle.Width) > (0xb2 + num))\r
                                        {\r
-                                               int num8 = ( x + rectangle.Width ) - ( 0xb2 + num );\r
+                                               int num8 = (x + rectangle.Width) - (0xb2 + num);\r
                                                rectangle.Width -= num8;\r
                                        }\r
-                                       if( ( rectangle.Left < rectangle.Right ) && ( this.txゲージ != null ) )\r
+                                       if ((rectangle.Left < rectangle.Right) && (this.txゲージ != null))\r
                                        {\r
                                                this.txゲージ.b加算合成 = true;\r
-                                               rectangle.X = (int) ( rectangle.X * Scale.X );\r
-                                               rectangle.Y = (int) ( rectangle.Y * Scale.Y );\r
-                                               rectangle.Width = (int) ( rectangle.Width * Scale.X );\r
-                                               rectangle.Height = (int) ( rectangle.Height * Scale.Y );\r
-                                               this.txゲージ.t2D描画( CDTXMania.Instance.Device,\r
+                                               rectangle.X = (int)(rectangle.X * Scale.X);\r
+                                               rectangle.Y = (int)(rectangle.Y * Scale.Y);\r
+                                               rectangle.Width = (int)(rectangle.Width * Scale.X);\r
+                                               rectangle.Height = (int)(rectangle.Height * Scale.Y);\r
+                                               this.txゲージ.t2D描画(CDTXMania.Instance.Device,\r
                                                        x * Scale.X,\r
                                                        8 * Scale.Y,\r
                                                        rectangle\r
@@ -156,64 +148,64 @@ namespace DTXMania
                                        }\r
                                        if (this.bRisky && this.actLVLNFont != null)            // #23599 2011.7.30 yyagi Risky残りMiss回数表示\r
                                        {\r
-                                               CActLVLNFont.EFontColor efc = this.IsDanger( E楽器パート.GUITAR ) ?\r
+                                               CActLVLNFont.EFontColor efc = this.IsDanger(E楽器パート.GUITAR) ?\r
                                                        CActLVLNFont.EFontColor.Red : CActLVLNFont.EFontColor.Yellow;\r
                                                actLVLNFont.t文字列描画(\r
-                                                       (int) ( 196 * Scale.X ),\r
-                                                       (int) ( 6 * Scale.Y ),\r
-                                                       nRiskyTimes.ToString(), efc, CActLVLNFont.EFontAlign.Left );\r
+                                                       (int)(196 * Scale.X),\r
+                                                       (int)(6 * Scale.Y),\r
+                                                       nRiskyTimes.ToString(), efc, CActLVLNFont.EFontAlign.Left);\r
                                        }\r
                                }\r
                                #endregion\r
 \r
                                #region [ ベースのゲージ ]\r
-                               if ( this.db現在のゲージ値.Bass == 1.0 )\r
+                               if (this.db現在のゲージ値.Bass == 1.0)\r
                                {\r
-                                       num9 = (int) ( 128.0 * this.db現在のゲージ値.Bass );\r
+                                       num9 = (int)(128.0 * this.db現在のゲージ値.Bass);\r
                                }\r
                                else\r
                                {\r
-                                       num9 = (int) ( ( 128.0 * this.db現在のゲージ値.Bass ) + ( 2.0 * Math.Sin( Math.PI * 2 * ( ( (double) this.ct本体振動.n現在の値 ) / 360.0 ) ) ) );\r
+                                       num9 = (int)((128.0 * this.db現在のゲージ値.Bass) + (2.0 * Math.Sin(Math.PI * 2 * (((double)this.ct本体振動.n現在の値) / 360.0))));\r
                                }\r
-                               if( num9 > 0 )\r
+                               if (num9 > 0)\r
                                {\r
                                        Rectangle rectangle2;\r
                                        int num10 = this.ct本体移動.n現在の値;\r
-                                       int num11 = ( 0x1cf - num9 ) - num10;\r
+                                       int num11 = (0x1cf - num9) - num10;\r
                                        int num12 = num9 + num10;\r
-                                       while( num12 > 0 )\r
+                                       while (num12 > 0)\r
                                        {\r
-                                               if( this.db現在のゲージ値.Bass == 1.0 )\r
+                                               if (this.db現在のゲージ値.Bass == 1.0)\r
                                                {\r
-                                                       rectangle2 = new Rectangle( 10, 0x30, 0x1b, 0x10 );\r
+                                                       rectangle2 = new Rectangle(10, 0x30, 0x1b, 0x10);\r
                                                }\r
                                                else\r
                                                {\r
-                                                       rectangle2 = new Rectangle( 0x25, 0x30, 0x1b, 0x10 );\r
+                                                       rectangle2 = new Rectangle(0x25, 0x30, 0x1b, 0x10);\r
                                                }\r
-                                               if( num11 < ( 0x1cf - num9 ) )\r
+                                               if (num11 < (0x1cf - num9))\r
                                                {\r
-                                                       int num13 = ( 0x1cf - num9 ) - num11;\r
+                                                       int num13 = (0x1cf - num9) - num11;\r
                                                        rectangle2.X += num13;\r
                                                        rectangle2.Width -= num13;\r
                                                        num11 += num13;\r
                                                }\r
-                                               if( ( num11 + rectangle2.Width ) > 0x1cf )\r
+                                               if ((num11 + rectangle2.Width) > 0x1cf)\r
                                                {\r
-                                                       int num14 = ( num11 + rectangle2.Width ) - 0x1cf;\r
+                                                       int num14 = (num11 + rectangle2.Width) - 0x1cf;\r
                                                        rectangle2.Width -= num14;\r
                                                }\r
-                                               if( rectangle2.Left >= rectangle2.Right )\r
+                                               if (rectangle2.Left >= rectangle2.Right)\r
                                                {\r
                                                        break;\r
                                                }\r
-                                               if( this.txゲージ != null )\r
+                                               if (this.txゲージ != null)\r
                                                {\r
                                                        Rectangle rectangle3 = rectangle2;\r
-                                                       rectangle3.X = (int) ( rectangle3.X * Scale.X );\r
-                                                       rectangle3.Y = (int) ( rectangle3.Y * Scale.Y );\r
-                                                       rectangle3.Width = (int) ( rectangle3.Width * Scale.X );\r
-                                                       rectangle3.Height = (int) ( rectangle3.Height * Scale.Y );\r
+                                                       rectangle3.X = (int)(rectangle3.X * Scale.X);\r
+                                                       rectangle3.Y = (int)(rectangle3.Y * Scale.Y);\r
+                                                       rectangle3.Width = (int)(rectangle3.Width * Scale.X);\r
+                                                       rectangle3.Height = (int)(rectangle3.Height * Scale.Y);\r
                                                        this.txゲージ.b加算合成 = false;\r
                                                        this.txゲージ.t2D描画(\r
                                                                CDTXMania.Instance.Device,\r
@@ -225,20 +217,20 @@ namespace DTXMania
                                                num12 -= rectangle2.Width;\r
                                                num11 += rectangle2.Width;\r
                                        }\r
-                                       rectangle2 = new Rectangle( 0, 0x20, 0x40, 0x10 );\r
+                                       rectangle2 = new Rectangle(0, 0x20, 0x40, 0x10);\r
                                        num11 = 0x1cf - num9;\r
-                                       if( ( num11 + rectangle2.Width ) > 0x1cf )\r
+                                       if ((num11 + rectangle2.Width) > 0x1cf)\r
                                        {\r
-                                               int num15 = ( num11 + rectangle2.Width ) - 0x1cf;\r
+                                               int num15 = (num11 + rectangle2.Width) - 0x1cf;\r
                                                rectangle2.Width -= num15;\r
                                        }\r
-                                       if( ( rectangle2.Left < rectangle2.Right ) && ( this.txゲージ != null ) )\r
+                                       if ((rectangle2.Left < rectangle2.Right) && (this.txゲージ != null))\r
                                        {\r
                                                this.txゲージ.b加算合成 = true;\r
-                                               rectangle2.X = (int) ( rectangle2.X * Scale.X );\r
-                                               rectangle2.Y = (int) ( rectangle2.Y * Scale.Y );\r
-                                               rectangle2.Width = (int) ( rectangle2.Width * Scale.X );\r
-                                               rectangle2.Height = (int) ( rectangle2.Height * Scale.Y );\r
+                                               rectangle2.X = (int)(rectangle2.X * Scale.X);\r
+                                               rectangle2.Y = (int)(rectangle2.Y * Scale.Y);\r
+                                               rectangle2.Width = (int)(rectangle2.Width * Scale.X);\r
+                                               rectangle2.Height = (int)(rectangle2.Height * Scale.Y);\r
                                                this.txゲージ.t2D描画(\r
                                                        CDTXMania.Instance.Device,\r
                                                        num11 * Scale.X,\r
@@ -248,12 +240,12 @@ namespace DTXMania
                                        }\r
                                        if (this.bRisky && this.actLVLNFont != null)            // #23599 2011.7.30 yyagi Risky残りMiss回数表示\r
                                        {\r
-                                               CActLVLNFont.EFontColor efc = this.IsDanger( E楽器パート.GUITAR ) ?\r
+                                               CActLVLNFont.EFontColor efc = this.IsDanger(E楽器パート.GUITAR) ?\r
                                                        CActLVLNFont.EFontColor.Red : CActLVLNFont.EFontColor.Yellow;\r
                                                actLVLNFont.t文字列描画(\r
-                                                       (int) ( 445 * Scale.X ),\r
-                                                       (int) ( 6 * Scale.Y ),\r
-                                                       nRiskyTimes.ToString(), efc, CActLVLNFont.EFontAlign.Right );\r
+                                                       (int)(445 * Scale.X),\r
+                                                       (int)(6 * Scale.Y),\r
+                                                       nRiskyTimes.ToString(), efc, CActLVLNFont.EFontAlign.Right);\r
                                        }\r
                                }\r
                                #endregion\r
index a5ffe88..cc71508 100644 (file)
@@ -31,7 +31,7 @@ namespace DTXMania
                        }\r
                        int x = (int) ( this.pt中央[ index ].X * Scale.X );\r
                        //int y = this.pt中央[ index ].Y;\r
-                       int y = 演奏判定ライン座標.n判定ラインY座標( e楽器パート, true, CDTXMania.Instance.ConfigIni.bReverse[ (int) e楽器パート ] );\r
+                       int y = 演奏判定ライン座標.n判定ラインY座標( e楽器パート, CDTXMania.Instance.ConfigIni.bReverse[ (int) e楽器パート ] );\r
                        //if ( CDTXMania.Instance.ConfigIni.bReverse[ (int)e楽器パート ] )\r
                        //{\r
                        //    y = 369;\r
index 1873c83..a45e9e7 100644 (file)
@@ -20,19 +20,19 @@ namespace DTXMania
 \r
                public override int On進行描画()\r
                {\r
-                       if( !base.b活性化してない )\r
+                       if (!base.b活性化してない)\r
                        {\r
-                               for( int i = 0; i < 6; i++ )\r
+                               for (int i = 0; i < 6; i++)\r
                                {\r
-                                       if( !base.ct進行[ i ].b停止中 )\r
+                                       if (!base.ct進行[i].b停止中)\r
                                        {\r
-                                               E楽器パート e楽器パート = ( i < 3 ) ? E楽器パート.GUITAR : E楽器パート.BASS;\r
-                                               CTextureAf texture = CDTXMania.Instance.ConfigIni.bReverse[ (int) e楽器パート ] ? base.txFlush[ ( i % 3 ) + 3 ] : base.txFlush[ i % 3 ];\r
-                                               int num2 = CDTXMania.Instance.ConfigIni.bLeft[ (int) e楽器パート ] ? 1 : 0;\r
+                                               E楽器パート e楽器パート = (i < 3) ? E楽器パート.GUITAR : E楽器パート.BASS;\r
+                                               CTextureAf texture = CDTXMania.Instance.ConfigIni.bReverse[(int)e楽器パート] ? base.txFlush[(i % 3) + 3] : base.txFlush[i % 3];\r
+                                               int num2 = CDTXMania.Instance.ConfigIni.bLeft[(int)e楽器パート] ? 1 : 0;\r
                                                {\r
-                                                       int x = ( ( ( i < 3 ) ? 0x1a : 480 ) + this.nRGBのX座標[ num2, i ] ) + ( ( 0x10 * base.ct進行[ i ].n現在の値 ) / 100 );\r
-                                                       int y = CDTXMania.Instance.ConfigIni.bReverse[ (int) e楽器パート ] ? 0x37 : 0;\r
-                                                       if( texture != null )\r
+                                                       int x = (((i < 3) ? 0x1a : 480) + this.nRGBのX座標[num2, i]) + ((0x10 * base.ct進行[i].n現在の値) / 100);\r
+                                                       int y = CDTXMania.Instance.ConfigIni.bReverse[(int)e楽器パート] ? 0x37 : 0;\r
+                                                       if (texture != null)\r
                                                        {\r
                                                                texture.t2D描画(\r
                                                                        CDTXMania.Instance.Device,\r
@@ -41,29 +41,29 @@ namespace DTXMania
                                                                        new Rectangle(\r
                                                                                0,\r
                                                                                0,\r
-                                                                               (int) ( ( ( 0x20 * ( 100 - base.ct進行[ i ].n現在の値 ) ) / 100 ) * Scale.X ),\r
-                                                                               (int) ( 0x76 * 3 * Scale.Y )\r
+                                                                               (int)(((0x20 * (100 - base.ct進行[i].n現在の値)) / 100) * Scale.X),\r
+                                                                               (int)(0x76 * 3 * Scale.Y)\r
                                                                        )\r
                                                                );\r
                                                        }\r
                                                }\r
-                                               base.ct進行[ i ].t進行();\r
-                                               if( base.ct進行[ i ].b終了値に達した )\r
+                                               base.ct進行[i].t進行();\r
+                                               if (base.ct進行[i].b終了値に達した)\r
                                                {\r
-                                                       base.ct進行[ i ].t停止();\r
+                                                       base.ct進行[i].t停止();\r
                                                }\r
                                        }\r
                                }\r
                        }\r
                        return 0;\r
                }\r
-               \r
+\r
 \r
                // その他\r
 \r
                #region [ private ]\r
                //-----------------\r
-               private readonly int[,] nRGBのX座標 = new int[ , ] { { 0, 0x24, 0x48, 0, 0x24, 0x48 }, { 0x48, 0x24, 0, 0x48, 0x24, 0 } };\r
+               private readonly int[,] nRGBのX座標 = new int[,] { { 0, 0x24, 0x48, 0, 0x24, 0x48 }, { 0x48, 0x24, 0, 0x48, 0x24, 0 } };\r
                //-----------------\r
                #endregion\r
        }\r
index a0471de..4d377f2 100644 (file)
@@ -142,13 +142,13 @@ namespace DTXMania
                                                                                break;\r
                                                                        case E判定文字表示位置.レーン上:\r
                                                                                baseX = this.stレーンサイズ[ j ].x;\r
-                                                                               yB = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.BASS, true, CDTXMania.Instance.ConfigIni.bReverse.Bass );\r
+                                                                               yB = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.BASS, CDTXMania.Instance.ConfigIni.bReverse.Bass );\r
                                                                                baseY = CDTXMania.Instance.ConfigIni.bReverse.Bass ? yB - 95 - 52 + 10 : yB + 95 + 52;\r
                                                                                //baseY = CDTXMania.Instance.ConfigIni.bReverse.Bass ? 0x12b : 190;\r
                                                                                break;\r
                                                                        case E判定文字表示位置.判定ライン上:\r
                                                                                baseX = this.stレーンサイズ[ j ].x;\r
-                                                                               yB = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.BASS, true, CDTXMania.Instance.ConfigIni.bReverse.Bass );\r
+                                                                               yB = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.BASS, CDTXMania.Instance.ConfigIni.bReverse.Bass );\r
                                                                                baseY = CDTXMania.Instance.ConfigIni.bReverse.Bass ? yB + 30 : yB - 20;\r
                                                                                break;\r
                                                                }\r
@@ -168,13 +168,13 @@ namespace DTXMania
                                                                                break;\r
                                                                        case E判定文字表示位置.レーン上:\r
                                                                                baseX = this.stレーンサイズ[ j ].x;\r
-                                                                               yG = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.GUITAR, true, CDTXMania.Instance.ConfigIni.bReverse.Guitar );\r
+                                                                               yG = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.GUITAR, CDTXMania.Instance.ConfigIni.bReverse.Guitar );\r
                                                                                baseY = CDTXMania.Instance.ConfigIni.bReverse.Guitar ? yG - 95 - 52 + 10 : yG + 95 + 52;\r
                                                                                //baseY = CDTXMania.Instance.ConfigIni.bReverse.Guitar ? 0x12b : 190;\r
                                                                                break;\r
                                                                        case E判定文字表示位置.判定ライン上:\r
                                                                                baseX = this.stレーンサイズ[ j ].x;\r
-                                                                               yG = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.GUITAR, true, CDTXMania.Instance.ConfigIni.bReverse.Guitar );\r
+                                                                               yG = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.GUITAR, CDTXMania.Instance.ConfigIni.bReverse.Guitar );\r
                                                                                baseY = CDTXMania.Instance.ConfigIni.bReverse.Guitar ? yG + 30 : yG - 20;\r
                                                                                break;\r
                                                                }\r
index 6751765..8591edd 100644 (file)
@@ -21,49 +21,27 @@ namespace DTXMania
                        base.eステージID = CStage.Eステージ.演奏;\r
                        base.eフェーズID = CStage.Eフェーズ.共通_通常状態;\r
                        base.b活性化してない = true;\r
-                       base.list子Activities.Add( this.actStageFailed = new CAct演奏ステージ失敗() );\r
-                       base.list子Activities.Add( this.actDANGER = new CAct演奏GuitarDanger() );\r
-                       base.list子Activities.Add( this.actAVI = new CAct演奏AVI() );\r
-                       base.list子Activities.Add( this.actBGA = new CAct演奏BGA() );\r
-                       base.list子Activities.Add( this.actPanel = new CAct演奏パネル文字列() );\r
-                       base.list子Activities.Add( this.act譜面スクロール速度 = new CAct演奏スクロール速度() );\r
-                       base.list子Activities.Add( this.actStatusPanels = new CAct演奏Guitarステータスパネル() );\r
-                       base.list子Activities.Add( this.actWailingBonus = new CAct演奏GuitarWailingBonus() );\r
-                       base.list子Activities.Add( this.actScore = new CAct演奏Guitarスコア() );\r
-                       base.list子Activities.Add( this.actRGB = new CAct演奏GuitarRGB() );\r
-                       base.list子Activities.Add( this.actLaneFlushGB = new CAct演奏GuitarレーンフラッシュGB() );\r
-                       base.list子Activities.Add( this.actJudgeString = new CAct演奏Guitar判定文字列() );\r
-                       base.list子Activities.Add( this.actGauge = new CAct演奏Guitarゲージ() );\r
-                       base.list子Activities.Add( this.actCombo = new CAct演奏Guitarコンボ() );\r
-                       base.list子Activities.Add( this.actChipFireGB = new CAct演奏Guitarチップファイア() );\r
-                       base.list子Activities.Add( this.actPlayInfo = new CAct演奏演奏情報() );\r
-                       base.list子Activities.Add( this.actFI = new CActFIFOBlack() );\r
-                       base.list子Activities.Add( this.actFO = new CActFIFOBlack() );\r
-                       base.list子Activities.Add( this.actFOClear = new CActFIFOWhite() );\r
+                       base.list子Activities.Add(this.actStageFailed = new CAct演奏ステージ失敗());\r
+                       base.list子Activities.Add(this.actDANGER = new CAct演奏GuitarDanger());\r
+                       base.list子Activities.Add(this.actAVI = new CAct演奏AVI());\r
+                       base.list子Activities.Add(this.actBGA = new CAct演奏BGA());\r
+                       base.list子Activities.Add(this.actPanel = new CAct演奏パネル文字列());\r
+                       base.list子Activities.Add(this.act譜面スクロール速度 = new CAct演奏スクロール速度());\r
+                       base.list子Activities.Add(this.actStatusPanels = new CAct演奏Guitarステータスパネル());\r
+                       base.list子Activities.Add(this.actWailingBonus = new CAct演奏GuitarWailingBonus());\r
+                       base.list子Activities.Add(this.actScore = new CAct演奏Guitarスコア());\r
+                       base.list子Activities.Add(this.actRGB = new CAct演奏GuitarRGB());\r
+                       base.list子Activities.Add(this.actLaneFlushGB = new CAct演奏GuitarレーンフラッシュGB());\r
+                       base.list子Activities.Add(this.actJudgeString = new CAct演奏Guitar判定文字列());\r
+                       base.list子Activities.Add(this.actGauge = new CAct演奏Guitarゲージ());\r
+                       base.list子Activities.Add(this.actCombo = new CAct演奏Guitarコンボ());\r
+                       base.list子Activities.Add(this.actChipFireGB = new CAct演奏Guitarチップファイア());\r
+                       base.list子Activities.Add(this.actPlayInfo = new CAct演奏演奏情報());\r
+                       base.list子Activities.Add(this.actFI = new CActFIFOBlack());\r
+                       base.list子Activities.Add(this.actFO = new CActFIFOBlack());\r
+                       base.list子Activities.Add(this.actFOClear = new CActFIFOWhite());\r
                }\r
 \r
-\r
-               // メソッド\r
-\r
-               public void t演奏結果を格納する( out CScoreIni.C演奏記録 Drums, out CScoreIni.C演奏記録 Guitar, out CScoreIni.C演奏記録 Bass )\r
-               {\r
-                       Drums = new CScoreIni.C演奏記録();\r
-\r
-                       base.t演奏結果を格納する_ギター( out Guitar );\r
-                       base.t演奏結果を格納する_ベース( out Bass );\r
-\r
-//                     if ( CDTXMania.Instance.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.Instance.DTX.SwapGuitarBassInfos();                   // 譜面情報も元に戻す\r
-//                     }\r
-               }\r
-               \r
-\r
                // CStage 実装\r
 \r
                public override void On活性化()\r
@@ -73,488 +51,123 @@ namespace DTXMania
                }\r
                public override void OnManagedリソースの作成()\r
                {\r
-                       if( !base.b活性化してない )\r
+                       if (!base.b活性化してない)\r
                        {\r
-                               //this.t背景テクスチャの生成();\r
-                               this.txチップ = TextureFactory.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenPlayGuitar chips.png" ) );\r
-                               this.txヒットバー = TextureFactory.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenPlayGuitar hit-bar.png" ) );\r
-                               //this.txWailing枠 = TextureFactory.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenPlay wailing cursor.png" ) );\r
+                               this.txチップ = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenPlayGuitar chips.png"));\r
+                               this.txヒットバー = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenPlayGuitar hit-bar.png"));\r
                                base.OnManagedリソースの作成();\r
                        }\r
                }\r
                public override void OnManagedリソースの解放()\r
                {\r
-                       if( !base.b活性化してない )\r
+                       if (!base.b活性化してない)\r
                        {\r
-                               //TextureFactory.tテクスチャの解放( ref this.tx背景 );\r
-                               TextureFactory.tテクスチャの解放( ref this.txチップ );\r
-                               TextureFactory.tテクスチャの解放( ref this.txヒットバー );\r
-                               //TextureFactory.tテクスチャの解放( ref this.txWailing枠 );\r
+                               TextureFactory.tテクスチャの解放(ref this.txチップ);\r
+                               TextureFactory.tテクスチャの解放(ref this.txヒットバー);\r
                                base.OnManagedリソースの解放();\r
                        }\r
                }\r
-               public override int On進行描画()\r
-               {\r
-                       if( !base.b活性化してない )\r
-                       {\r
-                               bool bIsFinishedPlaying = false;\r
-                               bool bIsFinishedFadeout = false;\r
-\r
-                               if( base.b初めての進行描画 )\r
-                               {\r
-                                       this.PrepareAVITexture();\r
-\r
-                                       CSound管理.rc演奏用タイマ.tリセット();\r
-                                       CDTXMania.Instance.Timer.tリセット();\r
-                                       this.ctチップ模様アニメ.Guitar = new CCounter( 0, 0x17, 20, CDTXMania.Instance.Timer );\r
-                                       this.ctチップ模様アニメ.Bass = new CCounter( 0, 0x17, 20, CDTXMania.Instance.Timer );\r
-                                       this.ctチップ模様アニメ[ 0 ] = null;\r
-                                       this.ctWailingチップ模様アニメ = new CCounter( 0, 4, 50, CDTXMania.Instance.Timer );\r
-                                       base.eフェーズID = CStage.Eフェーズ.共通_フェードイン;\r
-                                       this.actFI.tフェードイン開始();\r
-\r
-                                       if ( CDTXMania.Instance.DTXVmode.Enabled )                      // DTXVモードなら\r
-                                       {\r
-                                               #region [ DTXV用の再生設定にする(全AUTOなど) ]\r
-                                               tDTXV用の設定();\r
-                                               #endregion\r
-                                               t演奏位置の変更( CDTXMania.Instance.DTXVmode.nStartBar );\r
-                                       }\r
-\r
-                                       CDTXMania.Instance.Sound管理.tDisableUpdateBufferAutomatically();\r
-                                       base.b初めての進行描画 = false;\r
-                               }\r
-                               if( CDTXMania.Instance.ConfigIni.bSTAGEFAILED有効 && ( base.eフェーズID == CStage.Eフェーズ.共通_通常状態 ) )\r
-                               {\r
-//                                     bool flag3 = ( CDTXMania.Instance.ConfigIni.bAutoPlay.Guitar || !CDTXMania.Instance.DTX.bチップがある.Guitar ) || ( this.actGauge.db現在のゲージ値.Guitar <= -0.1 );                               // #23630\r
-//                                     bool flag4 = ( CDTXMania.Instance.ConfigIni.bAutoPlay.Bass || !CDTXMania.Instance.DTX.bチップがある.Bass ) || ( this.actGauge.db現在のゲージ値.Bass <= -0.1 );                                     // #23630\r
-                                       bool bFailedGuitar = this.actGauge.IsFailed( E楽器パート.GUITAR );         // #23630 2011.11.12 yyagi: deleted AutoPlay condition: not to be failed at once\r
-                                       bool bFailedBass   = this.actGauge.IsFailed( E楽器パート.BASS );           // #23630\r
-                                       bool bFailedNoChips = (!CDTXMania.Instance.DTX.bチップがある.Guitar && !CDTXMania.Instance.DTX.bチップがある.Bass); // #25216 2011.5.21 yyagi add condition\r
-                                       if ( bFailedGuitar || bFailedBass || bFailedNoChips )                                           // #25216 2011.5.21 yyagi: changed codition: && -> ||\r
-                                       {\r
-                                               this.actStageFailed.Start();\r
-                                               CDTXMania.Instance.DTX.t全チップの再生停止();\r
-                                               base.eフェーズID = CStage.Eフェーズ.演奏_STAGE_FAILED;\r
-                                       }\r
-                               }\r
-                               this.t進行描画_AVI();\r
-                               this.t進行描画_背景();\r
-                               this.t進行描画_MIDIBGM();\r
-                               this.t進行描画_パネル文字列();\r
-                               this.t進行描画_スコア();\r
-                               this.t進行描画_BGA();\r
-                               this.t進行描画_ステータスパネル();\r
-                               this.t進行描画_レーンフラッシュGB();\r
-                               this.t進行描画_ギターベース判定ライン();\r
-                               this.t進行描画_ゲージ();\r
-                               this.t進行描画_DANGER();\r
-                               if ( this.e判定表示優先度 == E判定表示優先度.Chipより下 )\r
-                               {\r
-                                       this.t進行描画_RGBボタン();\r
-                                       this.t進行描画_判定文字列();\r
-                                       this.t進行描画_コンボ();\r
-                               }\r
-                               this.t進行描画_WailingBonus();\r
-                               this.t進行描画_譜面スクロール速度();\r
-                               this.t進行描画_チップアニメ();\r
-                               bIsFinishedPlaying = this.t進行描画_チップ(E楽器パート.GUITAR);\r
-                               if ( this.e判定表示優先度 == E判定表示優先度.Chipより上 )\r
-                               {\r
-                                       this.t進行描画_RGBボタン();\r
-                                       this.t進行描画_判定文字列();\r
-                                       this.t進行描画_コンボ();\r
-                               }\r
-                               this.t進行描画_演奏情報();\r
-                               this.t進行描画_Wailing枠();\r
-                               this.t進行描画_チップファイアGB();\r
-                               this.t進行描画_STAGEFAILED();\r
-                               bIsFinishedFadeout = this.t進行描画_フェードイン_アウト();\r
-                               if( bIsFinishedPlaying && ( base.eフェーズID == CStage.Eフェーズ.共通_通常状態 ) )\r
-                               {\r
-                                       if ( CDTXMania.Instance.DTXVmode.Enabled )\r
-                                       {\r
-                                               if ( CDTXMania.Instance.Timer.b停止していない )\r
-                                               {\r
-                                                       this.actPanel.Stop();                           // PANEL表示停止\r
-                                                       CDTXMania.Instance.Timer.t一時停止();               // 再生時刻カウンタ停止\r
-                                               }\r
-                                               Thread.Sleep( 5 );\r
-                                               // DTXCからの次のメッセージを待ち続ける\r
-                                       }\r
-                                       else\r
-                                       {\r
-                                               this.eフェードアウト完了時の戻り値 = E演奏画面の戻り値.ステージクリア;\r
-                                               base.eフェーズID = CStage.Eフェーズ.演奏_STAGE_CLEAR_フェードアウト;\r
-                                               this.actFOClear.tフェードアウト開始();\r
-                                       } \r
-                               }\r
-                               if ( this.eフェードアウト完了時の戻り値 == E演奏画面の戻り値.再読込_再演奏)\r
-                               {\r
-                                       bIsFinishedFadeout = true;\r
-                               }\r
-                               if ( bIsFinishedFadeout )\r
-                               {\r
-                                       return (int) this.eフェードアウト完了時の戻り値;\r
-                               }\r
-\r
-                               ManageMixerQueue();\r
-\r
-                               // キー入力\r
-\r
-                               if( CDTXMania.Instance.act現在入力を占有中のプラグイン == null )\r
-                               {\r
-                                       this.tキー入力();\r
-                               }\r
-                       }\r
-                       return 0;\r
-               }\r
-\r
-\r
                // その他\r
-\r
                #region [ private ]\r
                //-----------------\r
-               protected override E判定 tチップのヒット処理( long nHitTime, CChip pChip, bool bCorrectLane )\r
-               {\r
-                       E判定 eJudgeResult = tチップのヒット処理( nHitTime, pChip, E楽器パート.GUITAR, bCorrectLane );\r
-                       return eJudgeResult;\r
-               }\r
-               protected override void tチップのヒット処理_BadならびにTight時のMiss( E楽器パート part )\r
-               {\r
-                       this.tチップのヒット処理_BadならびにTight時のMiss( part, 0, E楽器パート.GUITAR );\r
-               }\r
-               protected override void tチップのヒット処理_BadならびにTight時のMiss( E楽器パート part, int nLane )\r
-               {\r
-                       this.tチップのヒット処理_BadならびにTight時のMiss( part, nLane, E楽器パート.GUITAR );\r
-               }\r
-\r
-               protected override void t進行描画_AVI()\r
-               {\r
-                   base.t進行描画_AVI( 682, 112 );\r
-               }\r
-               protected override void t進行描画_BGA()\r
+               protected override void t進行描画_ギターベース判定ライン()       // yyagi: ドラム画面とは座標が違うだけですが、まとめづらかったのでそのまま放置してます。\r
                {\r
-                   base.t進行描画_BGA( 682, 112 );\r
-               }\r
-               protected override void t進行描画_DANGER()                  // #23631 2011.4.19 yyagi\r
-               {\r
-                       //this.actDANGER.t進行描画( false, this.actGauge.db現在のゲージ値.Guitar < 0.3, this.actGauge.db現在のゲージ値.Bass < 0.3 );\r
-                       this.actDANGER.t進行描画( false, this.actGauge.IsDanger(E楽器パート.GUITAR), this.actGauge.IsDanger(E楽器パート.BASS) );\r
-               }\r
-\r
-               protected override void t進行描画_Wailing枠()\r
-               {\r
-                       int yG = this.演奏判定ライン座標.n判定ラインY座標( E楽器パート.GUITAR, true, bReverse[ (int) E楽器パート.GUITAR ], true, true );\r
-                       int yB = this.演奏判定ライン座標.n判定ラインY座標( E楽器パート.BASS,   true, bReverse[ (int) E楽器パート.BASS   ], true, true );\r
-                       base.t進行描画_Wailing枠(\r
-                               (int) ( 139 * Scale.X ),\r
-                               (int) ( 593 * Scale.X ),\r
-                               yG,\r
-                               yB\r
-                               //CDTXMania.Instance.ConfigIni.bReverse.Guitar ? 340 : 11,\r
-                               //CDTXMania.Instance.ConfigIni.bReverse.Bass ?   340 : 11\r
-                       );\r
-               }\r
-               private void t進行描画_ギターベース判定ライン()  // yyagi: ドラム画面とは座標が違うだけですが、まとめづらかったのでそのまま放置してます。\r
-               {\r
-                       if ( ( CDTXMania.Instance.ConfigIni.eDark != Eダークモード.FULL ) && CDTXMania.Instance.ConfigIni.bGuitar有効 )\r
+                       if ((CDTXMania.Instance.ConfigIni.eDark != Eダークモード.FULL) && CDTXMania.Instance.ConfigIni.bGuitar有効)\r
                        {\r
-                               if ( CDTXMania.Instance.DTX.bチップがある.Guitar )\r
+                               if (CDTXMania.Instance.DTX.bチップがある.Guitar)\r
                                {\r
-                                       int y = this.演奏判定ライン座標.n判定ラインY座標( E楽器パート.GUITAR, true, bReverse[ (int) E楽器パート.GUITAR ], false, true )\r
-                                                       - (int) ( 3 * Scale.Y );\r
-                                                                                                                       // #31602 2013.6.23 yyagi 描画遅延対策として、判定ラインの表示位置をオフセット調整できるようにする\r
-                                       if ( this.txヒットバー != null )\r
+                                       int y = this.演奏判定ライン座標.n判定ラインY座標(E楽器パート.GUITAR, bReverse[(int)E楽器パート.GUITAR], false, true)\r
+                                                       - (int)(3 * Scale.Y);\r
+                                       // #31602 2013.6.23 yyagi 描画遅延対策として、判定ラインの表示位置をオフセット調整できるようにする\r
+                                       if (this.txヒットバー != null)\r
                                        {\r
-                                               for ( int i = 0; i < 4; i++ )\r
+                                               for (int i = 0; i < 4; i++)\r
                                                {\r
-                                                       this.txヒットバー.t2D描画( CDTXMania.Instance.Device,\r
-                                                               ( 23 + ( 28 * i ) ) * Scale.X,\r
+                                                       this.txヒットバー.t2D描画(CDTXMania.Instance.Device,\r
+                                                               (23 + (28 * i)) * Scale.X,\r
                                                                y,\r
                                                                new Rectangle(\r
                                                                        0,\r
-                                                                       (int) ( i * 8 * Scale.Y ),\r
-                                                                       (int) ( 28 * Scale.X ),\r
-                                                                       (int) ( 8 * Scale.Y )\r
+                                                                       (int)(i * 8 * Scale.Y),\r
+                                                                       (int)(28 * Scale.X),\r
+                                                                       (int)(8 * Scale.Y)\r
                                                                )\r
                                                        );\r
                                                }\r
                                        }\r
                                }\r
-                               if ( CDTXMania.Instance.DTX.bチップがある.Bass )\r
+                               if (CDTXMania.Instance.DTX.bチップがある.Bass)\r
                                {\r
-                                       int y = this.演奏判定ライン座標.n判定ラインY座標( E楽器パート.BASS, true, bReverse[ (int) E楽器パート.BASS ], false, true )\r
-                                                       - (int) ( 3 * Scale.Y );\r
-                                                                                                                       // #31602 2013.6.23 yyagi 描画遅延対策として、判定ラインの表示位置をオフセット調整できるようにする\r
-                                       if ( this.txヒットバー != null )\r
+                                       int y = this.演奏判定ライン座標.n判定ラインY座標(E楽器パート.BASS, bReverse[(int)E楽器パート.BASS], false, true)\r
+                                                       - (int)(3 * Scale.Y);\r
+                                       // #31602 2013.6.23 yyagi 描画遅延対策として、判定ラインの表示位置をオフセット調整できるようにする\r
+                                       if (this.txヒットバー != null)\r
                                        {\r
-                                               for ( int j = 0; j < 4; j++ )\r
+                                               for (int j = 0; j < 4; j++)\r
                                                {\r
                                                        this.txヒットバー.t2D描画(\r
                                                                CDTXMania.Instance.Device,\r
-                                                               ( 477 + ( 28 * j ) ) * Scale.X,\r
+                                                               (477 + (28 * j)) * Scale.X,\r
                                                                y,\r
                                                                new Rectangle(\r
                                                                        0,\r
-                                                                       (int) ( j * 8 * Scale.Y ),\r
-                                                                       (int) ( 28 * Scale.X ),\r
-                                                                       (int) ( 8 * Scale.Y )\r
+                                                                       (int)(j * 8 * Scale.Y),\r
+                                                                       (int)(28 * Scale.X),\r
+                                                                       (int)(8 * Scale.Y)\r
                                                                )\r
-                                                       );                                                      \r
+                                                       );\r
                                                }\r
                                        }\r
                                }\r
                        }\r
                }\r
 \r
-               protected override void t進行描画_パネル文字列()\r
-               {\r
-                       base.t進行描画_パネル文字列( 0xb5, 430 );\r
-               }\r
-\r
-               protected override void t進行描画_演奏情報()\r
-               {\r
-                       base.t進行描画_演奏情報( 0xb5, 50 );\r
-               }\r
-\r
-               protected override void ドラムスクロール速度アップ()\r
-               {\r
-                       // ギタレボモードでは何もしない\r
-               }\r
-               protected override void ドラムスクロール速度ダウン()\r
-               {\r
-                       // ギタレボモードでは何もしない\r
-               }\r
-\r
-               protected override void t入力処理_ドラム()\r
-               {\r
-                       // ギタレボモードでは何もしない\r
-               }\r
-\r
                protected override void t背景テクスチャの生成()\r
                {\r
-                       Rectangle bgrect = new Rectangle( (int) ( 181 * Scale.X ), (int) ( 50 * Scale.Y ), (int) ( 278 * Scale.X ), (int) ( 355 * Scale.Y ) );\r
+                       Rectangle bgrect = new Rectangle((int)(181 * Scale.X), (int)(50 * Scale.Y), (int)(278 * Scale.X), (int)(355 * Scale.Y));\r
                        string DefaultBgFilename = @"Graphics\ScreenPlayGuitar background.png";\r
                        string DefaultLaneFilename = "";\r
                        string BgFilename = "";\r
                        string BACKGROUND = null;\r
-                       if ( ( CDTXMania.Instance.DTX.BACKGROUND_GR != null ) && ( CDTXMania.Instance.DTX.BACKGROUND_GR.Length > 0 ) )\r
+                       if ((CDTXMania.Instance.DTX.BACKGROUND_GR != null) && (CDTXMania.Instance.DTX.BACKGROUND_GR.Length > 0))\r
                        {\r
                                BACKGROUND = CDTXMania.Instance.DTX.BACKGROUND_GR;\r
                        }\r
-                       else if ( ( CDTXMania.Instance.DTX.BACKGROUND != null ) && ( CDTXMania.Instance.DTX.BACKGROUND.Length > 0 ) )\r
+                       else if ((CDTXMania.Instance.DTX.BACKGROUND != null) && (CDTXMania.Instance.DTX.BACKGROUND.Length > 0))\r
                        {\r
                                BACKGROUND = CDTXMania.Instance.DTX.BACKGROUND;\r
                        }\r
-                       if ( ( BACKGROUND != null ) && ( BACKGROUND.Length > 0 ) )\r
+                       if ((BACKGROUND != null) && (BACKGROUND.Length > 0))\r
                        {\r
                                BgFilename = CDTXMania.Instance.DTX.strフォルダ名 + BACKGROUND;\r
                        }\r
-                       base.t背景テクスチャの生成( DefaultBgFilename, DefaultLaneFilename, bgrect, BgFilename );\r
+                       base.t背景テクスチャの生成(DefaultBgFilename, DefaultLaneFilename, bgrect, BgFilename);\r
                }\r
 \r
-               protected override void t進行描画_チップ_ドラムス( CConfigIni configIni, ref CDTX dTX, ref CChip pChip )\r
+               protected override void t進行描画_チップ_ドラムス(ref CChip pChip)\r
                {\r
                        // int indexSevenLanes = this.nチャンネル0Atoレーン07[ pChip.nチャンネル番号 - 0x11 ];\r
-                       if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+                       if (!pChip.bHit && (pChip.nバーからの距離dot.Drums < 0))\r
                        {\r
                                pChip.bHit = true;\r
-                               this.tサウンド再生( pChip, CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.DRUMS, dTX.nモニタを考慮した音量( E楽器パート.DRUMS ) );\r
+                               this.tサウンド再生(pChip, CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.DRUMS, CDTXMania.Instance.DTX.nモニタを考慮した音量(E楽器パート.DRUMS));\r
                        }\r
                }\r
-               protected override void t進行描画_チップ_ギターベース( CConfigIni configIni, ref CDTX dTX, ref CChip pChip, E楽器パート inst )\r
+               protected override void t進行描画_チップ_ギターベース(ref CChip pChip, E楽器パート inst)\r
                {\r
-                       base.t進行描画_チップ_ギターベース( configIni, ref dTX, ref pChip, inst,\r
-                               演奏判定ライン座標.n判定ラインY座標( inst, true, false ),       // 40\r
-                               演奏判定ライン座標.n判定ラインY座標( inst, true, true ),        // 369\r
-                               (int) ( 0 * Scale.Y ), (int) ( 409 * Scale.Y ),                         // Y軸表示範囲\r
+                       base.t進行描画_チップ_ギターベース(ref pChip, inst,\r
+                               演奏判定ライン座標.n判定ラインY座標(inst, false),       // 40\r
+                               演奏判定ライン座標.n判定ラインY座標(inst, true),        // 369\r
+                               (int)(0 * Scale.Y), (int)(409 * Scale.Y),                               // Y軸表示範囲\r
                                26, 480,                                        // openチップのX座標(Gt, Bs)\r
                                0, 192, 103, 8, 32,                     // オープンチップregionの x, y, w, h, 通常チップのw\r
                                26, 98, 480, 552,                       // GtのX, Gt左利きのX, BsのX, Bs左利きのX,\r
                                36, 32                                          // 描画のX座標間隔, テクスチャのX座標間隔\r
                        );\r
                }\r
-#if false\r
-               protected override void t進行描画・チップ・ギターベース( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip, E楽器パート inst )\r
+               protected override void t進行描画_チップ_フィルイン(ref CChip pChip)\r
                {\r
-                       int instIndex = (int) inst;\r
-                       if ( configIni.bGuitar有効 )\r
-                       {\r
-                               if ( configIni.bSudden[instIndex ] )\r
-                               {\r
-                                       pChip.b可視 = pChip.nバーからの距離dot[ instIndex ] < 200;\r
-                               }\r
-                               if ( configIni.bHidden[ instIndex ] && ( pChip.nバーからの距離dot[ instIndex ] < 100 ) )\r
-                               {\r
-                                       pChip.b可視 = false;\r
-                               }\r
-\r
-                               bool bChipHasR = ( ( pChip.nチャンネル番号 & 4 ) > 0 );\r
-                               bool bChipHasG = ( ( pChip.nチャンネル番号 & 2 ) > 0 );\r
-                               bool bChipHasB = ( ( pChip.nチャンネル番号 & 1 ) > 0 );\r
-                               bool bChipHasW = ( ( pChip.nチャンネル番号 & 0x0F ) == 0x08 );\r
-                               bool bChipIsO  = ( ( pChip.nチャンネル番号 & 0x0F ) == 0x00 );\r
-\r
-                               int OPEN = ( inst == E楽器パート.GUITAR ) ? 0x20 : 0xA0;\r
-                               if ( !pChip.bHit && pChip.b可視 )\r
-                               {\r
-                                       int y = configIni.bReverse[ instIndex ] ? ( 369 - pChip.nバーからの距離dot[ instIndex ]) : ( 40 + pChip.nバーからの距離dot[ instIndex ] );\r
-                                       if ( ( y > 0 ) && ( y < 409 ) )\r
-                                       {\r
-                                               if ( this.txチップ != null )\r
-                                               {\r
-                                                       int nアニメカウンタ現在の値 = this.ctチップ模様アニメ[ instIndex ].n現在の値;\r
-                                                       if ( pChip.nチャンネル番号 == OPEN )\r
-                                                       {\r
-                                                               {\r
-                                                                       int xo = ( inst == E楽器パート.GUITAR ) ? 26 : 480;\r
-                                                                       this.txチップ.t2D描画( CDTXMania.Instance.app.Device, xo, y - 4, new Rectangle( 0, 192 + ( ( nアニメカウンタ現在の値 % 5 ) * 8 ), 103, 8 ) );\r
-                                                               }\r
-                                                       }\r
-                                                       Rectangle rc = new Rectangle( 0, nアニメカウンタ現在の値 * 8, 32, 8 );\r
-                                                       int x;\r
-                                                       if ( inst == E楽器パート.GUITAR )\r
-                                                       {\r
-                                                               x = ( configIni.bLeft.Guitar ) ? 98 : 26;\r
-                                                       }\r
-                                                       else\r
-                                                       {\r
-                                                               x = ( configIni.bLeft.Bass ) ? 552 : 480;\r
-                                                       }\r
-                                                       int deltaX = ( configIni.bLeft[ instIndex ] ) ? -36 : +36; \r
-                                                       if ( bChipHasR )\r
-                                                       {\r
-                                                               this.txチップ.t2D描画( CDTXMania.Instance.app.Device, x, y - 4, rc );\r
-                                                       }\r
-                                                       rc.X += 32;\r
-                                                       if ( bChipHasG )\r
-                                                       {\r
-                                                               this.txチップ.t2D描画( CDTXMania.Instance.app.Device, x, y - 4, rc );\r
-                                                       }\r
-                                                       rc.X += 32;\r
-                                                       if ( bChipHasB )\r
-                                                       {\r
-                                                               this.txチップ.t2D描画( CDTXMania.Instance.app.Device, x, y - 4, rc );\r
-                                                       }\r
-                                               }\r
-                                       }\r
-                               }\r
-                               // if ( ( configIni.bAutoPlay.Guitar && !pChip.bHit ) && ( pChip.nバーからの距離dot.Guitar < 0 ) )\r
-                               if ( ( !pChip.bHit ) && ( pChip.nバーからの距離dot[ instIndex ] < 0 ) )\r
-                               {\r
-                                       int lo = ( inst == E楽器パート.GUITAR ) ? 0 : 3;   // lane offset\r
-                                       bool autoR = ( inst == E楽器パート.GUITAR ) ? bIsAutoPlay.GtR : bIsAutoPlay.BsR;\r
-                                       bool autoG = ( inst == E楽器パート.GUITAR ) ? bIsAutoPlay.GtG : bIsAutoPlay.BsG;\r
-                                       bool autoB = ( inst == E楽器パート.GUITAR ) ? bIsAutoPlay.GtB : bIsAutoPlay.BsB;\r
-                                       if ( ( bChipHasR || bChipIsO ) && autoR )\r
-                                       {\r
-                                               this.actChipFireGB.Start( 0 + lo );\r
-                                       }\r
-                                       if ( ( bChipHasG || bChipIsO ) && autoG )\r
-                                       {\r
-                                               this.actChipFireGB.Start( 1 + lo );\r
-                                       }\r
-                                       if ( ( bChipHasB || bChipIsO ) && autoB )\r
-                                       {\r
-                                               this.actChipFireGB.Start( 2 + lo );\r
-                                       }\r
-                                       if ( ( inst == E楽器パート.GUITAR && bIsAutoPlay.GtPick ) || ( inst == E楽器パート.BASS && bIsAutoPlay.BsPick ) )\r
-                                       {\r
-                                               bool pushingR = CDTXMania.Instance.Pad.b押されている( inst, Eパッド.R );\r
-                                               bool pushingG = CDTXMania.Instance.Pad.b押されている( inst, Eパッド.G );\r
-                                               bool pushingB = CDTXMania.Instance.Pad.b押されている( inst, Eパッド.B );\r
-                                               bool bMiss = true;\r
-                                               if ( ( ( bChipIsO == true ) && ( !pushingR | autoR ) && ( !pushingG | autoG ) && ( !pushingB | autoB ) ) ||\r
-                                                       ( ( bChipHasR == ( pushingR | autoR ) ) && ( bChipHasG == ( pushingG | autoG ) ) && ( bChipHasB == ( pushingB | autoB ) ) )\r
-                                               )\r
-                                               {\r
-                                                       bMiss = false;\r
-                                               }\r
-                                               pChip.bHit = true;\r
-                                               this.tサウンド再生( pChip, CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, inst, dTX.nモニタを考慮した音量( inst ) );\r
-                                               this.r次にくるギターChip = null;\r
-                                               this.tチップのヒット処理( pChip.n発声時刻ms, pChip );\r
-                                       }\r
-                               }\r
-                               // break;\r
-                               return;\r
-                       }\r
-                       if ( !pChip.bHit && ( pChip.nバーからの距離dot[ instIndex ] < 0 ) )\r
-                       {\r
-                               pChip.bHit = true;\r
-                               this.tサウンド再生( pChip, CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, inst, dTX.nモニタを考慮した音量( inst ) );\r
-                       }\r
-               }\r
-#endif\r
-               protected void t進行描画_チップ_ギター_ウェイリング( CConfigIni configIni, ref CDTX dTX, ref CChip pChip )\r
-               {\r
-                       //if ( configIni.bGuitar有効 )\r
-                       //{\r
-                       //    //\r
-                       //    // 後日、以下の部分を何とかCStage演奏画面共通.csに移したい。\r
-                       //    //\r
-                       //    if ( !pChip.bHit && pChip.b可視 )\r
-                       //    {\r
-                       //        if ( this.txチップ != null )\r
-                       //        {\r
-                       //            this.txチップ.n透明度 = pChip.n透明度;\r
-                       //        }\r
-                       //        int[] y_base = {\r
-                       //            演奏判定ライン座標.n判定ラインY座標( E楽器パート.GUITAR, true, false ),              // 40\r
-                       //            演奏判定ライン座標.n判定ラインY座標( E楽器パート.GUITAR, true, true )                // 369\r
-                       //        };                    // ドラム画面かギター画面かで変わる値\r
-                       //        int offset = 0;                                               // ドラム画面かギター画面かで変わる値\r
-\r
-                       //        const int WailingWidth  = (int) ( 20 * Scale.X );             // 4種全て同じ値\r
-                       //        const int WailingHeight = (int) ( 50 * Scale.Y );             // 4種全て同じ値\r
-                       //        const int baseTextureOffsetX = (int) ( 96 * Scale.X );        // ドラム画面かギター画面かで変わる値\r
-                       //        const int baseTextureOffsetY = (int) (  0 * Scale.Y );        // ドラム画面かギター画面かで変わる値\r
-                       //        const int drawX = (int) ( 140 * Scale.X );                            // 4種全て異なる値\r
-\r
-                       //        const int numA = (int) ( 29 * Scale.Y );                              // ドラム画面かギター画面かで変わる値\r
-                       //        int y = configIni.bReverse.Guitar ?\r
-                       //            ( y_base[ 1 ] - (int) ( pChip.nバーからの距離dot.Guitar * Scale.Y ) ) :\r
-                       //            ( y_base[ 0 ] + (int) ( pChip.nバーからの距離dot.Guitar * Scale.Y ) );\r
-                       //        int numB = y - offset;                                // 4種全て同じ定義\r
-                       //        int numC = 0;                                         // 4種全て同じ初期値\r
-                       //        const int showRangeY1 = (int) ( 409 * Scale.Y );                              // ドラム画面かギター画面かで変わる値\r
-                       //        if ( ( numB < ( showRangeY1 + numA ) ) && ( numB > -numA ) )  // 以下のロジックは4種全て同じ\r
-                       //        {\r
-                       //            int c = this.ctWailingチップ模様アニメ.n現在の値;\r
-                       //            Rectangle rect = new Rectangle(\r
-                       //                baseTextureOffsetX + ( c * WailingWidth ),\r
-                       //                baseTextureOffsetY,\r
-                       //                WailingWidth,\r
-                       //                WailingHeight\r
-                       //            );\r
-                       //            if ( numB < numA )\r
-                       //            {\r
-                       //                rect.Y += numA - numB;\r
-                       //                rect.Height -= numA - numB;\r
-                       //                numC = numA - numB;\r
-                       //            }\r
-                       //            if ( numB > ( showRangeY1 - numA ) )\r
-                       //            {\r
-                       //                rect.Height -= numB - ( showRangeY1 - numA );\r
-                       //            }\r
-                       //            if ( ( rect.Bottom > rect.Top ) && ( this.txチップ != null ) )\r
-                       //            {\r
-                       //                this.txチップ.t2D描画(\r
-                       //                    CDTXMania.Instance.app.Device,\r
-                       //                    drawX,\r
-                       //                    ( ( y - numA ) + numC ),\r
-                       //                    rect\r
-                       //                );\r
-                       //            }\r
-                       //        }\r
-                       //    }\r
-                       //}\r
-                       base.t進行描画_チップ_ギター_ウェイリング( configIni, ref dTX, ref pChip, true );\r
-               }\r
-               protected override void t進行描画_チップ_フィルイン( CConfigIni configIni, ref CDTX dTX, ref CChip pChip )\r
-               {\r
-                       if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+                       if (!pChip.bHit && (pChip.nバーからの距離dot.Drums < 0))\r
                        {\r
                                pChip.bHit = true;\r
                        }\r
@@ -583,256 +196,13 @@ namespace DTXMania
 #endif\r
 \r
                }\r
-#if false\r
-               protected override void t進行描画・チップ・ベース( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip )\r
-               {\r
-                       if ( configIni.bGuitar有効 )\r
-                       {\r
-                               if ( configIni.bSudden.Bass )\r
-                               {\r
-                                       pChip.b可視 = pChip.nバーからの距離dot.Bass < 200;\r
-                               }\r
-                               if ( configIni.bHidden.Bass && ( pChip.nバーからの距離dot.Bass < 100 ) )\r
-                               {\r
-                                       pChip.b可視 = false;\r
-                               }\r
-                               if ( !pChip.bHit && pChip.b可視 )\r
-                               {\r
-                                       int num8 = configIni.bReverse.Bass ? ( 0x171 - pChip.nバーからの距離dot.Bass ) : ( 40 + pChip.nバーからの距離dot.Bass );\r
-                                       if ( ( num8 > 0 ) && ( num8 < 0x199 ) )\r
-                                       {\r
-                                               int num9 = this.ctチップ模様アニメ.Bass.n現在の値;\r
-                                               if ( pChip.nチャンネル番号 == 160 )\r
-                                               {\r
-                                                       if ( this.txチップ != null )\r
-                                                       {\r
-                                                               this.txチップ.t2D描画( CDTXMania.Instance.app.Device, 480, num8 - 4, new Rectangle( 0, 0xc0 + ( ( num9 % 5 ) * 8 ), 0x67, 8 ) );\r
-                                                       }\r
-                                               }\r
-                                               else if ( !configIni.bLeft.Bass )\r
-                                               {\r
-                                                       Rectangle rectangle3 = new Rectangle( 0, num9 * 8, 0x20, 8 );\r
-                                                       if ( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) && ( this.txチップ != null ) )\r
-                                                       {\r
-                                                               this.txチップ.t2D描画( CDTXMania.Instance.app.Device, 480, num8 - 4, rectangle3 );\r
-                                                       }\r
-                                                       rectangle3.X += 0x20;\r
-                                                       if ( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) && ( this.txチップ != null ) )\r
-                                                       {\r
-                                                               this.txチップ.t2D描画( CDTXMania.Instance.app.Device, 0x204, num8 - 4, rectangle3 );\r
-                                                       }\r
-                                                       rectangle3.X += 0x20;\r
-                                                       if ( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) && ( this.txチップ != null ) )\r
-                                                       {\r
-                                                               this.txチップ.t2D描画( CDTXMania.Instance.app.Device, 0x228, num8 - 4, rectangle3 );\r
-                                                       }\r
-                                               }\r
-                                               else\r
-                                               {\r
-                                                       Rectangle rectangle4 = new Rectangle( 0, num9 * 8, 0x20, 8 );\r
-                                                       if ( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) && ( this.txチップ != null ) )\r
-                                                       {\r
-                                                               this.txチップ.t2D描画( CDTXMania.Instance.app.Device, 0x228, num8 - 4, rectangle4 );\r
-                                                       }\r
-                                                       rectangle4.X += 0x20;\r
-                                                       if ( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) && ( this.txチップ != null ) )\r
-                                                       {\r
-                                                               this.txチップ.t2D描画( CDTXMania.Instance.app.Device, 0x204, num8 - 4, rectangle4 );\r
-                                                       }\r
-                                                       rectangle4.X += 0x20;\r
-                                                       if ( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) && ( this.txチップ != null ) )\r
-                                                       {\r
-                                                               this.txチップ.t2D描画( CDTXMania.Instance.app.Device, 480, num8 - 4, rectangle4 );\r
-                                                       }\r
-                                               }\r
-                                       }\r
-                               }\r
-                               if ( ( configIni.bAutoPlay.Bass && !pChip.bHit ) && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
-                               {\r
-                                       pChip.bHit = true;\r
-                                       if ( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) || ( pChip.nチャンネル番号 == 0xA0 ) )\r
-                                       {\r
-                                               this.actChipFireGB.Start( 3 );\r
-                                       }\r
-                                       if ( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) || ( pChip.nチャンネル番号 == 0xA0 ) )\r
-                                       {\r
-                                               this.actChipFireGB.Start( 4 );\r
-                                       }\r
-                                       if ( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) || ( pChip.nチャンネル番号 == 0xA0 ) )\r
-                                       {\r
-                                               this.actChipFireGB.Start( 5 );\r
-                                       }\r
-                                       this.tサウンド再生( pChip, CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.BASS, dTX.nモニタを考慮した音量( E楽器パート.BASS ) );\r
-                                       this.r次にくるベースChip = null;\r
-                                       this.tチップのヒット処理( pChip.n発声時刻ms, pChip );\r
-                               }\r
-                               return;\r
-                       }\r
-                       if ( !pChip.bHit && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
-                       {\r
-                               pChip.bHit = true;\r
-                               this.tサウンド再生( pChip, CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.BASS, dTX.nモニタを考慮した音量( E楽器パート.BASS ) );\r
-                       }\r
-               }\r
-#endif\r
-               protected void t進行描画_チップ_ベース_ウェイリング( CConfigIni configIni, ref CDTX dTX, ref CChip pChip )\r
-               {\r
-                       if ( configIni.bGuitar有効 )\r
-                       {\r
-                               //\r
-                               // 後日、以下の部分を何とかCStage演奏画面共通.csに移したい。\r
-                               //\r
-                               //if ( !pChip.bHit && pChip.b可視 )\r
-                               //{\r
-                               //    if ( this.txチップ != null )\r
-                               //    {\r
-                               //        this.txチップ.n透明度 = pChip.n透明度;\r
-                               //    }\r
-                               //    int[] y_base = {\r
-                               //        演奏判定ライン座標.n判定ラインY座標( E楽器パート.BASS, true, false ),            // 40\r
-                               //        演奏判定ライン座標.n判定ラインY座標( E楽器パート.BASS, true, true )                      // 369\r
-                               //    };                        // ドラム画面かギター画面かで変わる値\r
-                               //    int offset = 0;                                           // ドラム画面かギター画面かで変わる値\r
-\r
-                               //    const int WailingWidth  = (int) ( 20 * Scale.X );         // 4種全て同じ値\r
-                               //    const int WailingHeight = (int) ( 50 * Scale.Y );         // 4種全て同じ値\r
-                               //    const int baseTextureOffsetX = (int) ( 96 * Scale.X );    // ドラム画面かギター画面かで変わる値\r
-                               //    const int baseTextureOffsetY = (int) (  0 * Scale.Y );    // ドラム画面かギター画面かで変わる値\r
-                               //    const int drawX =(int) ( 594 * Scale.X );                         // 4種全て異なる値\r
-\r
-                               //    const int numA = (int) ( 29 * Scale.Y );                          // ドラム画面かギター画面かで変わる値\r
-                               //    int y = configIni.bReverse.Bass ?\r
-                               //        ( y_base[ 1 ] - (int) ( pChip.nバーからの距離dot.Bass * Scale.Y ) ) :\r
-                               //        ( y_base[ 0 ] + (int) ( pChip.nバーからの距離dot.Bass * Scale.Y ) );\r
-                               //    int numB = y - offset;                            // 4種全て同じ定義\r
-                               //    int numC = 0;                                             // 4種全て同じ初期値\r
-                               //    const int showRangeY1 = (int) ( 409 * Scale.Y );                          // ドラム画面かギター画面かで変わる値\r
-                               //    if ( ( numB < ( showRangeY1 + numA ) ) && ( numB > -numA ) )      // 以下のロジックは4種全て同じ\r
-                               //    {\r
-                               //        int c = this.ctWailingチップ模様アニメ.n現在の値;\r
-                               //        Rectangle rect = new Rectangle(\r
-                               //            baseTextureOffsetX + ( c * WailingWidth ),\r
-                               //            baseTextureOffsetY,\r
-                               //            WailingWidth,\r
-                               //            WailingHeight\r
-                               //        );\r
-                               //        if ( numB < numA )                                            // 上にスクロールして、見切れる場合\r
-                               //        {\r
-                               //            rect.Y += numA - numB;\r
-                               //            rect.Height -= numA - numB;\r
-                               //            numC = numA - numB;\r
-                               //        }\r
-                               //        if ( numB > ( showRangeY1 - numA ) )  // 下にスクロールして、見切れる場合\r
-                               //        {\r
-                               //            rect.Height -= numB - ( showRangeY1 - numA );\r
-                               //        }\r
-                               //        if ( ( rect.Bottom > rect.Top ) && ( this.txチップ != null ) )\r
-                               //        {\r
-                               //            this.txチップ.t2D描画(\r
-                               //                CDTXMania.Instance.app.Device,\r
-                               //                drawX,\r
-                               //                ( ( y - numA ) + numC ),\r
-                               //                rect\r
-                               //            );\r
-                               //        }\r
-                               //    }\r
-                               //}\r
-                               base.t進行描画_チップ_ベース_ウェイリング( configIni, ref dTX, ref pChip, true );\r
-                       }\r
-               }\r
-               protected override void t進行描画_チップ_空打ち音設定_ドラム( CConfigIni configIni, ref CDTX dTX, ref CChip pChip )\r
+               protected override void t進行描画_チップ_空打ち音設定_ドラム(ref CChip pChip)\r
                {\r
-                       if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+                       if (!pChip.bHit && (pChip.nバーからの距離dot.Drums < 0))\r
                        {\r
                                pChip.bHit = true;\r
                        }\r
                }\r
-               protected override void t進行描画_チップ_小節線( CConfigIni configIni, ref CDTX dTX, ref CChip pChip )\r
-               {\r
-                       int n小節番号plus1 = pChip.n発声位置 / 0x180;\r
-                       if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
-                       {\r
-                               pChip.bHit = true;\r
-                               this.actPlayInfo.n小節番号 = n小節番号plus1 - 1;\r
-                               if ( configIni.bWave再生位置自動調整機能有効 && ( bIsDirectSound || bUseOSTimer ) )\r
-                               {\r
-                                       dTX.tWave再生位置自動補正();\r
-                               }\r
-                       }\r
-                       if ( ( pChip.b可視 && configIni.bGuitar有効 ) && ( configIni.eDark != Eダークモード.FULL ) && ( this.txチップ != null ) )\r
-                       {\r
-                               this.txチップ.n透明度 = 255;\r
-                               #region [ Guitarの小節線 ]\r
-                               //int y = configIni.bReverse.Guitar ? ( ( 0x171 - pChip.nバーからの距離dot.Guitar ) - 1 ) : ( ( 40 + pChip.nバーからの距離dot.Guitar ) - 1 );\r
-                               int y = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.GUITAR, true, configIni.bReverse.Guitar );\r
-                               if ( configIni.bReverse.Guitar )\r
-                               {\r
-                                       y = y - (int) ( pChip.nバーからの距離dot.Guitar ) - 1;\r
-                               }\r
-                               else\r
-                               {\r
-                                       y = y + (int) ( pChip.nバーからの距離dot.Guitar ) - 1;\r
-                               }\r
-                               int n小節線消失距離dot;\r
-                               // Reverse時の小節線消失位置を、RGBボタンの真ん中程度に。\r
-                               // 非Reverse時の消失処理は、従来通りt進行描画・チップ()にお任せ。\r
-                               n小節線消失距離dot = configIni.bReverse.Guitar ?\r
-                                       (int) ( -100 * Scale.Y ) :\r
-                                       ( configIni.e判定位置.Guitar == E判定位置.標準 ) ? (int) ( -36 * Scale.Y ) : (int) ( -25 * Scale.Y );\r
-\r
-                               if ( dTX.bチップがある.Guitar &&\r
-                                       ( 0 < y ) && ( y < (int) ( 0x199 * Scale.Y ) ) &&\r
-                                       ( pChip.nバーからの距離dot.Guitar >= n小節線消失距離dot )\r
-                                       )\r
-                               {\r
-                                       this.txチップ.t2D描画(\r
-                                               CDTXMania.Instance.Device,\r
-                                               0x1a * Scale.X,\r
-                                               y,\r
-                                               new Rectangle(\r
-                                                       0,\r
-                                                       (int) ( 0xeb * Scale.Y ),\r
-                                                       (int) ( 0x68 * Scale.X ),\r
-                                                       (int) ( 1 * Scale.Y )\r
-                                               )\r
-                                       );\r
-                               }\r
-                               #endregion\r
-\r
-                               #region [ Bassの小節線 ]\r
-                               //y = configIni.bReverse.Bass ? ( ( 0x171 - pChip.nバーからの距離dot.Bass ) - 1 ) : ( ( 40 + pChip.nバーからの距離dot.Bass ) - 1 );\r
-                               y = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.BASS, true, configIni.bReverse.Bass );\r
-                               if ( configIni.bReverse.Bass )\r
-                               {\r
-                                       y = y - (int) ( pChip.nバーからの距離dot.Bass ) - 1;\r
-                               }\r
-                               else\r
-                               {\r
-                                       y = y + (int) ( pChip.nバーからの距離dot.Bass ) - 1;\r
-                               }\r
-                               n小節線消失距離dot = configIni.bReverse.Bass ?\r
-                                       (int) ( -100 * Scale.Y ) :\r
-                                       ( configIni.e判定位置.Bass == E判定位置.標準 ) ? (int) ( -36 * Scale.Y ) : (int) ( -25 * Scale.Y ); \r
-                               if ( dTX.bチップがある.Bass &&\r
-                                       ( 0 < y ) && ( y < (int) ( 0x199 * Scale.Y ) ) &&\r
-                                       ( pChip.nバーからの距離dot.Bass >= n小節線消失距離dot )\r
-                                       )\r
-                               {\r
-                                       this.txチップ.t2D描画(\r
-                                               CDTXMania.Instance.Device,\r
-                                               480 * Scale.X,\r
-                                               y,\r
-                                               new Rectangle(\r
-                                                       0,\r
-                                                       (int) ( 0xeb * Scale.Y ),\r
-                                                       (int) ( 0x68 * Scale.X ),\r
-                                                       (int) ( 1 * Scale.Y )\r
-                                               )\r
-                                       );\r
-                               }\r
-                               #endregion\r
-                       }\r
-               }\r
 \r
                #endregion\r
        }\r
index b21ef3f..197a1bf 100644 (file)
@@ -15,7 +15,7 @@ namespace DTXMania
                        {\r
                                x = (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left)? 1638 : 1567+5;\r
                                //y = CDTXMania.Instance.ConfigIni.bReverse.Guitar ? 0xaf : 270;\r
-                               y = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.GUITAR, false, CDTXMania.Instance.ConfigIni.bReverse.Guitar );\r
+                               y = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.GUITAR, CDTXMania.Instance.ConfigIni.bReverse.Guitar );\r
                                y += CDTXMania.Instance.ConfigIni.bReverse.Guitar ? (int) ( -134 * Scale.Y ) : (int) ( +174 * Scale.Y );\r
                                if ( base.txCOMBOギター != null )\r
                                {\r
@@ -26,7 +26,7 @@ namespace DTXMania
                        {\r
                                x = 1344;\r
                                //y = CDTXMania.Instance.ConfigIni.bReverse.Guitar ? 0xee : 0xcf;\r
-                               y = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.GUITAR, false, CDTXMania.Instance.ConfigIni.bReverse.Guitar );\r
+                               y = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.GUITAR, CDTXMania.Instance.ConfigIni.bReverse.Guitar );\r
                                y += CDTXMania.Instance.ConfigIni.bReverse.Guitar ? (int) ( -134 * Scale.Y ) : (int) ( +174 * Scale.Y );\r
                                if ( base.txCOMBOギター != null )\r
                                {\r
@@ -43,7 +43,7 @@ namespace DTXMania
                {\r
                        int x = ( CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left ) ? 1311 : 1311-994+5;\r
                        //int y = CDTXMania.Instance.ConfigIni.bReverse.Bass ? 0xaf : 270;\r
-                       int y = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.BASS, false, CDTXMania.Instance.ConfigIni.bReverse.Bass );\r
+                       int y = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.BASS, CDTXMania.Instance.ConfigIni.bReverse.Bass );\r
                        y += CDTXMania.Instance.ConfigIni.bReverse.Bass ? (int) ( -134 * Scale.Y ) : (int) ( +174 * Scale.Y );\r
                        if ( base.txCOMBOギター != null )\r
                        {\r
index 94bf8ba..8ae0f6e 100644 (file)
@@ -28,7 +28,7 @@ namespace DTXMania
                                x -= ( e楽器パート == E楽器パート.GUITAR ) ? 71 : 994;\r
                        }\r
                        //int y = this.pt中央[ index ].Y;\r
-                       int y = 演奏判定ライン座標.n判定ラインY座標( e楽器パート, false, CDTXMania.Instance.ConfigIni.bReverse[ (int) e楽器パート ] );\r
+                       int y = 演奏判定ライン座標.n判定ラインY座標( e楽器パート, CDTXMania.Instance.ConfigIni.bReverse[ (int) e楽器パート ] );\r
 \r
                        base.Start( nLane, x, y, 演奏判定ライン座標 );\r
                }\r
index fc564aa..6805602 100644 (file)
@@ -12,22 +12,22 @@ namespace DTXMania
 \r
                public override int On進行描画()\r
                {\r
-                       if ( !base.b活性化してない )\r
+                       if (!base.b活性化してない)\r
                        {\r
-                               for ( int i = 0; i < 6; i++ )\r
+                               for (int i = 0; i < 6; i++)\r
                                {\r
-                                       if ( !base.ct進行[ i ].b停止中 )\r
+                                       if (!base.ct進行[i].b停止中)\r
                                        {\r
-                                               E楽器パート e楽器パート = ( i < 3 ) ? E楽器パート.GUITAR : E楽器パート.BASS;\r
-                                               CTextureAf texture = CDTXMania.Instance.ConfigIni.bReverse[ (int) e楽器パート ] ? base.txFlush[ ( i % 3 ) + 3 ] : base.txFlush[ i % 3 ];\r
-                                               int bLeft = CDTXMania.Instance.ConfigIni.bLeft[ (int) e楽器パート ] ? 1 : 0;\r
-                                               int x = ( ( ( i < 3 ) ? 1521 : 1194 ) + this.nRGBのX座標[ bLeft, i ] * 3 ) + ( ( 16 * base.ct進行[ i ].n現在の値 ) / 100 ) * 3;\r
+                                               E楽器パート e楽器パート = (i < 3) ? E楽器パート.GUITAR : E楽器パート.BASS;\r
+                                               CTextureAf texture = CDTXMania.Instance.ConfigIni.bReverse[(int)e楽器パート] ? base.txFlush[(i % 3) + 3] : base.txFlush[i % 3];\r
+                                               int bLeft = CDTXMania.Instance.ConfigIni.bLeft[(int)e楽器パート] ? 1 : 0;\r
+                                               int x = (((i < 3) ? 1521 : 1194) + this.nRGBのX座標[bLeft, i] * 3) + ((16 * base.ct進行[i].n現在の値) / 100) * 3;\r
                                                if (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Center)\r
                                                {\r
-                                                       x -= ( e楽器パート == E楽器パート.GUITAR ) ? 71 : 994;\r
+                                                       x -= (e楽器パート == E楽器パート.GUITAR) ? 71 : 994;\r
                                                }\r
-                                               int y = ( ( i < 3 ) ? 0x39 : 0x39 );\r
-                                               if ( texture != null )\r
+                                               int y = ((i < 3) ? 0x39 : 0x39);\r
+                                               if (texture != null)\r
                                                {\r
                                                        texture.t2D描画(\r
                                                                CDTXMania.Instance.Device,\r
@@ -36,15 +36,15 @@ namespace DTXMania
                                                                new Rectangle(\r
                                                                        0, //(int) ( ( j * 0x20 ) * Scale.X ),\r
                                                                        0,\r
-                                                                       (int) ( ( 0x18 * ( 100 - base.ct進行[ i ].n現在の値 ) ) / 100 * Scale.X ),\r
-                                                                       (int) ( 0x76 * 3 * Scale.Y )\r
+                                                                       (int)((0x18 * (100 - base.ct進行[i].n現在の値)) / 100 * Scale.X),\r
+                                                                       (int)(0x76 * 3 * Scale.Y)\r
                                                                )\r
                                                        );\r
                                                }\r
-                                               base.ct進行[ i ].t進行();\r
-                                               if ( base.ct進行[ i ].b終了値に達した )\r
+                                               base.ct進行[i].t進行();\r
+                                               if (base.ct進行[i].b終了値に達した)\r
                                                {\r
-                                                       base.ct進行[ i ].t停止();\r
+                                                       base.ct進行[i].t停止();\r
                                                }\r
                                        }\r
                                }\r
@@ -57,7 +57,7 @@ namespace DTXMania
 \r
                #region [ private ]\r
                //-----------------\r
-               private readonly int[ , ] nRGBのX座標 = new int[ , ] { { 2, 0x1c, 0x36, 2, 0x1c, 0x36 }, { 0x36, 0x1c, 2, 0x36, 0x1c, 2 } };\r
+               private readonly int[,] nRGBのX座標 = new int[,] { { 2, 0x1c, 0x36, 2, 0x1c, 0x36 }, { 0x36, 0x1c, 2, 0x36, 0x1c, 2 } };\r
                //-----------------\r
                #endregion\r
        }\r
index 0a0dbdd..915a28f 100644 (file)
@@ -159,7 +159,7 @@ namespace DTXMania
                                                                        {\r
                                                                                baseX -= 331+1;\r
                                                                        }\r
-                                                                       yB = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.BASS, false, CDTXMania.Instance.ConfigIni.bReverse.Bass );\r
+                                                                       yB = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.BASS, CDTXMania.Instance.ConfigIni.bReverse.Bass );\r
                                                                        baseY = (\r
                                                                                                CDTXMania.Instance.ConfigIni.bReverse.Bass ?\r
                                                                                                        yB + (int) ( ( -124 + 0 ) * Scale.Y ) :\r
@@ -174,7 +174,7 @@ namespace DTXMania
                                                                                baseX -= 331+1;\r
                                                                        }\r
                                                                        //baseY = ( CDTXMania.Instance.ConfigIni.bReverse.Bass ? 240 : 180 ) + ( this.n文字の縦表示位置[ j ] * 0x20 );\r
-                                                                       yB = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.BASS, false, CDTXMania.Instance.ConfigIni.bReverse.Bass );\r
+                                                                       yB = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.BASS, CDTXMania.Instance.ConfigIni.bReverse.Bass );\r
                                                                        baseY = (\r
                                                                                                CDTXMania.Instance.ConfigIni.bReverse.Bass ?\r
                                                                                                        yB - (int) ( 134 * Scale.Y ) :\r
@@ -188,7 +188,7 @@ namespace DTXMania
                                                                        {\r
                                                                                baseX -= 331+1;\r
                                                                        }\r
-                                                                       yB = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.BASS, false, CDTXMania.Instance.ConfigIni.bReverse.Bass );\r
+                                                                       yB = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.BASS, CDTXMania.Instance.ConfigIni.bReverse.Bass );\r
                                                                        baseY = CDTXMania.Instance.ConfigIni.bReverse.Bass ?\r
                                                                                yB + (int) ( 20 * Scale.Y ) :\r
                                                                                yB - (int) ( 24 * Scale.Y );\r
@@ -213,7 +213,7 @@ namespace DTXMania
                                                                                baseX = this.stレーンサイズ[ j ].x + 36;  // 判定表示がドラムレーンにかぶらないよう、ベース有りの時と同じ表示方法にする\r
                                                                                baseX -= 24 + 1;\r
                                                                        }\r
-                                                                       yG = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.GUITAR, false, CDTXMania.Instance.ConfigIni.bReverse.Guitar );\r
+                                                                       yG = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.GUITAR, CDTXMania.Instance.ConfigIni.bReverse.Guitar );\r
                                                                        baseY = (\r
                                                                                                CDTXMania.Instance.ConfigIni.bReverse.Guitar ?\r
                                                                                                        yG + (int) ( ( -124 + 0 ) * Scale.Y ) :\r
@@ -229,7 +229,7 @@ namespace DTXMania
                                                                                baseX -= 24+1;\r
                                                                        }\r
                                                                        //baseY = ( CDTXMania.Instance.ConfigIni.bReverse.Guitar ? 240 : 180 ) + ( this.n文字の縦表示位置[ j ] * 0x20 );\r
-                                                                       yG = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.GUITAR, false, CDTXMania.Instance.ConfigIni.bReverse.Guitar );\r
+                                                                       yG = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.GUITAR, CDTXMania.Instance.ConfigIni.bReverse.Guitar );\r
                                                                        baseY = (\r
                                                                                                CDTXMania.Instance.ConfigIni.bReverse.Guitar ?\r
                                                                                                        yG - (int) ( 134 * Scale.Y ):\r
@@ -244,7 +244,7 @@ namespace DTXMania
                                                                                baseX = this.stレーンサイズ[ j ].x + 36;  // 判定表示がドラムレーンにかぶらないよう、ベース有りの時と同じ表示方法にする\r
                                                                                baseX -= 24 + 1;\r
                                                                        }\r
-                                                                       yG = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.GUITAR, false, CDTXMania.Instance.ConfigIni.bReverse.Guitar );\r
+                                                                       yG = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.GUITAR, CDTXMania.Instance.ConfigIni.bReverse.Guitar );\r
                                                                baseY = CDTXMania.Instance.ConfigIni.bReverse.Guitar ?\r
                                                                                yG + (int) ( 20 * Scale.Y ) :\r
                                                                                yG - (int) ( 24 * Scale.Y );\r
index 351b273..465e22f 100644 (file)
@@ -47,39 +47,7 @@ namespace DTXMania
                        base.list子Activities.Add(this.actFOClear = new CActFIFOWhite());\r
                }\r
 \r
-\r
-               // メソッド\r
-\r
-               public void t演奏結果を格納する(out CScoreIni.C演奏記録 Drums, out CScoreIni.C演奏記録 Guitar, out CScoreIni.C演奏記録 Bass, out CChip[] r空打ちドラムチップ)\r
-               {\r
-                       base.t演奏結果を格納する_ドラム(out Drums);\r
-                       base.t演奏結果を格納する_ギター(out Guitar);\r
-                       base.t演奏結果を格納する_ベース(out Bass);\r
-\r
-                       r空打ちドラムチップ = new CChip[10];\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
-                               {\r
-                                       r空打ちドラムチップ[i] = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(CSound管理.rc演奏用タイマ.n現在時刻, this.nパッド0Atoチャンネル0A[i], this.nInputAdjustTimeMs.Drums);\r
-                               }\r
-                       }\r
-\r
-                       //                      if ( CDTXMania.Instance.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.Instance.DTX.SwapGuitarBassInfos();                   // 譜面情報も元に戻す\r
-                       //                      }\r
-               }\r
-\r
-\r
                // CStage 実装\r
-\r
                public override void On活性化()\r
                {\r
                        this.bフィルイン中 = false;\r
@@ -134,148 +102,17 @@ namespace DTXMania
                {\r
                        if (!base.b活性化してない)\r
                        {\r
-                               //TextureFactory.tテクスチャの解放( ref this.tx背景 );\r
                                TextureFactory.tテクスチャの解放(ref this.txヒットバー);\r
                                TextureFactory.tテクスチャの解放(ref this.txヒットバーGB);\r
                                TextureFactory.tテクスチャの解放(ref this.txチップ);\r
                                TextureFactory.tテクスチャの解放(ref this.txレーンフレームGB);\r
-                               //TextureFactory.tテクスチャの解放( ref this.txWailing枠 );\r
                                base.OnManagedリソースの解放();\r
                        }\r
                }\r
-               public override int On進行描画()\r
-               {\r
-                       //base.sw.Start();\r
-                       if (!base.b活性化してない)\r
-                       {\r
-                               bool bIsFinishedPlaying = false;\r
-                               bool bIsFinishedFadeout = false;\r
-                               #region [ 初めての進行描画 ]\r
-                               if (base.b初めての進行描画)\r
-                               {\r
-                                       this.PrepareAVITexture();\r
-\r
-                                       CSound管理.rc演奏用タイマ.tリセット();\r
-                                       CDTXMania.Instance.Timer.tリセット();\r
-                                       this.ctチップ模様アニメ.Drums = new CCounter(0, 0x30, 10, CDTXMania.Instance.Timer);\r
-                                       this.ctチップ模様アニメ.Guitar = new CCounter(0, 0x17, 20, CDTXMania.Instance.Timer);\r
-                                       this.ctチップ模様アニメ.Bass = new CCounter(0, 0x17, 20, CDTXMania.Instance.Timer);\r
-                                       this.ctWailingチップ模様アニメ = new CCounter(0, 4, 50, CDTXMania.Instance.Timer);\r
-\r
-                                       // this.actChipFireD.Start( Eレーン.HH );    // #31554 2013.6.12 yyagi\r
-                                       // 初チップヒット時のもたつき回避。最初にactChipFireD.Start()するときにJITが掛かって?\r
-                                       // ものすごく待たされる(2回目以降と比べると2,3桁tick違う)。そこで最初の画面フェードインの間に\r
-                                       // 一発Start()を掛けてJITの結果を生成させておく。\r
-\r
-                                       base.eフェーズID = CStage.Eフェーズ.共通_フェードイン;\r
-                                       this.actFI.tフェードイン開始();\r
-\r
-                                       if (CDTXMania.Instance.DTXVmode.Enabled)                        // DTXVモードなら\r
-                                       {\r
-                                               #region [ DTXV用の再生設定にする(全AUTOなど) ]\r
-                                               tDTXV用の設定();\r
-                                               #endregion\r
-                                               t演奏位置の変更(CDTXMania.Instance.DTXVmode.nStartBar);\r
-                                       }\r
-\r
-                                       CDTXMania.Instance.Sound管理.tDisableUpdateBufferAutomatically();\r
-                                       base.b初めての進行描画 = false;\r
-                               }\r
-                               #endregion\r
-                               if ((CDTXMania.Instance.ConfigIni.bSTAGEFAILED有効 && this.actGauge.IsFailed(E楽器パート.DRUMS)) && (base.eフェーズID == CStage.Eフェーズ.共通_通常状態))\r
-                               {\r
-                                       this.actStageFailed.Start();\r
-                                       CDTXMania.Instance.DTX.t全チップの再生停止();\r
-                                       base.eフェーズID = CStage.Eフェーズ.演奏_STAGE_FAILED;\r
-                               }\r
-                               this.t進行描画_AVI();\r
-                               this.t進行描画_背景();\r
-                               this.t進行描画_MIDIBGM();\r
-                               this.t進行描画_パネル文字列();\r
-                               this.t進行描画_スコア();\r
-                               this.t進行描画_BGA();\r
-                               this.t進行描画_ステータスパネル();\r
-                               this.t進行描画_ギターベースフレーム();\r
-                               this.t進行描画_レーンフラッシュGB();\r
-                               this.t進行描画_ゲージ();\r
-                               this.t進行描画_グラフ();   // #24074 2011.01.23 add ikanick\r
-                               this.t進行描画_レーンフラッシュD();\r
-                               this.t進行描画_DANGER();\r
-                               if (this.e判定表示優先度 == E判定表示優先度.Chipより下)\r
-                               {\r
-                                       this.t進行描画_RGBボタン();\r
-                                       this.t進行描画_判定文字列1_通常位置指定の場合();\r
-                                       this.t進行描画_コンボ();\r
-                               }\r
-                               this.t進行描画_WailingBonus();\r
-                               this.t進行描画_譜面スクロール速度();\r
-                               this.t進行描画_ドラムパッド();\r
-                               this.t進行描画_ギターベース判定ライン();\r
-                               this.t進行描画_判定ライン();\r
-                               this.t進行描画_チップアニメ();\r
-                               bIsFinishedPlaying = this.t進行描画_チップ(E楽器パート.DRUMS);\r
-                               this.t進行描画_演奏情報();\r
-                               if (this.e判定表示優先度 == E判定表示優先度.Chipより上)\r
-                               {\r
-                                       this.t進行描画_RGBボタン();\r
-                                       this.t進行描画_判定文字列1_通常位置指定の場合();\r
-                                       this.t進行描画_コンボ();\r
-                               }\r
-                               this.t進行描画_判定文字列2_判定ライン上指定の場合();\r
-                               this.t進行描画_Wailing枠();\r
-                               this.t進行描画_チップファイアD();\r
-                               this.t進行描画_チップファイアGB();\r
-                               this.t進行描画_STAGEFAILED();\r
-                               bIsFinishedFadeout = this.t進行描画_フェードイン_アウト();\r
-                               if (bIsFinishedPlaying && (base.eフェーズID == CStage.Eフェーズ.共通_通常状態))\r
-                               {\r
-                                       if (CDTXMania.Instance.DTXVmode.Enabled)\r
-                                       {\r
-                                               if (CDTXMania.Instance.Timer.b停止していない)\r
-                                               {\r
-                                                       this.actPanel.Stop();                           // PANEL表示停止\r
-                                                       CDTXMania.Instance.Timer.t一時停止();               // 再生時刻カウンタ停止\r
-                                               }\r
-                                               Thread.Sleep(5);\r
-                                               // DTXCからの次のメッセージを待ち続ける\r
-                                       }\r
-                                       else\r
-                                       {\r
-                                               this.eフェードアウト完了時の戻り値 = E演奏画面の戻り値.ステージクリア;\r
-                                               base.eフェーズID = CStage.Eフェーズ.演奏_STAGE_CLEAR_フェードアウト;\r
-                                               this.actFOClear.tフェードアウト開始();\r
-                                       }\r
-                               }\r
-                               if (this.eフェードアウト完了時の戻り値 == E演奏画面の戻り値.再読込_再演奏)\r
-                               {\r
-                                       bIsFinishedFadeout = true;\r
-                               }\r
-                               if (bIsFinishedFadeout)\r
-                               {\r
-                                       //Debug.WriteLine( "Total On進行描画=" + sw.ElapsedMilliseconds + "ms" );\r
-                                       return (int)this.eフェードアウト完了時の戻り値;\r
-                               }\r
-\r
-                               ManageMixerQueue();\r
-\r
-                               // キー入力\r
-\r
-                               if (CDTXMania.Instance.act現在入力を占有中のプラグイン == null)\r
-                                       this.tキー入力();\r
-                       }\r
-                       //base.sw.Stop();\r
-                       return 0;\r
-               }\r
-\r
                // その他\r
-\r
                #region [ private ]\r
                //-----------------\r
 \r
-               private CAct演奏DrumsチップファイアD actChipFireD;\r
-               private CAct演奏Drumsグラフ actGraph;   // #24074 2011.01.23 add ikanick\r
-               private CAct演奏Drumsパッド actPad;\r
-               private bool bフィルイン中;\r
                private readonly Eパッド[] eチャンネルtoパッド = new Eパッド[]\r
                {\r
                        Eパッド.HH, Eパッド.SD, Eパッド.BD, Eパッド.HT,\r
@@ -299,257 +136,15 @@ namespace DTXMania
                                }\r
                };\r
                private CTexture txヒットバーGB;\r
-               private CTexture txレーンフレームGB;\r
                //-----------------\r
-\r
-               private bool bフィルイン区間の最後のChipである(CChip pChip)\r
-               {\r
-                       if (pChip == null)\r
-                       {\r
-                               return false;\r
-                       }\r
-                       int num = pChip.n発声位置;\r
-                       for (int i = listChip.IndexOf(pChip) + 1; i < listChip.Count; i++)\r
-                       {\r
-                               pChip = listChip[i];\r
-                               if ((pChip[Ech定義.FillIn]) && (pChip.n整数値 == 2))\r
-                               {\r
-                                       return true;\r
-                               }\r
-                               if ((pChip.bDrums可視チップ_LP_LBD含まない) && (pChip.n発声位置 - num) > 0x18)\r
-                               {\r
-                                       return false;\r
-                               }\r
-                       }\r
-                       return true;\r
-               }\r
-\r
-               protected override E判定 tチップのヒット処理(long nHitTime, CChip pChip, bool bCorrectLane)\r
-               {\r
-                       E判定 eJudgeResult = tチップのヒット処理(nHitTime, pChip, E楽器パート.DRUMS, bCorrectLane);\r
-                       // #24074 2011.01.23 add ikanick\r
-                       this.actGraph.dbグラフ値現在_渡 = CScoreIni.t演奏型スキルを計算して返す(CDTXMania.Instance.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, E楽器パート.DRUMS, bIsAutoPlay);\r
-                       // #35411 2015.09.07 add chnmr0\r
-                       if (CDTXMania.Instance.DTX.listTargetGhsotLag.Drums != null &&\r
-                                                               CDTXMania.Instance.ConfigIni.eTargetGhost.Drums == ETargetGhostData.ONLINE &&\r
-                               CDTXMania.Instance.DTX.n可視チップ数.Drums > 0)\r
-                       {\r
-                               // Online Stats の計算式\r
-                               this.actGraph.dbグラフ値現在_渡 = 100 *\r
-                                                               (this.nヒット数_Auto含まない.Drums.Perfect * 17 +\r
-                                                                this.nヒット数_Auto含まない.Drums.Great * 7 +\r
-                                                                this.actCombo.n現在のコンボ数.Drums最高値 * 3) / (20.0 * CDTXMania.Instance.DTX.n可視チップ数.Drums);\r
-                       }\r
-                       return eJudgeResult;\r
-               }\r
-\r
-               protected override void tチップのヒット処理_BadならびにTight時のMiss(E楽器パート part)\r
-               {\r
-                       this.tチップのヒット処理_BadならびにTight時のMiss(part, 0, E楽器パート.DRUMS);\r
-               }\r
-               protected override void tチップのヒット処理_BadならびにTight時のMiss(E楽器パート part, int nLane)\r
-               {\r
-                       this.tチップのヒット処理_BadならびにTight時のMiss(part, nLane, E楽器パート.DRUMS);\r
-               }\r
-\r
-               private bool tドラムヒット処理(long nHitTime, Eパッド type, CChip pChip, int n強弱度合い0to127)\r
-               {\r
-                       if (pChip == null)\r
-                       {\r
-                               return false;\r
-                       }\r
-                       // Ech定義 channel = pChip.eチャンネル番号;\r
-                       int index = -1;\r
-                       if (pChip.bDrums可視チップ_LP_LBD含まない)\r
-                       {\r
-                               index = pChip.nDrumsIndex;\r
-                       }\r
-                       else if (pChip.bDrums不可視チップ_LP_LBD含まない)\r
-                       {\r
-                               index = pChip.nDrumsIndexHidden;\r
-                       }\r
-                       int nLane = CStage演奏画面共通.nチャンネル0Atoレーン07[index];\r
-                       int nPad = this.nチャンネル0Atoパッド08[index];\r
-                       bool bPChipIsAutoPlay = bIsAutoPlay[nLane];\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
-                       this.actLaneFlushD.Start((Eレーン)nLane, ((float)n強弱度合い0to127) / 127f);\r
-                       this.actPad.Hit(nPad);\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
-                               // #31602 2013.6.24 yyagi 判定ラインの表示位置をずらしたら、チップのヒットエフェクトの表示もずらすために、nJudgeLine..を追加\r
-                               this.actChipFireD.Start((Eレーン)nLane, flag, flag2, flag2, 演奏判定ライン座標.nJudgeLinePosY_delta.Drums);\r
-                       }\r
-                       if (CDTXMania.Instance.ConfigIni.bドラム打音を発声する)\r
-                       {\r
-                               CChip rChip = null;\r
-                               bool bIsChipsoundPriorToPad = true;\r
-                               if (((type == Eパッド.HH) || (type == Eパッド.HHO)) || (type == Eパッド.LC))\r
-                               {\r
-                                       bIsChipsoundPriorToPad = CDTXMania.Instance.ConfigIni.eHitSoundPriorityHH == E打ち分け時の再生の優先順位.ChipがPadより優先;\r
-                               }\r
-                               else if ((type == Eパッド.LT) || (type == Eパッド.FT))\r
-                               {\r
-                                       bIsChipsoundPriorToPad = CDTXMania.Instance.ConfigIni.eHitSoundPriorityFT == E打ち分け時の再生の優先順位.ChipがPadより優先;\r
-                               }\r
-                               else if ((type == Eパッド.CY) || (type == Eパッド.RD))\r
-                               {\r
-                                       bIsChipsoundPriorToPad = CDTXMania.Instance.ConfigIni.eHitSoundPriorityCY == E打ち分け時の再生の優先順位.ChipがPadより優先;\r
-                               }\r
-                               if (bIsChipsoundPriorToPad)\r
-                               {\r
-                                       rChip = pChip;\r
-                               }\r
-                               else\r
-                               {\r
-                                       Eパッド hH = type;\r
-                                       if (!CDTXMania.Instance.DTX.bチップがある.HHOpen && (type == Eパッド.HHO))\r
-                                       {\r
-                                               hH = Eパッド.HH;\r
-                                       }\r
-                                       if (!CDTXMania.Instance.DTX.bチップがある.Ride && (type == Eパッド.RD))\r
-                                       {\r
-                                               hH = Eパッド.CY;\r
-                                       }\r
-                                       if (!CDTXMania.Instance.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, CSound管理.rc演奏用タイマ.nシステム時刻, E楽器パート.DRUMS, CDTXMania.Instance.ConfigIni.n手動再生音量, CDTXMania.Instance.ConfigIni.b演奏音を強調する.Drums);\r
-                       }\r
-                       return true;\r
-               }\r
-\r
-               protected override void ドラムスクロール速度アップ()\r
-               {\r
-                       float f = (float)this.演奏判定ライン座標.nJudgeLinePosY_delta.Drums / (CDTXMania.Instance.ConfigIni.n譜面スクロール速度.Drums + 1);\r
-                       Debug.WriteLine("scr=" + CDTXMania.Instance.ConfigIni.n譜面スクロール速度.Drums + ", f1=" + f);\r
-                       CDTXMania.Instance.ConfigIni.n譜面スクロール速度.Drums = Math.Min(CDTXMania.Instance.ConfigIni.n譜面スクロール速度.Drums + 1, 1999);\r
-                       f *= (CDTXMania.Instance.ConfigIni.n譜面スクロール速度.Drums + 1);\r
-                       Debug.WriteLine("scr=" + CDTXMania.Instance.ConfigIni.n譜面スクロール速度.Drums + ", f2=" + f);\r
-                       this.演奏判定ライン座標.nJudgeLinePosY_delta.Drums = (int)(f + 0.5);\r
-                       CDTXMania.Instance.ConfigIni.nJudgeLinePosOffset.Drums = (int)(f + 0.5);\r
-               }\r
-               protected override void ドラムスクロール速度ダウン()\r
-               {\r
-                       float f = (float)this.演奏判定ライン座標.nJudgeLinePosY_delta.Drums / (CDTXMania.Instance.ConfigIni.n譜面スクロール速度.Drums + 1);\r
-                       CDTXMania.Instance.ConfigIni.n譜面スクロール速度.Drums = Math.Max(CDTXMania.Instance.ConfigIni.n譜面スクロール速度.Drums - 1, 0);\r
-                       f *= (CDTXMania.Instance.ConfigIni.n譜面スクロール速度.Drums + 1);\r
-                       this.演奏判定ライン座標.nJudgeLinePosY_delta.Drums = (int)(f + 0.5);\r
-                       CDTXMania.Instance.ConfigIni.nJudgeLinePosOffset.Drums = (int)(f + 0.5);\r
-               }\r
-\r
-\r
-               protected override void t進行描画_AVI()\r
-               {\r
-                       if (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left)\r
-                       {\r
-                               base.t進行描画_AVI(1153, 128);\r
-                       }\r
-                       else\r
-                       {\r
-                               base.t進行描画_AVI(619 + 682, 128);\r
-                       }\r
-               }\r
-               protected override void t進行描画_BGA()\r
-               {\r
-                       if (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left)\r
-                       {\r
-                               base.t進行描画_BGA(1153, 128);\r
-                       }\r
-                       else\r
-                       {\r
-                               base.t進行描画_BGA(619 + 682, 128);\r
-                       }\r
-               }\r
-               protected override void t進行描画_DANGER()\r
-               {\r
-                       //                      this.actDANGER.t進行描画( this.actGauge.db現在のゲージ値.Drums < 0.3, false, false );\r
-                       this.actDANGER.t進行描画(this.actGauge.IsDanger(E楽器パート.DRUMS), false, false);\r
-               }\r
-\r
-               protected override void t進行描画_Wailing枠()\r
-               {\r
-                       int yG = this.演奏判定ライン座標.n判定ラインY座標(E楽器パート.GUITAR, false, bReverse[(int)E楽器パート.GUITAR], true, true);\r
-                       int yB = this.演奏判定ライン座標.n判定ラインY座標(E楽器パート.BASS, false, bReverse[(int)E楽器パート.BASS], true, true);\r
-                       base.t進行描画_Wailing枠(\r
-                               (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? 1761 : 1690,\r
-                               (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? 1434 : 440,\r
-                               yG,\r
-                               yB\r
-                               //      CDTXMania.Instance.ConfigIni.bReverse.Guitar ? ( 400 - this.txWailing枠.sz画像サイズ.Height ) : 69,       // 350:69\r
-                               //      CDTXMania.Instance.ConfigIni.bReverse.Bass ? ( 400 - this.txWailing枠.sz画像サイズ.Height ) : 69          // 350:69\r
-                       );\r
-               }\r
-               private void t進行描画_ギターベースフレーム()\r
-               {\r
-                       if (((CDTXMania.Instance.ConfigIni.eDark != Eダークモード.HALF) && (CDTXMania.Instance.ConfigIni.eDark != Eダークモード.FULL)) && CDTXMania.Instance.ConfigIni.bGuitar有効)\r
-                       {\r
-                               if (CDTXMania.Instance.DTX.bチップがある.Guitar)\r
-                               {\r
-                                       int x = (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? 1521 : 1450;\r
-                                       for (int i = 0; i < 355; i += 0x80)\r
-                                       {\r
-                                               Rectangle rc = new Rectangle(0, 0, 327, 288);\r
-                                               if ((i + 0x80) > 355)\r
-                                               {\r
-                                                       rc.Height -= (int)((i + 0x80 - 355) * Scale.Y);\r
-                                               }\r
-                                               if (this.txレーンフレームGB != null)\r
-                                               {\r
-                                                       this.txレーンフレームGB.t2D描画(\r
-                                                               CDTXMania.Instance.Device,\r
-                                                               x,\r
-                                                               (57 + i) * Scale.Y,\r
-                                                               rc\r
-                                                       );\r
-                                               }\r
-                                       }\r
-                               }\r
-                               if (CDTXMania.Instance.DTX.bチップがある.Bass)\r
-                               {\r
-                                       int x = (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? 1194 : 200;\r
-                                       for (int i = 0; i < 355; i += 0x80)\r
-                                       {\r
-                                               Rectangle rc = new Rectangle(0, 0, 327, 288);\r
-                                               if ((i + 0x80) > 355)\r
-                                               {\r
-                                                       rc.Height -= (int)((i + 0x80 - 355) * Scale.Y);\r
-                                               }\r
-                                               if (this.txレーンフレームGB != null)\r
-                                               {\r
-                                                       this.txレーンフレームGB.t2D描画(CDTXMania.Instance.Device,\r
-                                                               x,\r
-                                                               (57 + i) * Scale.Y,\r
-                                                               rc\r
-                                                       );\r
-                                               }\r
-                                       }\r
-                               }\r
-                       }\r
-               }\r
-               private void t進行描画_ギターベース判定ライン()          // yyagi: ギタレボモードとは座標が違うだけですが、まとめづらかったのでそのまま放置してます。\r
+               protected override void t進行描画_ギターベース判定ライン()               // yyagi: ギタレボモードとは座標が違うだけですが、まとめづらかったのでそのまま放置してます。\r
                {\r
                        if ((CDTXMania.Instance.ConfigIni.eDark != Eダークモード.FULL) && CDTXMania.Instance.ConfigIni.bGuitar有効)\r
                        {\r
                                if (CDTXMania.Instance.DTX.bチップがある.Guitar)\r
                                {\r
                                        int x = (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? 1527 : 1456;\r
-                                       int y = this.演奏判定ライン座標.n判定ラインY座標(E楽器パート.GUITAR, false, bReverse[(int)E楽器パート.GUITAR], false, true) - (int)(3 * Scale.Y);\r
+                                       int y = this.演奏判定ライン座標.n判定ラインY座標(E楽器パート.GUITAR, bReverse[(int)E楽器パート.GUITAR], false, true) - (int)(3 * Scale.Y);\r
                                        // #31602 2013.6.23 yyagi 描画遅延対策として、判定ラインの表示位置をオフセット調整できるようにする\r
                                        Rectangle rc = new Rectangle(0, 0, 30, 36);\r
                                        if (this.txヒットバーGB != null)\r
@@ -571,7 +166,7 @@ namespace DTXMania
                                if (CDTXMania.Instance.DTX.bチップがある.Bass)\r
                                {\r
                                        int x = (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? 1200 : 206;\r
-                                       int y = this.演奏判定ライン座標.n判定ラインY座標(E楽器パート.BASS, false, bReverse[(int)E楽器パート.BASS], false, true) - (int)(3 * Scale.Y);\r
+                                       int y = this.演奏判定ライン座標.n判定ラインY座標(E楽器パート.BASS, bReverse[(int)E楽器パート.BASS], false, true) - (int)(3 * Scale.Y);\r
                                        // #31602 2013.6.23 yyagi 描画遅延対策として、判定ラインの表示位置をオフセット調整できるようにする\r
                                        Rectangle rc = new Rectangle(0, 0, 30, 36);\r
                                        if (this.txヒットバーGB != null)\r
@@ -593,1321 +188,6 @@ namespace DTXMania
                        }\r
                }\r
 \r
-               private void t進行描画_グラフ()\r
-               {\r
-                       if (!CDTXMania.Instance.ConfigIni.bストイックモード && !CDTXMania.Instance.ConfigIni.bドラムが全部オートプレイである && CDTXMania.Instance.ConfigIni.bGraph.Drums)\r
-                       {\r
-                               this.actGraph.On進行描画();\r
-                       }\r
-               }\r
-\r
-               private void t進行描画_チップファイアD()\r
-               {\r
-                       this.actChipFireD.On進行描画();\r
-               }\r
-\r
-               private void t進行描画_ドラムパッド()\r
-               {\r
-                       if (CDTXMania.Instance.ConfigIni.eDark != Eダークモード.FULL)\r
-                       {\r
-                               this.actPad.On進行描画();\r
-                       }\r
-               }\r
-               protected override void t進行描画_パネル文字列()\r
-               {\r
-                       Point[] pd = new Point[] { new Point(336, 427 + 1), new Point(434, 427 + 1) };\r
-                       Point p = pd[(int)CDTXMania.Instance.ConfigIni.eドラムレーン表示位置];\r
-                       base.t進行描画_パネル文字列(p.X, p.Y);\r
-               }\r
-\r
-               protected override void t進行描画_演奏情報()\r
-               {\r
-                       Point[] pd = new Point[] { new Point(338, 57), new Point(450, 57) };\r
-                       Point p = pd[(int)CDTXMania.Instance.ConfigIni.eドラムレーン表示位置];\r
-                       base.t進行描画_演奏情報(p.X, p.Y);\r
-               }\r
-\r
-               protected override void t入力処理_ドラム()\r
-               {\r
-                       for (int nPad = 0; nPad < (int)Eパッド.MAX; nPad++)          // #27029 2012.1.4 from: <10 to <=10; Eパッドの要素が1つ(HP)増えたため。\r
-                       //                2012.1.5 yyagi: (int)Eパッド.MAX に変更。Eパッドの要素数への依存を無くすため。\r
-                       {\r
-                               List<STInputEvent> listInputEvent = CDTXMania.Instance.Pad.GetEvents(E楽器パート.DRUMS, (Eパッド)nPad);\r
-\r
-                               if ((listInputEvent == null) || (listInputEvent.Count == 0))\r
-                                       continue;\r
-\r
-                               this.t入力メソッド記憶(E楽器パート.DRUMS);\r
-\r
-                               #region [ 打ち分けグループ調整 ]\r
-                               //-----------------------------\r
-                               EHHGroup eHHGroup = CDTXMania.Instance.ConfigIni.eHHGroup;\r
-                               EFTGroup eFTGroup = CDTXMania.Instance.ConfigIni.eFTGroup;\r
-                               ECYGroup eCYGroup = CDTXMania.Instance.ConfigIni.eCYGroup;\r
-\r
-                               if (!CDTXMania.Instance.DTX.bチップがある.Ride && (eCYGroup == ECYGroup.打ち分ける))\r
-                               {\r
-                                       eCYGroup = ECYGroup.共通;\r
-                               }\r
-                               if (!CDTXMania.Instance.DTX.bチップがある.HHOpen && (eHHGroup == EHHGroup.全部打ち分ける))\r
-                               {\r
-                                       eHHGroup = EHHGroup.左シンバルのみ打ち分ける;\r
-                               }\r
-                               if (!CDTXMania.Instance.DTX.bチップがある.HHOpen && (eHHGroup == EHHGroup.ハイハットのみ打ち分ける))\r
-                               {\r
-                                       eHHGroup = EHHGroup.全部共通;\r
-                               }\r
-                               if (!CDTXMania.Instance.DTX.bチップがある.LeftCymbal && (eHHGroup == EHHGroup.全部打ち分ける))\r
-                               {\r
-                                       eHHGroup = EHHGroup.ハイハットのみ打ち分ける;\r
-                               }\r
-                               if (!CDTXMania.Instance.DTX.bチップがある.LeftCymbal && (eHHGroup == EHHGroup.左シンバルのみ打ち分ける))\r
-                               {\r
-                                       eHHGroup = EHHGroup.全部共通;\r
-                               }\r
-                               //-----------------------------\r
-                               #endregion\r
-\r
-                               foreach (STInputEvent inputEvent in listInputEvent)\r
-                               {\r
-                                       if (!inputEvent.b押された)\r
-                                               continue;\r
-\r
-                                       long nTime = inputEvent.nTimeStamp - CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻;\r
-                                       int nPad09 = (nPad == (int)Eパッド.HP) ? (int)Eパッド.BD : nPad;          // #27029 2012.1.5 yyagi\r
-                                       int nInputAdjustTime = bIsAutoPlay[CStage演奏画面共通.nチャンネル0Atoレーン07[(int)nPad09]] ? 0 : nInputAdjustTimeMs.Drums;\r
-\r
-                                       bool bHitted = false;\r
-\r
-                                       #region [ (A) ヒットしていればヒット処理して次の inputEvent へ ]\r
-                                       //-----------------------------\r
-                                       switch (((Eパッド)nPad))\r
-                                       {\r
-                                               case Eパッド.HH:\r
-                                                       #region [ HHとLC(groupingしている場合) のヒット処理 ]\r
-                                                       //-----------------------------\r
-                                                       {\r
-                                                               if (inputEvent.nVelocity <= CDTXMania.Instance.ConfigIni.nVelocityMin.HH)\r
-                                                                       continue;       // 電子ドラムによる意図的なクロストークを無効にする\r
-\r
-                                                               CChip chipHC = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.HiHatClose, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);  // HiHat Close\r
-                                                               CChip chipHO = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.HiHatOpen, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);   // HiHat Open\r
-                                                               CChip chipLC = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.LeftCymbal, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);  // LC\r
-                                                               E判定 e判定HC = (chipHC != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipHC, nInputAdjustTime) : E判定.Miss;\r
-                                                               E判定 e判定HO = (chipHO != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipHO, nInputAdjustTime) : E判定.Miss;\r
-                                                               E判定 e判定LC = (chipLC != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipLC, nInputAdjustTime) : E判定.Miss;\r
-                                                               switch (eHHGroup)\r
-                                                               {\r
-                                                                       case EHHGroup.ハイハットのみ打ち分ける:\r
-                                                                               #region [ HCとLCのヒット処理 ]\r
-                                                                               //-----------------------------\r
-                                                                               if ((e判定HC != E判定.Miss) && (e判定LC != E判定.Miss))\r
-                                                                               {\r
-                                                                                       if (chipHC.n発声位置 < chipLC.n発声位置)\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.HH, chipHC, inputEvent.nVelocity);\r
-                                                                                       }\r
-                                                                                       else if (chipHC.n発声位置 > chipLC.n発声位置)\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.HH, chipLC, inputEvent.nVelocity);\r
-                                                                                       }\r
-                                                                                       else\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.HH, chipHC, inputEvent.nVelocity);\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.HH, chipLC, inputEvent.nVelocity);\r
-                                                                                       }\r
-                                                                                       bHitted = true;\r
-                                                                               }\r
-                                                                               else if (e判定HC != E判定.Miss)\r
-                                                                               {\r
-                                                                                       this.tドラムヒット処理(nTime, Eパッド.HH, chipHC, inputEvent.nVelocity);\r
-                                                                                       bHitted = true;\r
-                                                                               }\r
-                                                                               else if (e判定LC != E判定.Miss)\r
-                                                                               {\r
-                                                                                       this.tドラムヒット処理(nTime, Eパッド.HH, chipLC, inputEvent.nVelocity);\r
-                                                                                       bHitted = true;\r
-                                                                               }\r
-                                                                               if (!bHitted)\r
-                                                                                       break;\r
-                                                                               continue;\r
-                                                                       //-----------------------------\r
-                                                                               #endregion\r
-\r
-                                                                       case EHHGroup.左シンバルのみ打ち分ける:\r
-                                                                               #region [ HCとHOのヒット処理 ]\r
-                                                                               //-----------------------------\r
-                                                                               if ((e判定HC != E判定.Miss) && (e判定HO != E判定.Miss))\r
-                                                                               {\r
-                                                                                       if (chipHC.n発声位置 < chipHO.n発声位置)\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.HH, chipHC, inputEvent.nVelocity);\r
-                                                                                       }\r
-                                                                                       else if (chipHC.n発声位置 > chipHO.n発声位置)\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.HH, chipHO, inputEvent.nVelocity);\r
-                                                                                       }\r
-                                                                                       else\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.HH, chipHC, inputEvent.nVelocity);\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.HH, chipHO, inputEvent.nVelocity);\r
-                                                                                       }\r
-                                                                                       bHitted = true;\r
-                                                                               }\r
-                                                                               else if (e判定HC != E判定.Miss)\r
-                                                                               {\r
-                                                                                       this.tドラムヒット処理(nTime, Eパッド.HH, chipHC, inputEvent.nVelocity);\r
-                                                                                       bHitted = true;\r
-                                                                               }\r
-                                                                               else if (e判定HO != E判定.Miss)\r
-                                                                               {\r
-                                                                                       this.tドラムヒット処理(nTime, Eパッド.HH, chipHO, inputEvent.nVelocity);\r
-                                                                                       bHitted = true;\r
-                                                                               }\r
-                                                                               if (!bHitted)\r
-                                                                                       break;\r
-                                                                               continue;\r
-                                                                       //-----------------------------\r
-                                                                               #endregion\r
-\r
-                                                                       case EHHGroup.全部共通:\r
-                                                                               #region [ HC,HO,LCのヒット処理 ]\r
-                                                                               //-----------------------------\r
-                                                                               if (((e判定HC != E判定.Miss) && (e判定HO != E判定.Miss)) && (e判定LC != E判定.Miss))\r
-                                                                               {\r
-                                                                                       CChip chip;\r
-                                                                                       CChip[] chipArray = new CChip[] { chipHC, chipHO, chipLC };\r
-                                                                                       // ここから、chipArrayをn発生位置の小さい順に並び替える\r
-                                                                                       if (chipArray[1].n発声位置 > chipArray[2].n発声位置)\r
-                                                                                       {\r
-                                                                                               chip = chipArray[1];\r
-                                                                                               chipArray[1] = chipArray[2];\r
-                                                                                               chipArray[2] = chip;\r
-                                                                                       }\r
-                                                                                       if (chipArray[0].n発声位置 > chipArray[1].n発声位置)\r
-                                                                                       {\r
-                                                                                               chip = chipArray[0];\r
-                                                                                               chipArray[0] = chipArray[1];\r
-                                                                                               chipArray[1] = chip;\r
-                                                                                       }\r
-                                                                                       if (chipArray[1].n発声位置 > chipArray[2].n発声位置)\r
-                                                                                       {\r
-                                                                                               chip = chipArray[1];\r
-                                                                                               chipArray[1] = chipArray[2];\r
-                                                                                               chipArray[2] = chip;\r
-                                                                                       }\r
-                                                                                       this.tドラムヒット処理(nTime, Eパッド.HH, chipArray[0], inputEvent.nVelocity);\r
-                                                                                       if (chipArray[0].n発声位置 == chipArray[1].n発声位置)\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.HH, chipArray[1], inputEvent.nVelocity);\r
-                                                                                       }\r
-                                                                                       if (chipArray[0].n発声位置 == chipArray[2].n発声位置)\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.HH, chipArray[2], inputEvent.nVelocity);\r
-                                                                                       }\r
-                                                                                       bHitted = true;\r
-                                                                               }\r
-                                                                               else if ((e判定HC != E判定.Miss) && (e判定HO != E判定.Miss))\r
-                                                                               {\r
-                                                                                       if (chipHC.n発声位置 < chipHO.n発声位置)\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.HH, chipHC, inputEvent.nVelocity);\r
-                                                                                       }\r
-                                                                                       else if (chipHC.n発声位置 > chipHO.n発声位置)\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.HH, chipHO, inputEvent.nVelocity);\r
-                                                                                       }\r
-                                                                                       else\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.HH, chipHC, inputEvent.nVelocity);\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.HH, chipHO, inputEvent.nVelocity);\r
-                                                                                       }\r
-                                                                                       bHitted = true;\r
-                                                                               }\r
-                                                                               else if ((e判定HC != E判定.Miss) && (e判定LC != E判定.Miss))\r
-                                                                               {\r
-                                                                                       if (chipHC.n発声位置 < chipLC.n発声位置)\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.HH, chipHC, inputEvent.nVelocity);\r
-                                                                                       }\r
-                                                                                       else if (chipHC.n発声位置 > chipLC.n発声位置)\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.HH, chipLC, inputEvent.nVelocity);\r
-                                                                                       }\r
-                                                                                       else\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.HH, chipHC, inputEvent.nVelocity);\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.HH, chipLC, inputEvent.nVelocity);\r
-                                                                                       }\r
-                                                                                       bHitted = true;\r
-                                                                               }\r
-                                                                               else if ((e判定HO != E判定.Miss) && (e判定LC != E判定.Miss))\r
-                                                                               {\r
-                                                                                       if (chipHO.n発声位置 < chipLC.n発声位置)\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.HH, chipHO, inputEvent.nVelocity);\r
-                                                                                       }\r
-                                                                                       else if (chipHO.n発声位置 > chipLC.n発声位置)\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.HH, chipLC, inputEvent.nVelocity);\r
-                                                                                       }\r
-                                                                                       else\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.HH, chipHO, inputEvent.nVelocity);\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.HH, chipLC, inputEvent.nVelocity);\r
-                                                                                       }\r
-                                                                                       bHitted = true;\r
-                                                                               }\r
-                                                                               else if (e判定HC != E判定.Miss)\r
-                                                                               {\r
-                                                                                       this.tドラムヒット処理(nTime, Eパッド.HH, chipHC, inputEvent.nVelocity);\r
-                                                                                       bHitted = true;\r
-                                                                               }\r
-                                                                               else if (e判定HO != E判定.Miss)\r
-                                                                               {\r
-                                                                                       this.tドラムヒット処理(nTime, Eパッド.HH, chipHO, inputEvent.nVelocity);\r
-                                                                                       bHitted = true;\r
-                                                                               }\r
-                                                                               else if (e判定LC != E判定.Miss)\r
-                                                                               {\r
-                                                                                       this.tドラムヒット処理(nTime, Eパッド.HH, chipLC, inputEvent.nVelocity);\r
-                                                                                       bHitted = true;\r
-                                                                               }\r
-                                                                               if (!bHitted)\r
-                                                                                       break;\r
-                                                                               continue;\r
-                                                                       //-----------------------------\r
-                                                                               #endregion\r
-\r
-                                                                       default:\r
-                                                                               #region [ 全部打ち分け時のヒット処理 ]\r
-                                                                               //-----------------------------\r
-                                                                               if (e判定HC != E判定.Miss)\r
-                                                                               {\r
-                                                                                       this.tドラムヒット処理(nTime, Eパッド.HH, chipHC, inputEvent.nVelocity);\r
-                                                                                       bHitted = true;\r
-                                                                               }\r
-                                                                               if (!bHitted)\r
-                                                                                       break;\r
-                                                                               continue;\r
-                                                                       //-----------------------------\r
-                                                                               #endregion\r
-                                                               }\r
-                                                               if (!bHitted)\r
-                                                                       break;\r
-                                                               continue;\r
-                                                       }\r
-                                               //-----------------------------\r
-                                                       #endregion\r
-\r
-                                               case Eパッド.SD:\r
-                                                       #region [ SDのヒット処理 ]\r
-                                                       //-----------------------------\r
-                                                       if (inputEvent.nVelocity <= CDTXMania.Instance.ConfigIni.nVelocityMin.SD)       // #23857 2010.12.12 yyagi: to support VelocityMin\r
-                                                               continue;       // 電子ドラムによる意図的なクロストークを無効にする\r
-                                                       if (!this.tドラムヒット処理(nTime, Eパッド.SD, this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.Snare, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1), inputEvent.nVelocity))\r
-                                                               break;\r
-                                                       continue;\r
-                                               //-----------------------------\r
-                                                       #endregion\r
-\r
-                                               case Eパッド.BD:\r
-                                                       #region [ BDのヒット処理 ]\r
-                                                       //-----------------------------\r
-                                                       if (inputEvent.nVelocity <= CDTXMania.Instance.ConfigIni.nVelocityMin.BD)       // #23857 2010.12.12 yyagi: to support VelocityMin\r
-                                                               continue;       // 電子ドラムによる意図的なクロストークを無効にする\r
-                                                       if (!this.tドラムヒット処理(nTime, Eパッド.BD, this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.BassDrum, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1), inputEvent.nVelocity))\r
-                                                               break;\r
-                                                       continue;\r
-                                               //-----------------------------\r
-                                                       #endregion\r
-\r
-                                               case Eパッド.HT:\r
-                                                       #region [ HTのヒット処理 ]\r
-                                                       //-----------------------------\r
-                                                       if (inputEvent.nVelocity <= CDTXMania.Instance.ConfigIni.nVelocityMin.HT)       // #23857 2010.12.12 yyagi: to support VelocityMin\r
-                                                               continue;       // 電子ドラムによる意図的なクロストークを無効にする\r
-                                                       if (this.tドラムヒット処理(nTime, Eパッド.HT, this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.HighTom, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1), inputEvent.nVelocity))\r
-                                                               continue;\r
-                                                       break;\r
-                                               //-----------------------------\r
-                                                       #endregion\r
-\r
-                                               case Eパッド.LT:\r
-                                                       #region [ LTとFT(groupingしている場合)のヒット処理 ]\r
-                                                       //-----------------------------\r
-                                                       {\r
-                                                               if (inputEvent.nVelocity <= CDTXMania.Instance.ConfigIni.nVelocityMin.LT)       // #23857 2010.12.12 yyagi: to support VelocityMin\r
-                                                                       continue;       // 電子ドラムによる意図的なクロストークを無効にする\r
-                                                               CChip chipLT = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.LowTom, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);\r
-                                                               CChip chipFT = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.FloorTom, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);\r
-                                                               E判定 e判定LT = (chipLT != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipLT, nInputAdjustTime) : E判定.Miss;\r
-                                                               E判定 e判定FT = (chipFT != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipFT, nInputAdjustTime) : E判定.Miss;\r
-                                                               switch (eFTGroup)\r
-                                                               {\r
-                                                                       case EFTGroup.打ち分ける:\r
-                                                                               #region [ LTのヒット処理 ]\r
-                                                                               //-----------------------------\r
-                                                                               if (e判定LT != E判定.Miss)\r
-                                                                               {\r
-                                                                                       this.tドラムヒット処理(nTime, Eパッド.LT, chipLT, inputEvent.nVelocity);\r
-                                                                                       bHitted = true;\r
-                                                                               }\r
-                                                                               break;\r
-                                                                       //-----------------------------\r
-                                                                               #endregion\r
-\r
-                                                                       case EFTGroup.共通:\r
-                                                                               #region [ LTとFTのヒット処理 ]\r
-                                                                               //-----------------------------\r
-                                                                               if ((e判定LT != E判定.Miss) && (e判定FT != E判定.Miss))\r
-                                                                               {\r
-                                                                                       if (chipLT.n発声位置 < chipFT.n発声位置)\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.LT, chipLT, inputEvent.nVelocity);\r
-                                                                                       }\r
-                                                                                       else if (chipLT.n発声位置 > chipFT.n発声位置)\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.LT, chipFT, inputEvent.nVelocity);\r
-                                                                                       }\r
-                                                                                       else\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.LT, chipLT, inputEvent.nVelocity);\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.LT, chipFT, inputEvent.nVelocity);\r
-                                                                                       }\r
-                                                                                       bHitted = true;\r
-                                                                               }\r
-                                                                               else if (e判定LT != E判定.Miss)\r
-                                                                               {\r
-                                                                                       this.tドラムヒット処理(nTime, Eパッド.LT, chipLT, inputEvent.nVelocity);\r
-                                                                                       bHitted = true;\r
-                                                                               }\r
-                                                                               else if (e判定FT != E判定.Miss)\r
-                                                                               {\r
-                                                                                       this.tドラムヒット処理(nTime, Eパッド.LT, chipFT, inputEvent.nVelocity);\r
-                                                                                       bHitted = true;\r
-                                                                               }\r
-                                                                               break;\r
-                                                                       //-----------------------------\r
-                                                                               #endregion\r
-                                                               }\r
-                                                               if (!bHitted)\r
-                                                                       break;\r
-                                                               continue;\r
-                                                       }\r
-                                               //-----------------------------\r
-                                                       #endregion\r
-\r
-                                               case Eパッド.FT:\r
-                                                       #region [ FTとLT(groupingしている場合)のヒット処理 ]\r
-                                                       //-----------------------------\r
-                                                       {\r
-                                                               if (inputEvent.nVelocity <= CDTXMania.Instance.ConfigIni.nVelocityMin.FT)       // #23857 2010.12.12 yyagi: to support VelocityMin\r
-                                                                       continue;       // 電子ドラムによる意図的なクロストークを無効にする\r
-                                                               CChip chipLT = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.LowTom, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);\r
-                                                               CChip chipFT = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.FloorTom, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);\r
-                                                               E判定 e判定LT = (chipLT != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipLT, nInputAdjustTime) : E判定.Miss;\r
-                                                               E判定 e判定FT = (chipFT != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipFT, nInputAdjustTime) : E判定.Miss;\r
-                                                               switch (eFTGroup)\r
-                                                               {\r
-                                                                       case EFTGroup.打ち分ける:\r
-                                                                               #region [ FTのヒット処理 ]\r
-                                                                               //-----------------------------\r
-                                                                               if (e判定FT != E判定.Miss)\r
-                                                                               {\r
-                                                                                       this.tドラムヒット処理(nTime, Eパッド.FT, chipFT, inputEvent.nVelocity);\r
-                                                                                       bHitted = true;\r
-                                                                               }\r
-                                                                               //-----------------------------\r
-                                                                               #endregion\r
-                                                                               break;\r
-\r
-                                                                       case EFTGroup.共通:\r
-                                                                               #region [ FTとLTのヒット処理 ]\r
-                                                                               //-----------------------------\r
-                                                                               if ((e判定LT != E判定.Miss) && (e判定FT != E判定.Miss))\r
-                                                                               {\r
-                                                                                       if (chipLT.n発声位置 < chipFT.n発声位置)\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.FT, chipLT, inputEvent.nVelocity);\r
-                                                                                       }\r
-                                                                                       else if (chipLT.n発声位置 > chipFT.n発声位置)\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.FT, chipFT, inputEvent.nVelocity);\r
-                                                                                       }\r
-                                                                                       else\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.FT, chipLT, inputEvent.nVelocity);\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.FT, chipFT, inputEvent.nVelocity);\r
-                                                                                       }\r
-                                                                                       bHitted = true;\r
-                                                                               }\r
-                                                                               else if (e判定LT != E判定.Miss)\r
-                                                                               {\r
-                                                                                       this.tドラムヒット処理(nTime, Eパッド.FT, chipLT, inputEvent.nVelocity);\r
-                                                                                       bHitted = true;\r
-                                                                               }\r
-                                                                               else if (e判定FT != E判定.Miss)\r
-                                                                               {\r
-                                                                                       this.tドラムヒット処理(nTime, Eパッド.FT, chipFT, inputEvent.nVelocity);\r
-                                                                                       bHitted = true;\r
-                                                                               }\r
-                                                                               //-----------------------------\r
-                                                                               #endregion\r
-                                                                               break;\r
-                                                               }\r
-                                                               if (!bHitted)\r
-                                                                       break;\r
-                                                               continue;\r
-                                                       }\r
-                                               //-----------------------------\r
-                                                       #endregion\r
-\r
-                                               case Eパッド.CY:\r
-                                                       #region [ CY(とLCとRD:groupingしている場合)のヒット処理 ]\r
-                                                       //-----------------------------\r
-                                                       {\r
-                                                               if (inputEvent.nVelocity <= CDTXMania.Instance.ConfigIni.nVelocityMin.CY)       // #23857 2010.12.12 yyagi: to support VelocityMin\r
-                                                                       continue;       // 電子ドラムによる意図的なクロストークを無効にする\r
-                                                               CChip chipCY = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.Cymbal, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);\r
-                                                               CChip chipRD = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.RideCymbal, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);\r
-                                                               CChip chipLC = CDTXMania.Instance.ConfigIni.bシンバルフリー ? this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.LeftCymbal, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1) : null;\r
-                                                               E判定 e判定CY = (chipCY != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipCY, nInputAdjustTime) : E判定.Miss;\r
-                                                               E判定 e判定RD = (chipRD != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipRD, nInputAdjustTime) : E判定.Miss;\r
-                                                               E判定 e判定LC = (chipLC != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipLC, nInputAdjustTime) : E判定.Miss;\r
-                                                               CChip[] chipArray = new CChip[] { chipCY, chipRD, chipLC };\r
-                                                               E判定[] e判定Array = new E判定[] { e判定CY, e判定RD, e判定LC };\r
-                                                               const int NumOfChips = 3;       // chipArray.GetLength(0)\r
-\r
-                                                               //num8 = 0;\r
-                                                               //while( num8 < 2 )\r
-\r
-                                                               // CY/RD/LC群を, n発生位置の小さい順に並べる + nullを大きい方に退かす\r
-                                                               SortChipsByNTime(chipArray, e判定Array, NumOfChips);\r
-                                                               //for ( int i = 0; i < NumOfChips - 1; i++ )\r
-                                                               //{\r
-                                                               //    //num9 = 2;\r
-                                                               //    //while( num9 > num8 )\r
-                                                               //    for ( int j = NumOfChips - 1; j > i; j-- )\r
-                                                               //    {\r
-                                                               //        if ( ( chipArray[ j - 1 ] == null ) || ( ( chipArray[ j ] != null ) && ( chipArray[ j - 1 ].n発声位置 > chipArray[ j ].n発声位置 ) ) )\r
-                                                               //        {\r
-                                                               //            // swap\r
-                                                               //            CDTX.CChip chipTemp = chipArray[ j - 1 ];\r
-                                                               //            chipArray[ j - 1 ] = chipArray[ j ];\r
-                                                               //            chipArray[ j ] = chipTemp;\r
-                                                               //            E判定 e判定Temp = e判定Array[ j - 1 ];\r
-                                                               //            e判定Array[ j - 1 ] = e判定Array[ j ];\r
-                                                               //            e判定Array[ j ] = e判定Temp;\r
-                                                               //        }\r
-                                                               //        //num9--;\r
-                                                               //    }\r
-                                                               //    //num8++;\r
-                                                               //}\r
-                                                               switch (eCYGroup)\r
-                                                               {\r
-                                                                       case ECYGroup.打ち分ける:\r
-                                                                               if (!CDTXMania.Instance.ConfigIni.bシンバルフリー)\r
-                                                                               {\r
-                                                                                       if (e判定CY != E判定.Miss)\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.CY, chipCY, inputEvent.nVelocity);\r
-                                                                                               bHitted = true;\r
-                                                                                       }\r
-                                                                                       if (!bHitted)\r
-                                                                                               break;\r
-                                                                                       continue;\r
-                                                                               }\r
-                                                                               //num10 = 0;\r
-                                                                               //while ( num10 < NumOfChips )\r
-                                                                               for (int i = 0; i < NumOfChips; i++)\r
-                                                                               {\r
-                                                                                       if ((e判定Array[i] != E判定.Miss) && ((chipArray[i] == chipCY) || (chipArray[i] == chipLC)))\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.CY, chipArray[i], inputEvent.nVelocity);\r
-                                                                                               bHitted = true;\r
-                                                                                               break;\r
-                                                                                       }\r
-                                                                                       //num10++;\r
-                                                                               }\r
-                                                                               if (e判定CY != E判定.Miss)\r
-                                                                               {\r
-                                                                                       this.tドラムヒット処理(nTime, Eパッド.CY, chipCY, inputEvent.nVelocity);\r
-                                                                                       bHitted = true;\r
-                                                                               }\r
-                                                                               if (!bHitted)\r
-                                                                                       break;\r
-                                                                               continue;\r
-\r
-                                                                       case ECYGroup.共通:\r
-                                                                               if (!CDTXMania.Instance.ConfigIni.bシンバルフリー)\r
-                                                                               {\r
-                                                                                       //num12 = 0;\r
-                                                                                       //while ( num12 < NumOfChips )\r
-                                                                                       for (int i = 0; i < NumOfChips; i++)\r
-                                                                                       {\r
-                                                                                               if ((e判定Array[i] != E判定.Miss) && ((chipArray[i] == chipCY) || (chipArray[i] == chipRD)))\r
-                                                                                               {\r
-                                                                                                       this.tドラムヒット処理(nTime, Eパッド.CY, chipArray[i], inputEvent.nVelocity);\r
-                                                                                                       bHitted = true;\r
-                                                                                                       break;\r
-                                                                                               }\r
-                                                                                               //num12++;\r
-                                                                                       }\r
-                                                                                       if (!bHitted)\r
-                                                                                               break;\r
-                                                                                       continue;\r
-                                                                               }\r
-                                                                               //num11 = 0;\r
-                                                                               //while ( num11 < NumOfChips )\r
-                                                                               for (int i = 0; i < NumOfChips; i++)\r
-                                                                               {\r
-                                                                                       if (e判定Array[i] != E判定.Miss)\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.CY, chipArray[i], inputEvent.nVelocity);\r
-                                                                                               bHitted = true;\r
-                                                                                               break;\r
-                                                                                       }\r
-                                                                                       //num11++;\r
-                                                                               }\r
-                                                                               if (!bHitted)\r
-                                                                                       break;\r
-                                                                               continue;\r
-                                                               }\r
-                                                               if (!bHitted)\r
-                                                                       break;\r
-                                                               continue;\r
-                                                       }\r
-                                               //-----------------------------\r
-                                                       #endregion\r
-\r
-                                               case Eパッド.HHO:\r
-                                                       #region [ HO(とHCとLC:groupingしている場合)のヒット処理 ]\r
-                                                       //-----------------------------\r
-                                                       {\r
-                                                               if (inputEvent.nVelocity <= CDTXMania.Instance.ConfigIni.nVelocityMin.HH)\r
-                                                                       continue;       // 電子ドラムによる意図的なクロストークを無効にする\r
-\r
-                                                               CChip chipHC = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.HiHatClose, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);\r
-                                                               CChip chipHO = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.HiHatOpen, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);\r
-                                                               CChip chipLC = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.LeftCymbal, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);\r
-                                                               E判定 e判定HC = (chipHC != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipHC, nInputAdjustTime) : E判定.Miss;\r
-                                                               E判定 e判定HO = (chipHO != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipHO, nInputAdjustTime) : E判定.Miss;\r
-                                                               E判定 e判定LC = (chipLC != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipLC, nInputAdjustTime) : E判定.Miss;\r
-                                                               switch (eHHGroup)\r
-                                                               {\r
-                                                                       case EHHGroup.全部打ち分ける:\r
-                                                                               if (e判定HO != E判定.Miss)\r
-                                                                               {\r
-                                                                                       this.tドラムヒット処理(nTime, Eパッド.HHO, chipHO, inputEvent.nVelocity);\r
-                                                                                       bHitted = true;\r
-                                                                               }\r
-                                                                               if (!bHitted)\r
-                                                                                       break;\r
-                                                                               continue;\r
-\r
-                                                                       case EHHGroup.ハイハットのみ打ち分ける:\r
-                                                                               if ((e判定HO != E判定.Miss) && (e判定LC != E判定.Miss))\r
-                                                                               {\r
-                                                                                       if (chipHO.n発声位置 < chipLC.n発声位置)\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.HHO, chipHO, inputEvent.nVelocity);\r
-                                                                                       }\r
-                                                                                       else if (chipHO.n発声位置 > chipLC.n発声位置)\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.HHO, chipLC, inputEvent.nVelocity);\r
-                                                                                       }\r
-                                                                                       else\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.HHO, chipHO, inputEvent.nVelocity);\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.HHO, chipLC, inputEvent.nVelocity);\r
-                                                                                       }\r
-                                                                                       bHitted = true;\r
-                                                                               }\r
-                                                                               else if (e判定HO != E判定.Miss)\r
-                                                                               {\r
-                                                                                       this.tドラムヒット処理(nTime, Eパッド.HHO, chipHO, inputEvent.nVelocity);\r
-                                                                                       bHitted = true;\r
-                                                                               }\r
-                                                                               else if (e判定LC != E判定.Miss)\r
-                                                                               {\r
-                                                                                       this.tドラムヒット処理(nTime, Eパッド.HHO, chipLC, inputEvent.nVelocity);\r
-                                                                                       bHitted = true;\r
-                                                                               }\r
-                                                                               if (!bHitted)\r
-                                                                                       break;\r
-                                                                               continue;\r
-\r
-                                                                       case EHHGroup.左シンバルのみ打ち分ける:\r
-                                                                               if ((e判定HC != E判定.Miss) && (e判定HO != E判定.Miss))\r
-                                                                               {\r
-                                                                                       if (chipHC.n発声位置 < chipHO.n発声位置)\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.HHO, chipHC, inputEvent.nVelocity);\r
-                                                                                       }\r
-                                                                                       else if (chipHC.n発声位置 > chipHO.n発声位置)\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.HHO, chipHO, inputEvent.nVelocity);\r
-                                                                                       }\r
-                                                                                       else\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.HHO, chipHC, inputEvent.nVelocity);\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.HHO, chipHO, inputEvent.nVelocity);\r
-                                                                                       }\r
-                                                                                       bHitted = true;\r
-                                                                               }\r
-                                                                               else if (e判定HC != E判定.Miss)\r
-                                                                               {\r
-                                                                                       this.tドラムヒット処理(nTime, Eパッド.HHO, chipHC, inputEvent.nVelocity);\r
-                                                                                       bHitted = true;\r
-                                                                               }\r
-                                                                               else if (e判定HO != E判定.Miss)\r
-                                                                               {\r
-                                                                                       this.tドラムヒット処理(nTime, Eパッド.HHO, chipHO, inputEvent.nVelocity);\r
-                                                                                       bHitted = true;\r
-                                                                               }\r
-                                                                               if (!bHitted)\r
-                                                                                       break;\r
-                                                                               continue;\r
-\r
-                                                                       case EHHGroup.全部共通:\r
-                                                                               if (((e判定HC != E判定.Miss) && (e判定HO != E判定.Miss)) && (e判定LC != E判定.Miss))\r
-                                                                               {\r
-                                                                                       CChip chip;\r
-                                                                                       CChip[] chipArray = new CChip[] { chipHC, chipHO, chipLC };\r
-                                                                                       // ここから、chipArrayをn発生位置の小さい順に並び替える\r
-                                                                                       if (chipArray[1].n発声位置 > chipArray[2].n発声位置)\r
-                                                                                       {\r
-                                                                                               chip = chipArray[1];\r
-                                                                                               chipArray[1] = chipArray[2];\r
-                                                                                               chipArray[2] = chip;\r
-                                                                                       }\r
-                                                                                       if (chipArray[0].n発声位置 > chipArray[1].n発声位置)\r
-                                                                                       {\r
-                                                                                               chip = chipArray[0];\r
-                                                                                               chipArray[0] = chipArray[1];\r
-                                                                                               chipArray[1] = chip;\r
-                                                                                       }\r
-                                                                                       if (chipArray[1].n発声位置 > chipArray[2].n発声位置)\r
-                                                                                       {\r
-                                                                                               chip = chipArray[1];\r
-                                                                                               chipArray[1] = chipArray[2];\r
-                                                                                               chipArray[2] = chip;\r
-                                                                                       }\r
-                                                                                       this.tドラムヒット処理(nTime, Eパッド.HHO, chipArray[0], inputEvent.nVelocity);\r
-                                                                                       if (chipArray[0].n発声位置 == chipArray[1].n発声位置)\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.HHO, chipArray[1], inputEvent.nVelocity);\r
-                                                                                       }\r
-                                                                                       if (chipArray[0].n発声位置 == chipArray[2].n発声位置)\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.HHO, chipArray[2], inputEvent.nVelocity);\r
-                                                                                       }\r
-                                                                                       bHitted = true;\r
-                                                                               }\r
-                                                                               else if ((e判定HC != E判定.Miss) && (e判定HO != E判定.Miss))\r
-                                                                               {\r
-                                                                                       if (chipHC.n発声位置 < chipHO.n発声位置)\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.HHO, chipHC, inputEvent.nVelocity);\r
-                                                                                       }\r
-                                                                                       else if (chipHC.n発声位置 > chipHO.n発声位置)\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.HHO, chipHO, inputEvent.nVelocity);\r
-                                                                                       }\r
-                                                                                       else\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.HHO, chipHC, inputEvent.nVelocity);\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.HHO, chipHO, inputEvent.nVelocity);\r
-                                                                                       }\r
-                                                                                       bHitted = true;\r
-                                                                               }\r
-                                                                               else if ((e判定HC != E判定.Miss) && (e判定LC != E判定.Miss))\r
-                                                                               {\r
-                                                                                       if (chipHC.n発声位置 < chipLC.n発声位置)\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.HHO, chipHC, inputEvent.nVelocity);\r
-                                                                                       }\r
-                                                                                       else if (chipHC.n発声位置 > chipLC.n発声位置)\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.HHO, chipLC, inputEvent.nVelocity);\r
-                                                                                       }\r
-                                                                                       else\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.HHO, chipHC, inputEvent.nVelocity);\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.HHO, chipLC, inputEvent.nVelocity);\r
-                                                                                       }\r
-                                                                                       bHitted = true;\r
-                                                                               }\r
-                                                                               else if ((e判定HO != E判定.Miss) && (e判定LC != E判定.Miss))\r
-                                                                               {\r
-                                                                                       if (chipHO.n発声位置 < chipLC.n発声位置)\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.HHO, chipHO, inputEvent.nVelocity);\r
-                                                                                       }\r
-                                                                                       else if (chipHO.n発声位置 > chipLC.n発声位置)\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.HHO, chipLC, inputEvent.nVelocity);\r
-                                                                                       }\r
-                                                                                       else\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.HHO, chipHO, inputEvent.nVelocity);\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.HHO, chipLC, inputEvent.nVelocity);\r
-                                                                                       }\r
-                                                                                       bHitted = true;\r
-                                                                               }\r
-                                                                               else if (e判定HC != E判定.Miss)\r
-                                                                               {\r
-                                                                                       this.tドラムヒット処理(nTime, Eパッド.HHO, chipHC, inputEvent.nVelocity);\r
-                                                                                       bHitted = true;\r
-                                                                               }\r
-                                                                               else if (e判定HO != E判定.Miss)\r
-                                                                               {\r
-                                                                                       this.tドラムヒット処理(nTime, Eパッド.HHO, chipHO, inputEvent.nVelocity);\r
-                                                                                       bHitted = true;\r
-                                                                               }\r
-                                                                               else if (e判定LC != E判定.Miss)\r
-                                                                               {\r
-                                                                                       this.tドラムヒット処理(nTime, Eパッド.HHO, chipLC, inputEvent.nVelocity);\r
-                                                                                       bHitted = true;\r
-                                                                               }\r
-                                                                               if (!bHitted)\r
-                                                                                       break;\r
-                                                                               continue;\r
-                                                               }\r
-                                                               if (!bHitted)\r
-                                                                       break;\r
-                                                               continue;\r
-                                                       }\r
-                                               //-----------------------------\r
-                                                       #endregion\r
-\r
-                                               case Eパッド.RD:\r
-                                                       #region [ RD(とCYとLC:groupingしている場合)のヒット処理 ]\r
-                                                       //-----------------------------\r
-                                                       {\r
-                                                               if (inputEvent.nVelocity <= CDTXMania.Instance.ConfigIni.nVelocityMin.RD)       // #23857 2010.12.12 yyagi: to support VelocityMin\r
-                                                                       continue;       // 電子ドラムによる意図的なクロストークを無効にする\r
-                                                               CChip chipCY = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.Cymbal, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);\r
-                                                               CChip chipRD = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.RideCymbal, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);\r
-                                                               CChip chipLC = CDTXMania.Instance.ConfigIni.bシンバルフリー ? this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.LeftCymbal, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1) : null;\r
-                                                               E判定 e判定CY = (chipCY != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipCY, nInputAdjustTime) : E判定.Miss;\r
-                                                               E判定 e判定RD = (chipRD != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipRD, nInputAdjustTime) : E判定.Miss;\r
-                                                               E判定 e判定LC = (chipLC != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipLC, nInputAdjustTime) : E判定.Miss;\r
-                                                               CChip[] chipArray = new CChip[] { chipCY, chipRD, chipLC };\r
-                                                               E判定[] e判定Array = new E判定[] { e判定CY, e判定RD, e判定LC };\r
-                                                               const int NumOfChips = 3;       // chipArray.GetLength(0)\r
-\r
-                                                               //num13 = 0;\r
-                                                               //while( num13 < 2 )\r
-\r
-                                                               // HH/CY群を, n発生位置の小さい順に並べる + nullを大きい方に退かす\r
-                                                               SortChipsByNTime(chipArray, e判定Array, NumOfChips);\r
-                                                               //for ( int i = 0; i < NumOfChips - 1; i++ )\r
-                                                               //{\r
-                                                               //    // num14 = 2;\r
-                                                               //    // while( num14 > num13 )\r
-                                                               //    for (int j = NumOfChips - 1; j > i; j--)\r
-                                                               //    {\r
-                                                               //        if( ( chipArray[ j - 1 ] == null ) || ( ( chipArray[ j ] != null ) && ( chipArray[ j - 1 ].n発声位置 > chipArray[ j ].n発声位置 ) ) )\r
-                                                               //        {\r
-                                                               //            CDTX.CChip chipTemp = chipArray[ j - 1 ];\r
-                                                               //            chipArray[ j - 1 ] = chipArray[ j ];\r
-                                                               //            chipArray[ j ] = chipTemp;\r
-                                                               //            E判定 e判定Temp = e判定Array[ j - 1 ];\r
-                                                               //            e判定Array[ j - 1 ] = e判定Array[ j ];\r
-                                                               //            e判定Array[ j ] = e判定Temp;\r
-                                                               //        }\r
-                                                               //        //num14--;\r
-                                                               //    }\r
-                                                               //    // num13++;\r
-                                                               //}\r
-                                                               switch (eCYGroup)\r
-                                                               {\r
-                                                                       case ECYGroup.打ち分ける:\r
-                                                                               if (e判定RD != E判定.Miss)\r
-                                                                               {\r
-                                                                                       this.tドラムヒット処理(nTime, Eパッド.RD, chipRD, inputEvent.nVelocity);\r
-                                                                                       bHitted = true;\r
-                                                                               }\r
-                                                                               break;\r
-\r
-                                                                       case ECYGroup.共通:\r
-                                                                               if (!CDTXMania.Instance.ConfigIni.bシンバルフリー)\r
-                                                                               {\r
-                                                                                       //num16 = 0;\r
-                                                                                       //while( num16 < 3 )\r
-                                                                                       for (int i = 0; i < NumOfChips; i++)\r
-                                                                                       {\r
-                                                                                               if ((e判定Array[i] != E判定.Miss) && ((chipArray[i] == chipCY) || (chipArray[i] == chipRD)))\r
-                                                                                               {\r
-                                                                                                       this.tドラムヒット処理(nTime, Eパッド.CY, chipArray[i], inputEvent.nVelocity);\r
-                                                                                                       bHitted = true;\r
-                                                                                                       break;\r
-                                                                                               }\r
-                                                                                               //num16++;\r
-                                                                                       }\r
-                                                                                       break;\r
-                                                                               }\r
-                                                                               //num15 = 0;\r
-                                                                               //while( num15 < 3 )\r
-                                                                               for (int i = 0; i < NumOfChips; i++)\r
-                                                                               {\r
-                                                                                       if (e判定Array[i] != E判定.Miss)\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.CY, chipArray[i], inputEvent.nVelocity);\r
-                                                                                               bHitted = true;\r
-                                                                                               break;\r
-                                                                                       }\r
-                                                                                       //num15++;\r
-                                                                               }\r
-                                                                               break;\r
-                                                               }\r
-                                                               if (bHitted)\r
-                                                               {\r
-                                                                       continue;\r
-                                                               }\r
-                                                               break;\r
-                                                       }\r
-                                               //-----------------------------\r
-                                                       #endregion\r
-\r
-                                               case Eパッド.LC:\r
-                                                       #region [ LC(とHC/HOとCYと:groupingしている場合)のヒット処理 ]\r
-                                                       //-----------------------------\r
-                                                       {\r
-                                                               if (inputEvent.nVelocity <= CDTXMania.Instance.ConfigIni.nVelocityMin.LC)       // #23857 2010.12.12 yyagi: to support VelocityMin\r
-                                                                       continue;       // 電子ドラムによる意図的なクロストークを無効にする\r
-                                                               CChip chipHC = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.HiHatClose, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);  // HC\r
-                                                               CChip chipHO = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.HiHatOpen, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);   // HO\r
-                                                               CChip chipLC = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.LeftCymbal, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);  // LC\r
-                                                               CChip chipCY = CDTXMania.Instance.ConfigIni.bシンバルフリー ? this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.Cymbal, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1) : null;\r
-                                                               CChip chipRD = CDTXMania.Instance.ConfigIni.bシンバルフリー ? this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.RideCymbal, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1) : null;\r
-                                                               E判定 e判定HC = (chipHC != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipHC, nInputAdjustTime) : E判定.Miss;\r
-                                                               E判定 e判定HO = (chipHO != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipHO, nInputAdjustTime) : E判定.Miss;\r
-                                                               E判定 e判定LC = (chipLC != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipLC, nInputAdjustTime) : E判定.Miss;\r
-                                                               E判定 e判定CY = (chipCY != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipCY, nInputAdjustTime) : E判定.Miss;\r
-                                                               E判定 e判定RD = (chipRD != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipRD, nInputAdjustTime) : E判定.Miss;\r
-                                                               CChip[] chipArray = new CChip[] { chipHC, chipHO, chipLC, chipCY, chipRD };\r
-                                                               E判定[] e判定Array = new E判定[] { e判定HC, e判定HO, e判定LC, e判定CY, e判定RD };\r
-                                                               const int NumOfChips = 5;       // chipArray.GetLength(0)\r
-\r
-                                                               //num3 = 0;\r
-                                                               //while( num3 < 4 )\r
-\r
-                                                               // HH/CY群を, n発生位置の小さい順に並べる + nullを大きい方に退かす\r
-                                                               SortChipsByNTime(chipArray, e判定Array, NumOfChips);\r
-                                                               //for ( int i = 0; i < NumOfChips - 1; i++ )\r
-                                                               //{\r
-                                                               //    //num4 = 4;\r
-                                                               //    //while( num4 > num3 )\r
-                                                               //    for ( int j = NumOfChips - 1; j > i; j-- )\r
-                                                               //    {\r
-                                                               //        if( ( chipArray[ j - 1 ] == null ) || ( ( chipArray[ j ] != null ) && ( chipArray[ j - 1 ].n発声位置 > chipArray[ j ].n発声位置 ) ) )\r
-                                                               //        {\r
-                                                               //            // swap\r
-                                                               //            CDTX.CChip chipTemp = chipArray[ j - 1 ];\r
-                                                               //            chipArray[ j - 1 ] = chipArray[ j ];\r
-                                                               //            chipArray[ j ] = chipTemp;\r
-                                                               //            E判定 e判定Temp = e判定Array[ j - 1 ];\r
-                                                               //            e判定Array[ j - 1 ] = e判定Array[ j ];\r
-                                                               //            e判定Array[ j ] = e判定Temp;\r
-                                                               //        }\r
-                                                               //        //num4--;\r
-                                                               //    }\r
-                                                               //    //num3++;\r
-                                                               //}\r
-                                                               switch (eHHGroup)\r
-                                                               {\r
-                                                                       case EHHGroup.全部打ち分ける:\r
-                                                                       case EHHGroup.左シンバルのみ打ち分ける:\r
-                                                                               if (!CDTXMania.Instance.ConfigIni.bシンバルフリー)\r
-                                                                               {\r
-                                                                                       if (e判定LC != E判定.Miss)\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.LC, chipLC, inputEvent.nVelocity);\r
-                                                                                               bHitted = true;\r
-                                                                                       }\r
-                                                                                       if (!bHitted)\r
-                                                                                               break;\r
-                                                                                       continue;\r
-                                                                               }\r
-                                                                               //num5 = 0;\r
-                                                                               //while( num5 < 5 )\r
-                                                                               for (int i = 0; i < NumOfChips; i++)\r
-                                                                               {\r
-                                                                                       if ((e判定Array[i] != E判定.Miss) && (((chipArray[i] == chipLC) || (chipArray[i] == chipCY)) || ((chipArray[i] == chipRD) && (CDTXMania.Instance.ConfigIni.eCYGroup == ECYGroup.共通))))\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.LC, chipArray[i], inputEvent.nVelocity);\r
-                                                                                               bHitted = true;\r
-                                                                                               break;\r
-                                                                                       }\r
-                                                                                       //num5++;\r
-                                                                               }\r
-                                                                               if (!bHitted)\r
-                                                                                       break;\r
-                                                                               continue;\r
-\r
-                                                                       case EHHGroup.ハイハットのみ打ち分ける:\r
-                                                                       case EHHGroup.全部共通:\r
-                                                                               if (!CDTXMania.Instance.ConfigIni.bシンバルフリー)\r
-                                                                               {\r
-                                                                                       //num7 = 0;\r
-                                                                                       //while( num7 < 5 )\r
-                                                                                       for (int i = 0; i < NumOfChips; i++)\r
-                                                                                       {\r
-                                                                                               if ((e判定Array[i] != E判定.Miss) && (((chipArray[i] == chipLC) || (chipArray[i] == chipHC)) || (chipArray[i] == chipHO)))\r
-                                                                                               {\r
-                                                                                                       this.tドラムヒット処理(nTime, Eパッド.LC, chipArray[i], inputEvent.nVelocity);\r
-                                                                                                       bHitted = true;\r
-                                                                                                       break;\r
-                                                                                               }\r
-                                                                                               //num7++;\r
-                                                                                       }\r
-                                                                                       if (!bHitted)\r
-                                                                                               break;\r
-                                                                                       continue;\r
-                                                                               }\r
-                                                                               //num6 = 0;\r
-                                                                               //while( num6 < 5 )\r
-                                                                               for (int i = 0; i < NumOfChips; i++)\r
-                                                                               {\r
-                                                                                       if ((e判定Array[i] != E判定.Miss) && ((chipArray[i] != chipRD) || (CDTXMania.Instance.ConfigIni.eCYGroup == ECYGroup.共通)))\r
-                                                                                       {\r
-                                                                                               this.tドラムヒット処理(nTime, Eパッド.LC, chipArray[i], inputEvent.nVelocity);\r
-                                                                                               bHitted = true;\r
-                                                                                               break;\r
-                                                                                       }\r
-                                                                                       //num6++;\r
-                                                                               }\r
-                                                                               if (!bHitted)\r
-                                                                                       break;\r
-                                                                               continue;\r
-                                                               }\r
-                                                               if (!bHitted)\r
-                                                                       break;\r
-\r
-                                                               break;\r
-                                                       }\r
-                                               //-----------------------------\r
-                                                       #endregion\r
-\r
-                                               case Eパッド.HP:             // #27029 2012.1.4 from\r
-                                                       #region [ HPのヒット処理 ]\r
-                                                       //-----------------\r
-                                                       if (CDTXMania.Instance.ConfigIni.eBDGroup == EBDGroup.どっちもBD)\r
-                                                       {\r
-                                                               #region [ BDとみなしてヒット処理 ]\r
-                                                               //-----------------\r
-                                                               if (!this.tドラムヒット処理(nTime, Eパッド.BD, this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.BassDrum, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1), inputEvent.nVelocity))\r
-                                                                       break;\r
-                                                               continue;\r
-                                                               //-----------------\r
-                                                               #endregion\r
-                                                       }\r
-                                                       else\r
-                                                       {\r
-                                                               #region [ HPのヒット処理 ]\r
-                                                               //-----------------\r
-                                                               continue;       // 何もしない。この入力を完全に無視するので、break しないこと。\r
-                                                               //-----------------\r
-                                                               #endregion\r
-                                                       }\r
-                                               //-----------------\r
-                                                       #endregion\r
-                                       }\r
-                                       //-----------------------------\r
-                                       #endregion\r
-                                       #region [ (B) ヒットしてなかった場合は、レーンフラッシュ、パッドアニメ、空打ち音再生を実行 ]\r
-                                       //-----------------------------\r
-                                       int pad = nPad; // 以下、nPad の代わりに pad を用いる。(成りすまし用)\r
-\r
-                                       if (nPad == (int)Eパッド.HP) // #27029 2012.1.4 from: HP&BD 時の HiHatPedal の場合は BD に成りすます。\r
-                                               pad = (int)Eパッド.BD;               //( HP|BD 時のHP入力はここまでこないので無視。)\r
-\r
-                                       // レーンフラッシュ\r
-                                       this.actLaneFlushD.Start((Eレーン)this.nパッド0Atoレーン07[pad], ((float)inputEvent.nVelocity) / 127f);\r
-\r
-                                       // パッドアニメ\r
-                                       this.actPad.Hit(this.nパッド0Atoパッド08[pad]);\r
-\r
-                                       // 空打ち音\r
-                                       if (CDTXMania.Instance.ConfigIni.bドラム打音を発声する)\r
-                                       {\r
-                                               CChip rChip = this.r空うちChip(E楽器パート.DRUMS, (Eパッド)pad);\r
-                                               if (rChip != null)\r
-                                               {\r
-                                                       #region [ (B1) 空打ち音が譜面で指定されているのでそれを再生する。]\r
-                                                       //-----------------\r
-                                                       this.tサウンド再生(rChip, CSound管理.rc演奏用タイマ.nシステム時刻, E楽器パート.DRUMS, CDTXMania.Instance.ConfigIni.n手動再生音量, CDTXMania.Instance.ConfigIni.b演奏音を強調する.Drums);\r
-                                                       //-----------------\r
-                                                       #endregion\r
-                                               }\r
-                                               else\r
-                                               {\r
-                                                       #region [ (B2) 空打ち音が指定されていないので一番近いチップを探して再生する。]\r
-                                                       //-----------------\r
-                                                       switch (((Eパッド)pad))\r
-                                                       {\r
-                                                               case Eパッド.HH:\r
-                                                                       #region [ *** ]\r
-                                                                       //-----------------------------\r
-                                                                       {\r
-                                                                               CChip chipHC = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[0], nInputAdjustTime);\r
-                                                                               CChip chipHO = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[7], nInputAdjustTime);\r
-                                                                               CChip chipLC = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[9], nInputAdjustTime);\r
-                                                                               switch (CDTXMania.Instance.ConfigIni.eHHGroup)\r
-                                                                               {\r
-                                                                                       case EHHGroup.ハイハットのみ打ち分ける:\r
-                                                                                               rChip = (chipHC != null) ? chipHC : chipLC;\r
-                                                                                               break;\r
-\r
-                                                                                       case EHHGroup.左シンバルのみ打ち分ける:\r
-                                                                                               rChip = (chipHC != null) ? chipHC : chipHO;\r
-                                                                                               break;\r
-\r
-                                                                                       case EHHGroup.全部共通:\r
-                                                                                               if (chipHC != null)\r
-                                                                                               {\r
-                                                                                                       rChip = chipHC;\r
-                                                                                               }\r
-                                                                                               else if (chipHO == null)\r
-                                                                                               {\r
-                                                                                                       rChip = chipLC;\r
-                                                                                               }\r
-                                                                                               else if (chipLC == null)\r
-                                                                                               {\r
-                                                                                                       rChip = chipHO;\r
-                                                                                               }\r
-                                                                                               else if (chipHO.n発声位置 < chipLC.n発声位置)\r
-                                                                                               {\r
-                                                                                                       rChip = chipHO;\r
-                                                                                               }\r
-                                                                                               else\r
-                                                                                               {\r
-                                                                                                       rChip = chipLC;\r
-                                                                                               }\r
-                                                                                               break;\r
-\r
-                                                                                       default:\r
-                                                                                               rChip = chipHC;\r
-                                                                                               break;\r
-                                                                               }\r
-                                                                       }\r
-                                                                       //-----------------------------\r
-                                                                       #endregion\r
-                                                                       break;\r
-\r
-                                                               case Eパッド.LT:\r
-                                                                       #region [ *** ]\r
-                                                                       //-----------------------------\r
-                                                                       {\r
-                                                                               CChip chipLT = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[4], nInputAdjustTime);\r
-                                                                               CChip chipFT = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[5], nInputAdjustTime);\r
-                                                                               if (CDTXMania.Instance.ConfigIni.eFTGroup != EFTGroup.打ち分ける)\r
-                                                                                       rChip = (chipLT != null) ? chipLT : chipFT;\r
-                                                                               else\r
-                                                                                       rChip = chipLT;\r
-                                                                       }\r
-                                                                       //-----------------------------\r
-                                                                       #endregion\r
-                                                                       break;\r
-\r
-                                                               case Eパッド.FT:\r
-                                                                       #region [ *** ]\r
-                                                                       //-----------------------------\r
-                                                                       {\r
-                                                                               CChip chipLT = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[4], nInputAdjustTime);\r
-                                                                               CChip chipFT = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[5], nInputAdjustTime);\r
-                                                                               if (CDTXMania.Instance.ConfigIni.eFTGroup != EFTGroup.打ち分ける)\r
-                                                                                       rChip = (chipFT != null) ? chipFT : chipLT;\r
-                                                                               else\r
-                                                                                       rChip = chipFT;\r
-                                                                       }\r
-                                                                       //-----------------------------\r
-                                                                       #endregion\r
-                                                                       break;\r
-\r
-                                                               case Eパッド.CY:\r
-                                                                       #region [ *** ]\r
-                                                                       //-----------------------------\r
-                                                                       {\r
-                                                                               CChip chipCY = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[6], nInputAdjustTime);\r
-                                                                               CChip chipRD = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[8], nInputAdjustTime);\r
-                                                                               if (CDTXMania.Instance.ConfigIni.eCYGroup != ECYGroup.打ち分ける)\r
-                                                                                       rChip = (chipCY != null) ? chipCY : chipRD;\r
-                                                                               else\r
-                                                                                       rChip = chipCY;\r
-                                                                       }\r
-                                                                       //-----------------------------\r
-                                                                       #endregion\r
-                                                                       break;\r
-\r
-                                                               case Eパッド.HHO:\r
-                                                                       #region [ *** ]\r
-                                                                       //-----------------------------\r
-                                                                       {\r
-                                                                               CChip chipHC = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[0], nInputAdjustTime);\r
-                                                                               CChip chipHO = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[7], nInputAdjustTime);\r
-                                                                               CChip chipLC = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[9], nInputAdjustTime);\r
-                                                                               switch (CDTXMania.Instance.ConfigIni.eHHGroup)\r
-                                                                               {\r
-                                                                                       case EHHGroup.全部打ち分ける:\r
-                                                                                               rChip = chipHO;\r
-                                                                                               break;\r
-\r
-                                                                                       case EHHGroup.ハイハットのみ打ち分ける:\r
-                                                                                               rChip = (chipHO != null) ? chipHO : chipLC;\r
-                                                                                               break;\r
-\r
-                                                                                       case EHHGroup.左シンバルのみ打ち分ける:\r
-                                                                                               rChip = (chipHO != null) ? chipHO : chipHC;\r
-                                                                                               break;\r
-\r
-                                                                                       case EHHGroup.全部共通:\r
-                                                                                               if (chipHO != null)\r
-                                                                                               {\r
-                                                                                                       rChip = chipHO;\r
-                                                                                               }\r
-                                                                                               else if (chipHC == null)\r
-                                                                                               {\r
-                                                                                                       rChip = chipLC;\r
-                                                                                               }\r
-                                                                                               else if (chipLC == null)\r
-                                                                                               {\r
-                                                                                                       rChip = chipHC;\r
-                                                                                               }\r
-                                                                                               else if (chipHC.n発声位置 < chipLC.n発声位置)\r
-                                                                                               {\r
-                                                                                                       rChip = chipHC;\r
-                                                                                               }\r
-                                                                                               else\r
-                                                                                               {\r
-                                                                                                       rChip = chipLC;\r
-                                                                                               }\r
-                                                                                               break;\r
-                                                                               }\r
-                                                                       }\r
-                                                                       //-----------------------------\r
-                                                                       #endregion\r
-                                                                       break;\r
-\r
-                                                               case Eパッド.RD:\r
-                                                                       #region [ *** ]\r
-                                                                       //-----------------------------\r
-                                                                       {\r
-                                                                               CChip chipCY = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[6], nInputAdjustTime);\r
-                                                                               CChip chipRD = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[8], nInputAdjustTime);\r
-                                                                               if (CDTXMania.Instance.ConfigIni.eCYGroup != ECYGroup.打ち分ける)\r
-                                                                                       rChip = (chipRD != null) ? chipRD : chipCY;\r
-                                                                               else\r
-                                                                                       rChip = chipRD;\r
-                                                                       }\r
-                                                                       //-----------------------------\r
-                                                                       #endregion\r
-                                                                       break;\r
-\r
-                                                               case Eパッド.LC:\r
-                                                                       #region [ *** ]\r
-                                                                       //-----------------------------\r
-                                                                       {\r
-                                                                               CChip chipHC = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[0], nInputAdjustTime);\r
-                                                                               CChip chipHO = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[7], nInputAdjustTime);\r
-                                                                               CChip chipLC = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[9], nInputAdjustTime);\r
-                                                                               switch (CDTXMania.Instance.ConfigIni.eHHGroup)\r
-                                                                               {\r
-                                                                                       case EHHGroup.全部打ち分ける:\r
-                                                                                       case EHHGroup.左シンバルのみ打ち分ける:\r
-                                                                                               rChip = chipLC;\r
-                                                                                               break;\r
-\r
-                                                                                       case EHHGroup.ハイハットのみ打ち分ける:\r
-                                                                                       case EHHGroup.全部共通:\r
-                                                                                               if (chipLC != null)\r
-                                                                                               {\r
-                                                                                                       rChip = chipLC;\r
-                                                                                               }\r
-                                                                                               else if (chipHC == null)\r
-                                                                                               {\r
-                                                                                                       rChip = chipHO;\r
-                                                                                               }\r
-                                                                                               else if (chipHO == null)\r
-                                                                                               {\r
-                                                                                                       rChip = chipHC;\r
-                                                                                               }\r
-                                                                                               else if (chipHC.n発声位置 < chipHO.n発声位置)\r
-                                                                                               {\r
-                                                                                                       rChip = chipHC;\r
-                                                                                               }\r
-                                                                                               else\r
-                                                                                               {\r
-                                                                                                       rChip = chipHO;\r
-                                                                                               }\r
-                                                                                               break;\r
-                                                                               }\r
-                                                                       }\r
-                                                                       //-----------------------------\r
-                                                                       #endregion\r
-                                                                       break;\r
-\r
-                                                               default:\r
-                                                                       #region [ *** ]\r
-                                                                       //-----------------------------\r
-                                                                       rChip = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[pad], nInputAdjustTime);\r
-                                                                       //-----------------------------\r
-                                                                       #endregion\r
-                                                                       break;\r
-                                                       }\r
-                                                       if (rChip != null)\r
-                                                       {\r
-                                                               // 空打ち音が見つかったので再生する。\r
-                                                               this.tサウンド再生(rChip, CSound管理.rc演奏用タイマ.nシステム時刻, E楽器パート.DRUMS, CDTXMania.Instance.ConfigIni.n手動再生音量, CDTXMania.Instance.ConfigIni.b演奏音を強調する.Drums);\r
-                                                       }\r
-                                                       //-----------------\r
-                                                       #endregion\r
-                                               }\r
-                                       }\r
-\r
-                                       // BAD or TIGHT 時の処理。\r
-                                       if (CDTXMania.Instance.ConfigIni.bTight)\r
-                                               this.tチップのヒット処理_BadならびにTight時のMiss(E楽器パート.DRUMS, this.nパッド0Atoレーン07[pad]);\r
-                                       //-----------------------------\r
-                                       #endregion\r
-                               }\r
-                       }\r
-               }\r
-\r
-               // t入力処理・ドラム()からメソッドを抽出したもの。\r
-               /// <summary>\r
-               /// chipArrayの中を, n発生位置の小さい順に並べる + nullを大きい方に退かす。セットでe判定Arrayも並べ直す。\r
-               /// </summary>\r
-               /// <param name="chipArray">ソート対象chip群</param>\r
-               /// <param name="e判定Array">ソート対象e判定群</param>\r
-               /// <param name="NumOfChips">チップ数</param>\r
-               private static void SortChipsByNTime(CChip[] chipArray, E判定[] e判定Array, int NumOfChips)\r
-               {\r
-                       for (int i = 0; i < NumOfChips - 1; i++)\r
-                       {\r
-                               //num9 = 2;\r
-                               //while( num9 > num8 )\r
-                               for (int j = NumOfChips - 1; j > i; j--)\r
-                               {\r
-                                       if ((chipArray[j - 1] == null) || ((chipArray[j] != null) && (chipArray[j - 1].n発声位置 > chipArray[j].n発声位置)))\r
-                                       {\r
-                                               // swap\r
-                                               CChip chipTemp = chipArray[j - 1];\r
-                                               chipArray[j - 1] = chipArray[j];\r
-                                               chipArray[j] = chipTemp;\r
-                                               E判定 e判定Temp = e判定Array[j - 1];\r
-                                               e判定Array[j - 1] = e判定Array[j];\r
-                                               e判定Array[j] = e判定Temp;\r
-                                       }\r
-                                       //num9--;\r
-                               }\r
-                               //num8++;\r
-                       }\r
-               }\r
-\r
                protected override void t背景テクスチャの生成()\r
                {\r
                        Rectangle bgrect;\r
@@ -1931,12 +211,12 @@ namespace DTXMania
                        base.t背景テクスチャの生成(DefaultBgFilename, DefaultLaneFilename, bgrect, BgFilename);\r
                }\r
 \r
-               protected override void t進行描画_チップ_ドラムス(CConfigIni configIni, ref CDTX dTX, ref CChip pChip)\r
+               protected override void t進行描画_チップ_ドラムス(ref CChip pChip)\r
                {\r
-                       if (configIni.bDrums有効)\r
+                       if (CDTXMania.Instance.ConfigIni.bDrums有効)\r
                        {\r
                                #region [ Invisible処理 ]\r
-                               if (configIni.eInvisible.Drums != EInvisible.OFF)\r
+                               if (CDTXMania.Instance.ConfigIni.eInvisible.Drums != EInvisible.OFF)\r
                                {\r
                                        cInvisibleChip.SetInvisibleStatus(ref pChip);\r
                                }\r
@@ -1944,7 +224,7 @@ namespace DTXMania
                                else\r
                                {\r
                                        #region [ Sudden処理 ]\r
-                                       if (configIni.bSudden.Drums)\r
+                                       if (CDTXMania.Instance.ConfigIni.bSudden.Drums)\r
                                        {\r
                                                if (pChip.nバーからの距離dot.Drums < 200 * Scale.Y)\r
                                                {\r
@@ -1964,7 +244,7 @@ namespace DTXMania
                                        }\r
                                        #endregion\r
                                        #region [ Hidden処理 ]\r
-                                       if (configIni.bHidden.Drums)\r
+                                       if (CDTXMania.Instance.ConfigIni.bHidden.Drums)\r
                                        {\r
                                                if (pChip.nバーからの距離dot.Drums < 100 * Scale.Y)\r
                                                {\r
@@ -1985,7 +265,7 @@ namespace DTXMania
                                                this.txチップ.n透明度 = pChip.n透明度;\r
                                        }\r
                                        int x = this.nチャンネルtoX座標[(int)CDTXMania.Instance.ConfigIni.eドラムレーン表示位置, pChip.eチャンネル番号 - Ech定義.HiHatClose];\r
-                                       int y = configIni.bReverse.Drums ?\r
+                                       int y = CDTXMania.Instance.ConfigIni.bReverse.Drums ?\r
                                                (int)(0x38 * Scale.Y + pChip.nバーからの距離dot.Drums) :\r
                                                (int)(0x1a6 * Scale.Y - pChip.nバーからの距離dot.Drums);\r
 \r
@@ -2213,7 +493,7 @@ namespace DTXMania
 \r
                                int indexSevenLanes = CStage演奏画面共通.nチャンネル0Atoレーン07[pChip.eチャンネル番号 - Ech定義.HiHatClose];\r
                                // #35411 chnmr0 modified\r
-                               bool autoPlayCondition = (configIni.bAutoPlay[indexSevenLanes] && !pChip.bHit);\r
+                               bool autoPlayCondition = (CDTXMania.Instance.ConfigIni.bAutoPlay[indexSevenLanes] && !pChip.bHit);\r
                                bool UsePerfectGhost = true;\r
                                long ghostLag = 0;\r
 \r
@@ -2244,7 +524,7 @@ namespace DTXMania
                                        // #31602 2013.6.24 yyagi 判定ラインの表示位置をずらしたら、チップのヒットエフェクトの表示もずらすために、nJudgeLine..を追加\r
                                        this.actChipFireD.Start((Eレーン)indexSevenLanes, flag, flag2, flag2, 演奏判定ライン座標.nJudgeLinePosY_delta.Drums);\r
                                        this.actPad.Hit(this.nチャンネル0Atoパッド08[pChip.eチャンネル番号 - Ech定義.HiHatClose]);\r
-                                       this.tサウンド再生(pChip, CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms + ghostLag, E楽器パート.DRUMS, dTX.nモニタを考慮した音量(E楽器パート.DRUMS));\r
+                                       this.tサウンド再生(pChip, CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms + ghostLag, E楽器パート.DRUMS, CDTXMania.Instance.DTX.nモニタを考慮した音量(E楽器パート.DRUMS));\r
                                        this.tチップのヒット処理(pChip.n発声時刻ms + ghostLag, pChip);\r
                                        cInvisibleChip.StartSemiInvisible(E楽器パート.DRUMS);\r
                                }\r
@@ -2287,20 +567,20 @@ namespace DTXMania
                        }       // end of "if configIni.bDrums有効"\r
                        if (!pChip.bHit && (pChip.nバーからの距離dot.Drums < 0))\r
                        {\r
-                               this.tサウンド再生(pChip, CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.DRUMS, dTX.nモニタを考慮した音量(E楽器パート.DRUMS));\r
+                               this.tサウンド再生(pChip, CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.DRUMS, CDTXMania.Instance.DTX.nモニタを考慮した音量(E楽器パート.DRUMS));\r
                                pChip.bHit = true;\r
                        }\r
                }\r
-               protected override void t進行描画_チップ_ギターベース(CConfigIni configIni, ref CDTX dTX, ref CChip pChip, E楽器パート inst)\r
+               protected override void t進行描画_チップ_ギターベース(ref CChip pChip, E楽器パート inst)\r
                {\r
                        int xGtO = (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? 509 : 485;\r
                        int xBsO = (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? 400 : 69;\r
                        int xGtL = (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? 561 : 537;\r
                        int xBsL = (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? 452 : 121;\r
 \r
-                       base.t進行描画_チップ_ギターベース(configIni, ref dTX, ref pChip, inst,\r
-                               演奏判定ライン座標.n判定ラインY座標(inst, false, false),                // 95  Normal\r
-                               演奏判定ライン座標.n判定ラインY座標(inst, false, true),         // 374 Reverse\r
+                       base.t進行描画_チップ_ギターベース(ref pChip, inst,\r
+                               演奏判定ライン座標.n判定ラインY座標(inst, false),               // 95  Normal\r
+                               演奏判定ライン座標.n判定ラインY座標(inst, true),                // 374 Reverse\r
                                (int)(57 * Scale.Y), (int)(412 * Scale.Y),                              // チップのY軸表示範囲\r
                                xGtO, xBsO,                                     // openチップのX座標(Gt, Bs)\r
                                268, 144, 76, 6, 24,            // オープンチップregionの x, y, w, h, 通常チップのw\r
@@ -2308,124 +588,7 @@ namespace DTXMania
                                26, 24                                          // 描画のX座標間隔, テクスチャのX座標間隔\r
                        );\r
                }\r
-#if false\r
-               protected override void t進行描画・チップ・ギターベース( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip, E楽器パート inst )\r
-               {\r
-                       int instIndex = (int) inst;\r
-                       if ( configIni.bGuitar有効 )\r
-                       {\r
-                               if ( configIni.bSudden[ instIndex ] )\r
-                               {\r
-                                       pChip.b可視 = pChip.nバーからの距離dot[ instIndex ] < 200;\r
-                               }\r
-                               if ( configIni.bHidden[ instIndex ] && ( pChip.nバーからの距離dot[ instIndex ] < 100 ) )\r
-                               {\r
-                                       pChip.b可視 = false;\r
-                               }\r
-\r
-                               bool bChipHasR = ( ( pChip.nチャンネル番号 & 4 ) > 0 );\r
-                               bool bChipHasG = ( ( pChip.nチャンネル番号 & 2 ) > 0 );\r
-                               bool bChipHasB = ( ( pChip.nチャンネル番号 & 1 ) > 0 );\r
-                               bool bChipHasW = ( ( pChip.nチャンネル番号 & 0x0F ) == 0x08 );\r
-                               bool bChipIsO  = ( ( pChip.nチャンネル番号 & 0x0F ) == 0x00 );\r
-\r
-                               int OPEN = (inst == E楽器パート.GUITAR ) ? 0x20 : 0xA0;\r
-                               if ( !pChip.bHit && pChip.b可視 )\r
-                               {\r
-                                       int y = configIni.bReverse[ instIndex ] ? ( 374 - pChip.nバーからの距離dot[ instIndex ] ) : ( 95 + pChip.nバーからの距離dot[ instIndex ] );\r
-                                       if ( ( y > 57 ) && ( y < 412 ) )\r
-                                       {\r
-                                               if ( this.txチップ != null )\r
-                                               {\r
-                                                       int nアニメカウンタ現在の値 = this.ctチップ模様アニメ[ instIndex ].n現在の値;\r
-                                                       if ( pChip.nチャンネル番号 == OPEN )\r
-                                                       {\r
-                                                               int xo = ( inst == E楽器パート.GUITAR ) ? 509 : 400;\r
-                                                               this.txチップ.t2D描画( CDTXMania.Instance.app.Device, xo, y - 2, new Rectangle( 268, 144 + ( ( nアニメカウンタ現在の値 % 5 ) * 6 ), 76, 6 ) );\r
-                                                       }\r
-                                                       Rectangle rc = new Rectangle( 268, nアニメカウンタ現在の値 * 6, 24, 6 );\r
-                                                       int x;\r
-                                                       if ( inst == E楽器パート.GUITAR )\r
-                                                       {\r
-                                                               x = ( configIni.bLeft.Guitar ) ? 561 : 509;\r
-                                                       }\r
-                                                       else\r
-                                                       {\r
-                                                               x = ( configIni.bLeft.Bass ) ? 452 : 400;\r
-                                                       }\r
-                                                       int deltaX = ( configIni.bLeft[ instIndex ] ) ? -26 : +26;\r
-\r
-                                                       if ( bChipHasR )\r
-                                                       {\r
-                                                               this.txチップ.t2D描画( CDTXMania.Instance.app.Device, x, y - 3, rc );\r
-                                                       }\r
-                                                       rc.X += 24;\r
-                                                       x += deltaX;\r
-                                                       if ( bChipHasG )\r
-                                                       {\r
-                                                               this.txチップ.t2D描画( CDTXMania.Instance.app.Device, x, y - 3, rc );\r
-                                                       }\r
-                                                       rc.X += 24;\r
-                                                       x += deltaX;\r
-                                                       if ( bChipHasB )\r
-                                                       {\r
-                                                               this.txチップ.t2D描画( CDTXMania.Instance.app.Device, x, y - 3, rc );\r
-                                                       }\r
-                                               }\r
-                                       }\r
-                               }\r
-                               //if ( ( configIni.bAutoPlay.Guitar && !pChip.bHit ) && ( pChip.nバーからの距離dot.Guitar < 0 ) )\r
-                               if ( ( !pChip.bHit ) && ( pChip.nバーからの距離dot[ instIndex ] < 0 ) )\r
-                               {\r
-                                       int lo = ( inst == E楽器パート.GUITAR ) ? 0 : 3;   // lane offset\r
-                                       bool autoR = ( inst == E楽器パート.GUITAR ) ? bIsAutoPlay.GtR : bIsAutoPlay.BsR;\r
-                                       bool autoG = ( inst == E楽器パート.GUITAR ) ? bIsAutoPlay.GtG : bIsAutoPlay.BsG;\r
-                                       bool autoB = ( inst == E楽器パート.GUITAR ) ? bIsAutoPlay.GtB : bIsAutoPlay.BsB;\r
-                                       if ( ( bChipHasR || bChipIsO ) && autoR )\r
-                                       {\r
-                                               this.actChipFireGB.Start( 0 + lo);\r
-                                       }\r
-                                       if ( ( bChipHasG || bChipIsO ) && autoG )\r
-                                       {\r
-                                               this.actChipFireGB.Start( 1 + lo );\r
-                                       }\r
-                                       if ( ( bChipHasB || bChipIsO ) && autoB )\r
-                                       {\r
-                                               this.actChipFireGB.Start( 2 + lo );\r
-                                       }\r
-                                       if ( (inst == E楽器パート.GUITAR && bIsAutoPlay.GtPick ) || (inst == E楽器パート.BASS && bIsAutoPlay.BsPick ) )\r
-                                       {\r
-                                               bool pushingR = CDTXMania.Instance.Pad.b押されている( inst, Eパッド.R );\r
-                                               bool pushingG = CDTXMania.Instance.Pad.b押されている( inst, Eパッド.G );\r
-                                               bool pushingB = CDTXMania.Instance.Pad.b押されている( inst, Eパッド.B );\r
-                                               bool bMiss = true;\r
-                                               if ( ( ( bChipIsO == true ) && ( !pushingR | autoR ) && ( !pushingG | autoG ) && ( !pushingB | autoB ) ) ||\r
-                                                       ( ( bChipHasR == ( pushingR | autoR ) ) && ( bChipHasG == ( pushingG | autoG ) ) && ( bChipHasB == ( pushingB | autoB ) ) )\r
-                                               )\r
-                                               {\r
-                                                       bMiss = false;\r
-                                               }\r
-                                               pChip.bHit = true;\r
-                                               this.tサウンド再生( pChip, CDTXMania.Instance.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, inst, dTX.nモニタを考慮した音量( inst ), false, bMiss );\r
-                                               this.r次にくるギターChip = null;\r
-                                               this.tチップのヒット処理( pChip.n発声時刻ms, pChip );\r
-                                       }\r
-                               }\r
-                               //break;\r
-                               return;\r
-                       }       // end of "if configIni.bGuitar有効"\r
-                       if ( !pChip.bHit && ( pChip.nバーからの距離dot[ instIndex ] < 0 ) )      // Guitar/Bass無効の場合は、自動演奏する\r
-                       {\r
-                               pChip.bHit = true;\r
-                               this.tサウンド再生( pChip, CDTXMania.Instance.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, inst, dTX.nモニタを考慮した音量( inst ) );\r
-                       }\r
-               }\r
-#endif\r
-               protected void t進行描画_チップ_ギター_ウェイリング(CConfigIni configIni, ref CDTX dTX, ref CChip pChip)\r
-               {\r
-                       base.t進行描画_チップ_ギター_ウェイリング(configIni, ref dTX, ref pChip, false);\r
-               }\r
-               protected override void t進行描画_チップ_フィルイン(CConfigIni configIni, ref CDTX dTX, ref CChip pChip)\r
+               protected override void t進行描画_チップ_フィルイン(ref CChip pChip)\r
                {\r
                        if (!pChip.bHit && (pChip.nバーからの距離dot.Drums < 0))\r
                        {\r
@@ -2433,22 +596,22 @@ namespace DTXMania
                                switch (pChip.n整数値)\r
                                {\r
                                        case 0x01:      // フィルイン開始\r
-                                               if (configIni.bフィルイン有効)\r
+                                               if (CDTXMania.Instance.ConfigIni.bフィルイン有効)\r
                                                {\r
                                                        this.bフィルイン中 = true;\r
                                                }\r
                                                break;\r
 \r
                                        case 0x02:      // フィルイン終了\r
-                                               if (configIni.bフィルイン有効)\r
+                                               if (CDTXMania.Instance.ConfigIni.bフィルイン有効)\r
                                                {\r
                                                        this.bフィルイン中 = false;\r
                                                }\r
-                                               if (((this.actCombo.n現在のコンボ数.Drums > 0) || configIni.bドラムが全部オートプレイである) && configIni.b歓声を発声する)\r
+                                               if (((this.actCombo.n現在のコンボ数.Drums > 0) || CDTXMania.Instance.ConfigIni.bドラムが全部オートプレイである) && CDTXMania.Instance.ConfigIni.b歓声を発声する)\r
                                                {\r
                                                        if (this.r現在の歓声Chip.Drums != null)\r
                                                        {\r
-                                                               dTX.tチップの再生(this.r現在の歓声Chip.Drums, CSound管理.rc演奏用タイマ.nシステム時刻, (int)Eレーン.BGM, dTX.nモニタを考慮した音量(E楽器パート.UNKNOWN));\r
+                                                               CDTXMania.Instance.DTX.tチップの再生(this.r現在の歓声Chip.Drums, CSound管理.rc演奏用タイマ.nシステム時刻, (int)Eレーン.BGM, CDTXMania.Instance.DTX.nモニタを考慮した音量(E楽器パート.UNKNOWN));\r
                                                        }\r
                                                        else\r
                                                        {\r
@@ -2480,230 +643,13 @@ namespace DTXMania
                                }\r
                        }\r
                }\r
-#if false\r
-               protected override void t進行描画・チップ・ベース( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip )\r
-               {\r
-                       if ( configIni.bGuitar有効 )\r
-                       {\r
-                               if ( configIni.bSudden.Bass )\r
-                               {\r
-                                       pChip.b可視 = pChip.nバーからの距離dot.Bass < 200;\r
-                               }\r
-                               if ( configIni.bHidden.Bass && ( pChip.nバーからの距離dot.Bass < 100 ) )\r
-                               {\r
-                                       pChip.b可視 = false;\r
-                               }\r
-\r
-                               bool bGtBsR = ( ( pChip.nチャンネル番号 & 4 ) > 0 );\r
-                               bool bGtBsG = ( ( pChip.nチャンネル番号 & 2 ) > 0 );\r
-                               bool bGtBsB = ( ( pChip.nチャンネル番号 & 1 ) > 0 );\r
-                               bool bGtBsW = ( ( pChip.nチャンネル番号 & 0x0F ) == 0x08 );\r
-                               bool bGtBsO = ( ( pChip.nチャンネル番号 & 0x0F ) == 0x00 ); \r
-                               if ( !pChip.bHit && pChip.b可視 )\r
-                               {\r
-                                       int y = configIni.bReverse.Bass ? ( 374 - pChip.nバーからの距離dot.Bass ) : ( 95 + pChip.nバーからの距離dot.Bass );\r
-                                       if ( ( y > 57 ) && ( y < 412 ) )\r
-                                       {\r
-                                               int nアニメカウンタ現在の値 = this.ctチップ模様アニメ.Bass.n現在の値;\r
-                                               if ( pChip.nチャンネル番号 == 0xA0 )\r
-                                               {\r
-                                                       if ( this.txチップ != null )\r
-                                                       {\r
-                                                               this.txチップ.t2D描画( CDTXMania.Instance.app.Device, 400, y - 2, new Rectangle( 268, 144 + ( ( nアニメカウンタ現在の値 % 5 ) * 6 ), 76, 6 ) );\r
-                                                       }\r
-                                               }\r
-                                               else if ( this.txチップ != null )\r
-                                               {\r
-                                                       int x = ( configIni.bLeft.Bass ) ? 452 : 400;\r
-                                                       int deltaX = ( configIni.bLeft.Bass ) ? -24 : +24;\r
-                                                       Rectangle rc = new Rectangle( 268, nアニメカウンタ現在の値 * 6, 24, 6 );\r
-                                                       if ( bGtBsR )\r
-                                                       {\r
-                                                               this.txチップ.t2D描画( CDTXMania.Instance.app.Device, 400, y - 3, rc );\r
-                                                       }\r
-                                                       rc.X += 24;\r
-                                                       x += deltaX;\r
-                                                       if ( bGtBsG )\r
-                                                       {\r
-                                                               this.txチップ.t2D描画( CDTXMania.Instance.app.Device, 0x1aa, y - 3, rc );\r
-                                                       }\r
-                                                       rc.X += 24;\r
-                                                       x += deltaX;\r
-                                                       if ( bGtBsB )\r
-                                                       {\r
-                                                               this.txチップ.t2D描画( CDTXMania.Instance.app.Device, 0x1c4, y - 3, rc );\r
-                                                       }\r
-                                               }\r
-                                       }\r
-                               }\r
-                               if ( ( configIni.bAutoPlay.Bass && !pChip.bHit ) && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
-                               {\r
-                                       if ( ( bGtBsR || ( pChip.nチャンネル番号 == 0xA0 ) ) && bIsAutoPlay.BsR )\r
-                                       {\r
-                                               this.actChipFireGB.Start( 3 );\r
-                                       }\r
-                                       if ( ( bGtBsG || ( pChip.nチャンネル番号 == 0xA0 ) ) && bIsAutoPlay.BsG )\r
-                                       {\r
-                                               this.actChipFireGB.Start( 4 );\r
-                                       }\r
-                                       if ( ( bGtBsB || ( pChip.nチャンネル番号 == 0xA0 ) ) && bIsAutoPlay.BsB )\r
-                                       {\r
-                                               this.actChipFireGB.Start( 5 );\r
-                                       }\r
-                                       if ( bIsAutoPlay.BsPick )\r
-                                       {\r
-                                               pChip.bHit = true;\r
-                                               this.tサウンド再生( pChip, CDTXMania.Instance.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
-                               }\r
-                               return;\r
-                       }\r
-                       if ( !pChip.bHit && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
-                       {\r
-                               this.tサウンド再生( pChip, CDTXMania.Instance.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.BASS, dTX.nモニタを考慮した音量( E楽器パート.BASS ) );\r
-                               pChip.bHit = true;\r
-                       }\r
-               }\r
-#endif\r
-               protected void t進行描画_チップ_ベース_ウェイリング(CConfigIni configIni, ref CDTX dTX, ref CChip pChip)\r
-               {\r
-                       base.t進行描画_チップ_ベース_ウェイリング(configIni, ref dTX, ref pChip, false);\r
-               }\r
-               protected override void t進行描画_チップ_空打ち音設定_ドラム(CConfigIni configIni, ref CDTX dTX, ref CChip pChip)\r
+               \r
+               protected override void t進行描画_チップ_空打ち音設定_ドラム(ref 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.eチャンネル番号 - Ech定義.HiHatClose]] = 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 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再生位置自動調整機能有効 && (bIsDirectSound || bUseOSTimer))\r
-                               {\r
-                                       dTX.tWave再生位置自動補正();\r
-                               }\r
-                               //#if DEBUG\r
-                               //                {\r
-                               //                    dTX.tWaveBGM再生位置表示();         //デバッグ用\r
-                               //                }\r
-                               //#endif\r
-                       }\r
-                       #region [ Drumsの小節線と、小節番号 ]\r
-                       if (configIni.bDrums有効)\r
-                       {\r
-                               if (configIni.b演奏情報を表示する && (configIni.eDark == Eダークモード.OFF))\r
-                               {\r
-                                       int n小節番号 = n小節番号plus1 - 1;\r
-                                       CDTXMania.Instance.act文字コンソール.tPrint(\r
-                                               configIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left ?\r
-                                                       999 : 619 + 682,\r
-                                               configIni.bReverse.Drums ?\r
-                                                       126 + pChip.nバーからの距離dot.Drums :\r
-                                                       911 - pChip.nバーからの距離dot.Drums,\r
-                                               C文字コンソール.Eフォント種別.白,\r
-                                               n小節番号.ToString()\r
-                                       );\r
-                               }\r
-                               if (((configIni.eDark != Eダークモード.FULL) && pChip.b可視) && (this.txチップ != null))\r
-                               {\r
-                                       this.txチップ.n透明度 = 255;\r
-                                       this.txチップ.t2D描画(CDTXMania.Instance.Device,\r
-                                               //3, 2.25\r
-                                               configIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left ?\r
-                                                       105 : 619,\r
-                                               configIni.bReverse.Drums ?\r
-                                                       124 + pChip.nバーからの距離dot.Drums : 947 - pChip.nバーからの距離dot.Drums,\r
-                                               new Rectangle(\r
-                                                       0,\r
-                                                       999,\r
-                                                       (configIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? 888 : 682,\r
-                                                       4\r
-                                               )\r
-                                       );\r
-                               }\r
-                       }\r
-                       #endregion\r
-                       if ((pChip.b可視 && configIni.bGuitar有効) && (configIni.eDark != Eダークモード.FULL) && (this.txチップ != null))\r
-                       {\r
-                               this.txチップ.n透明度 = 255;\r
-                               #region [ Guitarの小節線 ]\r
-                               //int y = configIni.bReverse.Guitar ? ( ( 0x176 - pChip.nバーからの距離dot.Guitar ) - 1 ) : ( ( 0x5f + pChip.nバーからの距離dot.Guitar ) - 1 );\r
-                               int y = 演奏判定ライン座標.n判定ラインY座標(E楽器パート.GUITAR, false, configIni.bReverse.Guitar);\r
-                               if (configIni.bReverse.Guitar)\r
-                               {\r
-                                       y = y - (int)(pChip.nバーからの距離dot.Guitar) - 1;\r
-                               }\r
-                               else\r
-                               {\r
-                                       y = y + (int)(pChip.nバーからの距離dot.Guitar) - 1;\r
-                               }\r
-                               int n小節線消失距離dot;\r
-                               // Reverse時の小節線消失位置を、RGBボタンの真ん中程度に。\r
-                               // 非Reverse時の消失処理は、従来通りt進行描画・チップ()にお任せ。\r
-                               n小節線消失距離dot = configIni.bReverse.Guitar ?\r
-                                       (int)(-100 * Scale.Y) :\r
-                                       (configIni.e判定位置.Guitar == E判定位置.標準) ? (int)(-50 * Scale.Y) : (int)(-25 * Scale.Y);\r
-\r
-                               if ((dTX.bチップがある.Guitar) &&\r
-                                       (0x39 * Scale.Y < y) && ((y < 0x19c * Scale.Y)) &&\r
-                                       (pChip.nバーからの距離dot.Guitar >= n小節線消失距離dot)\r
-                                       )\r
-                               {\r
-                                       this.txチップ.t2D描画(\r
-                                               CDTXMania.Instance.Device,\r
-                                               (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? 1521 : 1450,\r
-                                               y,\r
-                                               new Rectangle(\r
-                                                       0,\r
-                                                       (int)(450 * Scale.Y),\r
-                                                       (int)(0x4e * Scale.X),\r
-                                                       (int)(1 * Scale.Y)\r
-                                               )\r
-                                       );\r
-                               }\r
-                               #endregion\r
-                               #region [ Bassの小節線 ]\r
-                               //y = configIni.bReverse.Bass ? ( ( 0x176 - pChip.nバーからの距離dot.Bass ) - 1 ) : ( ( 0x5f + pChip.nバーからの距離dot.Bass ) - 1 );\r
-                               y = 演奏判定ライン座標.n判定ラインY座標(E楽器パート.BASS, false, configIni.bReverse.Bass);\r
-                               if (configIni.bReverse.Bass)\r
-                               {\r
-                                       y = y - (int)(pChip.nバーからの距離dot.Bass) - 1;\r
-                               }\r
-                               else\r
-                               {\r
-                                       y = y + (int)(pChip.nバーからの距離dot.Bass) - 1;\r
-                               }\r
-                               n小節線消失距離dot = configIni.bReverse.Bass ?\r
-                                       (int)(-100 * Scale.Y) :\r
-                                       (configIni.e判定位置.Bass == E判定位置.標準) ? (int)(-50 * Scale.Y) : (int)(-25 * Scale.Y);\r
-\r
-                               if ((dTX.bチップがある.Bass) &&\r
-                                       (0x39 * Scale.Y < y) && (y < 0x19c * Scale.Y) &&\r
-                                       (pChip.nバーからの距離dot.Bass >= n小節線消失距離dot)\r
-                                       )\r
-                               {\r
-                                       this.txチップ.t2D描画(\r
-                                               CDTXMania.Instance.Device,\r
-                                               (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? 1194 : 200,\r
-                                               y,\r
-                                               new Rectangle(\r
-                                                       0,\r
-                                                       (int)(450 * Scale.Y),\r
-                                                       (int)(0x4e * Scale.X),\r
-                                                       (int)(1 * Scale.Y)\r
-                                               )\r
-                                       );\r
-                               }\r
-                               #endregion\r
                        }\r
                }\r
                #endregion\r
index 642add7..fe0c6bd 100644 (file)
@@ -366,7 +366,7 @@ namespace DTXMania
                }\r
                private bool tリザルト画像の指定があれば構築する()\r
                {\r
-                       int rank = CScoreIni.t総合ランク値を計算して返す( CDTXMania.Instance.stage結果.st演奏記録.Drums, CDTXMania.Instance.stage結果.st演奏記録.Guitar, CDTXMania.Instance.stage結果.st演奏記録.Bass );\r
+                       int rank = CScoreIni.t総合ランク値を計算して返す( CDTXMania.Instance.stage結果.st演奏記録 );\r
                        if (rank == 99) // #23534 2010.10.28 yyagi: 演奏チップが0個のときは、rankEと見なす\r
                        {\r
                                rank = 6;\r
@@ -393,7 +393,7 @@ namespace DTXMania
                        {\r
                                return false;\r
                        }\r
-                       int rank = CScoreIni.t総合ランク値を計算して返す( CDTXMania.Instance.stage結果.st演奏記録.Drums, CDTXMania.Instance.stage結果.st演奏記録.Guitar, CDTXMania.Instance.stage結果.st演奏記録.Bass );\r
+                       int rank = CScoreIni.t総合ランク値を計算して返す( CDTXMania.Instance.stage結果.st演奏記録 );\r
                        if (rank == 99) // #23534 2010.10.28 yyagi: 演奏チップが0個のときは、rankEと見なす\r
                        {\r
                                rank = 6;\r
index 3ee8e38..62d2c8a 100644 (file)
@@ -115,7 +115,7 @@ namespace DTXMania
                                                this.nランク値[ i ] = CScoreIni.tランク値を計算して返す( part );\r
                                        }\r
                                }\r
-                               this.n総合ランク値 = CScoreIni.t総合ランク値を計算して返す( this.st演奏記録.Drums, this.st演奏記録.Guitar, this.st演奏記録.Bass );\r
+                               this.n総合ランク値 = CScoreIni.t総合ランク値を計算して返す( this.st演奏記録 );\r
                                //---------------------\r
                                #endregion\r
 \r
@@ -237,7 +237,7 @@ namespace DTXMania
 \r
                                #region [ #RESULTSOUND_xx の再生(あれば)]\r
                                //---------------------\r
-                               int rank = CScoreIni.t総合ランク値を計算して返す( this.st演奏記録.Drums, this.st演奏記録.Guitar, this.st演奏記録.Bass );\r
+                               int rank = CScoreIni.t総合ランク値を計算して返す( this.st演奏記録 );\r
 \r
                                if (rank == 99) // #23534 2010.10.28 yyagi: 演奏チップが0個のときは、rankEと見なす\r
                                {\r
index e53d734..b7ae4a0 100644 (file)
@@ -34,9 +34,9 @@ namespace DTXMania
                                return instance;\r
                        }\r
                }\r
-               public C文字コンソール act文字コンソール          {                       get;private set;}\r
-               public bool bコンパクトモード           {                       get;    private set;}\r
-               public CConfigIni ConfigIni             {                       get;                    private set;}\r
+               public C文字コンソール act文字コンソール { get; private set; }\r
+               public bool bコンパクトモード { get; private set; }\r
+               public CConfigIni ConfigIni { get; private set; }\r
                public CDTX DTX\r
                {\r
                        get\r
@@ -57,8 +57,8 @@ namespace DTXMania
                                }\r
                        }\r
                }\r
-               public CFPS FPS         {                       get;private set;}\r
-               public CInput管理 Input管理         {                       get;private set;}\r
+               public CFPS FPS { get; private set; }\r
+               public CInput管理 Input管理 { get; private set; }\r
                #region [ 入力範囲ms ]\r
                public int nPerfect範囲ms\r
                {\r
@@ -121,7 +121,7 @@ namespace DTXMania
                        }\r
                }\r
                #endregion\r
-               public CPad Pad         {                       get;private set;}\r
+               public CPad Pad { get; private set; }\r
                public Random Random { get; private set; }\r
                public CSkin Skin { get; private set; }\r
                public CSongs管理 Songs管理 { get; set; }// 2012.1.26 yyagi private解除 CStage起動でのdesirialize読み込みのため\r
@@ -132,16 +132,10 @@ namespace DTXMania
                public CSound管理 Sound管理 { get; private set; }\r
                public CStage起動 stage起動 { get; private set; }\r
                public CStageタイトル stageタイトル { get; private set; }\r
-               //              public  CStageオプション stageオプション\r
-               //              { \r
-               //                      get;\r
-               //                      private set;\r
-               //              }\r
                public CStageコンフィグ stageコンフィグ { get; private set; }\r
                public CStage選曲 stage選曲 { get; private set; }\r
                public CStage曲読み込み stage曲読み込み { get; private set; }\r
-               public CStage演奏ギター画面 stage演奏ギター画面\r
-               { get; private set; }\r
+               public CStage演奏ギター画面 stage演奏ギター画面 { get; private set; }\r
                public CStage演奏ドラム画面 stage演奏ドラム画面 { get; private set; }\r
                public CStage結果 stage結果 { get; private set; }\r
                public CStageChangeSkin stageChangeSkin { get; private set; }\r
@@ -193,7 +187,7 @@ namespace DTXMania
                        strEXEのあるフォルダ = Environment.CurrentDirectory + @"\";\r
                        //strEXEのあるフォルダ = Path.GetDirectoryName( Environment.GetCommandLineArgs()[ 0 ] ) + @"\";\r
 #else\r
-                       strEXEのあるフォルダ = Path.GetDirectoryName( Application.ExecutablePath ) + @"\";       // #23629 2010.11.9 yyagi: set correct pathname where DTXManiaGR.exe is.\r
+                       strEXEのあるフォルダ = Path.GetDirectoryName(Application.ExecutablePath) + @"\"; // #23629 2010.11.9 yyagi: set correct pathname where DTXManiaGR.exe is.\r
 #endif\r
                        // END #23629 2010.11.13 from\r
                        //-----------------\r
@@ -328,13 +322,13 @@ namespace DTXMania
 #if DEBUG\r
                                        Environment.Exit(-1);\r
 #else\r
-                                       if ( strコンパクトモードファイル == "" )    // DTXMania未起動状態で、DTXCで再生停止ボタンを押した場合は、何もせず終了\r
+                                       if (strコンパクトモードファイル == "")      // DTXMania未起動状態で、DTXCで再生停止ボタンを押した場合は、何もせず終了\r
                                        {\r
-                                               Environment.Exit( -1 );\r
+                                               Environment.Exit(-1);\r
                                        }\r
                                        else\r
                                        {\r
-                                               throw new FileNotFoundException( "コンパクトモードで指定されたファイルが見つかりません。DTXManiaを終了します。", strコンパクトモードファイル );\r
+                                               throw new FileNotFoundException("コンパクトモードで指定されたファイルが見つかりません。DTXManiaを終了します。", strコンパクトモードファイル);\r
                                        }\r
 #endif\r
                                }\r
@@ -1087,12 +1081,13 @@ namespace DTXMania
                                CScoreIni scoreIni = null;\r
 \r
                                if (Control.IsKeyLocked(Keys.CapsLock))                         // #30925 2013.3.11 yyagi; capslock=ON時は、EnumSongsしないようにして、起動負荷とASIOの音切れの関係を確認する\r
-                               {                                                                                                               // → songs.db等の書き込み時だと音切れするっぽい\r
+                               {\r
+                                       // → songs.db等の書き込み時だと音切れするっぽい\r
                                        actEnumSongs.On非活性化();\r
                                        EnumSongs.SongListEnumCompletelyDone();\r
                                        CDTXMania.Instance.stage選曲.bIsEnumeratingSongs = false;\r
                                }\r
-                               #region [ 曲検索スレッドの起動/終了 ]                                       // ここに"Enumerating Songs..."表示を集約\r
+                               #region [ 曲検索スレッドの起動/終了 ここに"Enumerating Songs..."表示を集約 ]\r
                                if (!CDTXMania.Instance.bコンパクトモード)\r
                                {\r
                                        actEnumSongs.On進行描画();                                                  // "Enumerating Songs..."アイコンの描画\r
@@ -1852,79 +1847,59 @@ for (int i = 0; i < 3; i++) {
                                                        case (int)E演奏画面の戻り値.ステージクリア:\r
                                                                #region [ 演奏クリア ]\r
                                                                //-----------------------------\r
-                                                               CScoreIni.C演奏記録 c演奏記録_Drums, c演奏記録_Guitar, c演奏記録_Bass;\r
+                                                               STDGBVALUE<CScoreIni.C演奏記録> record;\r
                                                                CChip[] chipArray = new CChip[10];\r
-                                                               if (ConfigIni.bギタレボモード)\r
+                                                               \r
+                                                               if( !ConfigIni.bギタレボモード )\r
                                                                {\r
-                                                                       stage演奏ギター画面.t演奏結果を格納する(out c演奏記録_Drums, out c演奏記録_Guitar, out c演奏記録_Bass);\r
+                                                                       chipArray = stage演奏ギター画面.GetNoChipDrums();\r
+                                                                       record = stage演奏ドラム画面.Record;\r
                                                                }\r
                                                                else\r
                                                                {\r
-                                                                       stage演奏ドラム画面.t演奏結果を格納する(out c演奏記録_Drums, out c演奏記録_Guitar, out c演奏記録_Bass, out chipArray);\r
+                                                                       record = stage演奏ギター画面.Record;\r
+                                                                       record.Drums = new CScoreIni.C演奏記録();\r
                                                                }\r
 \r
-                                                               if (CDTXMania.Instance.ConfigIni.bIsSwappedGuitarBass)          // #24063 2011.1.24 yyagi Gt/Bsを入れ替えていたなら、演奏結果も入れ替える\r
-                                                               {\r
-                                                                       CScoreIni.C演奏記録 t;\r
-                                                                       t = c演奏記録_Guitar;\r
-                                                                       c演奏記録_Guitar = c演奏記録_Bass;\r
-                                                                       c演奏記録_Bass = t;\r
-\r
-                                                                       CDTXMania.Instance.DTX.SwapGuitarBassInfos();                   // 譜面情報も元に戻す\r
-                                                                       // #35417 2015.08.30 changed フラグにアクセスしている箇所が見つかったため有効化\r
-                                                                       // #35417 2015.8.18 yyagi: AUTO系のフラグ入れ替えは削除可能!?。以後AUTOフラグに全くアクセスしておらず、意味がないため。\r
-                                                                       // (直下でb全AUTOである にアクセスしているが、既に計算済みのクラスへのアクセスであり、ここでの交換対象ではない)\r
-                                                                       CDTXMania.Instance.ConfigIni.SwapGuitarBassInfos_AutoFlags();\r
-                                                                       // #24415 2011.2.27 yyagi\r
-                                                                       // リザルト集計時のみ、Auto系のフラグも元に戻す。\r
-                                                                       // これを戻すのは、リザルト集計後。\r
-                                                               }                                                                                                       // "case CStage.Eステージ.結果:"のところ。\r
-\r
-                                                               double ps = 0.0, gs = 0.0;\r
-                                                               if (!c演奏記録_Drums.b全AUTOである && c演奏記録_Drums.n全チップ数 > 0)\r
-                                                               {\r
-                                                                       ps = c演奏記録_Drums.db演奏型スキル値;\r
-                                                                       gs = c演奏記録_Drums.dbゲーム型スキル値;\r
-                                                               }\r
-                                                               else if (!c演奏記録_Guitar.b全AUTOである && c演奏記録_Guitar.n全チップ数 > 0)\r
-                                                               {\r
-                                                                       ps = c演奏記録_Guitar.db演奏型スキル値;\r
-                                                                       gs = c演奏記録_Guitar.dbゲーム型スキル値;\r
-                                                               }\r
-                                                               else\r
+                                                               double playskill = 0.0;\r
+                                                       \r
+                                                               for(E楽器パート inst = E楽器パート.DRUMS; inst <= E楽器パート.BASS; ++inst)\r
                                                                {\r
-                                                                       ps = c演奏記録_Bass.db演奏型スキル値;\r
-                                                                       gs = c演奏記録_Bass.dbゲーム型スキル値;\r
+                                                                       if( !record[(int)inst].b全AUTOである && record[(int)inst].n全チップ数 > 0 )\r
+                                                                       {\r
+                                                                               playskill = record[(int)inst].db演奏型スキル値;\r
+                                                                       }\r
                                                                }\r
+\r
                                                                string str = "Cleared";\r
-                                                               switch (CScoreIni.t総合ランク値を計算して返す(c演奏記録_Drums, c演奏記録_Guitar, c演奏記録_Bass))\r
+                                                               switch (CScoreIni.t総合ランク値を計算して返す(record))\r
                                                                {\r
                                                                        case (int)CScoreIni.ERANK.SS:\r
-                                                                               str = string.Format("Cleared (SS: {0:F2})", ps);\r
+                                                                               str = string.Format("Cleared (SS: {0:F2})", playskill);\r
                                                                                break;\r
 \r
                                                                        case (int)CScoreIni.ERANK.S:\r
-                                                                               str = string.Format("Cleared (S: {0:F2})", ps);\r
+                                                                               str = string.Format("Cleared (S: {0:F2})", playskill);\r
                                                                                break;\r
 \r
                                                                        case (int)CScoreIni.ERANK.A:\r
-                                                                               str = string.Format("Cleared (A: {0:F2})", ps);\r
+                                                                               str = string.Format("Cleared (A: {0:F2})", playskill);\r
                                                                                break;\r
 \r
                                                                        case (int)CScoreIni.ERANK.B:\r
-                                                                               str = string.Format("Cleared (B: {0:F2})", ps);\r
+                                                                               str = string.Format("Cleared (B: {0:F2})", playskill);\r
                                                                                break;\r
 \r
                                                                        case (int)CScoreIni.ERANK.C:\r
-                                                                               str = string.Format("Cleared (C: {0:F2})", ps);\r
+                                                                               str = string.Format("Cleared (C: {0:F2})", playskill);\r
                                                                                break;\r
 \r
                                                                        case (int)CScoreIni.ERANK.D:\r
-                                                                               str = string.Format("Cleared (D: {0:F2})", ps);\r
+                                                                               str = string.Format("Cleared (D: {0:F2})", playskill);\r
                                                                                break;\r
 \r
                                                                        case (int)CScoreIni.ERANK.E:\r
-                                                                               str = string.Format("Cleared (E: {0:F2})", ps);\r
+                                                                               str = string.Format("Cleared (E: {0:F2})", playskill);\r
                                                                                break;\r
 \r
                                                                        case (int)CScoreIni.ERANK.UNKNOWN:      // #23534 2010.10.28 yyagi add: 演奏チップが0個のとき\r
@@ -1948,9 +1923,7 @@ for (int i = 0; i < 3; i++) {
                                                                r現在のステージ.On非活性化();\r
                                                                Trace.TraceInformation("----------------------");\r
                                                                Trace.TraceInformation("■ 結果");\r
-                                                               stage結果.st演奏記録.Drums = c演奏記録_Drums;\r
-                                                               stage結果.st演奏記録.Guitar = c演奏記録_Guitar;\r
-                                                               stage結果.st演奏記録.Bass = c演奏記録_Bass;\r
+                                                               stage結果.st演奏記録 = record;\r
                                                                stage結果.r空うちドラムチップ = chipArray;\r
                                                                stage結果.On活性化();\r
                                                                r直前のステージ = r現在のステージ;\r