OSDN Git Service

#36070 Drums/Guitar 演奏画面/Actの統合(座標値未整理)
authorchnmr0 <chnmr0@16f42ceb-6dc6-49c8-ba94-f2d53467949d>
Tue, 1 Mar 2016 14:41:18 +0000 (14:41 +0000)
committerchnmr0 <chnmr0@16f42ceb-6dc6-49c8-ba94-f2d53467949d>
Tue, 1 Mar 2016 14:41:18 +0000 (14:41 +0000)
#36054 Bass Wailing の降ってくる速度を修正
#36043

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

43 files changed:
DTXManiaプロジェクト/コード/スコア、曲/CChip.cs
DTXManiaプロジェクト/コード/スコア、曲/CDTXInput.cs
DTXManiaプロジェクト/コード/ステージ/06.曲読み込み/CStage曲読み込み.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/CAct演奏AVI.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/CAct演奏Combo共通.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/CAct演奏Danger共通.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/CAct演奏RGB共通.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/CAct演奏WailingBonus共通.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/CAct演奏ゲージ共通.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/CAct演奏スコア共通.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/CAct演奏ステータスパネル共通.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/CAct演奏チップファイアGB.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/CAct演奏レーンフラッシュGB共通.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/CAct演奏判定文字列共通.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/CStage演奏画面共通.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/TypesForPlayStage.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/ギター画面/CAct演奏GuitarDanger.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/ギター画面/CAct演奏GuitarRGB.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/ギター画面/CAct演奏GuitarWailingBonus.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/ギター画面/CAct演奏Guitarゲージ.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/ギター画面/CAct演奏Guitarコンボ.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/ギター画面/CAct演奏Guitarスコア.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演奏DrumsDanger.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/ドラム画面/CAct演奏DrumsRGB.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/ドラム画面/CAct演奏DrumsWailingBonus.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/ドラム画面/CAct演奏Drumsグラフ.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/ドラム画面/CAct演奏Drumsゲージ.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/ドラム画面/CAct演奏DrumsコンボDGB.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/ドラム画面/CAct演奏Drumsスコア.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/ドラム画面/CAct演奏Drumsステータスパネル.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/ドラム画面/CAct演奏DrumsチップファイアD.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/ドラム画面/CAct演奏DrumsチップファイアGB.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/ドラム画面/CAct演奏Drumsパッド.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/ドラム画面/CAct演奏DrumsレーンフラッシュD.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/ドラム画面/CAct演奏DrumsレーンフラッシュGB.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/ドラム画面/CAct演奏Drums判定文字列.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/ドラム画面/CStage演奏ドラム画面.cs
DTXManiaプロジェクト/コード/全体/CDTXMania.cs

index 6229352..8315c36 100644 (file)
@@ -886,14 +886,12 @@ namespace DTXMania
                                basePlayPosition = n発声位置;\r
                                ms = n発声時刻ms;\r
                                dbBarLength = db実数値;\r
-                               return;\r
                        }\r
                        else if (this[Ech定義.BPM])\r
                        {\r
                                basePlayPosition = n発声位置;\r
                                ms = n発声時刻ms;\r
                                bpm = basebpm + n整数値;\r
-                               return;\r
                        }\r
                        else if (this[Ech定義.BPMEx])\r
                        {\r
@@ -903,7 +901,6 @@ namespace DTXMania
                                {\r
                                        bpm = ((listBPM[n整数値_内部番号].n表記上の番号 == 0) ? 0.0 : basebpm) + listBPM[n整数値_内部番号].dbBPM値;\r
                                }\r
-                               return;\r
                        }\r
                        else if (bMovie)\r
                        {\r
@@ -913,7 +910,6 @@ namespace DTXMania
                                        int num22 = ms + ((int)(((0x271 * ((n発声位置 + listAVIPAN[n整数値].n移動時間ct) - basePlayPosition)) * dbBarLength) / bpm));\r
                                        n総移動時間 = num22 - num21;\r
                                }\r
-                               return;\r
                        }\r
                        else if (bBGALayer)\r
                        {\r
@@ -1156,7 +1152,9 @@ namespace DTXMania
                public CChip(int playPosition, double phraseLengthFactor, Ech定義 channel)\r
                        : this()\r
                {\r
-\r
+                       n発声位置 = playPosition;\r
+                       db実数値 = phraseLengthFactor;\r
+                       eチャンネル番号 = channel;\r
                }\r
 \r
                public CChip(Ech定義 channel)\r
@@ -1247,9 +1245,6 @@ namespace DTXMania
                        {\r
                                if (this.rAVI != null && this.rAVI.avi != null)\r
                                {\r
-                                       // int dwRate = (int) this.rAVI.avi.dwレート;\r
-                                       // int dwScale = (int) this.rAVI.avi.dwスケール;\r
-                                       // (int) ( 1000.0f * dwScale / dwRate * this.rAVI.avi.GetMaxFrameCount() );\r
                                        nDuration = this.rAVI.avi.GetDuration();\r
                                }\r
                        }\r
@@ -1319,15 +1314,6 @@ namespace DTXMania
                        bool bGtBsB = bGuitarBass_B;\r
                        bool bGtBsW = bGuitarBass_Wailing;\r
                        bool bGtBsO = bGuitarBass_Open;\r
-                       //if ( (\r
-                       //        ( ( pChip.e楽器パート == E楽器パート.DRUMS ) && bIsAutoPlay[ this.nチャンネル0Atoレーン07[ pChip.nチャンネル番号 - 0x11 ] ] ) ||\r
-                       //        ( ( pChip.e楽器パート == E楽器パート.GUITAR ) && bIsAutoPlay.Guitar ) ) ||\r
-                       //        ( ( pChip.e楽器パート == E楽器パート.BASS ) && bIsAutoPlay.Bass )\r
-                       //  )\r
-                       ////                            if ((pChip.e楽器パート == E楽器パート.DRUMS) && bIsAutoPlay[this.nチャンネル0Atoレーン07[pChip.nチャンネル番号 - 0x11]])\r
-                       //{\r
-                       //    bPChipIsAutoPlay = true;\r
-                       //}\r
                        if (bDrums可視チップ)\r
                        {\r
                                if (bIsAutoPlay[CStage演奏画面共通.nチャンネル0Atoレーン07[eチャンネル番号 - Ech定義.HiHatClose]])\r
index 32e66ed..1fdeef4 100644 (file)
@@ -2598,10 +2598,13 @@ namespace DTXMania
                                this.bチップがある.Bass |= chip.bBass可視チップ;\r
                                this.bチップがある.OpenBass |= chip[Ech定義.Bass_Open];\r
                                this.bチップがある.BGA |= chip.bBGALayer;\r
-                               this.bチップがある.Movie |= chip[Ech定義.Movie] | chip[Ech定義.MovieFull];\r
-                               if (CDTXMania.Instance.ConfigIni.bForceAVIFullscreen || chip[Ech定義.MovieFull])\r
+                               this.bチップがある.Movie |= chip.bMovie;\r
+                               if (chip.bMovie)\r
                                {\r
-                                       this.bMovieをFullscreen再生する = true;\r
+                                       if (chip[Ech定義.MovieFull] || CDTXMania.Instance.ConfigIni.bForceAVIFullscreen)\r
+                                       {\r
+                                               this.bMovieをFullscreen再生する = true;\r
+                                       }\r
                                }\r
 \r
                                // 空打ちチップを変換する。\r
index 417dbb8..f019929 100644 (file)
@@ -414,10 +414,7 @@ namespace DTXMania
                                                        CDTXMania.Instance.DTX.tギターとベースのランダム化(E楽器パート.GUITAR, CDTXMania.Instance.ConfigIni.eRandom.Guitar);\r
                                                        CDTXMania.Instance.DTX.tギターとベースのランダム化(E楽器パート.BASS, CDTXMania.Instance.ConfigIni.eRandom.Bass);\r
 \r
-                                                       if (CDTXMania.Instance.ConfigIni.bギタレボモード)\r
-                                                               CDTXMania.Instance.stage演奏ギター画面.On活性化();\r
-                                                       else\r
-                                                               CDTXMania.Instance.stage演奏ドラム画面.On活性化();\r
+                                                       CDTXMania.Instance.stage演奏画面.On活性化();\r
 \r
                                                        span = (TimeSpan)(DateTime.Now - timeBeginLoadWAV);\r
                                                        Trace.TraceInformation("WAV/譜面後処理時間({0,4}):  {1}", (CDTXMania.Instance.DTX.listBMP.Count + CDTXMania.Instance.DTX.listBMPTEX.Count + CDTXMania.Instance.DTX.listAVI.Count), span.ToString());\r
index e13ebde..8326050 100644 (file)
@@ -45,7 +45,6 @@ namespace DTXMania
                        {\r
                                if (this.tx描画用 != null && (this.tx描画用.szテクスチャサイズ.Width != width || this.tx描画用.szテクスチャサイズ.Height != height))\r
                                {\r
-                                       //Debug.WriteLine( "orgW=" + this.tx描画用.szテクスチャサイズ.Width + ", W=" + width + ", orgH=" + this.tx描画用.szテクスチャサイズ.Height + ", H=" + height );\r
                                        this.tx描画用.Dispose();\r
                                        this.tx描画用 = null;\r
                                }\r
index e828860..fd0ffe5 100644 (file)
@@ -112,6 +112,7 @@ namespace DTXMania
                        private int guitar;\r
                        private int bass;\r
                }\r
+\r
                public C演奏判定ライン座標共通 演奏判定ライン座標\r
                {\r
                        get;\r
@@ -136,7 +137,6 @@ namespace DTXMania
                protected CTexture txCOMBOドラム;\r
 \r
                // 内部クラス\r
-\r
                protected class CSTATUS\r
                {\r
                        public CSTAT Bass = new CSTAT();\r
@@ -192,9 +192,7 @@ namespace DTXMania
                        }\r
                }\r
 \r
-\r
                // コンストラクタ\r
-\r
                public CAct演奏Combo共通()\r
                {\r
                        this.b活性化してない = true;\r
@@ -205,10 +203,8 @@ namespace DTXMania
                        演奏判定ライン座標 = new C演奏判定ライン座標共通();\r
                }\r
 \r
-\r
                // メソッド\r
-\r
-               protected virtual void tコンボ表示_ドラム(int nCombo値, int nジャンプインデックス)\r
+               private void tコンボ表示_ドラム(int nCombo値, int nジャンプインデックス)\r
                {\r
                        #region [ 事前チェック。]\r
                        //-----------------\r
@@ -323,14 +319,45 @@ namespace DTXMania
                        //-----------------\r
                        #endregion\r
                }\r
-               protected virtual void tコンボ表示_ギター(int nCombo値, int nジャンプインデックス)\r
-               {\r
-               }\r
-               protected virtual void tコンボ表示_ベース(int nCombo値, int nジャンプインデックス)\r
-               {\r
-               }\r
-               protected void tコンボ表示_ギター(int nCombo値, int n表示中央X, int n表示中央Y, int nジャンプインデックス)\r
+               protected void tコンボ表示_ギター(int nCombo値, int nジャンプインデックス)\r
                {\r
+                       int x, y;\r
+                       if (CDTXMania.Instance.ConfigIni.bギタレボモード)\r
+                       {\r
+                               x = (int)(230 * Scale.X);\r
+                               y = CDTXMania.Instance.ConfigIni.bReverse.Guitar ? 0x103 : 150;\r
+                               y = (int)(y * Scale.Y);\r
+                               if (txCOMBOギター != null)\r
+                               {\r
+                                       txCOMBOギター.n透明度 = 0xff;\r
+                               }\r
+                       }\r
+                       else\r
+                       {\r
+                               if (CDTXMania.Instance.DTX.bチップがある.Bass || CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Center)\r
+                               {\r
+                                       x = (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? 1638 : 1567 + 5;\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 (txCOMBOギター != null)\r
+                                       {\r
+                                               txCOMBOギター.n透明度 = 120;\r
+                                       }\r
+                               }\r
+                               else\r
+                               {\r
+                                       x = 1344;\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 (txCOMBOギター != null)\r
+                                       {\r
+                                               txCOMBOギター.n透明度 = 0xff;\r
+                                       }\r
+                               }\r
+                       }\r
+                       int n表示中央X = x;\r
+                       int n表示中央Y = y;\r
+\r
                        #region [ 事前チェック。]\r
                        //-----------------\r
                        if (((E判定文字表示位置)CDTXMania.Instance.ConfigIni.判定文字表示位置.Guitar) == E判定文字表示位置.表示OFF)\r
@@ -342,8 +369,33 @@ namespace DTXMania
                        #endregion\r
                        tコンボ表示_ギターベース(nCombo値, n表示中央X, n表示中央Y, nジャンプインデックス);\r
                }\r
-               protected void tコンボ表示_ベース(int nCombo値, int n表示中央X, int n表示中央Y, int nジャンプインデックス)\r
+               protected void tコンボ表示_ベース(int nCombo値, int nジャンプインデックス)\r
                {\r
+                       int x, y;\r
+\r
+                       if (CDTXMania.Instance.ConfigIni.bギタレボモード)\r
+                       {\r
+                               x = (int)(410 * Scale.X);\r
+                               y = CDTXMania.Instance.ConfigIni.bReverse.Bass ? 0x103 : 150;\r
+                               y = (int)(y * Scale.Y);\r
+                               if (txCOMBOギター != null)\r
+                               {\r
+                                       txCOMBOギター.n透明度 = 0xff;\r
+                               }\r
+                       }\r
+                       else\r
+                       {\r
+                               x = (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? 1311 : 1311 - 994 + 5;\r
+                               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 (txCOMBOギター != null)\r
+                               {\r
+                                       txCOMBOギター.n透明度 = 120;\r
+                               }\r
+                       }\r
+                       int n表示中央X = x;\r
+                       int n表示中央Y = y;\r
+\r
                        #region [ 事前チェック。]\r
                        //-----------------\r
                        if (((E判定文字表示位置)CDTXMania.Instance.ConfigIni.判定文字表示位置.Bass) == E判定文字表示位置.表示OFF)\r
@@ -445,7 +497,6 @@ namespace DTXMania
 \r
 \r
                // CActivity 実装\r
-\r
                public override void On活性化()\r
                {\r
                        this.n現在のコンボ数 = new STCOMBO() { act = this };\r
index 4317f06..0de7d05 100644 (file)
@@ -3,34 +3,25 @@ using System.Collections.Generic;
 using System.Text;\r
 using System.Drawing;\r
 using FDK;\r
+using SlimDX;\r
 \r
 namespace DTXMania\r
 {\r
-       internal abstract class CAct演奏Danger共通 : CActivity\r
+       internal class CAct演奏Danger共通 : CActivity\r
        {\r
-               // コンストラクタ\r
-\r
-               public CAct演奏Danger共通()\r
-               {\r
-                       base.b活性化してない = true;\r
-               }\r
-\r
-\r
                // CActivity 実装\r
-\r
                public override void On活性化()\r
                {\r
                        for (int i = 0; i < 3; i++)\r
                        {\r
                                this.bDanger中[i] = false;\r
                        }\r
-                       //                      this.ct移動用 = new CCounter();\r
-                       //                      this.ct透明度用 = new CCounter();\r
                        this.ct移動用 = null;\r
                        this.ct透明度用 = null;\r
 \r
                        base.On活性化();\r
                }\r
+\r
                public override void On非活性化()\r
                {\r
                        this.ct移動用 = null;\r
@@ -38,6 +29,32 @@ namespace DTXMania
                        base.On非活性化();\r
                }\r
 \r
+               public override void OnManagedリソースの作成()\r
+               {\r
+                       if (base.b活性化してる)\r
+                       {\r
+                               if (!CDTXMania.Instance.ConfigIni.bギタレボモード)\r
+                               {\r
+                                       this.txDANGER = TextureFactory.tテクスチャの生成Af(CSkin.Path(@"Graphics\ScreenPlayDrums danger.png"), false);\r
+                               }\r
+                               else\r
+                               {\r
+                                       this.txDANGER = TextureFactory.tテクスチャの生成Af(CSkin.Path(@"Graphics\ScreenPlayGuitar danger.png"), false);\r
+                               }\r
+                               base.OnManagedリソースの作成();\r
+                       }\r
+               }\r
+\r
+\r
+               public override void OnManagedリソースの解放()\r
+               {\r
+                       if (base.b活性化してる)\r
+                       {\r
+                               TextureFactory.tテクスチャの解放(ref this.txDANGER);\r
+                               base.OnManagedリソースの解放();\r
+                       }\r
+               }\r
+\r
                /// <summary>\r
                /// DANGER描画\r
                /// </summary>\r
@@ -45,19 +62,91 @@ namespace DTXMania
                /// <param name="bIsDamgerGuitar">GuitarがDangerならtrue</param>\r
                /// <param name="bIsDangerBass">BassがDangerならtrue</param>\r
                /// <returns></returns>\r
-               public abstract int t進行描画(bool bIsDangerDrums, bool bIsDamgerGuitar, bool bIsDangerBass);\r
-\r
+               public int t進行描画(STDGBVALUE<bool> isDanger)\r
+               {\r
+                       if (!base.b活性化してない)\r
+                       {\r
+                               if (!CDTXMania.Instance.ConfigIni.bギタレボモード)\r
+                               {\r
+                                       if (!isDanger.Drums)\r
+                                       {\r
+                                               this.bDanger中[(int)E楽器パート.DRUMS] = false;\r
+                                               return 0;\r
+                                       }\r
+                                       if (!this.bDanger中[(int)E楽器パート.DRUMS])\r
+                                       {\r
+                                               this.ct移動用 = new CCounter(0, 0x7f, 7, CDTXMania.Instance.Timer);\r
+                                               this.ct透明度用 = new CCounter(0, 0x167, 4, CDTXMania.Instance.Timer);\r
+                                       }\r
+                                       this.bDanger中[(int)E楽器パート.DRUMS] = isDanger.Drums;\r
+                                       this.ct移動用.t進行Loop();\r
+                                       this.ct透明度用.t進行Loop();\r
+                                       if (!this.bDanger中[(int)E楽器パート.DRUMS])\r
+                                       {\r
+                                               return 0;\r
+                                       }\r
+                                       int num = this.ct透明度用.n現在の値;\r
+                                       if (this.txDANGER != null)\r
+                                       {\r
+                                               this.txDANGER.n透明度 = 60 + ((num < 180) ? num : (360 - num));\r
+                                       }\r
+                                       num = this.ct移動用.n現在の値;\r
+                                       int num2 = CDTXMania.Instance.ConfigIni.bReverse.Drums ? (0x7f - num) : num;\r
+                                       float[,] n基準X座標 = new float[,] { { 38, 298 }, { 211f, 405.5f } };\r
+                                       for (int i = -1; i < 4; i++)\r
+                                       {\r
+                                               if (this.txDANGER != null)\r
+                                               {\r
+                                                       float d = (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? 1.0f : 0.75f;\r
+                                                       this.txDANGER.vc拡大縮小倍率 = new Vector3(d, d, d);\r
+                                                       this.txDANGER.t2D描画(CDTXMania.Instance.Device, n基準X座標[(CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left ? 0 : 1), 0] * Scale.X, ((i * 0x80) + num2) * Scale.Y);\r
+                                                       this.txDANGER.t2D描画(CDTXMania.Instance.Device, n基準X座標[(CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left ? 0 : 1), 1] * Scale.X, ((i * 0x80) + num2) * Scale.Y);\r
+                                               }\r
+                                       }\r
+                               }\r
+                               else\r
+                               {\r
+                                       if (this.ct透明度用 == null)\r
+                                       {\r
+                                               this.ct透明度用 = new CCounter(0, n波長, 8, CDTXMania.Instance.Timer);\r
+                                       }\r
+                                       if (this.ct透明度用 != null)\r
+                                       {\r
+                                               this.ct透明度用.t進行Loop();\r
+                                       }\r
+                                       for (E楽器パート ePart = E楽器パート.GUITAR; ePart <= E楽器パート.BASS; ePart++)\r
+                                       {\r
+                                               if (isDanger[(int)ePart])\r
+                                               {\r
+                                                       if (this.txDANGER != null)\r
+                                                       {\r
+                                                               int d = this.ct透明度用.n現在の値;\r
+                                                               this.txDANGER.n透明度 = n透明度MIN + ((d < n波長 / 2) ?\r
+                                                                       (n透明度MAX - n透明度MIN) * d / (n波長 / 2) :\r
+                                                                       (n透明度MAX - n透明度MIN) * (n波長 - d) / (n波長 / 2));               // 60-200\r
+                                                               this.txDANGER.t2D描画(\r
+                                                                       CDTXMania.Instance.Device,\r
+                                                                       nGaugeX[(int)ePart] * Scale.X,\r
+                                                                       0\r
+                                                               );\r
+                                                       }\r
+                                               }\r
 \r
+                                       }\r
+                               }\r
+                       }\r
+                       return 0;\r
+               }\r
 \r
-               // その他\r
+               private CTextureAf txDANGER;\r
 \r
-               #region [ private ]\r
-               //-----------------\r
                protected bool[] bDanger中 = { false, false, false };\r
                protected CCounter ct移動用;\r
                protected CCounter ct透明度用;\r
-               //-----------------\r
-               #endregion\r
 \r
+               private const int n波長 = 40;\r
+               private const int n透明度MAX = 180;\r
+               private const int n透明度MIN = 20;\r
+               private readonly int[] nGaugeX = { 0, 168, 328 };\r
        }\r
 }\r
index 2b7fce4..e33fb6e 100644 (file)
@@ -2,13 +2,13 @@
 using System.Collections.Generic;\r
 using System.Text;\r
 using FDK;\r
+using System.Drawing;\r
 \r
 namespace DTXMania\r
 {\r
        internal class CAct演奏RGB共通 : CActivity\r
        {\r
                // プロパティ\r
-\r
                protected bool[] b押下状態 = new bool[6];\r
                protected CTexture txRGB;\r
 \r
@@ -20,9 +20,7 @@ namespace DTXMania
                        base.b活性化してない = true;\r
                }\r
 \r
-\r
                // メソッド\r
-\r
                public void Push(int nLane)\r
                {\r
                        this.b押下状態[nLane] = true;\r
@@ -30,7 +28,6 @@ namespace DTXMania
 \r
 \r
                // CActivity 実装\r
-\r
                public override void On活性化()\r
                {\r
                        for (int i = 0; i < 6; i++)\r
@@ -56,8 +53,143 @@ namespace DTXMania
                        }\r
                }\r
 \r
-               public virtual int t進行描画(C演奏判定ライン座標共通 演奏判定ライン座標共通)\r
+               public virtual int t進行描画(C演奏判定ライン座標共通 演奏判定ライン座標)\r
                {\r
+                       if (!base.b活性化してない)\r
+                       {\r
+                               if (CDTXMania.Instance.ConfigIni.bギタレボモード)\r
+                               {\r
+                                       if (!CDTXMania.Instance.ConfigIni.bGuitar有効)\r
+                                       {\r
+                                               return 0;\r
+                                       }\r
+                                       if (CDTXMania.Instance.DTX.bチップがある.Guitar)\r
+                                       {\r
+                                               for (int j = 0; j < 3; j++)\r
+                                               {\r
+                                                       int index = CDTXMania.Instance.ConfigIni.bLeft.Guitar ? (2 - j) : j;\r
+                                                       Rectangle rectangle = new Rectangle(\r
+                                                               (int)(index * 0x18 * Scale.X),\r
+                                                               0,\r
+                                                               (int)(0x18 * Scale.X),\r
+                                                               (int)(0x20 * Scale.Y)\r
+                                                       );\r
+                                                       if (b押下状態[index])\r
+                                                       {\r
+                                                               rectangle.Y += (int)(0x20 * Scale.Y);\r
+                                                       }\r
+                                                       if (txRGB != null)\r
+                                                       {\r
+                                                               int y = 演奏判定ライン座標.n演奏RGBボタンY座標(E楽器パート.GUITAR, true, CDTXMania.Instance.ConfigIni.bReverse.Guitar);\r
+                                                               txRGB.t2D描画(\r
+                                                                       CDTXMania.Instance.Device,\r
+                                                                       (0x1f + (j * 0x24)) * Scale.X,\r
+                                                                       y,\r
+                                                                       rectangle\r
+                                                               );\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                                       if (CDTXMania.Instance.DTX.bチップがある.Bass)\r
+                                       {\r
+                                               for (int k = 0; k < 3; k++)\r
+                                               {\r
+                                                       int index = CDTXMania.Instance.ConfigIni.bLeft.Bass ? (2 - k) : k;\r
+                                                       Rectangle rectangle2 = new Rectangle(\r
+                                                               (int)(index * 0x18 * Scale.X),\r
+                                                               0,\r
+                                                               (int)(0x18 * Scale.X),\r
+                                                               (int)(0x20 * Scale.Y)\r
+                                                       );\r
+                                                       if (b押下状態[index + 3])\r
+                                                       {\r
+                                                               rectangle2.Y += (int)(0x20 * Scale.Y);\r
+                                                       }\r
+                                                       if (txRGB != null)\r
+                                                       {\r
+                                                               int y = 演奏判定ライン座標.n演奏RGBボタンY座標(E楽器パート.BASS, true, CDTXMania.Instance.ConfigIni.bReverse.Bass);\r
+                                                               txRGB.t2D描画(\r
+                                                                       CDTXMania.Instance.Device,\r
+                                                                       (0x1e5 + (k * 0x24)) * Scale.X,\r
+                                                                       y,\r
+                                                                       rectangle2\r
+                                                               );\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                                       for (int i = 0; i < 6; i++)\r
+                                       {\r
+                                               b押下状態[i] = false;\r
+                                       }\r
+                               }\r
+                               else\r
+                               {\r
+                                       if (!CDTXMania.Instance.ConfigIni.bGuitar有効)\r
+                                       {\r
+                                               return 0;\r
+                                       }\r
+                                       if (CDTXMania.Instance.DTX.bチップがある.Guitar)\r
+                                       {\r
+                                               int x = (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? 1527 : 1456;\r
+                                               for (int i = 0; i < 3; i++)\r
+                                               {\r
+                                                       int index = CDTXMania.Instance.ConfigIni.bLeft.Guitar ? (2 - i) : i;\r
+                                                       Rectangle rc = new Rectangle(\r
+                                                               index * 72,\r
+                                                               0,\r
+                                                               72,\r
+                                                               72\r
+                                                       );\r
+                                                       if (b押下状態[index])\r
+                                                       {\r
+                                                               rc.Y += 72;\r
+                                                       }\r
+                                                       if (txRGB != null)\r
+                                                       {\r
+                                                               int y = 演奏判定ライン座標.n演奏RGBボタンY座標(E楽器パート.GUITAR, false, CDTXMania.Instance.ConfigIni.bReverse.Guitar);\r
+                                                               txRGB.t2D描画(\r
+                                                                       CDTXMania.Instance.Device,\r
+                                                                       x + (i * 26 * 3),\r
+                                                                       y,\r
+                                                                       rc\r
+                                                               );\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                                       if (CDTXMania.Instance.DTX.bチップがある.Bass)\r
+                                       {\r
+                                               for (int i = 0; i < 3; i++)\r
+                                               {\r
+                                                       int x = (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? 1200 : 206;\r
+                                                       int index = CDTXMania.Instance.ConfigIni.bLeft.Bass ? (2 - i) : i;\r
+                                                       Rectangle rc = new Rectangle(\r
+                                                               index * 72,\r
+                                                               0,\r
+                                                               72,\r
+                                                               72\r
+                                                       );\r
+                                                       if (b押下状態[index + 3])\r
+                                                       {\r
+                                                               rc.Y += 72;\r
+                                                       }\r
+                                                       if (txRGB != null)\r
+                                                       {\r
+                                                               int y = 演奏判定ライン座標.n演奏RGBボタンY座標(E楽器パート.BASS, false, CDTXMania.Instance.ConfigIni.bReverse.Bass);\r
+                                                               txRGB.t2D描画(\r
+                                                                       CDTXMania.Instance.Device,\r
+                                                                       x + (i * 26 * 3),\r
+                                                                       y,\r
+                                                                       rc\r
+                                                               );\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                                       for (int i = 0; i < 6; i++)\r
+                                       {\r
+                                               b押下状態[i] = false;\r
+                                       }\r
+                               }\r
+                       }\r
                        return 0;\r
                }\r
        }\r
index c80028a..56c1c6f 100644 (file)
@@ -6,31 +6,105 @@ using FDK;
 \r
 namespace DTXMania\r
 {\r
-       internal abstract class CAct演奏WailingBonus共通 : CActivity\r
+       internal class CAct演奏WailingBonus共通 : CActivity\r
        {\r
-               // メソッド\r
-\r
+               // Constructor\r
                public CAct演奏WailingBonus共通()\r
                {\r
+                       for (int i = 0; i < 3; ++i)\r
+                       {\r
+                               for (int j = 0; j < 4; ++j)\r
+                               {\r
+                                       ct進行用[i, j] = null;\r
+                               }\r
+                       }\r
                        base.b活性化してない = true;\r
                }\r
 \r
-               public void Start(E楽器パート part)\r
+               // Method\r
+               public void Start(E楽器パート part, CChip r歓声Chip = null)\r
                {\r
-                       this.Start(part, null);\r
+                       if (CDTXMania.Instance.ConfigIni.bギタレボモード)\r
+                       {\r
+                               if (part != E楽器パート.DRUMS)\r
+                               {\r
+                                       for (int i = 0; i < 4; i++)\r
+                                       {\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
+                                                       {\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
+                                                                       return;\r
+                                                               }\r
+                                                               CDTXMania.Instance.Skin.sound歓声音.n位置_次に鳴るサウンド = (part == E楽器パート.GUITAR) ? -50 : 50;\r
+                                                               CDTXMania.Instance.Skin.sound歓声音.t再生する();\r
+                                                               return;\r
+                                                       }\r
+                                                       break;\r
+                                               }\r
+                                       }\r
+                               }\r
+                       }\r
+                       else\r
+                       {\r
+                               if ((part == E楽器パート.GUITAR) || (part == E楽器パート.BASS))\r
+                               {\r
+                                       int num = (int)part;\r
+                                       for (int i = 0; i < 4; i++)\r
+                                       {\r
+                                               if (this.ct進行用[num, i].b停止中)\r
+                                               {\r
+                                                       this.ct進行用[num, i] = new CCounter(0, 300, 2, CDTXMania.Instance.Timer);\r
+                                                       if (CDTXMania.Instance.ConfigIni.b歓声を発声する)\r
+                                                       {\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
+                                                                       return;\r
+                                                               }\r
+                                                               CDTXMania.Instance.Skin.sound歓声音.t再生する();\r
+                                                               return;\r
+                                                       }\r
+                                                       break;\r
+                                               }\r
+                                       }\r
+                               }\r
+                       }\r
                }\r
-               public abstract void Start(E楽器パート part, CChip r歓声Chip);\r
-\r
 \r
 \r
                // CActivity 実装\r
-\r
                public override void On活性化()\r
                {\r
+                       if (!CDTXMania.Instance.ConfigIni.bギタレボモード)\r
+                       {\r
+                               for (int i = 0; i < 3; i++)\r
+                               {\r
+                                       for (int j = 0; j < 4; j++)\r
+                                       {\r
+                                               this.ct進行用[i, j] = new CCounter();\r
+                                       }\r
+                               }\r
+                       }\r
                        base.On活性化();\r
                }\r
+\r
                public override void On非活性化()\r
                {\r
+                       if (!CDTXMania.Instance.ConfigIni.bギタレボモード)\r
+                       {\r
+                               for (int i = 0; i < 3; i++)\r
+                               {\r
+                                       for (int j = 0; j < 4; j++)\r
+                                       {\r
+                                               this.ct進行用[i, j] = null;\r
+                                       }\r
+                               }\r
+                       }\r
                        base.On非活性化();\r
                }\r
 \r
@@ -51,14 +125,167 @@ namespace DTXMania
                        }\r
                }\r
 \r
+               public override int On進行描画()\r
+               {\r
+                       if (!base.b活性化してない)\r
+                       {\r
+                               if (CDTXMania.Instance.ConfigIni.bギタレボモード)\r
+                               {\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
+                                               {\r
+                                                       if ((this.ct進行用[(int)e楽器パート, k] != null) && !this.ct進行用[(int)e楽器パート, k].b停止中)\r
+                                                       {\r
+                                                               if (this.ct進行用[(int)e楽器パート, k].b終了値に達した)\r
+                                                               {\r
+                                                                       this.ct進行用[(int)e楽器パート, k].t停止();\r
+                                                               }\r
+                                                               else\r
+                                                               {\r
+                                                                       this.ct進行用[(int)e楽器パート, k].t進行();\r
+                                                               }\r
+                                                       }\r
+                                               }\r
+                                       }\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
+                                               {\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 num6 = 0;\r
+                                                               int num7 = 0;\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
+                                                               }\r
+                                                               else if (num8 < 150)\r
+                                                               {\r
+                                                                       num6 = (int)(64.0 + ((150 - num8) * Math.Sin((Math.PI * ((num8 - 100) % 0x19)) / 25.0)));\r
+                                                               }\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
+                                                               }\r
+                                                               if (CDTXMania.Instance.ConfigIni.bReverse[(int)e楽器パート2])\r
+                                                               {\r
+                                                                       num6 = (0x199 - num6) - 0xf4;\r
+                                                               }\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
+                                                               }\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
+                                                               {\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
-               // その他\r
+                                                                       this.txWailingBonus.t2D描画(\r
+                                                                               CDTXMania.Instance.Device,\r
+                                                                               x * Scale.X,\r
+                                                                               (num6 + num7) * Scale.Y,\r
+                                                                               rectangle\r
+                                                                       );\r
+                                                               }\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                               }\r
+                               else\r
+                               {\r
+                                       for (int i = 0; i < 2; i++)\r
+                                       {\r
+                                               E楽器パート e楽器パート = (i == 0) ? E楽器パート.GUITAR : E楽器パート.BASS;\r
+                                               for (int j = 0; j < 4; j++)\r
+                                               {\r
+                                                       if (!this.ct進行用[(int)e楽器パート, j].b停止中)\r
+                                                       {\r
+                                                               if (this.ct進行用[(int)e楽器パート, j].b終了値に達した)\r
+                                                               {\r
+                                                                       this.ct進行用[(int)e楽器パート, j].t停止();\r
+                                                               }\r
+                                                               else\r
+                                                               {\r
+                                                                       this.ct進行用[(int)e楽器パート, j].t進行();\r
+                                                                       int x = ((e楽器パート == E楽器パート.GUITAR) ? 1521 + 234 : 1194 + 234);\r
+                                                                       if (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Center)\r
+                                                                       {\r
+                                                                               x -= (e楽器パート == E楽器パート.GUITAR) ? 71 : 994;\r
+                                                                       }\r
+                                                                       int num4 = 0;\r
+                                                                       int num5 = 0;\r
+                                                                       int num6 = this.ct進行用[(int)e楽器パート, j].n現在の値;\r
+                                                                       if (num6 < 100)\r
+                                                                       {\r
+                                                                               num4 = (int)(64.0 + (290.0 * Math.Cos(Math.PI / 2 * (((float)num6) / 100f))));\r
+                                                                       }\r
+                                                                       else if (num6 < 150)\r
+                                                                       {\r
+                                                                               num4 = (int)(64.0 + ((150 - num6) * Math.Sin((Math.PI * ((num6 - 100) % 0x19)) / 25.0)));\r
+                                                                       }\r
+                                                                       else if (num6 < 200)\r
+                                                                       {\r
+                                                                               num4 = 0x40;\r
+                                                                       }\r
+                                                                       else\r
+                                                                       {\r
+                                                                               num4 = (int)(64f - (((float)(290 * (num6 - 200))) / 100f));\r
+                                                                       }\r
+                                                                       if (CDTXMania.Instance.ConfigIni.bReverse[(int)e楽器パート])\r
+                                                                       {\r
+                                                                               num4 = (0x163 - num4) - 0xf4;\r
+                                                                       }\r
+                                                                       Rectangle rectangle = new Rectangle(0, 0, 0x1a, 0x7a * 2);\r
+                                                                       if ((0x163 - num4) < rectangle.Bottom)\r
+                                                                       {\r
+                                                                               rectangle.Height = (0x163 - num4) - rectangle.Top;\r
+                                                                       }\r
+                                                                       if (num4 < 0)\r
+                                                                       {\r
+                                                                               rectangle.Y = -num4;\r
+                                                                               num5 = -num4;\r
+                                                                       }\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
+                                                                               this.txWailingBonus.t2D描画(\r
+                                                                                       CDTXMania.Instance.Device,\r
+                                                                                       x,\r
+                                                                                       ((((e楽器パート == E楽器パート.GUITAR) ? 0x39 : 0x39) + num4) + num5) * Scale.Y,\r
+                                                                                       rectangle\r
+                                                                               );\r
+                                                                       }\r
+                                                               }\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                               }\r
+                       }\r
+                       return 0;\r
+               }\r
 \r
-               #region [ private ]\r
-               //-----------------\r
                protected CCounter[,] ct進行用 = new CCounter[3, 4];\r
                protected CTextureAf txWailingBonus;\r
-               //-----------------\r
-               #endregion\r
        }\r
 }\r
index f4be210..34c8596 100644 (file)
@@ -20,12 +20,9 @@ namespace DTXMania
                // コンストラクタ\r
                public CAct演奏ゲージ共通()\r
                {\r
-                       //actLVLNFont = new CActLVLNFont();             // On活性化()に移動\r
-                       //actLVLNFont.On活性化();\r
                }\r
 \r
                // CActivity 実装\r
-\r
                public override void On活性化()\r
                {\r
                        actLVLNFont = new CActLVLNFont();\r
@@ -34,6 +31,15 @@ namespace DTXMania
                }\r
                public override void On非活性化()\r
                {\r
+                       this.ct本体振動 = null;\r
+                       this.ct本体移動 = null;\r
+                       if (!CDTXMania.Instance.ConfigIni.bギタレボモード)\r
+                       {\r
+                               for (int i = 0; i < 24; i++)\r
+                               {\r
+                                       this.st白い星[i].ct進行 = null;\r
+                               }\r
+                       }\r
                        actLVLNFont.On非活性化();\r
                        actLVLNFont = null;\r
                        base.On非活性化();\r
@@ -45,22 +51,26 @@ namespace DTXMania
                const double GAUGE_ZERO = 0.0;\r
                const double GAUGE_DANGER = 0.3;\r
 \r
-               public bool bRisky                                                      // Riskyモードか否か\r
+               // Riskyモードか否か\r
+               public bool bRisky\r
                {\r
                        get;\r
                        private set;\r
                }\r
-               public int nRiskyTimes_Initial                          // Risky初期値\r
+               // Risky初期値\r
+               public int nRiskyTimes_Initial\r
                {\r
                        get;\r
                        private set;\r
                }\r
-               public int nRiskyTimes                                          // 残Miss回数\r
+               // 残Miss回数\r
+               public int nRiskyTimes\r
                {\r
                        get;\r
                        private set;\r
                }\r
-               public bool IsFailed(E楽器パート part)     // 閉店状態になったかどうか\r
+               // 閉店状態になったかどうか\r
+               public bool IsFailed(E楽器パート part)\r
                {\r
                        if (bRisky)\r
                        {\r
@@ -68,7 +78,8 @@ namespace DTXMania
                        }\r
                        return this.db現在のゲージ値[(int)part] <= GAUGE_MIN;\r
                }\r
-               public bool IsDanger(E楽器パート part)     // DANGERかどうか\r
+               // DANGERかどうか\r
+               public bool IsDanger(E楽器パート part)\r
                {\r
                        if (bRisky)\r
                        {\r
@@ -86,7 +97,8 @@ namespace DTXMania
                        return (this.db現在のゲージ値[(int)part] <= GAUGE_DANGER);\r
                }\r
 \r
-               public double dbゲージ値    // Drums専用\r
+               // Drums専用\r
+               public double dbゲージ値\r
                {\r
                        get\r
                        {\r
@@ -102,7 +114,6 @@ namespace DTXMania
                        }\r
                }\r
 \r
-\r
                /// <summary>\r
                /// ゲージの初期化\r
                /// </summary>\r
@@ -130,11 +141,448 @@ namespace DTXMania
                        }\r
                }\r
 \r
+               public override int On進行描画()\r
+               {\r
+                       if (!base.b活性化してない)\r
+                       {\r
+                               if (CDTXMania.Instance.ConfigIni.bギタレボモード)\r
+                               {\r
+                                       int num;\r
+                                       int num9;\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
+                                               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
+                                       {\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
+                                       }\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
+                                               {\r
+                                                       if (this.db現在のゲージ値.Guitar == 1.0)\r
+                                                       {\r
+                                                               rectangle = new Rectangle(0x1b, 0, 0x1b, 0x10);\r
+                                                       }\r
+                                                       else\r
+                                                       {\r
+                                                               rectangle = new Rectangle(0, 0, 0x1b, 0x10);\r
+                                                       }\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
+                                                       {\r
+                                                               int num6 = (x + rectangle.Width) - (0xb2 + num);\r
+                                                               rectangle.Width -= num6;\r
+                                                       }\r
+                                                       if (rectangle.Left >= rectangle.Right)\r
+                                                       {\r
+                                                               break;\r
+                                                       }\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
+\r
+                                                               this.txゲージ.b加算合成 = false;\r
+                                                               this.txゲージ.t2D描画(\r
+                                                                       CDTXMania.Instance.Device,\r
+                                                                       x * Scale.X,\r
+                                                                       8 * Scale.Y,\r
+                                                                       rectangle1\r
+                                                               );\r
+                                                       }\r
+                                                       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
+                                               {\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
+                                               {\r
+                                                       int num8 = (x + rectangle.Width) - (0xb2 + num);\r
+                                                       rectangle.Width -= num8;\r
+                                               }\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
+                                                               x * Scale.X,\r
+                                                               8 * Scale.Y,\r
+                                                               rectangle\r
+                                                       );\r
+                                               }\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.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
+                                               }\r
+                                       }\r
+                                       #endregion\r
+\r
+                                       #region [ ベースのゲージ ]\r
+                                       if (this.db現在のゲージ値.Bass == 1.0)\r
+                                       {\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
+                                       }\r
+                                       if (num9 > 0)\r
+                                       {\r
+                                               Rectangle rectangle2;\r
+                                               int num10 = this.ct本体移動.n現在の値;\r
+                                               int num11 = (0x1cf - num9) - num10;\r
+                                               int num12 = num9 + num10;\r
+                                               while (num12 > 0)\r
+                                               {\r
+                                                       if (this.db現在のゲージ値.Bass == 1.0)\r
+                                                       {\r
+                                                               rectangle2 = new Rectangle(10, 0x30, 0x1b, 0x10);\r
+                                                       }\r
+                                                       else\r
+                                                       {\r
+                                                               rectangle2 = new Rectangle(0x25, 0x30, 0x1b, 0x10);\r
+                                                       }\r
+                                                       if (num11 < (0x1cf - num9))\r
+                                                       {\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
+                                                       {\r
+                                                               int num14 = (num11 + rectangle2.Width) - 0x1cf;\r
+                                                               rectangle2.Width -= num14;\r
+                                                       }\r
+                                                       if (rectangle2.Left >= rectangle2.Right)\r
+                                                       {\r
+                                                               break;\r
+                                                       }\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
+                                                               this.txゲージ.b加算合成 = false;\r
+                                                               this.txゲージ.t2D描画(\r
+                                                                       CDTXMania.Instance.Device,\r
+                                                                       num11 * Scale.X,\r
+                                                                       8 * Scale.Y,\r
+                                                                       rectangle3\r
+                                                               );\r
+                                                       }\r
+                                                       num12 -= rectangle2.Width;\r
+                                                       num11 += rectangle2.Width;\r
+                                               }\r
+                                               rectangle2 = new Rectangle(0, 0x20, 0x40, 0x10);\r
+                                               num11 = 0x1cf - num9;\r
+                                               if ((num11 + rectangle2.Width) > 0x1cf)\r
+                                               {\r
+                                                       int num15 = (num11 + rectangle2.Width) - 0x1cf;\r
+                                                       rectangle2.Width -= num15;\r
+                                               }\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
+                                                       this.txゲージ.t2D描画(\r
+                                                               CDTXMania.Instance.Device,\r
+                                                               num11 * Scale.X,\r
+                                                               8 * Scale.Y,\r
+                                                               rectangle2\r
+                                                       );\r
+                                               }\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.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
+                                               }\r
+                                       }\r
+                                       #endregion\r
+                               }\r
+                               else\r
+                               {\r
+                                       #region [ 初めての進行描画 ]\r
+                                       if (base.b初めての進行描画)\r
+                                       {\r
+                                               for (int k = 0; k < 0x18; k++)\r
+                                               {\r
+                                                       this.st白い星[k].x = 2 + CDTXMania.Instance.Random.Next(4);\r
+                                                       this.st白い星[k].fScale = 0.2f + (CDTXMania.Instance.Random.Next(2) * 0.05f);\r
+                                                       this.st白い星[k].ct進行 = new CCounter(0, 0x160, 8 + CDTXMania.Instance.Random.Next(4), CDTXMania.Instance.Timer);\r
+                                                       this.st白い星[k].ct進行.n現在の値 = CDTXMania.Instance.Random.Next(0x160);\r
+                                               }\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
+                                       #endregion\r
+                                       this.ct本体移動.t進行Loop();\r
+                                       this.ct本体振動.t進行Loop();\r
+\r
+                                       #region [ Risky残りMiss回数表示 ]\r
+                                       if (this.bRisky && this.actLVLNFont != null)            // #23599 2011.7.30 yyagi Risky残りMiss回数表示\r
+                                       {\r
+                                               CActLVLNFont.EFontColor efc = this.IsDanger(E楽器パート.DRUMS) ?\r
+                                                       CActLVLNFont.EFontColor.Red : CActLVLNFont.EFontColor.Yellow;\r
+                                               actLVLNFont.t文字列描画((int)(12 * Scale.X), (int)(408 * Scale.Y), nRiskyTimes.ToString(), efc, CActLVLNFont.EFontAlign.Right);\r
+                                       }\r
+                                       #endregion\r
+\r
+                                       #region [ 緑orオレンジのゲージ表示 ]\r
+                                       const double dbゲージ最大値 = 352.0 * Scale.Y;\r
+                                       int n表示するゲージの高さ = (this.dbゲージ値 == 1.0) ?\r
+                                               ((int)(dbゲージ最大値 * this.dbゲージ値)) :\r
+                                               ((int)((dbゲージ最大値 * this.dbゲージ値) + (2.0 * Math.Sin(Math.PI * 2 * (((double)this.ct本体振動.n現在の値) / 360.0)))));\r
+\r
+                                       if (n表示するゲージの高さ <= 0)\r
+                                       {\r
+                                               return 0;\r
+                                       }\r
+                                       if (this.txゲージ != null)\r
+                                       {\r
+                                               this.txゲージ.vc拡大縮小倍率 = new Vector3(1f, 1f, 1f);\r
+                                               this.txゲージ.n透明度 = 0xff;\r
+                                               this.txゲージ.b加算合成 = false;\r
+                                       }\r
+                                       int nCtゲージ内部上昇スクロール現在値 = (int)(this.ct本体移動.n現在の値 * Scale.Y);\r
+                                       int n表示ゲージ最大値 = (int)(0x195 * Scale.Y);\r
+                                       int ybar = (n表示ゲージ最大値 - n表示するゲージの高さ) - nCtゲージ内部上昇スクロール現在値;\r
+                                       int height = n表示するゲージの高さ + nCtゲージ内部上昇スクロール現在値;\r
+                                       while (height > 0)\r
+                                       {\r
+                                               Rectangle rect = (this.dbゲージ値 == 1.0) ?\r
+                                                       new Rectangle(48, 0, 48, 61) :\r
+                                                       new Rectangle(0, 0, 48, 61);\r
+                                               #region [ clipping ]\r
+                                               if (ybar < (n表示ゲージ最大値 - n表示するゲージの高さ))\r
+                                               {\r
+                                                       int d = (n表示ゲージ最大値 - n表示するゲージの高さ) - ybar;\r
+                                                       rect.Y += d;\r
+                                                       rect.Height -= d;\r
+                                                       ybar += d;\r
+                                               }\r
+                                               if ((ybar + rect.Height) > n表示ゲージ最大値)\r
+                                               {\r
+                                                       int num7 = (ybar + rect.Height) - n表示ゲージ最大値;\r
+                                                       rect.Height -= num7;\r
+                                               }\r
+                                               if (rect.Top >= rect.Bottom)\r
+                                               {\r
+                                                       break;\r
+                                               }\r
+                                               #endregion\r
+                                               if (this.txゲージ != null)\r
+                                               {\r
+                                                       this.txゲージ.t2D描画(\r
+                                                               CDTXMania.Instance.Device,\r
+                                                               6 * Scale.X,\r
+                                                               ybar,\r
+                                                               rect\r
+                                                       );\r
+                                               }\r
+                                               height -= rect.Height;\r
+                                               ybar += rect.Height;\r
+                                       }\r
+                                       #endregion\r
+                                       #region [ 光彩 ]\r
+                                       if (this.txゲージ白 != null)\r
+                                       {\r
+                                               this.txゲージ白.vc拡大縮小倍率 = new Vector3(1f, 1f, 1f);\r
+                                               this.txゲージ白.n透明度 = 180;\r
+                                               this.txゲージ白.b加算合成 = true;\r
+                                       }\r
+                                       {\r
+                                               Rectangle rect = new Rectangle(\r
+                                                       0,\r
+                                                       0,\r
+                                                       (int)(0x10 * Scale.X),\r
+                                                       (int)(0x40 * 4 * Scale.Y)\r
+                                               );\r
+                                               #region [ clipping1 ]\r
+                                               int ylight = (n表示ゲージ最大値 - n表示するゲージの高さ) + (int)(0 * 0x40 * Scale.Y);\r
+                                               if (ylight >= n表示ゲージ最大値)\r
+                                               {\r
+                                                       //break;\r
+                                               }\r
+                                               #endregion\r
+                                               else\r
+                                               {\r
+                                                       #region [ Clipping2 ]\r
+                                                       if ((ylight + rect.Height) > n表示ゲージ最大値)\r
+                                                       {\r
+                                                               int d = (ylight + rect.Height) - n表示ゲージ最大値;\r
+                                                               rect.Height -= d;\r
+                                                       }\r
+                                                       #endregion\r
+                                                       if ((rect.Top < rect.Bottom) && (this.txゲージ白 != null))\r
+                                                       {\r
+                                                               this.txゲージ白.t2D描画(\r
+                                                                       CDTXMania.Instance.Device,\r
+                                                                       (int)(6 * Scale.X),\r
+                                                                       (int)(ylight + 0.5f),\r
+                                                                       rect\r
+                                                               );\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                                       #endregion\r
+                                       #region [ ゲージ頂上の光源 ]\r
+                                       if (this.txゲージ != null)\r
+                                       {\r
+                                               //this.txゲージ.vc拡大縮小倍率 = new Vector3( 1f, 1f, 1f );\r
+                                               this.txゲージ.n透明度 = 0xff;\r
+                                               this.txゲージ.b加算合成 = false;\r
+                                       }\r
+                                       {\r
+                                               Rectangle rect = new Rectangle(\r
+                                                       (int)(0x30 * Scale.X),\r
+                                                       0,\r
+                                                       (int)(0x10 * Scale.X),\r
+                                                       (int)(0x10 * Scale.Y)\r
+                                               );\r
+                                               int yゲージ頂上 = n表示ゲージ最大値 - n表示するゲージの高さ;\r
+                                               if (yゲージ頂上 < n表示ゲージ最大値)\r
+                                               {\r
+                                                       #region [ clipping ]\r
+                                                       if ((yゲージ頂上 + rect.Height) > n表示ゲージ最大値)\r
+                                                       {\r
+                                                               int d = (yゲージ頂上 + rect.Height) - n表示ゲージ最大値;\r
+                                                               rect.Height -= d;\r
+                                                       }\r
+                                                       #endregion\r
+                                                       if ((rect.Top < rect.Bottom) && (this.txゲージ != null))\r
+                                                       {\r
+                                                               this.txゲージ.t2D描画(\r
+                                                                       CDTXMania.Instance.Device,\r
+                                                                       (int)(6 * Scale.X),\r
+                                                                       (int)(yゲージ頂上 + 0.5f),\r
+                                                                       rect\r
+                                                               );\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                                       #endregion\r
+                                       #region [ 泡 ]\r
+                                       if (this.txゲージ != null)\r
+                                       {\r
+                                               this.txゲージ.b加算合成 = true;\r
+                                       }\r
+                                       for (int j = 0; j < 24; j++)\r
+                                       {\r
+                                               this.st白い星[j].ct進行.t進行Loop();\r
+                                               int x = 6 + this.st白い星[j].x;\r
+                                               int y泡 = (n表示ゲージ最大値 - n表示するゲージの高さ) + (int)((0x160 - this.st白い星[j].ct進行.n現在の値) * Scale.Y);\r
+                                               int n透明度 = (this.st白い星[j].ct進行.n現在の値 < 0xb0) ? 0 : ((int)(255.0 * (((double)(this.st白い星[j].ct進行.n現在の値 - 0xb0)) / 176.0)));\r
+                                               if ((n透明度 != 0) && (y泡 < (int)(0x191 * Scale.Y)))\r
+                                               {\r
+                                                       Rectangle rect = new Rectangle(\r
+                                                               (int)(0 * Scale.X),\r
+                                                               (int)(0x20 * Scale.Y),\r
+                                                               (int)(0x20 * Scale.X),\r
+                                                               (int)(0x20 * Scale.Y)\r
+                                                       );\r
+                                                       if (this.txゲージ != null)\r
+                                                       {\r
+                                                               this.txゲージ.vc拡大縮小倍率 = new Vector3(this.st白い星[j].fScale, this.st白い星[j].fScale, 1f);\r
+                                                               this.txゲージ.n透明度 = n透明度;\r
+                                                               this.txゲージ.t2D描画(\r
+                                                                       CDTXMania.Instance.Device,\r
+                                                                       (int)(x * Scale.X),\r
+                                                                       (int)(y泡 + 0.5f),\r
+                                                                       rect\r
+                                                               );\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                                       #endregion\r
+                               }\r
+                       }\r
+                       return 0;\r
+               }\r
+               public override void OnManagedリソースの作成()\r
+               {\r
+                       if (!base.b活性化してない)\r
+                       {\r
+                               if (!CDTXMania.Instance.ConfigIni.bギタレボモード)\r
+                               {\r
+                                       this.txゲージ = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenPlayDrums gauge.png"));\r
+                                       this.txゲージ白 = TextureFactory.tテクスチャの生成Af(CSkin.Path(@"Graphics\ScreenPlayDrums_gauge_white.png "));\r
+                               }\r
+                               else\r
+                               {\r
+                                       this.txゲージ = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenPlayGuitar gauge.png"));\r
+                               }\r
+                               base.OnManagedリソースの作成();\r
+                       }\r
+               }\r
+               public override void OnManagedリソースの解放()\r
+               {\r
+                       if (!base.b活性化してない)\r
+                       {\r
+                               TextureFactory.tテクスチャの解放(ref this.txゲージ);\r
+                               if (!CDTXMania.Instance.ConfigIni.bギタレボモード)\r
+                               {\r
+                                       TextureFactory.tテクスチャの解放(ref this.txゲージ白);\r
+                               }\r
+                               base.OnManagedリソースの解放();\r
+                       }\r
+               }\r
+\r
                #region [ DAMAGE ]\r
-#if true               // DAMAGELEVELTUNING\r
+               // DAMAGELEVELTUNING\r
                #region [ DAMAGELEVELTUNING ]\r
-               // ----------------------------------\r
-               public float[,] fDamageGaugeDelta = {                   // #23625 2011.1.10 ickw_284: tuned damage/recover factors\r
+               public float[,] fDamageGaugeDelta = {\r
+                       // #23625 2011.1.10 ickw_284: tuned damage/recover factors\r
                        // drums,   guitar,  bass\r
                        {  0.004f,  0.006f,  0.006f  },\r
                        {  0.002f,  0.003f,  0.003f  },\r
@@ -145,15 +593,14 @@ namespace DTXMania
                public float[] fDamageLevelFactor = {\r
                        0.5f, 1.0f, 1.5f\r
                };\r
-               // ----------------------------------\r
                #endregion\r
-#endif\r
 \r
                public void Damage(E楽器パート screenmode, E楽器パート part, E判定 e今回の判定)\r
                {\r
                        double fDamage;\r
 \r
-#if true       // DAMAGELEVELTUNING\r
+                       // DAMAGELEVELTUNING\r
+                       // before applying #23625 modifications\r
                        switch (e今回の判定)\r
                        {\r
                                case E判定.Perfect:\r
@@ -182,48 +629,7 @@ namespace DTXMania
                                        fDamage = 0.0f;\r
                                        break;\r
                        }\r
-#else                                                                                                  // before applying #23625 modifications\r
-                       switch (e今回の判定)\r
-                       {\r
-                               case E判定.Perfect:\r
-                                       fDamage = ( part == E楽器パート.DRUMS ) ? 0.01 : 0.015;\r
-                                       break;\r
 \r
-                               case E判定.Great:\r
-                                       fDamage = ( part == E楽器パート.DRUMS ) ? 0.006 : 0.009;\r
-                                       break;\r
-\r
-                               case E判定.Good:\r
-                                       fDamage = ( part == E楽器パート.DRUMS ) ? 0.002 : 0.003;\r
-                                       break;\r
-\r
-                               case E判定.Poor:\r
-                                       fDamage = ( part == E楽器パート.DRUMS ) ? 0.0 : 0.0;\r
-                                       break;\r
-\r
-                               case E判定.Miss:\r
-                                       fDamage = ( part == E楽器パート.DRUMS ) ? -0.035 : -0.035;\r
-                                       switch( CDTXMania.Instance.ConfigIni.eダメージレベル )\r
-                                       {\r
-                                               case Eダメージレベル.少ない:\r
-                                                       fDamage *= 0.6;\r
-                                                       break;\r
-\r
-                                               case Eダメージレベル.普通:\r
-                                                       fDamage *= 1.0;\r
-                                                       break;\r
-\r
-                                               case Eダメージレベル.大きい:\r
-                                                       fDamage *= 1.6;\r
-                                                       break;\r
-                                       }\r
-                                       break;\r
-\r
-                               default:\r
-                                       fDamage = 0.0;\r
-                                       break;\r
-                       }\r
-#endif\r
                        if (screenmode == E楽器パート.DRUMS)               // ドラム演奏画面なら、ギター/ベースのダメージも全部ドラムのゲージに集約する\r
                        {\r
                                part = E楽器パート.DRUMS;\r
@@ -245,12 +651,24 @@ namespace DTXMania
                        if (this.db現在のゲージ値[(int)part] > GAUGE_MAX)                // RISKY時は決してゲージが増加しないので、ギタレボモード時のギター/ベース両チェック(上限チェック)はしなくて良い\r
                                this.db現在のゲージ値[(int)part] = GAUGE_MAX;\r
                }\r
-               //-----------------\r
                #endregion\r
 \r
                public STDGBVALUE<double> db現在のゲージ値;\r
                protected CCounter ct本体移動;\r
                protected CCounter ct本体振動;\r
                protected CTexture txゲージ;\r
+\r
+\r
+               [StructLayout(LayoutKind.Sequential)]\r
+               private struct ST白い星\r
+               {\r
+                       public int x;\r
+                       public float fScale;\r
+                       public CCounter ct進行;\r
+               }\r
+\r
+               private CTextureAf txゲージ白;\r
+               private const int STAR_MAX = 0x18;\r
+               private ST白い星[] st白い星 = new ST白い星[0x18];\r
        }\r
 }\r
index ec95d2d..79de1c3 100644 (file)
@@ -1,6 +1,7 @@
 using System;\r
 using System.Collections.Generic;\r
 using System.Text;\r
+using System.Drawing;\r
 using FDK;\r
 \r
 namespace DTXMania\r
@@ -8,28 +9,25 @@ namespace DTXMania
        internal class CAct演奏スコア共通 : CActivity\r
        {\r
                // プロパティ\r
-\r
                protected STDGBVALUE<long> nスコアの増分;\r
                protected STDGBVALUE<double> n現在の本当のスコア;\r
                protected STDGBVALUE<long> n現在表示中のスコア;\r
                protected long n進行用タイマ;\r
                protected CTexture txScore;\r
-\r
+               private readonly Point[] ptSCORE = new Point[] { new Point(0x1f, 0x1a9), new Point(0x1e9, 0x1a9) };\r
 \r
                // コンストラクタ\r
-\r
                public CAct演奏スコア共通()\r
                {\r
                        base.b活性化してない = true;\r
                }\r
 \r
-\r
                // メソッド\r
-\r
                public double Get(E楽器パート part)\r
                {\r
                        return this.n現在の本当のスコア[(int)part];\r
                }\r
+\r
                public void Set(E楽器パート part, double nScore)\r
                {\r
                        int nPart = (int)part;\r
@@ -43,6 +41,7 @@ namespace DTXMania
                                }\r
                        }\r
                }\r
+               \r
                /// <summary>\r
                /// 点数を加える(各種AUTO補正つき)\r
                /// </summary>\r
@@ -127,7 +126,6 @@ namespace DTXMania
 \r
 \r
                // CActivity 実装\r
-\r
                public override void On活性化()\r
                {\r
                        this.n進行用タイマ = -1;\r
@@ -155,5 +153,159 @@ namespace DTXMania
                                base.OnManagedリソースの解放();\r
                        }\r
                }\r
+\r
+               // CActivity 実装(共通クラスからの差分のみ)\r
+               public override unsafe int On進行描画()\r
+               {\r
+                       if (!base.b活性化してない)\r
+                       {\r
+                               if (CDTXMania.Instance.ConfigIni.bギタレボモード)\r
+                               {\r
+                                       if (base.b初めての進行描画)\r
+                                       {\r
+                                               n進行用タイマ = CDTXMania.Instance.Timer.n現在時刻;\r
+                                               b初めての進行描画 = false;\r
+                                       }\r
+                                       long num = CDTXMania.Instance.Timer.n現在時刻;\r
+                                       if (num < n進行用タイマ)\r
+                                       {\r
+                                               n進行用タイマ = num;\r
+                                       }\r
+                                       while ((num - n進行用タイマ) >= 10)\r
+                                       {\r
+                                               for (int j = 0; j < 3; j++)\r
+                                               {\r
+                                                       this.n現在表示中のスコア[j] += this.nスコアの増分[j];\r
+\r
+                                                       if (this.n現在表示中のスコア[j] > (long)this.n現在の本当のスコア[j])\r
+                                                               this.n現在表示中のスコア[j] = (long)this.n現在の本当のスコア[j];\r
+                                               }\r
+                                               n進行用タイマ += 10;\r
+                                       }\r
+                                       for (int i = 1; i < 3; i++)\r
+                                       {\r
+                                               string str = this.n現在表示中のスコア[i].ToString("0000000000");\r
+                                               for (int k = 0; k < 10; k++)\r
+                                               {\r
+                                                       Rectangle rectangle;\r
+                                                       char ch = str[k];\r
+                                                       if (ch.Equals(' '))\r
+                                                       {\r
+                                                               rectangle = new Rectangle(\r
+                                                                       0,\r
+                                                                       0,\r
+                                                                       (int)(12 * Scale.X),\r
+                                                                       (int)(0x18 * Scale.Y)\r
+                                                                       );\r
+                                                       }\r
+                                                       else\r
+                                                       {\r
+                                                               int num5 = int.Parse(str.Substring(k, 1));\r
+                                                               if (num5 < 5)\r
+                                                               {\r
+                                                                       rectangle = new Rectangle(\r
+                                                                               (int)(num5 * 12 * Scale.X),\r
+                                                                               0,\r
+                                                                               (int)(12 * Scale.X),\r
+                                                                               (int)(0x18 * Scale.Y)\r
+                                                                       );\r
+                                                               }\r
+                                                               else\r
+                                                               {\r
+                                                                       rectangle = new Rectangle(\r
+                                                                               (int)((num5 - 5) * 12 * Scale.X),\r
+                                                                               (int)(0x18 * Scale.Y),\r
+                                                                               (int)(12 * Scale.X),\r
+                                                                               (int)(0x18 * Scale.Y)\r
+                                                                       );\r
+                                                               }\r
+                                                       }\r
+                                                       if (txScore != null)\r
+                                                       {\r
+                                                               txScore.t2D描画(\r
+                                                                       CDTXMania.Instance.Device,\r
+                                                                       (this.ptSCORE[i - 1].X + (k * 12)) * Scale.X,\r
+                                                                       this.ptSCORE[i - 1].Y * Scale.Y,\r
+                                                                       rectangle\r
+                                                               );\r
+                                                       }\r
+                                               }\r
+                                       }\r
+\r
+                               }\r
+                               else\r
+                               {\r
+                                       if (base.b初めての進行描画)\r
+                                       {\r
+                                               n進行用タイマ = FDK.CSound管理.rc演奏用タイマ.n現在時刻;\r
+                                               base.b初めての進行描画 = false;\r
+                                       }\r
+                                       long num = FDK.CSound管理.rc演奏用タイマ.n現在時刻;\r
+                                       if (num < n進行用タイマ)\r
+                                       {\r
+                                               n進行用タイマ = num;\r
+                                       }\r
+                                       while ((num - n進行用タイマ) >= 10)\r
+                                       {\r
+                                               for (int j = 0; j < 3; j++)\r
+                                               {\r
+                                                       this.n現在表示中のスコア[j] += this.nスコアの増分[j];\r
+\r
+                                                       if (this.n現在表示中のスコア[j] > (long)this.n現在の本当のスコア[j])\r
+                                                               this.n現在表示中のスコア[j] = (long)this.n現在の本当のスコア[j];\r
+                                               }\r
+                                               n進行用タイマ += 10;\r
+                                       }\r
+                                       string str = this.n現在表示中のスコア.Drums.ToString("0000000000");\r
+                                       for (int i = 0; i < 10; i++)\r
+                                       {\r
+                                               Rectangle rectangle;\r
+                                               char ch = str[i];\r
+                                               if (ch.Equals(' '))\r
+                                               {\r
+                                                       rectangle = new Rectangle(\r
+                                                               0,\r
+                                                               0,\r
+                                                               (int)(12 * Scale.X),\r
+                                                               (int)(0x18 * Scale.Y)\r
+                                                       );\r
+                                               }\r
+                                               else\r
+                                               {\r
+                                                       int num4 = int.Parse(str.Substring(i, 1));\r
+                                                       if (num4 < 5)\r
+                                                       {\r
+                                                               rectangle = new Rectangle(\r
+                                                                       (int)(num4 * 12 * Scale.X),\r
+                                                                       0,\r
+                                                                       (int)(12 * Scale.X),\r
+                                                                       (int)(0x18 * Scale.Y)\r
+                                                               );\r
+                                                       }\r
+                                                       else\r
+                                                       {\r
+                                                               rectangle = new Rectangle(\r
+                                                                       (int)((num4 - 5) * 12 * Scale.X),\r
+                                                                       (int)(0x18 * Scale.Y),\r
+                                                                       (int)(12 * Scale.X),\r
+                                                                       (int)(0x18 * Scale.Y)\r
+                                                               );\r
+                                                       }\r
+                                               }\r
+                                               if (txScore != null)\r
+                                               {\r
+                                                       txScore.t2D描画(\r
+                                                               CDTXMania.Instance.Device,\r
+                                                               (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? 1068 + (i * 36) : 1490 + i * 36,\r
+                                                               30,\r
+                                                               rectangle\r
+                                                       );\r
+                                               }\r
+                                       }\r
+                               }\r
+                       }\r
+                       return 0;\r
+               }\r
+\r
        }\r
 }\r
index b6f33c1..f8dd3e9 100644 (file)
@@ -15,11 +15,13 @@ namespace DTXMania
                {\r
                        this.stパネルマップ = new STATUSPANEL[12];                // yyagi: 以下、手抜きの初期化でスマン\r
                        // { "DTXMANIA", 0 }, { "EXTREME", 1 }, ... みたいに書きたいが・・・\r
-                       string[] labels = new string[12] {\r
+                       string[] labels = new string[12]\r
+                       {\r
                            "DTXMANIA", "EXTREME", "ADVANCED", "ADVANCE", "BASIC", "RAW",\r
                            "REAL", "EASY", "EX-REAL", "ExREAL", "ExpertReal", "NORMAL"\r
                        };\r
-                       int[] status = new int[12] {\r
+                       int[] status = new int[12] \r
+                       {\r
                            0, 1, 2, 2, 3, 4, 5, 6, 7, 7, 7, 8\r
                        };\r
 \r
@@ -30,64 +32,11 @@ namespace DTXMania
                                this.stパネルマップ[i].label = labels[i];\r
                        }\r
 \r
-                       #region [ 旧初期化処理(注釈化) ]\r
-                       //STATUSPANEL[] statuspanelArray = new STATUSPANEL[ 12 ];\r
-                       //STATUSPANEL statuspanel = new STATUSPANEL();\r
-                       //statuspanel.status = 0;\r
-                       //statuspanel.label = "DTXMANIA";\r
-                       //statuspanelArray[ 0 ] = statuspanel;\r
-                       //STATUSPANEL statuspanel2 = new STATUSPANEL();\r
-                       //statuspanel2.status = 1;\r
-                       //statuspanel2.label = "EXTREME";\r
-                       //statuspanelArray[ 1 ] = statuspanel2;\r
-                       //STATUSPANEL statuspanel3 = new STATUSPANEL();\r
-                       //statuspanel3.status = 2;\r
-                       //statuspanel3.label = "ADVANCED";\r
-                       //statuspanelArray[ 2 ] = statuspanel3;\r
-                       //STATUSPANEL statuspanel4 = new STATUSPANEL();\r
-                       //statuspanel4.status = 2;\r
-                       //statuspanel4.label = "ADVANCE";\r
-                       //statuspanelArray[ 3 ] = statuspanel4;\r
-                       //STATUSPANEL statuspanel5 = new STATUSPANEL();\r
-                       //statuspanel5.status = 3;\r
-                       //statuspanel5.label = "BASIC";\r
-                       //statuspanelArray[ 4 ] = statuspanel5;\r
-                       //STATUSPANEL statuspanel6 = new STATUSPANEL();\r
-                       //statuspanel6.status = 4;\r
-                       //statuspanel6.label = "RAW";\r
-                       //statuspanelArray[ 5 ] = statuspanel6;\r
-                       //STATUSPANEL statuspanel7 = new STATUSPANEL();\r
-                       //statuspanel7.status = 5;\r
-                       //statuspanel7.label = "REAL";\r
-                       //statuspanelArray[ 6 ] = statuspanel7;\r
-                       //STATUSPANEL statuspanel8 = new STATUSPANEL();\r
-                       //statuspanel8.status = 6;\r
-                       //statuspanel8.label = "EASY";\r
-                       //statuspanelArray[ 7 ] = statuspanel8;\r
-                       //STATUSPANEL statuspanel9 = new STATUSPANEL();\r
-                       //statuspanel9.status = 7;\r
-                       //statuspanel9.label = "EX-REAL";\r
-                       //statuspanelArray[ 8 ] = statuspanel9;\r
-                       //STATUSPANEL statuspanel10 = new STATUSPANEL();\r
-                       //statuspanel10.status = 7;\r
-                       //statuspanel10.label = "ExREAL";\r
-                       //statuspanelArray[ 9 ] = statuspanel10;\r
-                       //STATUSPANEL statuspanel11 = new STATUSPANEL();\r
-                       //statuspanel11.status = 7;\r
-                       //statuspanel11.label = "ExpertReal";\r
-                       //statuspanelArray[ 10 ] = statuspanel11;\r
-                       //STATUSPANEL statuspanel12 = new STATUSPANEL();\r
-                       //statuspanel12.status = 8;\r
-                       //statuspanel12.label = "NORMAL";\r
-                       //statuspanelArray[ 11 ] = statuspanel12;\r
-                       //this.stパネルマップ = statuspanelArray;\r
-                       #endregion\r
                        base.b活性化してない = true;\r
                }\r
 \r
 \r
                // メソッド\r
-\r
                public void tラベル名からステータスパネルを決定する(string strラベル名)\r
                {\r
                        if (string.IsNullOrEmpty(strラベル名))\r
@@ -116,9 +65,154 @@ namespace DTXMania
                        base.On活性化();\r
                }\r
 \r
+               public override void OnManagedリソースの作成()\r
+               {\r
+                       if (!base.b活性化してない)\r
+                       {\r
+                               if (!CDTXMania.Instance.ConfigIni.bギタレボモード)\r
+                               {\r
+                                       this.txStatusPanels = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenPlay status panels right.png"));\r
+                               }\r
+                               else\r
+                               {\r
+                                       this.tx左パネル = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenPlay status panels left.png"));\r
+                                       this.tx右パネル = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenPlay status panels right.png"));\r
+                               }\r
+                               base.OnManagedリソースの作成();\r
+                       }\r
+               }\r
+               public override void OnManagedリソースの解放()\r
+               {\r
+                       if (!base.b活性化してない)\r
+                       {\r
+                               if (!CDTXMania.Instance.ConfigIni.bギタレボモード)\r
+                               {\r
+                                       TextureFactory.tテクスチャの解放(ref this.txStatusPanels);\r
+                               }\r
+                               else\r
+                               {\r
+                                       TextureFactory.tテクスチャの解放(ref this.tx左パネル);\r
+                                       TextureFactory.tテクスチャの解放(ref this.tx右パネル);\r
+                               }\r
+                               base.OnManagedリソースの解放();\r
+                       }\r
+               }\r
+\r
+               public override int On進行描画()\r
+               {\r
+                       if (!base.b活性化してない)\r
+                       {\r
+                               if (!CDTXMania.Instance.ConfigIni.bギタレボモード)\r
+                               {\r
+                                       if ((this.txStatusPanels != null))\r
+                                       {\r
+                                               this.txStatusPanels.t2D描画(\r
+                                                       CDTXMania.Instance.Device,\r
+                                                       0x26f * Scale.X,\r
+                                                       0x14f * Scale.Y,\r
+                                                       new Rectangle(\r
+                                                               (int)(this.nStatus * 15 * Scale.X),\r
+                                                               (int)(0xb7 * Scale.Y),\r
+                                                               (int)(15 * Scale.X),\r
+                                                               (int)(0x49 * Scale.Y)\r
+                                                       )\r
+                                               );\r
+                                               int drums = CDTXMania.Instance.ConfigIni.n譜面スクロール速度.Drums;\r
+                                               if (drums < 0)\r
+                                               {\r
+                                                       drums = 0;\r
+                                               }\r
+                                               if (drums > 15)\r
+                                               {\r
+                                                       drums = 15;\r
+                                               }\r
+                                               this.txStatusPanels.t2D描画(CDTXMania.Instance.Device,\r
+                                                       0x26f * Scale.X,\r
+                                                       0x3b * Scale.Y,\r
+                                                       new Rectangle(\r
+                                                               (int)(drums * 15 * Scale.X),\r
+                                                               0,\r
+                                                               (int)(15 * Scale.X),\r
+                                                               (int)(0xac * Scale.Y)\r
+                                                       )\r
+                                               );\r
+                                       }\r
+                               }\r
+                               else\r
+                               {\r
+                                       if (this.tx左パネル != null)\r
+                                       {\r
+                                               this.tx左パネル.t2D描画(\r
+                                                       CDTXMania.Instance.Device,\r
+                                                       3 * Scale.X,\r
+                                                       0x143 * Scale.Y,\r
+                                                       new Rectangle(\r
+                                                               (int)(this.nStatus * 15 * Scale.X),\r
+                                                               (int)(0xb7 * Scale.Y),\r
+                                                               (int)(15 * Scale.X),\r
+                                                               (int)(0x49 * Scale.Y)\r
+                                                       )\r
+                                               );\r
+                                               int guitar = CDTXMania.Instance.ConfigIni.n譜面スクロール速度.Guitar;\r
+                                               if (guitar < 0)\r
+                                               {\r
+                                                       guitar = 0;\r
+                                               }\r
+                                               if (guitar > 15)\r
+                                               {\r
+                                                       guitar = 15;\r
+                                               }\r
+                                               this.tx左パネル.t2D描画(\r
+                                                       CDTXMania.Instance.Device,\r
+                                                       3 * Scale.X,\r
+                                                       0x35 * Scale.Y,\r
+                                                       new Rectangle(\r
+                                                               (int)(guitar * 15 * Scale.X),\r
+                                                               0,\r
+                                                               (int)(15 * Scale.X),\r
+                                                               (int)(0xac * Scale.Y)\r
+                                                       )\r
+                                               );\r
+                                       }\r
+                                       if (this.tx右パネル != null)\r
+                                       {\r
+                                               this.tx右パネル.t2D描画(\r
+                                                       CDTXMania.Instance.Device,\r
+                                                       0x26e * Scale.X,\r
+                                                       0x143 * Scale.Y,\r
+                                                       new Rectangle(\r
+                                                               (int)(this.nStatus * 15 * Scale.X),\r
+                                                               (int)(0xb7 * Scale.Y),\r
+                                                               (int)(15 * Scale.X),\r
+                                                               (int)(0x49 * Scale.Y)\r
+                                                       )\r
+                                               );\r
+                                               int bass = CDTXMania.Instance.ConfigIni.n譜面スクロール速度.Bass;\r
+                                               if (bass < 0)\r
+                                               {\r
+                                                       bass = 0;\r
+                                               }\r
+                                               if (bass > 15)\r
+                                               {\r
+                                                       bass = 15;\r
+                                               }\r
+                                               this.tx右パネル.t2D描画(\r
+                                                       CDTXMania.Instance.Device,\r
+                                                       0x26e * Scale.X,\r
+                                                       0x35 * Scale.Y,\r
+                                                       new Rectangle(\r
+                                                               (int)(bass * 15 * Scale.X),\r
+                                                               0,\r
+                                                               (int)(15 * Scale.X),\r
+                                                               (int)(0xac * Scale.Y)\r
+                                                       )\r
+                                               );\r
+                                       }\r
+                               }\r
+                       }\r
+                       return 0;\r
+               }\r
 \r
-               #region [ protected ]\r
-               //-----------------\r
                [StructLayout(LayoutKind.Sequential)]\r
                protected struct STATUSPANEL\r
                {\r
@@ -126,9 +220,10 @@ namespace DTXMania
                        public int status;\r
                }\r
 \r
+               private CTexture tx右パネル;\r
+               private CTexture tx左パネル;\r
+               private CTexture txStatusPanels;\r
                protected int nStatus;\r
                protected STATUSPANEL[] stパネルマップ = null;\r
-               //-----------------\r
-               #endregion\r
        }\r
 }\r
index 445ad36..2f79918 100644 (file)
@@ -18,7 +18,6 @@ namespace DTXMania
 \r
 \r
                // メソッド\r
-\r
                public virtual void Start(int nLane, int n中央X, int n中央Y, C演奏判定ライン座標共通 演奏判定ライン座標)\r
                {\r
                        if ((nLane >= 0) || (nLane <= 5))\r
index 834291b..3713078 100644 (file)
@@ -2,19 +2,21 @@
 using System.Collections.Generic;\r
 using System.Text;\r
 using FDK;\r
+using System.Drawing;\r
 \r
 namespace DTXMania\r
 {\r
        internal class CAct演奏レーンフラッシュGB共通 : CActivity\r
        {\r
-               // プロパティ\r
-\r
                protected CCounter[] ct進行 = new CCounter[6];\r
                protected CTextureAf[] txFlush = new CTextureAf[6];\r
-\r
+               private readonly int[,,] nRGBのX座標 = new int[,,]\r
+               { \r
+               { { 2, 0x1c, 0x36, 2, 0x1c, 0x36 }, { 0x36, 0x1c, 2, 0x36, 0x1c, 2 } }, // dr.          \r
+               { { 0, 0x24, 0x48, 0, 0x24, 0x48 }, { 0x48, 0x24, 0, 0x48, 0x24, 0 } }  // gt.\r
+               };\r
 \r
                // コンストラクタ\r
-\r
                public CAct演奏レーンフラッシュGB共通()\r
                {\r
                        base.b活性化してない = true;\r
@@ -22,7 +24,6 @@ namespace DTXMania
 \r
 \r
                // メソッド\r
-\r
                public void Start(int nLane)\r
                {\r
                        if ((nLane < 0) || (nLane > 6))\r
@@ -34,7 +35,6 @@ namespace DTXMania
 \r
 \r
                // CActivity 実装\r
-\r
                public override void On活性化()\r
                {\r
                        for (int i = 0; i < 6; i++)\r
@@ -43,6 +43,7 @@ namespace DTXMania
                        }\r
                        base.On活性化();\r
                }\r
+\r
                public override void On非活性化()\r
                {\r
                        for (int i = 0; i < 6; i++)\r
@@ -51,6 +52,7 @@ namespace DTXMania
                        }\r
                        base.On非活性化();\r
                }\r
+\r
                public override void OnManagedリソースの作成()\r
                {\r
                        if (!base.b活性化してない)\r
@@ -64,6 +66,7 @@ namespace DTXMania
                                base.OnManagedリソースの作成();\r
                        }\r
                }\r
+\r
                public override void OnManagedリソースの解放()\r
                {\r
                        if (!base.b活性化してない)\r
@@ -75,5 +78,85 @@ namespace DTXMania
                                base.OnManagedリソースの解放();\r
                        }\r
                }\r
+\r
+               public override int On進行描画()\r
+               {\r
+                       if (!base.b活性化してない)\r
+                       {\r
+                               if (!CDTXMania.Instance.ConfigIni.bギタレボモード)\r
+                               {\r
+                                       for (int i = 0; i < 6; i++)\r
+                                       {\r
+                                               if (!ct進行[i].b停止中)\r
+                                               {\r
+                                                       E楽器パート e楽器パート = (i < 3) ? E楽器パート.GUITAR : E楽器パート.BASS;\r
+                                                       CTextureAf texture = CDTXMania.Instance.ConfigIni.bReverse[(int)e楽器パート] ? txFlush[(i % 3) + 3] : txFlush[i % 3];\r
+                                                       int bLeft = CDTXMania.Instance.ConfigIni.bLeft[(int)e楽器パート] ? 1 : 0;\r
+                                                       int x = (((i < 3) ? 1521 : 1194) + this.nRGBのX座標[0,bLeft, i] * 3) + ((16 * ct進行[i].n現在の値) / 100) * 3;\r
+                                                       if (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Center)\r
+                                                       {\r
+                                                               x -= (e楽器パート == E楽器パート.GUITAR) ? 71 : 994;\r
+                                                       }\r
+                                                       int y = ((i < 3) ? 0x39 : 0x39);\r
+                                                       if (texture != null)\r
+                                                       {\r
+                                                               texture.t2D描画(\r
+                                                                       CDTXMania.Instance.Device,\r
+                                                                       x,\r
+                                                                       y * Scale.Y,\r
+                                                                       new Rectangle(\r
+                                                                               0, //(int) ( ( j * 0x20 ) * Scale.X ),\r
+                                                                               0,\r
+                                                                               (int)((0x18 * (100 - ct進行[i].n現在の値)) / 100 * Scale.X),\r
+                                                                               (int)(0x76 * 3 * Scale.Y)\r
+                                                                       )\r
+                                                               );\r
+                                                       }\r
+                                                       ct進行[i].t進行();\r
+                                                       if (ct進行[i].b終了値に達した)\r
+                                                       {\r
+                                                               ct進行[i].t停止();\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                               }\r
+                               else\r
+                               {\r
+                                       for (int i = 0; i < 6; i++)\r
+                                       {\r
+                                               if (!ct進行[i].b停止中)\r
+                                               {\r
+                                                       E楽器パート e楽器パート = (i < 3) ? E楽器パート.GUITAR : E楽器パート.BASS;\r
+                                                       CTextureAf texture = CDTXMania.Instance.ConfigIni.bReverse[(int)e楽器パート] ? txFlush[(i % 3) + 3] : 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座標[1,num2, i]) + ((0x10 * 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
+                                                                               x * Scale.X,\r
+                                                                               y * Scale.Y,\r
+                                                                               new Rectangle(\r
+                                                                                       0,\r
+                                                                                       0,\r
+                                                                                       (int)(((0x20 * (100 - ct進行[i].n現在の値)) / 100) * Scale.X),\r
+                                                                                       (int)(0x76 * 3 * Scale.Y)\r
+                                                                               )\r
+                                                                       );\r
+                                                               }\r
+                                                       }\r
+                                                       ct進行[i].t進行();\r
+                                                       if (ct進行[i].b終了値に達した)\r
+                                                       {\r
+                                                               ct進行[i].t停止();\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                               }\r
+                       }\r
+                       return 0;\r
+               }\r
        }\r
 }\r
index d767c4f..1597a02 100644 (file)
@@ -4,6 +4,7 @@ using System.Text;
 using System.Runtime.InteropServices;\r
 using System.Drawing;\r
 using FDK;\r
+using SlimDX;\r
 \r
 namespace DTXMania\r
 {\r
@@ -94,7 +95,6 @@ namespace DTXMania
 \r
 \r
                // メソッド\r
-\r
                public virtual void Start(int nLane, E判定 judge, int lag)\r
                {\r
                        if ((nLane < 0) || (nLane > 11))\r
@@ -116,9 +116,51 @@ namespace DTXMania
 \r
 \r
                // CActivity 実装\r
-\r
                public override void On活性化()\r
                {\r
+                       if (CDTXMania.Instance.ConfigIni.bギタレボモード)\r
+                       {\r
+                               this.stレーンサイズ = new STレーンサイズ[12];\r
+                               STレーンサイズ stレーンサイズ = new STレーンサイズ();\r
+                               int[,] sizeXW = new int[,] {\r
+                               { 0x24, 0x24 },\r
+                               { 0x4d, 30 },\r
+                               { 0x6f, 30 },\r
+                               { 0x92, 0x2a },\r
+                               { 0xc1, 30 },\r
+                               { 0xe3, 30 },\r
+                               { 0x105, 30 },\r
+                               { 0x127, 0x24 },\r
+                               { 0, 0 },\r
+                               { 0, 0 },\r
+                               { 0x1a, 0x6f },         // 最後2つ(Gt, Bs)がドラムスと異なる\r
+                               { 480, 0x6f }           // \r
+                       };\r
+                               for (int i = 0; i < 12; i++)\r
+                               {\r
+                                       this.stレーンサイズ[i] = new STレーンサイズ();\r
+                                       this.stレーンサイズ[i].x = sizeXW[i, 0];\r
+                                       this.stレーンサイズ[i].w = sizeXW[i, 1];\r
+                               }\r
+                       }\r
+                       else\r
+                       {\r
+                               this.stレーンサイズ = new STレーンサイズ[12]\r
+                       {\r
+                               new STレーンサイズ(  36 - 36, 36 ),\r
+                               new STレーンサイズ(  77 - 36, 30 ),\r
+                               new STレーンサイズ( 111 - 36, 30 ),\r
+                               new STレーンサイズ( 146 - 36, 42 ),\r
+                               new STレーンサイズ( 192 - 36, 30 ),\r
+                               new STレーンサイズ( 227 - 36, 30 ),\r
+                               new STレーンサイズ( 261 - 36, 30 ),\r
+                               new STレーンサイズ( 295 - 36, 36 ),\r
+                               new STレーンサイズ(   0 - 36, 0 ),\r
+                               new STレーンサイズ(   0 - 36, 0 ),\r
+                               new STレーンサイズ( 507 - 36, 80 ),\r
+                               new STレーンサイズ( 398 - 36, 80 )\r
+                       };\r
+                       }\r
                        for (int i = 0; i < 12; i++)\r
                        {\r
                                this.st状態[i].ct進行 = new CCounter();\r
@@ -126,6 +168,7 @@ namespace DTXMania
                        base.On活性化();\r
                        this.nShowLagType = CDTXMania.Instance.ConfigIni.nShowLagType;\r
                }\r
+\r
                public override void On非活性化()\r
                {\r
                        for (int i = 0; i < 12; i++)\r
@@ -134,6 +177,7 @@ namespace DTXMania
                        }\r
                        base.On非活性化();\r
                }\r
+\r
                public override void OnManagedリソースの作成()\r
                {\r
                        if (!base.b活性化してない)\r
@@ -145,6 +189,7 @@ namespace DTXMania
                                base.OnManagedリソースの作成();\r
                        }\r
                }\r
+\r
                public override void OnManagedリソースの解放()\r
                {\r
                        if (!base.b活性化してない)\r
@@ -157,9 +202,466 @@ namespace DTXMania
                        }\r
                }\r
 \r
-               public virtual int t進行描画(C演奏判定ライン座標共通 演奏判定ライン座標共通)\r
+\r
+               public int t進行描画(C演奏判定ライン座標共通 演奏判定ライン座標)\r
                {\r
+                       if (!base.b活性化してない)\r
+                       {\r
+                               if (!CDTXMania.Instance.ConfigIni.bギタレボモード)\r
+                               {\r
+                                       #region [ 表示拡大率の設定 ]\r
+                                       for (int i = 0; i < 12; i++)\r
+                                       {\r
+                                               if (!st状態[i].ct進行.b停止中)\r
+                                               {\r
+                                                       st状態[i].ct進行.t進行();\r
+                                                       if (st状態[i].ct進行.b終了値に達した)\r
+                                                       {\r
+                                                               st状態[i].ct進行.t停止();\r
+                                                       }\r
+                                                       int num2 = st状態[i].ct進行.n現在の値;\r
+                                                       if ((st状態[i].judge != E判定.Miss) && (st状態[i].judge != E判定.Bad))\r
+                                                       {\r
+                                                               if (num2 < 50)\r
+                                                               {\r
+                                                                       st状態[i].fX方向拡大率 = 1f + (1f * (1f - (((float)num2) / 50f)));\r
+                                                                       st状態[i].fY方向拡大率 = ((float)num2) / 50f;\r
+                                                                       st状態[i].n相対X座標 = 0;\r
+                                                                       st状態[i].n相対Y座標 = 0;\r
+                                                                       st状態[i].n透明度 = 0xff;\r
+                                                               }\r
+                                                               else if (num2 < 130)\r
+                                                               {\r
+                                                                       st状態[i].fX方向拡大率 = 1f;\r
+                                                                       st状態[i].fY方向拡大率 = 1f;\r
+                                                                       st状態[i].n相対X座標 = 0;\r
+                                                                       st状態[i].n相対Y座標 = ((num2 % 6) == 0) ? (CDTXMania.Instance.Random.Next(6) - 3) : st状態[i].n相対Y座標;\r
+                                                                       st状態[i].n透明度 = 0xff;\r
+                                                               }\r
+                                                               else if (num2 >= 240)\r
+                                                               {\r
+                                                                       st状態[i].fX方向拡大率 = 1f;\r
+                                                                       st状態[i].fY方向拡大率 = 1f - ((1f * (num2 - 240)) / 60f);\r
+                                                                       st状態[i].n相対X座標 = 0;\r
+                                                                       st状態[i].n相対Y座標 = 0;\r
+                                                                       st状態[i].n透明度 = 0xff;\r
+                                                               }\r
+                                                               else\r
+                                                               {\r
+                                                                       st状態[i].fX方向拡大率 = 1f;\r
+                                                                       st状態[i].fY方向拡大率 = 1f;\r
+                                                                       st状態[i].n相対X座標 = 0;\r
+                                                                       st状態[i].n相対Y座標 = 0;\r
+                                                                       st状態[i].n透明度 = 0xff;\r
+                                                               }\r
+                                                       }\r
+                                                       else if (num2 < 50)\r
+                                                       {\r
+                                                               st状態[i].fX方向拡大率 = 1f;\r
+                                                               st状態[i].fY方向拡大率 = ((float)num2) / 50f;\r
+                                                               st状態[i].n相対X座標 = 0;\r
+                                                               st状態[i].n相対Y座標 = 0;\r
+                                                               st状態[i].n透明度 = 0xff;\r
+                                                       }\r
+                                                       else if (num2 >= 200)\r
+                                                       {\r
+                                                               st状態[i].fX方向拡大率 = 1f - (((float)(num2 - 200)) / 100f);\r
+                                                               st状態[i].fY方向拡大率 = 1f - (((float)(num2 - 200)) / 100f);\r
+                                                               st状態[i].n相対X座標 = 0;\r
+                                                               st状態[i].n相対Y座標 = 0;\r
+                                                               st状態[i].n透明度 = 0xff;\r
+                                                       }\r
+                                                       else\r
+                                                       {\r
+                                                               st状態[i].fX方向拡大率 = 1f;\r
+                                                               st状態[i].fY方向拡大率 = 1f;\r
+                                                               st状態[i].n相対X座標 = 0;\r
+                                                               st状態[i].n相対Y座標 = 0;\r
+                                                               st状態[i].n透明度 = 0xff;\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                                       #endregion\r
+                                       for (int j = 0; j < 12; j++)\r
+                                       {\r
+                                               if (!st状態[j].ct進行.b停止中)\r
+                                               {\r
+                                                       int index = st判定文字列[(int)st状態[j].judge].n画像番号;\r
+                                                       int baseX = 0;\r
+                                                       int baseY = 0;\r
+                                                       #region [ Drums 判定文字列 baseX/Y生成 ]\r
+                                                       if (j < 8)                      // Drums\r
+                                                       {\r
+                                                               if (CDTXMania.Instance.ConfigIni.判定文字表示位置.Drums == E判定文字表示位置.表示OFF)\r
+                                                               {\r
+                                                                       continue;\r
+                                                               }\r
+                                                               baseX = this.stレーンサイズ[j].x;\r
+                                                               baseX = (int)(baseX * (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left ? 1.0 : 0.75));\r
+                                                               baseX += (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left ? 36 : 205);\r
+                                                               baseY = CDTXMania.Instance.ConfigIni.bReverse.Drums ?\r
+                                                                       ((((E判定文字表示位置)CDTXMania.Instance.ConfigIni.判定文字表示位置.Drums) == E判定文字表示位置.レーン上) ? (240 + (this.n文字の縦表示位置[j] * 0x20)) : 50) :\r
+                                                                       ((((E判定文字表示位置)CDTXMania.Instance.ConfigIni.判定文字表示位置.Drums) == E判定文字表示位置.レーン上) ? (180 + (this.n文字の縦表示位置[j] * 0x20)) : 450);\r
+                                                               baseY = (int)(baseY * Scale.Y);\r
+                                                       }\r
+                                                       #endregion\r
+                                                       #region [ Bass 判定文字列描画 baseX/Y生成 ]\r
+                                                       else if (j == 11)       // Bass\r
+                                                       {\r
+                                                               if (((E判定文字表示位置)CDTXMania.Instance.ConfigIni.判定文字表示位置.Bass) == E判定文字表示位置.表示OFF)\r
+                                                               {\r
+                                                                       continue;\r
+                                                               }\r
+                                                               int yB;\r
+                                                               switch (CDTXMania.Instance.ConfigIni.判定文字表示位置.Bass)\r
+                                                               {\r
+                                                                       case E判定文字表示位置.コンボ下:\r
+                                                                               baseX = this.stレーンサイズ[j].x + 36;\r
+                                                                               if (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Center)\r
+                                                                               {\r
+                                                                                       baseX -= 331 + 1;\r
+                                                                               }\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
+                                                                                                               yB + (int)((+184 + 0) * Scale.Y)\r
+                                                                                               )\r
+                                                                                               + (int)(this.n文字の縦表示位置[j] * 0x20 * Scale.Y);\r
+                                                                               break;\r
+                                                                       case E判定文字表示位置.レーン上:\r
+                                                                               baseX = this.stレーンサイズ[j].x + 36;\r
+                                                                               if (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Center)\r
+                                                                               {\r
+                                                                                       baseX -= 331 + 1;\r
+                                                                               }\r
+                                                                               //baseY = ( CDTXMania.Instance.ConfigIni.bReverse.Bass ? 240 : 180 ) + ( this.n文字の縦表示位置[ j ] * 0x20 );\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
+                                                                                                               yB + (int)(75 * Scale.Y)\r
+                                                                                               )\r
+                                                                                               + (int)(this.n文字の縦表示位置[j] * 0x20 * Scale.Y);\r
+                                                                               break;\r
+                                                                       case E判定文字表示位置.判定ライン上:\r
+                                                                               baseX = this.stレーンサイズ[j].x + 36;\r
+                                                                               if (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Center)\r
+                                                                               {\r
+                                                                                       baseX -= 331 + 1;\r
+                                                                               }\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
+                                                                               break;\r
+                                                               }\r
+                                                       }\r
+                                                       #endregion\r
+                                                       #region [ Guitar 判定文字列描画 baseX/Y生成 ]\r
+                                                       else if (j == 10)       // Guitar\r
+                                                       {\r
+                                                               if (((E判定文字表示位置)CDTXMania.Instance.ConfigIni.判定文字表示位置.Guitar) == E判定文字表示位置.表示OFF)\r
+                                                               {\r
+                                                                       continue;\r
+                                                               }\r
+                                                               int yG;\r
+                                                               switch (CDTXMania.Instance.ConfigIni.判定文字表示位置.Guitar)\r
+                                                               {\r
+                                                                       case E判定文字表示位置.コンボ下:\r
+                                                                               baseX = (CDTXMania.Instance.DTX.bチップがある.Bass) ? this.stレーンサイズ[j].x + 36 : 0x198;\r
+                                                                               if (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Center)\r
+                                                                               {\r
+                                                                                       baseX = this.stレーンサイズ[j].x + 36;    // 判定表示がドラムレーンにかぶらないよう、ベース有りの時と同じ表示方法にする\r
+                                                                                       baseX -= 24 + 1;\r
+                                                                               }\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
+                                                                                                               yG + (int)((+184 + 0) * Scale.Y)\r
+                                                                                               )\r
+                                                                                               + (int)(this.n文字の縦表示位置[j] * 0x20 * Scale.Y);\r
+                                                                               break;\r
+                                                                       case E判定文字表示位置.レーン上:\r
+                                                                               baseX = (CDTXMania.Instance.DTX.bチップがある.Bass) ? this.stレーンサイズ[j].x + 36 : 0x198;\r
+                                                                               if (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Center)\r
+                                                                               {\r
+                                                                                       baseX = this.stレーンサイズ[j].x + 36;    // 判定表示がドラムレーンにかぶらないよう、ベース有りの時と同じ表示方法にする\r
+                                                                                       baseX -= 24 + 1;\r
+                                                                               }\r
+                                                                               //baseY = ( CDTXMania.Instance.ConfigIni.bReverse.Guitar ? 240 : 180 ) + ( this.n文字の縦表示位置[ j ] * 0x20 );\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
+                                                                                                               yG + (int)(75 * Scale.Y)\r
+                                                                                               )\r
+                                                                                               + (int)(this.n文字の縦表示位置[j] * 0x20 * Scale.Y);\r
+                                                                               break;\r
+                                                                       case E判定文字表示位置.判定ライン上:\r
+                                                                               baseX = (CDTXMania.Instance.DTX.bチップがある.Bass) ? this.stレーンサイズ[j].x + 36 : 0x198;\r
+                                                                               if (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Center)\r
+                                                                               {\r
+                                                                                       baseX = this.stレーンサイズ[j].x + 36;    // 判定表示がドラムレーンにかぶらないよう、ベース有りの時と同じ表示方法にする\r
+                                                                                       baseX -= 24 + 1;\r
+                                                                               }\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
+                                                                               break;\r
+                                                               }\r
+                                                       }\r
+                                                       #endregion\r
+                                                       int xc = (int)((((baseX + st状態[j].n相対X座標) + (this.stレーンサイズ[j].w / 2))) * Scale.X);      // Xcenter座標\r
+                                                       int x = xc - ((int)(((256f / 2) * st状態[j].fX方向拡大率) * ((j < 10) ? 1.0 : 0.7)));\r
+                                                       int y = (int)(baseY + (st状態[j].n相対Y座標) * Scale.Y) - ((int)((((256f / 3) * st状態[j].fY方向拡大率) * ((j < 10) ? 1.0 : 0.7)) / 2.0));\r
+                                                       if (tx判定文字列[index] != null)\r
+                                                       {\r
+                                                               tx判定文字列[index].n透明度 = st状態[j].n透明度;\r
+                                                               tx判定文字列[index].vc拡大縮小倍率 = new Vector3((float)(st状態[j].fX方向拡大率 * ((j < 10) ? 1.0 : 0.7)), (float)(st状態[j].fY方向拡大率 * ((j < 10) ? 1.0 : 0.7)), 1f);\r
+                                                               tx判定文字列[index].t2D描画(\r
+                                                                       CDTXMania.Instance.Device,\r
+                                                                       x,\r
+                                                                       y,\r
+                                                                       st判定文字列[(int)st状態[j].judge].rc\r
+                                                               );\r
+\r
+                                                               #region [ #25370 2011.6.3 yyagi ShowLag support ]\r
+                                                               if (nShowLagType == (int)EShowLagType.ON ||\r
+                                                                        ((nShowLagType == (int)EShowLagType.GREAT_POOR) && (st状態[j].judge != E判定.Perfect)))\r
+                                                               {\r
+                                                                       if (st状態[j].judge != E判定.Auto && txlag数値 != null)           // #25370 2011.2.1 yyagi\r
+                                                                       {\r
+                                                                               bool minus = false;\r
+                                                                               int offsetX = 0;\r
+                                                                               string strDispLag = st状態[j].nLag.ToString();\r
+                                                                               if (st状態[j].nLag < 0)\r
+                                                                               {\r
+                                                                                       minus = true;\r
+                                                                               }\r
+                                                                               //x = xc - strDispLag.Length * 15 / 2;\r
+                                                                               x = xc - (int)((strDispLag.Length * 15 / 2) * Scale.X);\r
+                                                                               for (int i = 0; i < strDispLag.Length; i++)\r
+                                                                               {\r
+                                                                                       int p = (strDispLag[i] == '-') ? 11 : (int)(strDispLag[i] - '0');       //int.Parse(strDispLag[i]);\r
+                                                                                       p += minus ? 0 : 12;            // change color if it is minus value\r
+                                                                                       //base.txlag数値.t2D描画( CDTXMania.Instance.app.Device, x + offsetX, y + 34, base.stLag数値[ p ].rc );\r
+                                                                                       txlag数値.t2D描画(\r
+                                                                                               CDTXMania.Instance.Device,\r
+                                                                                               x + offsetX * Scale.X,\r
+                                                                                               y + 38 * Scale.Y,\r
+                                                                                               stLag数値[p].rc\r
+                                                                                       );\r
+                                                                                       offsetX += 12;  // 15 -> 12\r
+                                                                               }\r
+                                                                       }\r
+                                                               }\r
+                                                               #endregion\r
+                                                       }\r
+                                                       // Label_07FC: ;\r
+                                               }\r
+                                       }\r
+                               }\r
+                               else\r
+                               {\r
+                                       for (int i = 0; i < 12; i++)\r
+                                       {\r
+                                               if (!st状態[i].ct進行.b停止中)\r
+                                               {\r
+                                                       st状態[i].ct進行.t進行();\r
+                                                       if (st状態[i].ct進行.b終了値に達した)\r
+                                                       {\r
+                                                               st状態[i].ct進行.t停止();\r
+                                                       }\r
+                                                       int num2 = st状態[i].ct進行.n現在の値;\r
+                                                       if ((st状態[i].judge != E判定.Miss) && (st状態[i].judge != E判定.Bad))\r
+                                                       {\r
+                                                               if (num2 < 50)\r
+                                                               {\r
+                                                                       st状態[i].fX方向拡大率 = 1f + (1f * (1f - (((float)num2) / 50f)));\r
+                                                                       st状態[i].fY方向拡大率 = ((float)num2) / 50f;\r
+                                                                       st状態[i].n相対X座標 = 0;\r
+                                                                       st状態[i].n相対Y座標 = 0;\r
+                                                                       st状態[i].n透明度 = 0xff;\r
+                                                               }\r
+                                                               else if (num2 < 130)\r
+                                                               {\r
+                                                                       st状態[i].fX方向拡大率 = 1f;\r
+                                                                       st状態[i].fY方向拡大率 = 1f;\r
+                                                                       st状態[i].n相対X座標 = 0;\r
+                                                                       st状態[i].n相対Y座標 = ((num2 % 6) == 0) ? (CDTXMania.Instance.Random.Next(6) - 3) : st状態[i].n相対Y座標;\r
+                                                                       st状態[i].n透明度 = 0xff;\r
+                                                               }\r
+                                                               else if (num2 >= 240)\r
+                                                               {\r
+                                                                       st状態[i].fX方向拡大率 = 1f;\r
+                                                                       st状態[i].fY方向拡大率 = 1f - ((1f * (num2 - 240)) / 60f);\r
+                                                                       st状態[i].n相対X座標 = 0;\r
+                                                                       st状態[i].n相対Y座標 = 0;\r
+                                                                       st状態[i].n透明度 = 0xff;\r
+                                                               }\r
+                                                               else\r
+                                                               {\r
+                                                                       st状態[i].fX方向拡大率 = 1f;\r
+                                                                       st状態[i].fY方向拡大率 = 1f;\r
+                                                                       st状態[i].n相対X座標 = 0;\r
+                                                                       st状態[i].n相対Y座標 = 0;\r
+                                                                       st状態[i].n透明度 = 0xff;\r
+                                                               }\r
+                                                       }\r
+                                                       else if (num2 < 50)\r
+                                                       {\r
+                                                               st状態[i].fX方向拡大率 = 1f;\r
+                                                               st状態[i].fY方向拡大率 = ((float)num2) / 50f;\r
+                                                               st状態[i].n相対X座標 = 0;\r
+                                                               st状態[i].n相対Y座標 = 0;\r
+                                                               st状態[i].n透明度 = 0xff;\r
+                                                       }\r
+                                                       else if (num2 >= 200)\r
+                                                       {\r
+                                                               st状態[i].fX方向拡大率 = 1f - (((float)(num2 - 200)) / 100f);\r
+                                                               st状態[i].fY方向拡大率 = 1f - (((float)(num2 - 200)) / 100f);\r
+                                                               st状態[i].n相対X座標 = 0;\r
+                                                               st状態[i].n相対Y座標 = 0;\r
+                                                               st状態[i].n透明度 = 0xff;\r
+                                                       }\r
+                                                       else\r
+                                                       {\r
+                                                               st状態[i].fX方向拡大率 = 1f;\r
+                                                               st状態[i].fY方向拡大率 = 1f;\r
+                                                               st状態[i].n相対X座標 = 0;\r
+                                                               st状態[i].n相対Y座標 = 0;\r
+                                                               st状態[i].n透明度 = 0xff;\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                                       for (int j = 0; j < 12; j++)\r
+                                       {\r
+                                               if (!st状態[j].ct進行.b停止中)\r
+                                               {\r
+                                                       int index = st判定文字列[(int)st状態[j].judge].n画像番号;\r
+                                                       int baseX = 0;\r
+                                                       int baseY = 0;\r
+                                                       if (j >= 8)\r
+                                                       {\r
+                                                               if (j == 11)            // Bass\r
+                                                               {\r
+                                                                       if (((E判定文字表示位置)CDTXMania.Instance.ConfigIni.判定文字表示位置.Bass) == E判定文字表示位置.表示OFF)\r
+                                                                       {\r
+                                                                               continue;\r
+                                                                       }\r
+                                                                       int yB;\r
+                                                                       switch (CDTXMania.Instance.ConfigIni.判定文字表示位置.Bass)\r
+                                                                       {\r
+                                                                               case E判定文字表示位置.コンボ下:\r
+                                                                                       baseX = 0x163;\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, 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, CDTXMania.Instance.ConfigIni.bReverse.Bass);\r
+                                                                                       baseY = CDTXMania.Instance.ConfigIni.bReverse.Bass ? yB + 30 : yB - 20;\r
+                                                                                       break;\r
+                                                                       }\r
+                                                               }\r
+                                                               else if (j == 10)       // Guitar\r
+                                                               {\r
+                                                                       if (((E判定文字表示位置)CDTXMania.Instance.ConfigIni.判定文字表示位置.Guitar) == E判定文字表示位置.表示OFF)\r
+                                                                       {\r
+                                                                               continue;\r
+                                                                       }\r
+                                                                       int yG;\r
+                                                                       switch (CDTXMania.Instance.ConfigIni.判定文字表示位置.Guitar)\r
+                                                                       {\r
+                                                                               case E判定文字表示位置.コンボ下:\r
+                                                                                       baseX = 0xaf;\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, 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, CDTXMania.Instance.ConfigIni.bReverse.Guitar);\r
+                                                                                       baseY = CDTXMania.Instance.ConfigIni.bReverse.Guitar ? yG + 30 : yG - 20;\r
+                                                                                       break;\r
+                                                                       }\r
+                                                               }\r
+                                                               int xc = (int)((((baseX + st状態[j].n相対X座標) + (this.stレーンサイズ[j].w / 2))) * Scale.X);\r
+                                                               int x = xc - (int)(((256f / 2) * st状態[j].fX方向拡大率) * 0.8);\r
+                                                               int y = (int)((baseY + st状態[j].n相対Y座標) * Scale.Y) - ((int)((((256f / 3) * st状態[j].fY方向拡大率) * 0.8) / 2.0));\r
+\r
+                                                               if (tx判定文字列[index] != null)\r
+                                                               {\r
+                                                                       tx判定文字列[index].n透明度 = st状態[j].n透明度;\r
+                                                                       tx判定文字列[index].vc拡大縮小倍率 = new Vector3((float)(st状態[j].fX方向拡大率 * 0.8), (float)(st状態[j].fY方向拡大率 * 0.8), 1f);\r
+                                                                       tx判定文字列[index].t2D描画(CDTXMania.Instance.Device, x, y, st判定文字列[(int)st状態[j].judge].rc);\r
+\r
+                                                                       #region [ #25370 2011.6.3 yyagi ShowLag support ]\r
+                                                                       if (nShowLagType == (int)EShowLagType.ON ||\r
+                                                                                ((nShowLagType == (int)EShowLagType.GREAT_POOR) && (st状態[j].judge != E判定.Perfect)))\r
+                                                                       {\r
+                                                                               if (st状態[j].judge != E判定.Auto && txlag数値 != null)           // #25370 2011.2.1 yyagi\r
+                                                                               {\r
+                                                                                       bool minus = false;\r
+                                                                                       int offsetX = 0;\r
+                                                                                       string strDispLag = st状態[j].nLag.ToString();\r
+                                                                                       if (st状態[j].nLag < 0)\r
+                                                                                       {\r
+                                                                                               minus = true;\r
+                                                                                       }\r
+                                                                                       x = xc - (int)(strDispLag.Length * 15 / 2 * Scale.X);\r
+                                                                                       for (int i = 0; i < strDispLag.Length; i++)\r
+                                                                                       {\r
+                                                                                               int p = (strDispLag[i] == '-') ? 11 : (int)(strDispLag[i] - '0');       //int.Parse(strDispLag[i]);\r
+                                                                                               p += minus ? 0 : 12;            // change color if it is minus value\r
+                                                                                               txlag数値.t2D描画(\r
+                                                                                                       CDTXMania.Instance.Device,\r
+                                                                                                       x + offsetX * Scale.X,\r
+                                                                                                       y + 35 * Scale.Y,\r
+                                                                                                       stLag数値[p].rc\r
+                                                                                               );\r
+                                                                                               offsetX += 12;\r
+                                                                                       }\r
+                                                                               }\r
+                                                                       }\r
+                                                                       #endregion\r
+                                                               }\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                               }\r
+                       }\r
                        return 0;\r
                }\r
+               [StructLayout(LayoutKind.Sequential)]\r
+               private struct STレーンサイズ\r
+               {\r
+                       public int x;\r
+                       public int w;\r
+                       public STレーンサイズ(int x_, int w_)\r
+                       {\r
+                               x = x_;\r
+                               w = w_;\r
+                       }\r
+\r
+               }\r
+\r
+               private readonly int[] n文字の縦表示位置 = new int[] { 1, 2, 0, 1, 3, 2, 1, 0, 0, 0, 1, 1 };\r
+               private STレーンサイズ[] stレーンサイズ;\r
+\r
        }\r
+\r
+\r
 }\r
index 8d03b0b..fdd0e0a 100644 (file)
@@ -17,52 +17,19 @@ namespace DTXMania
        /// <summary>\r
        /// 演奏画面の共通クラス (ドラム演奏画面, ギター演奏画面の継承元)\r
        /// </summary>\r
-       internal abstract partial class CStage演奏画面共通 : CStage\r
+       internal partial class CStage演奏画面共通 : CStage\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
-               protected readonly int[] nチャンネル0Atoパッド08 = new int[] { 1, 2, 3, 4, 5, 7, 6, 1, 8, 0 };\r
+               #region[Constants]\r
+               private readonly Eパッド[] eチャンネルtoパッド = new Eパッド[]\r
+               {\r
+                       Eパッド.HH, Eパッド.SD, Eパッド.BD, Eパッド.HT,\r
+                       Eパッド.LT, Eパッド.CY, Eパッド.FT, Eパッド.HHO,\r
+                       Eパッド.RD, Eパッド.LC\r
+               };\r
+               private 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
+               private readonly Ech定義[] nパッド0Atoチャンネル0A = new Ech定義[]\r
                {\r
                        Ech定義.HiHatClose,\r
                        Ech定義.Snare,\r
@@ -76,51 +43,139 @@ namespace DTXMania
                        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
+               private readonly int[,] nチャンネルtoX座標 = new int[,] {\r
+                               { 76 * 3, 110 * 3, 145 * 3, 192 * 3, 226 * 3, 294 * 3, 260 * 3, 79 * 3, 300 * 3, 35 * 3 },\r
+                               // 619 - 35 * 3= 584\r
+                               {\r
+                                76 * 3 * 3 / 4 + 548,\r
+                               110 * 3 * 3 / 4  + 548,\r
+                               145 * 3 * 3 / 4  + 548,\r
+                               192 * 3 * 3 / 4  + 548,\r
+                               226 * 3 * 3 / 4  + 548,\r
+                               294 * 3 * 3 / 4  + 548,\r
+                               260 * 3 * 3 / 4  + 548,\r
+                                79 * 3 * 3 / 4  + 548,\r
+                               300 * 3 * 3 / 4  + 548,\r
+                                35 * 3 * 3 / 4  + 548\r
+                               }\r
+               };\r
+               private readonly int[] nパッド0Atoパッド08 = new int[] { 1, 2, 3, 4, 5, 6, 7, 1, 8, 0 };  // パッド画像のヒット処理用\r
+               private readonly int[] nパッド0Atoレーン07 = new int[] { 1, 2, 3, 4, 5, 6, 7, 1, 7, 0 };\r
+               #endregion\r
+\r
+               #region [Member_Activities]\r
+               private CAct演奏AVI actAVI;\r
+               private CAct演奏BGA actBGA;\r
+               private CAct演奏チップファイアGB actChipFireGB;\r
+               private CAct演奏Combo共通 actCombo;\r
+               private CAct演奏Danger共通 actDANGER;\r
+               private CActFIFOBlack actFI;\r
+               private CActFIFOBlack actFO;\r
+               private CActFIFOWhite actFOClear;\r
+               private CAct演奏ゲージ共通 actGauge;\r
+               private CAct演奏判定文字列共通 actJudgeString;\r
+               private CAct演奏DrumsレーンフラッシュD actLaneFlushD;\r
+               private CAct演奏レーンフラッシュGB共通 actLaneFlushGB;\r
+               private CAct演奏パネル文字列 actPanel;\r
+               private CAct演奏演奏情報 actPlayInfo;\r
+               private CAct演奏RGB共通 actRGB;\r
+               private CAct演奏スコア共通 actScore;\r
+               private CAct演奏ステージ失敗 actStageFailed;\r
+               private CAct演奏ステータスパネル共通 actStatusPanels;\r
+               private CAct演奏WailingBonus共通 actWailingBonus;\r
+               private CAct演奏スクロール速度 act譜面スクロール速度;\r
+               private CAct演奏DrumsチップファイアD actChipFireD; // drums only\r
+               private CAct演奏Drumsグラフ actGraph;   // drums only #24074 2011.01.23 add ikanick\r
+               private CAct演奏Drumsパッド actPad; // drums only\r
+\r
+               #endregion\r
+\r
+               private C演奏判定ライン座標共通 演奏判定ライン座標;// #31602 2013.6.23 yyagi 表示遅延対策として、判定ラインの表示位置をずらす機能を追加する\r
+               private bool bPAUSE;\r
+               private STDGBVALUE<bool> b演奏にMIDI入力を使った;\r
+               private STDGBVALUE<bool> b演奏にキーボードを使った;\r
+               private STDGBVALUE<bool> b演奏にジョイパッドを使った;\r
+               private STDGBVALUE<bool> b演奏にマウスを使った;\r
+               private CCounter ctWailingチップ模様アニメ;\r
+               private STDGBVALUE<CCounter> ctチップ模様アニメ;\r
+\r
+               private E演奏画面の戻り値 eフェードアウト完了時の戻り値;\r
+\r
+               private STDGBVALUE<CHitCountOfRank> nヒット数_Auto含まない;\r
+               private STDGBVALUE<CHitCountOfRank> nヒット数_Auto含む;\r
+               private STDGBVALUE<CHitCountOfRank> nヒット数_TargetGhost; // #35411 2015.08.21 chnmr0 add\r
+               private STDGBVALUE<int> nコンボ数_TargetGhost;\r
+               private STDGBVALUE<int> n最大コンボ数_TargetGhost;\r
+               private int n現在のトップChip = -1;\r
+               private int[] n最後に再生したBGMの実WAV番号 = new int[50];\r
+               private Ech定義 e最後に再生したHHのチャンネル番号;\r
+               private List<int> L最後に再生したHHの実WAV番号;              // #23921 2011.1.4 yyagi: change "int" to "List<int>", for recording multiple wav No.\r
+               private STLANEVALUE<int> n最後に再生した実WAV番号;    // #26388 2011.11.8 yyagi: change "n最後に再生した実WAV番号.GUITAR" and "n最後に再生した実WAV番号.BASS"\r
+\r
+               private volatile Queue<STMixer> queueMixerSound;                // #24820 2013.1.21 yyagi まずは単純にAdd/Removeを1個のキューでまとめて管理するやり方で設計する\r
+               private DateTime dtLastQueueOperation;\r
+               private bool bIsDirectSound;\r
+               private double db再生速度;\r
+               private bool bValidScore;\r
+               private STDGBVALUE<bool> bReverse;\r
+\r
+               private STDGBVALUE<Queue<CChip>> queWailing;\r
+               private STDGBVALUE<CChip> r現在の歓声Chip;\r
+               private CChip[] r空打ちドラムチップ = new CChip[10];\r
+               private CChip r現在の空うちギターChip;\r
+               private ST空打ち r現在の空うちドラムChip;\r
+               private CChip r現在の空うちベースChip;\r
+               private CChip r次にくるギターChip;\r
+               private CChip r次にくるベースChip;\r
+               private CTexture txWailing枠;\r
+               private CTexture txチップ;\r
+               private CTexture txヒットバー;\r
+               private CTexture txヒットバーGB;\r
+               private CTexture tx背景;\r
+\r
+               private STDGBVALUE<int> nInputAdjustTimeMs;             // #23580 2011.1.3 yyagi\r
+               private STAUTOPLAY bIsAutoPlay;         // #24239 2011.1.23 yyagi\r
+               private CInvisibleChip cInvisibleChip;\r
+               private bool bUseOSTimer;\r
+               private E判定表示優先度 e判定表示優先度;\r
+               private CWailingChip共通[] cWailingChip;\r
 \r
                private STDGBVALUE<CScoreIni.C演奏記録> record;\r
 \r
-               protected CTexture txレーンフレームGB; // drums only\r
-               protected bool bフィルイン中; // drums only\r
+               private CTexture txレーンフレームGB; // drums only\r
+               private bool bフィルイン中; // drums only\r
+\r
+               // Constructor\r
+               public CStage演奏画面共通()\r
+               {\r
+                       base.eステージID = CStage.Eステージ.演奏;\r
+                       base.eフェーズID = CStage.Eフェーズ.共通_通常状態;\r
+                       base.b活性化してない = true;\r
+                       base.list子Activities.Add(this.actPad = new CAct演奏Drumsパッド());\r
+                       base.list子Activities.Add(this.actChipFireD = new CAct演奏DrumsチップファイアD());\r
+                       base.list子Activities.Add(this.actChipFireGB = new CAct演奏DrumsチップファイアGB());\r
+                       base.list子Activities.Add(this.actStageFailed = new CAct演奏ステージ失敗());\r
+                       base.list子Activities.Add(this.actDANGER = new CAct演奏Danger共通());\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演奏ステータスパネル共通());\r
+                       base.list子Activities.Add(this.actWailingBonus = new CAct演奏WailingBonus共通());\r
+                       base.list子Activities.Add(this.actScore = new CAct演奏スコア共通());\r
+                       base.list子Activities.Add(this.actRGB = new CAct演奏RGB共通());\r
+                       base.list子Activities.Add(this.actLaneFlushD = new CAct演奏DrumsレーンフラッシュD());\r
+                       base.list子Activities.Add(this.actLaneFlushGB = new CAct演奏レーンフラッシュGB共通());\r
+                       base.list子Activities.Add(this.actJudgeString = new CAct演奏判定文字列共通());\r
+                       base.list子Activities.Add(this.actGauge = new CAct演奏ゲージ共通());\r
+                       base.list子Activities.Add(this.actGraph = new CAct演奏Drumsグラフ()); // #24074 2011.01.23 add ikanick\r
+                       base.list子Activities.Add(this.actCombo = new CAct演奏Combo共通());\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
                #region [ PlayRecordSave ]\r
@@ -322,167 +377,230 @@ namespace DTXMania
                // CStage 実装\r
                public override void On活性化()\r
                {\r
-                       this.eフェードアウト完了時の戻り値 = E演奏画面の戻り値.継続;\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
-                       this.n最後に再生した実WAV番号.Bass = -1;\r
-                       for (int i = 0; i < 50; i++)\r
-                       {\r
-                               this.n最後に再生したBGMの実WAV番号[i] = -1;\r
-                       }\r
-                       this.r次にくるギターChip = null;\r
-                       this.r次にくるベースChip = null;\r
-                       for (int j = 0; j < 10; j++)\r
-                       {\r
-                               this.r現在の空うちドラムChip[j] = null;\r
-                       }\r
-                       this.r現在の空うちギターChip = null;\r
-                       this.r現在の空うちベースChip = null;\r
-                       cInvisibleChip = new CInvisibleChip(CDTXMania.Instance.ConfigIni.nChipDisplayTimeMs, CDTXMania.Instance.ConfigIni.nChipFadeoutTimeMs);\r
-                       this.演奏判定ライン座標 = new C演奏判定ライン座標共通();\r
-                       this.n最大コンボ数_TargetGhost = new STDGBVALUE<int>(); // #35411 2015.08.21 chnmr0 add\r
-                       for (int k = 0; k < 3; k++)\r
+                       if (base.b活性化してない)\r
                        {\r
-                               //for ( int n = 0; n < 5; n++ )\r
-                               //{\r
-                               this.nヒット数_Auto含まない[k] = new CHitCountOfRank();\r
-                               this.nヒット数_Auto含む[k] = new CHitCountOfRank();\r
-                               this.nヒット数_TargetGhost[k] = new CHitCountOfRank(); // #35411 2015.08.21 chnmr0 add\r
-                               //}\r
-                               this.queWailing[k] = new Queue<CChip>();\r
-                               this.r現在の歓声Chip[k] = null;\r
-                               cInvisibleChip.eInvisibleMode[k] = CDTXMania.Instance.ConfigIni.eInvisible[k];\r
-                               if (CDTXMania.Instance.DTXVmode.Enabled)\r
-                               {\r
-                                       CDTXMania.Instance.ConfigIni.n譜面スクロール速度[k] = CDTXMania.Instance.ConfigIni.nViewerScrollSpeed[k];\r
-                               }\r
+                               this.bフィルイン中 = false;\r
+                               this.dtLastQueueOperation = DateTime.MinValue;\r
+                               this.eフェードアウト完了時の戻り値 = E演奏画面の戻り値.継続;\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
+                               this.n最後に再生した実WAV番号.Bass = -1;\r
+                               for (int i = 0; i < 50; i++)\r
+                               {\r
+                                       this.n最後に再生したBGMの実WAV番号[i] = -1;\r
+                               }\r
+                               this.r次にくるギターChip = null;\r
+                               this.r次にくるベースChip = null;\r
+                               for (int j = 0; j < 10; j++)\r
+                               {\r
+                                       this.r現在の空うちドラムChip[j] = null;\r
+                               }\r
+                               this.r現在の空うちギターChip = null;\r
+                               this.r現在の空うちベースChip = null;\r
+                               cInvisibleChip = new CInvisibleChip(CDTXMania.Instance.ConfigIni.nChipDisplayTimeMs, CDTXMania.Instance.ConfigIni.nChipFadeoutTimeMs);\r
+                               this.演奏判定ライン座標 = new C演奏判定ライン座標共通();\r
+                               this.n最大コンボ数_TargetGhost = new STDGBVALUE<int>(); // #35411 2015.08.21 chnmr0 add\r
+                               for (int k = 0; k < 3; k++)\r
+                               {\r
+                                       this.nヒット数_Auto含まない[k] = new CHitCountOfRank();\r
+                                       this.nヒット数_Auto含む[k] = new CHitCountOfRank();\r
+                                       this.nヒット数_TargetGhost[k] = new CHitCountOfRank(); // #35411 2015.08.21 chnmr0 add\r
+                                       this.queWailing[k] = new Queue<CChip>();\r
+                                       this.r現在の歓声Chip[k] = null;\r
+                                       cInvisibleChip.eInvisibleMode[k] = CDTXMania.Instance.ConfigIni.eInvisible[k];\r
+                                       if (CDTXMania.Instance.DTXVmode.Enabled)\r
+                                       {\r
+                                               CDTXMania.Instance.ConfigIni.n譜面スクロール速度[k] = CDTXMania.Instance.ConfigIni.nViewerScrollSpeed[k];\r
+                                       }\r
 \r
-                               this.nInputAdjustTimeMs[k] = CDTXMania.Instance.ConfigIni.nInputAdjustTimeMs[k];                        // #23580 2011.1.3 yyagi\r
-                               //        2011.1.7 ikanick 修正\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.nInputAdjustTimeMs[k] = CDTXMania.Instance.ConfigIni.nInputAdjustTimeMs[k];                        // #23580 2011.1.3 yyagi\r
+                                       //        2011.1.7 ikanick 修正\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
 \r
-                       }\r
-                       actCombo.演奏判定ライン座標 = 演奏判定ライン座標;\r
-                       for (int i = 0; i < 3; i++)\r
-                       {\r
-                               this.b演奏にキーボードを使った[i] = false;\r
-                               this.b演奏にジョイパッドを使った[i] = false;\r
-                               this.b演奏にMIDI入力を使った[i] = false;\r
-                               this.b演奏にマウスを使った[i] = false;\r
-                       }\r
-                       cInvisibleChip.Reset();\r
-                       base.On活性化();\r
-                       this.tステータスパネルの選択();\r
-                       this.tパネル文字列の設定();\r
+                               }\r
+                               actCombo.演奏判定ライン座標 = 演奏判定ライン座標;\r
+                               for (int i = 0; i < 3; i++)\r
+                               {\r
+                                       this.b演奏にキーボードを使った[i] = false;\r
+                                       this.b演奏にジョイパッドを使った[i] = false;\r
+                                       this.b演奏にMIDI入力を使った[i] = false;\r
+                                       this.b演奏にマウスを使った[i] = false;\r
+                               }\r
+                               cInvisibleChip.Reset();\r
+                               base.On活性化();\r
+                               this.tステータスパネルの選択();\r
+                               this.tパネル文字列の設定();\r
 \r
-                       this.bIsAutoPlay = CDTXMania.Instance.ConfigIni.bAutoPlay;                                                                      // #24239 2011.1.23 yyagi\r
-                       actGauge.Init(CDTXMania.Instance.ConfigIni.nRisky);                                                                     // #23559 2011.7.28 yyagi\r
-                       e判定表示優先度 = CDTXMania.Instance.ConfigIni.e判定表示優先度;\r
+                               this.bIsAutoPlay = CDTXMania.Instance.ConfigIni.bAutoPlay;                                                                      // #24239 2011.1.23 yyagi\r
+                               actGauge.Init(CDTXMania.Instance.ConfigIni.nRisky);                                                                     // #23559 2011.7.28 yyagi\r
+                               e判定表示優先度 = CDTXMania.Instance.ConfigIni.e判定表示優先度;\r
 \r
-                       CDTXMania.Instance.Skin.tRemoveMixerAll();      // 効果音のストリームをミキサーから解除しておく\r
+                               CDTXMania.Instance.Skin.tRemoveMixerAll();      // 効果音のストリームをミキサーから解除しておく\r
 \r
-                       queueMixerSound = new Queue<STMixer>(64);\r
-                       bIsDirectSound = (CDTXMania.Instance.Sound管理.GetCurrentSoundDeviceType() == "DirectSound");\r
-                       bUseOSTimer = CDTXMania.Instance.ConfigIni.bUseOSTimer;\r
-                       this.bPAUSE = false;\r
-                       if (CDTXMania.Instance.DTXVmode.Enabled)\r
-                       {\r
-                               db再生速度 = CDTXMania.Instance.DTX.dbDTXVPlaySpeed;\r
-                               CDTXMania.Instance.ConfigIni.n演奏速度 = (int)(CDTXMania.Instance.DTX.dbDTXVPlaySpeed * 20 + 0.5);\r
-                       }\r
-                       else\r
-                       {\r
-                               db再生速度 = ((double)CDTXMania.Instance.ConfigIni.n演奏速度) / 20.0;\r
-                       }\r
-                       bValidScore = (CDTXMania.Instance.DTXVmode.Enabled) ? false : true;\r
+                               queueMixerSound = new Queue<STMixer>(64);\r
+                               bIsDirectSound = (CDTXMania.Instance.Sound管理.GetCurrentSoundDeviceType() == "DirectSound");\r
+                               bUseOSTimer = CDTXMania.Instance.ConfigIni.bUseOSTimer;\r
+                               this.bPAUSE = false;\r
+                               if (CDTXMania.Instance.DTXVmode.Enabled)\r
+                               {\r
+                                       db再生速度 = CDTXMania.Instance.DTX.dbDTXVPlaySpeed;\r
+                                       CDTXMania.Instance.ConfigIni.n演奏速度 = (int)(CDTXMania.Instance.DTX.dbDTXVPlaySpeed * 20 + 0.5);\r
+                               }\r
+                               else\r
+                               {\r
+                                       db再生速度 = ((double)CDTXMania.Instance.ConfigIni.n演奏速度) / 20.0;\r
+                               }\r
+                               bValidScore = (CDTXMania.Instance.DTXVmode.Enabled) ? false : true;\r
 \r
-                       cWailingChip = new CWailingChip共通[3];       // 0:未使用, 1:Gutiar, 2:Bass\r
-                       if (CDTXMania.Instance.ConfigIni.bDrums有効)\r
-                       {\r
-                               cWailingChip[1] = new CWailngChip_Guitar_Drum画面(ref 演奏判定ライン座標);\r
-                               cWailingChip[2] = new CWailngChip_Bass_Drum画面(ref 演奏判定ライン座標);\r
-                       }\r
-                       else\r
-                       {\r
-                               cWailingChip[1] = new CWailngChip_Guitar_GR画面(ref 演奏判定ライン座標);\r
-                               cWailingChip[2] = new CWailngChip_Bass_GR画面(ref 演奏判定ライン座標);\r
-                       }\r
+                               cWailingChip = new CWailingChip共通[3];       // 0:未使用, 1:Gutiar, 2:Bass\r
+                               if (CDTXMania.Instance.ConfigIni.bDrums有効)\r
+                               {\r
+                                       cWailingChip[1] = new CWailngChip_Guitar_Drum画面(ref 演奏判定ライン座標);\r
+                                       cWailingChip[2] = new CWailngChip_Bass_Drum画面(ref 演奏判定ライン座標);\r
+                               }\r
+                               else\r
+                               {\r
+                                       cWailingChip[1] = new CWailngChip_Guitar_GR画面(ref 演奏判定ライン座標);\r
+                                       cWailingChip[2] = new CWailngChip_Bass_GR画面(ref 演奏判定ライン座標);\r
+                               }\r
 \r
-                       #region [ 演奏開始前にmixer登録しておくべきサウンド(開幕してすぐに鳴らすことになるチップ音)を登録しておく ]\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
+                               #region [ 演奏開始前にmixer登録しておくべきサウンド(開幕してすぐに鳴らすことになるチップ音)を登録しておく ]\r
+                               foreach (CChip pChip in CDTXMania.Instance.DTX.listChip)\r
                                {\r
-                                       if (pChip.eチャンネル番号 == Ech定義.MixerAdd)\r
+                                       //                              Debug.WriteLine( "CH=" + pChip.nチャンネル番号.ToString( "x2" ) + ", 整数値=" + pChip.n整数値 +  ", time=" + pChip.n発声時刻ms );\r
+                                       if (pChip.n発声時刻ms <= 0)\r
                                        {\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 (CDTXMania.Instance.DTX.listWAV.ContainsKey(pChip.n整数値_内部番号))\r
+                                               if (pChip.eチャンネル番号 == Ech定義.MixerAdd)\r
                                                {\r
-                                                       CDTX.CWAV wc = CDTXMania.Instance.DTX.listWAV[pChip.n整数値_内部番号];\r
-                                                       for (int i = 0; i < CDTXMania.Instance.ConfigIni.nPoliphonicSounds; i++)\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 (CDTXMania.Instance.DTX.listWAV.ContainsKey(pChip.n整数値_内部番号))\r
                                                        {\r
-                                                               if (wc.rSound[i] != null)\r
+                                                               CDTX.CWAV wc = CDTXMania.Instance.DTX.listWAV[pChip.n整数値_内部番号];\r
+                                                               for (int i = 0; i < CDTXMania.Instance.ConfigIni.nPoliphonicSounds; i++)\r
                                                                {\r
-                                                                       CDTXMania.Instance.Sound管理.AddMixer(wc.rSound[i], db再生速度, pChip.b演奏終了後も再生が続くチップである);\r
-                                                                       //AddMixer( wc.rSound[ i ] );           // 最初はqueueを介さず直接ミキサー登録する\r
+                                                                       if (wc.rSound[i] != null)\r
+                                                                       {\r
+                                                                               CDTXMania.Instance.Sound管理.AddMixer(wc.rSound[i], db再生速度, pChip.b演奏終了後も再生が続くチップである);\r
+                                                                               //AddMixer( wc.rSound[ i ] );           // 最初はqueueを介さず直接ミキサー登録する\r
+                                                                       }\r
                                                                }\r
                                                        }\r
                                                }\r
                                        }\r
+                                       else\r
+                                       {\r
+                                               break;\r
+                                       }\r
                                }\r
-                               else\r
+                               #endregion\r
+\r
+                               if (CDTXMania.Instance.ConfigIni.bIsSwappedGuitarBass)  // #24063 2011.1.24 yyagi Gt/Bsの譜面情報入れ替え\r
                                {\r
-                                       break;\r
+                                       CDTXMania.Instance.DTX.SwapGuitarBassInfos();\r
                                }\r
-                       }\r
-                       #endregion\r
 \r
-                       if (CDTXMania.Instance.ConfigIni.bIsSwappedGuitarBass)  // #24063 2011.1.24 yyagi Gt/Bsの譜面情報入れ替え\r
-                       {\r
-                               CDTXMania.Instance.DTX.SwapGuitarBassInfos();\r
+                               if (!CDTXMania.Instance.ConfigIni.bギタレボモード)\r
+                               {\r
+                                       // MODIFY_BEGIN #25398 2011.06.07 FROM\r
+                                       if (CDTXMania.Instance.bコンパクトモード)\r
+                                       {\r
+                                               var score = new Cスコア();\r
+                                               CDTXMania.Instance.Songs管理.tScoreIniを読み込んで譜面情報を設定する(CDTXMania.Instance.strコンパクトモードファイル + ".score.ini", ref score);\r
+                                               this.actGraph.dbグラフ値目標_渡 = score.譜面情報.最大スキル[0];\r
+                                       }\r
+                                       else\r
+                                       {\r
+                                               if (CDTXMania.Instance.ConfigIni.bDrums有効)\r
+                                               {\r
+                                                       this.actGraph.dbグラフ値目標_渡 = CDTXMania.Instance.stage選曲.r確定されたスコア.譜面情報.最大スキル[0];      // #24074 2011.01.23 add ikanick\r
+\r
+                                                       // #35411 2015.08.21 chnmr0 add\r
+                                                       // ゴースト利用可のなとき、0で初期化\r
+                                                       if (CDTXMania.Instance.ConfigIni.eTargetGhost.Drums != ETargetGhostData.NONE)\r
+                                                       {\r
+                                                               if (CDTXMania.Instance.DTX.listTargetGhsotLag[(int)E楽器パート.DRUMS] != null)\r
+                                                               {\r
+                                                                       this.actGraph.dbグラフ値目標_渡 = 0;\r
+                                                               }\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                                       // MODIFY_END #25398\r
+                               }\r
                        }\r
                }\r
                public override void On非活性化()\r
                {\r
-                       this.L最後に再生したHHの実WAV番号.Clear();   // #23921 2011.1.4 yyagi\r
-                       this.L最後に再生したHHの実WAV番号 = null;    //\r
-                       for (int i = 0; i < 3; i++)\r
+                       if (base.b活性化してる)\r
                        {\r
-                               this.queWailing[i].Clear();\r
-                               this.queWailing[i] = null;\r
+                               this.L最後に再生したHHの実WAV番号.Clear();   // #23921 2011.1.4 yyagi\r
+                               this.L最後に再生したHHの実WAV番号 = null;    //\r
+                               for (int i = 0; i < 3; i++)\r
+                               {\r
+                                       this.queWailing[i].Clear();\r
+                                       this.queWailing[i] = null;\r
+                               }\r
+                               this.ctWailingチップ模様アニメ = null;\r
+                               this.ctチップ模様アニメ.Drums = null;\r
+                               this.ctチップ模様アニメ.Guitar = null;\r
+                               this.ctチップ模様アニメ.Bass = null;\r
+                               queueMixerSound.Clear();\r
+                               queueMixerSound = null;\r
+                               cInvisibleChip.Dispose();\r
+                               cInvisibleChip = null;\r
+                               base.On非活性化();\r
                        }\r
-                       this.ctWailingチップ模様アニメ = null;\r
-                       this.ctチップ模様アニメ.Drums = null;\r
-                       this.ctチップ模様アニメ.Guitar = null;\r
-                       this.ctチップ模様アニメ.Bass = null;\r
-                       queueMixerSound.Clear();\r
-                       queueMixerSound = null;\r
-                       cInvisibleChip.Dispose();\r
-                       cInvisibleChip = null;\r
-                       //                      GCSettings.LatencyMode = this.gclatencymode;\r
-                       base.On非活性化();\r
                }\r
                public override void OnManagedリソースの作成()\r
                {\r
-                       if (!base.b活性化してない)\r
+                       if (base.b活性化してる)\r
                        {\r
+                               if (!CDTXMania.Instance.ConfigIni.bギタレボモード)\r
+                               {\r
+                                       this.txチップ = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenPlayDrums chips.png"));\r
+                                       this.txヒットバー = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenPlayDrums hit-bar.png"));\r
+                                       this.txヒットバーGB = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenPlayDrums hit-bar guitar.png"));\r
+                                       this.txレーンフレームGB = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenPlayDrums lane parts guitar.png"));\r
+                                       if (this.txレーンフレームGB != null)\r
+                                       {\r
+                                               this.txレーンフレームGB.n透明度 = 0xff - CDTXMania.Instance.ConfigIni.n背景の透過度;\r
+                                       }\r
+                               }\r
+                               else\r
+                               {\r
+                                       this.txチップ = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenPlayGuitar chips.png"));\r
+                                       this.txヒットバー = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenPlayGuitar hit-bar.png"));\r
+                               }\r
+\r
                                this.t背景テクスチャの生成();\r
 \r
                                this.txWailing枠 = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenPlay wailing cursor.png"));\r
 \r
                                base.OnManagedリソースの作成();\r
                        }\r
+\r
                }\r
                public override void OnManagedリソースの解放()\r
                {\r
-                       if (!base.b活性化してない)\r
+                       if (base.b活性化してる)\r
                        {\r
+                               if (!CDTXMania.Instance.ConfigIni.bギタレボモード)\r
+                               {\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
+                               }\r
+                               else\r
+                               {\r
+                                       TextureFactory.tテクスチャの解放(ref this.txチップ);\r
+                                       TextureFactory.tテクスチャの解放(ref this.txヒットバー);\r
+                               }\r
                                TextureFactory.tテクスチャの解放(ref this.tx背景);\r
 \r
                                TextureFactory.tテクスチャの解放(ref this.txWailing枠);\r
@@ -491,7 +609,7 @@ namespace DTXMania
                }\r
                public override int On進行描画()\r
                {\r
-                       if (!base.b活性化してない)\r
+                       if (base.b活性化してる)\r
                        {\r
                                bool bIsFinishedPlaying = false;\r
                                bool bIsFinishedFadeout = false;\r
@@ -531,30 +649,27 @@ namespace DTXMania
                                }\r
 \r
                                #region [ stage failed ]\r
-                               if (CDTXMania.Instance.ConfigIni.bギタレボモード)\r
+                               if (CDTXMania.Instance.ConfigIni.bSTAGEFAILED有効 && (base.eフェーズID == CStage.Eフェーズ.共通_通常状態))\r
                                {\r
-                                       if (CDTXMania.Instance.ConfigIni.bSTAGEFAILED有効 && (base.eフェーズID == CStage.Eフェーズ.共通_通常状態))\r
-                                       {\r
-                                               bool failedCondition = false;\r
+                                       bool failedCondition = false;\r
 \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
+                                       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
-                                               if (failedCondition)\r
-                                               {\r
-                                                       this.actStageFailed.Start();\r
-                                                       CDTXMania.Instance.DTX.t全チップの再生停止();\r
-                                                       base.eフェーズID = CStage.Eフェーズ.演奏_STAGE_FAILED;\r
-                                               }\r
+                                       if (failedCondition)\r
+                                       {\r
+                                               this.actStageFailed.Start();\r
+                                               CDTXMania.Instance.DTX.t全チップの再生停止();\r
+                                               base.eフェーズID = CStage.Eフェーズ.演奏_STAGE_FAILED;\r
                                        }\r
                                }\r
                                #endregion\r
@@ -566,42 +681,69 @@ namespace DTXMania
                                this.t進行描画_スコア();\r
                                this.t進行描画_BGA();\r
                                this.t進行描画_ステータスパネル();\r
-\r
-                               this.t進行描画_ギターベース判定ライン();\r
+                               if (!CDTXMania.Instance.ConfigIni.bギタレボモード)\r
+                               {\r
+                                       this.t進行描画_ギターベースフレーム();\r
+                               }\r
                                this.t進行描画_レーンフラッシュGB();\r
+                               this.t進行描画_ギターベース判定ライン();\r
                                this.t進行描画_ゲージ();\r
-\r
+                               if (!CDTXMania.Instance.ConfigIni.bギタレボモード)\r
+                               {\r
+                                       this.t進行描画_グラフ();   // #24074 2011.01.23 add ikanick\r
+                                       this.t進行描画_レーンフラッシュD();\r
+                               }\r
                                this.t進行描画_DANGER();\r
+                               if (!CDTXMania.Instance.ConfigIni.bギタレボモード)\r
+                               {\r
+                                       this.t進行描画_判定ライン();\r
+                               }\r
+                               if(this.e判定表示優先度 == E判定表示優先度.Chipより下)\r
+                               {\r
+                                       this.t進行描画_RGBボタン();\r
+                                       if (!CDTXMania.Instance.ConfigIni.bギタレボモード)\r
+                                       {\r
+                                               this.t進行描画_判定文字列1_通常位置指定の場合();\r
+                                       }\r
+                                       else\r
+                                       {\r
+                                               this.t進行描画_判定文字列();\r
+                                       }\r
+                                       this.t進行描画_コンボ();\r
+                               }\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
+                               if (!CDTXMania.Instance.ConfigIni.bギタレボモード)\r
                                {\r
-                                       this.t進行描画_判定文字列();\r
+                                       this.t進行描画_ドラムパッド();\r
                                }\r
-                               else\r
+                               if (this.e判定表示優先度 == E判定表示優先度.Chipより上)\r
                                {\r
-                                       this.t進行描画_判定文字列1_通常位置指定の場合();\r
+                                       this.t進行描画_RGBボタン();\r
+                                       if (!CDTXMania.Instance.ConfigIni.bギタレボモード)\r
+                                       {\r
+                                               this.t進行描画_判定文字列1_通常位置指定の場合();\r
+                                       }\r
+                                       else\r
+                                       {\r
+                                               this.t進行描画_判定文字列();\r
+                                       }\r
+                                       this.t進行描画_コンボ();\r
+                               }\r
+                               if(!CDTXMania.Instance.ConfigIni.bギタレボモード)\r
+                               {\r
+                                       this.t進行描画_判定文字列2_判定ライン上指定の場合();\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
+                               this.t進行描画_チップファイアGB();\r
+                               this.t進行描画_STAGEFAILED();\r
 \r
                                bIsFinishedFadeout = this.t進行描画_フェードイン_アウト();\r
                                if (bIsFinishedPlaying && (base.eフェーズID == CStage.Eフェーズ.共通_通常状態))\r
@@ -1167,26 +1309,38 @@ namespace DTXMania
                                                }\r
                                                break;\r
                                }\r
-                       }\r
 \r
-                       if ((pChip.e楽器パート == E楽器パート.DRUMS && CDTXMania.Instance.ConfigIni.bドラムが全部オートプレイである || !bPChipIsAutoPlay) ||\r
-                               pChip.e楽器パート == E楽器パート.GUITAR || pChip.e楽器パート == E楽器パート.BASS)\r
-                       {\r
-                               // Dr. : 演奏したレーンだけコンボを増やす\r
+                               bool incrementCombo = false;\r
+                               \r
+                               if ( pChip.e楽器パート == E楽器パート.DRUMS )\r
+                               {\r
+                                       if( CDTXMania.Instance.ConfigIni.bドラムが全部オートプレイである || !bPChipIsAutoPlay)\r
+                                       {\r
+                                               // Dr. : 演奏したレーンだけコンボを増やす\r
+                                               incrementCombo = true;\r
+                                       }\r
+                               }\r
+                               else if( pChip.e楽器パート == E楽器パート.GUITAR || pChip.e楽器パート == E楽器パート.BASS )\r
+                               {\r
+                                       incrementCombo = true;\r
+                               }\r
+\r
                                switch (eJudgeResult)\r
                                {\r
                                        case E判定.Perfect:\r
                                        case E判定.Great:\r
                                        case E判定.Good:\r
-                                               this.actCombo.n現在のコンボ数.Drums++;\r
+                                               this.actCombo.n現在のコンボ数[(int)pChip.e楽器パート]++;\r
                                                break;\r
 \r
                                        default:\r
-                                               this.actCombo.n現在のコンボ数.Drums = 0;\r
+                                               this.actCombo.n現在のコンボ数[(int)pChip.e楽器パート] = 0;\r
                                                break;\r
                                }\r
                        }\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
@@ -2802,13 +2956,17 @@ namespace DTXMania
 \r
                private void t進行描画_DANGER()\r
                {\r
+                       STDGBVALUE<bool> danger = new STDGBVALUE<bool>();\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
+                               danger.Guitar = actGauge.IsDanger(E楽器パート.GUITAR);\r
+                               danger.Bass = actGauge.IsDanger(E楽器パート.BASS);\r
+                               this.actDANGER.t進行描画(danger); // #23631 2011.4.19 yyagi\r
                        }\r
                        else\r
                        {\r
-                               this.actDANGER.t進行描画(this.actGauge.IsDanger(E楽器パート.DRUMS), false, false);\r
+                               danger.Drums = actGauge.IsDanger(E楽器パート.DRUMS);\r
+                               this.actDANGER.t進行描画(danger);\r
                        }\r
                }\r
                protected void t進行描画_MIDIBGM()\r
@@ -3090,7 +3248,14 @@ namespace DTXMania
                                }\r
                                else if (pChip.bDrums可視チップ && pChip.b空打ちチップである)\r
                                {\r
-                                       this.t進行描画_チップ_空打ち音設定_ドラム(ref pChip);\r
+                                       if (!pChip.bHit && (pChip.nバーからの距離dot.Drums < 0))\r
+                                       {\r
+                                               pChip.bHit = true;\r
+                                               if (CDTXMania.Instance.ConfigIni.bDrums有効)\r
+                                               {\r
+                                                       this.r現在の空うちドラムChip[(int)this.eチャンネルtoパッド[pChip.eチャンネル番号 - Ech定義.HiHatClose]] = pChip;\r
+                                               }\r
+                                       }\r
                                }\r
                                else if (pChip.bDrums可視チップ_LP_LBD含まない)\r
                                {\r
@@ -3132,8 +3297,6 @@ namespace DTXMania
                                                        configIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left ?\r
                                                                105 : 619,\r
                                                        configIni.bReverse.Drums ?\r
-                                                       //(int) ( ( ( 0x38 + pChip.nバーからの距離dot.Drums ) - 1 ) * Scale.Y ) :\r
-                                                       //(int) ( ( ( 0x1a6 - pChip.nバーからの距離dot.Drums ) - 1 ) * Scale.Y ),\r
                                                                124 + pChip.nバーからの距離dot.Drums : 947 - pChip.nバーからの距離dot.Drums,\r
                                                        new Rectangle(\r
                                                                0,\r
@@ -3536,8 +3699,6 @@ namespace DTXMania
                        CDTXMania.Instance.ConfigIni.ドラムコンボ文字の表示位置 = Eドラムコンボ文字の表示位置.OFF;\r
                }\r
 \r
-               protected abstract void t進行描画_チップ_ドラムス(ref CChip pChip);\r
-               protected abstract void t進行描画_チップ_ギターベース(ref CChip pChip, E楽器パート inst);\r
                /// <summary>\r
                /// ギター・ベースのチップ表示\r
                /// </summary>\r
@@ -3863,7 +4024,6 @@ namespace DTXMania
                        pChip.bHit = true;\r
                }\r
 \r
-               protected abstract void t進行描画_チップ_フィルイン(ref CChip pChip);\r
                protected void t進行描画_チップ_小節線(ref CChip pChip)\r
                {\r
                        CConfigIni configIni = CDTXMania.Instance.ConfigIni;\r
@@ -3962,7 +4122,6 @@ namespace DTXMania
                        }\r
                }\r
 \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
@@ -4108,16 +4267,59 @@ namespace DTXMania
                        this.act譜面スクロール速度.On進行描画();\r
                }\r
 \r
-               protected abstract void t背景テクスチャの生成();\r
-               protected void t背景テクスチャの生成(string DefaultBgFilename, string DefaultLaneFilename, Rectangle bgrect, string bgfilename)\r
+               private void t背景テクスチャの生成()\r
                {\r
+                       string DefaultBgFilename;\r
+                       string DefaultLaneFilename;\r
+                       Rectangle bgrect;\r
+                       string bgfilename = "";\r
+\r
+                       if (CDTXMania.Instance.ConfigIni.bギタレボモード)\r
+                       {\r
+                               bgrect = new Rectangle((int)(181 * Scale.X), (int)(50 * Scale.Y), (int)(278 * Scale.X), (int)(355 * Scale.Y));\r
+                               DefaultBgFilename = @"Graphics\ScreenPlayGuitar background.png";\r
+                               DefaultLaneFilename = "";\r
+                               string BACKGROUND = null;\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
+                               {\r
+                                       BACKGROUND = CDTXMania.Instance.DTX.BACKGROUND;\r
+                               }\r
+                               if ((BACKGROUND != null) && (BACKGROUND.Length > 0))\r
+                               {\r
+                                       bgfilename = CDTXMania.Instance.DTX.strフォルダ名 + BACKGROUND;\r
+                               }\r
+                       }\r
+                       else\r
+                       {\r
+                               if (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left)\r
+                               {\r
+                                       bgrect = new Rectangle((int)(338 * Scale.X), (int)(57 * Scale.Y), (int)(278 * 2), (int)(355 * 2));\r
+                               }\r
+                               else\r
+                               {\r
+                                       bgrect = new Rectangle(619 + 682, (int)(57 * Scale.Y), (int)(278 * 2), (int)(355 * 2));\r
+                               }\r
+                               DefaultBgFilename = (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ?\r
+                                                                                       @"Graphics\ScreenPlayDrums background.png" :\r
+                                                                                       @"Graphics\ScreenPlayDrums-background-center.png";\r
+                               DefaultLaneFilename = "";       //  @"Graphics\ScreenPlayDrums_Lane_parts_drums.png";\r
+                               if (((CDTXMania.Instance.DTX.BACKGROUND != null) && (CDTXMania.Instance.DTX.BACKGROUND.Length > 0)) &&\r
+                                       !CDTXMania.Instance.ConfigIni.bストイックモード)\r
+                               {\r
+                                       bgfilename = CDTXMania.Instance.DTX.strフォルダ名 + CDTXMania.Instance.DTX.BACKGROUND;\r
+                               }\r
+                       }\r
+\r
                        // Default...: レーン等があるレイヤー                bgfilename: DTXファイルで指定する背景\r
                        Bitmap image = null;\r
                        bool bSuccessLoadDTXbgfile = false;\r
 \r
                        int[] offsetX = new int[2] { 96, 506 };\r
                        int nLanePosition = (int)CDTXMania.Instance.ConfigIni.eドラムレーン表示位置;\r
-                       //int nLanePosition = (int) Eドラムレーン表示位置.Left;\r
 \r
                        if (bgfilename != null && File.Exists(bgfilename) && !CDTXMania.Instance.DTX.bチップがある.Movie)\r
                        {\r
@@ -4181,7 +4383,6 @@ namespace DTXMania
                                        ImageAttributes imageAttr = new ImageAttributes();\r
                                        imageAttr.SetColorMatrix(newColorMatrix);\r
                                        graphics3.DrawImage(bitmap3, new Rectangle(0, 0, SampleFramework.GameWindowSize.Width, SampleFramework.GameWindowSize.Height), 0, 0, SampleFramework.GameWindowSize.Width, SampleFramework.GameWindowSize.Height, GraphicsUnit.Pixel, imageAttr);\r
-                                       //      graphics3.DrawImage( bitmap3, bgrect, bgrect.X, bgrect.Y, bgrect.Width, bgrect.Height, GraphicsUnit.Pixel );\r
                                        bitmap3.Dispose();\r
                                        #endregion\r
 \r
@@ -4245,16 +4446,6 @@ namespace DTXMania
                        image.Dispose();\r
                }\r
 \r
-               protected virtual void t入力処理_ギター()\r
-               {\r
-                       t入力処理_ギターベース(E楽器パート.GUITAR);\r
-               }\r
-               protected virtual void t入力処理_ベース()\r
-               {\r
-                       t入力処理_ギターベース(E楽器パート.BASS);\r
-               }\r
-\r
-\r
                protected virtual void t入力処理_ギターベース(E楽器パート inst)\r
                {\r
                        int indexInst = (int)inst;\r
@@ -4317,102 +4508,101 @@ namespace DTXMania
                                        this.actRGB.Push(B);\r
                                }\r
                        }\r
+\r
+                       int pressingR = CDTXMania.Instance.Pad.b押されている(inst, Eパッド.R) ? 4 : 0;\r
+                       this.t入力メソッド記憶(inst);\r
+                       int pressingG = CDTXMania.Instance.Pad.b押されている(inst, Eパッド.G) ? 2 : 0;\r
+                       this.t入力メソッド記憶(inst);\r
+                       int pressingB = CDTXMania.Instance.Pad.b押されている(inst, Eパッド.B) ? 1 : 0;\r
+                       this.t入力メソッド記憶(inst);\r
+                       int pressingRGB = pressingR | pressingG | pressingB;\r
+                       if (pressingR != 0)\r
                        {\r
-                               int pressingR = CDTXMania.Instance.Pad.b押されている(inst, Eパッド.R) ? 4 : 0;\r
-                               this.t入力メソッド記憶(inst);\r
-                               int pressingG = CDTXMania.Instance.Pad.b押されている(inst, Eパッド.G) ? 2 : 0;\r
-                               this.t入力メソッド記憶(inst);\r
-                               int pressingB = CDTXMania.Instance.Pad.b押されている(inst, Eパッド.B) ? 1 : 0;\r
-                               this.t入力メソッド記憶(inst);\r
-                               int pressingRGB = pressingR | pressingG | pressingB;\r
-                               if (pressingR != 0)\r
-                               {\r
-                                       this.actLaneFlushGB.Start(R);\r
-                                       this.actRGB.Push(R);\r
-                               }\r
-                               if (pressingG != 0)\r
-                               {\r
-                                       this.actLaneFlushGB.Start(G);\r
-                                       this.actRGB.Push(G);\r
-                               }\r
-                               if (pressingB != 0)\r
-                               {\r
-                                       this.actLaneFlushGB.Start(B);\r
-                                       this.actRGB.Push(B);\r
-                               }\r
-                               // auto pickだとここから先に行かないので注意\r
-                               List<STInputEvent> events = CDTXMania.Instance.Pad.GetEvents(inst, Eパッド.Pick);\r
-                               if ((events != null) && (events.Count > 0))\r
+                               this.actLaneFlushGB.Start(R);\r
+                               this.actRGB.Push(R);\r
+                       }\r
+                       if (pressingG != 0)\r
+                       {\r
+                               this.actLaneFlushGB.Start(G);\r
+                               this.actRGB.Push(G);\r
+                       }\r
+                       if (pressingB != 0)\r
+                       {\r
+                               this.actLaneFlushGB.Start(B);\r
+                               this.actRGB.Push(B);\r
+                       }\r
+                       // auto pickだとここから先に行かないので注意\r
+                       List<STInputEvent> events = CDTXMania.Instance.Pad.GetEvents(inst, Eパッド.Pick);\r
+                       if ((events != null) && (events.Count > 0))\r
+                       {\r
+                               foreach (STInputEvent eventPick in events)\r
                                {\r
-                                       foreach (STInputEvent eventPick in events)\r
+                                       if (!eventPick.b押された)\r
+                                       {\r
+                                               continue;\r
+                                       }\r
+                                       this.t入力メソッド記憶(inst);\r
+                                       long nTime = eventPick.nTimeStamp - CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻;\r
+                                       Ech定義 chWailingSound = (inst == E楽器パート.GUITAR) ? Ech定義.Guitar_WailingSound : Ech定義.Bass_WailingSound;\r
+                                       CChip pChip = this.r指定時刻に一番近い未ヒットChip(nTime, chWailingSound, this.nInputAdjustTimeMs[indexInst], CDTXMania.Instance.nPoor範囲ms + 1);       // E楽器パート.GUITARなチップ全てにヒットする\r
+                                       E判定 e判定 = this.e指定時刻からChipのJUDGEを返す(nTime, pChip, this.nInputAdjustTimeMs[indexInst]);\r
+                                       //Trace.TraceInformation("ch={0:x2}, mask1={1:x1}, mask2={2:x2}", pChip.nチャンネル番号,  ( pChip.nチャンネル番号 & ~nAutoMask ) & 0x0F, ( flagRGB & ~nAutoMask) & 0x0F );\r
+                                       if (\r
+                                               (pChip != null) &&\r
+                                               ((((int)pChip.eチャンネル番号 & ~nAutoMask) & 0x0F) == ((pressingRGB & ~nAutoMask) & 0x0F)) &&\r
+                                               (e判定 != E判定.Miss))\r
                                        {\r
-                                               if (!eventPick.b押された)\r
+                                               bool bChipHasR = pChip.bGuitarBass_R;\r
+                                               bool bChipHasG = pChip.bGuitarBass_G;\r
+                                               bool bChipHasB = pChip.bGuitarBass_B;\r
+                                               bool bChipHasW = pChip.bGuitarBass_Wailing;\r
+                                               bool bChipIsO = pChip.bGuitarBass_Open;\r
+                                               bool bSuccessOPEN = bChipIsO && (autoR || pressingR == 0) && (autoG || pressingG == 0) && (autoB || pressingB == 0);\r
+                                               if ((bChipHasR && (autoR || pressingR != 0)) || bSuccessOPEN)\r
                                                {\r
-                                                       continue;\r
+                                                       this.actChipFireGB.Start(R, 演奏判定ライン座標);\r
                                                }\r
-                                               this.t入力メソッド記憶(inst);\r
-                                               long nTime = eventPick.nTimeStamp - CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻;\r
-                                               Ech定義 chWailingSound = (inst == E楽器パート.GUITAR) ? Ech定義.Guitar_WailingSound : Ech定義.Bass_WailingSound;\r
-                                               CChip pChip = this.r指定時刻に一番近い未ヒットChip(nTime, chWailingSound, this.nInputAdjustTimeMs[indexInst], CDTXMania.Instance.nPoor範囲ms + 1);       // E楽器パート.GUITARなチップ全てにヒットする\r
-                                               E判定 e判定 = this.e指定時刻からChipのJUDGEを返す(nTime, pChip, this.nInputAdjustTimeMs[indexInst]);\r
-                                               //Trace.TraceInformation("ch={0:x2}, mask1={1:x1}, mask2={2:x2}", pChip.nチャンネル番号,  ( pChip.nチャンネル番号 & ~nAutoMask ) & 0x0F, ( flagRGB & ~nAutoMask) & 0x0F );\r
-                                               if (\r
-                                                       (pChip != null) &&\r
-                                                       ((((int)pChip.eチャンネル番号 & ~nAutoMask) & 0x0F) == ((pressingRGB & ~nAutoMask) & 0x0F)) &&\r
-                                                       (e判定 != E判定.Miss))\r
+                                               if ((bChipHasG && (autoG || pressingG != 0)) || bSuccessOPEN)\r
                                                {\r
-                                                       bool bChipHasR = pChip.bGuitarBass_R;\r
-                                                       bool bChipHasG = pChip.bGuitarBass_G;\r
-                                                       bool bChipHasB = pChip.bGuitarBass_B;\r
-                                                       bool bChipHasW = pChip.bGuitarBass_Wailing;\r
-                                                       bool bChipIsO = pChip.bGuitarBass_Open;\r
-                                                       bool bSuccessOPEN = bChipIsO && (autoR || pressingR == 0) && (autoG || pressingG == 0) && (autoB || pressingB == 0);\r
-                                                       if ((bChipHasR && (autoR || pressingR != 0)) || bSuccessOPEN)\r
-                                                       {\r
-                                                               this.actChipFireGB.Start(R, 演奏判定ライン座標);\r
-                                                       }\r
-                                                       if ((bChipHasG && (autoG || pressingG != 0)) || bSuccessOPEN)\r
-                                                       {\r
-                                                               this.actChipFireGB.Start(G, 演奏判定ライン座標);\r
-                                                       }\r
-                                                       if ((bChipHasB && (autoB || pressingB != 0)) || bSuccessOPEN)\r
-                                                       {\r
-                                                               this.actChipFireGB.Start(B, 演奏判定ライン座標);\r
-                                                       }\r
-                                                       this.tチップのヒット処理(nTime, pChip);\r
-                                                       this.tサウンド再生(pChip, CSound管理.rc演奏用タイマ.nシステム時刻, inst, CDTXMania.Instance.ConfigIni.n手動再生音量, CDTXMania.Instance.ConfigIni.b演奏音を強調する[indexInst], e判定 == E判定.Poor);\r
-                                                       Ech定義 chWailingChip = (inst == E楽器パート.GUITAR) ? Ech定義.Guitar_Wailing : Ech定義.Bass_Wailing;\r
-                                                       CChip item = this.r指定時刻に一番近い未ヒットChip(nTime, chWailingChip, this.nInputAdjustTimeMs[indexInst], 140);\r
-                                                       if (item != null)\r
-                                                       {\r
-                                                               this.queWailing[indexInst].Enqueue(item);\r
-                                                       }\r
-                                                       continue;\r
+                                                       this.actChipFireGB.Start(G, 演奏判定ライン座標);\r
                                                }\r
-\r
-                                               // 以下、間違いレーンでのピック時\r
-                                               CChip NoChipPicked = (inst == E楽器パート.GUITAR) ? this.r現在の空うちギターChip : this.r現在の空うちベースChip;\r
-                                               if ((NoChipPicked != null) || ((NoChipPicked = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, chWailingSound, this.nInputAdjustTimeMs[indexInst])) != null))\r
+                                               if ((bChipHasB && (autoB || pressingB != 0)) || bSuccessOPEN)\r
                                                {\r
-                                                       this.tサウンド再生(NoChipPicked, CSound管理.rc演奏用タイマ.nシステム時刻, inst, CDTXMania.Instance.ConfigIni.n手動再生音量, CDTXMania.Instance.ConfigIni.b演奏音を強調する[indexInst], true);\r
+                                                       this.actChipFireGB.Start(B, 演奏判定ライン座標);\r
                                                }\r
-                                               if (!CDTXMania.Instance.ConfigIni.bLight[indexInst])\r
+                                               this.tチップのヒット処理(nTime, pChip);\r
+                                               this.tサウンド再生(pChip, CSound管理.rc演奏用タイマ.nシステム時刻, inst, CDTXMania.Instance.ConfigIni.n手動再生音量, CDTXMania.Instance.ConfigIni.b演奏音を強調する[indexInst], e判定 == E判定.Poor);\r
+                                               Ech定義 chWailingChip = (inst == E楽器パート.GUITAR) ? Ech定義.Guitar_Wailing : Ech定義.Bass_Wailing;\r
+                                               CChip item = this.r指定時刻に一番近い未ヒットChip(nTime, chWailingChip, this.nInputAdjustTimeMs[indexInst], 140);\r
+                                               if (item != null)\r
                                                {\r
-                                                       this.tチップのヒット処理_BadならびにTight時のMiss(inst);\r
+                                                       this.queWailing[indexInst].Enqueue(item);\r
                                                }\r
+                                               continue;\r
+                                       }\r
+\r
+                                       // 以下、間違いレーンでのピック時\r
+                                       CChip NoChipPicked = (inst == E楽器パート.GUITAR) ? this.r現在の空うちギターChip : this.r現在の空うちベースChip;\r
+                                       if ((NoChipPicked != null) || ((NoChipPicked = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, chWailingSound, this.nInputAdjustTimeMs[indexInst])) != null))\r
+                                       {\r
+                                               this.tサウンド再生(NoChipPicked, CSound管理.rc演奏用タイマ.nシステム時刻, inst, CDTXMania.Instance.ConfigIni.n手動再生音量, CDTXMania.Instance.ConfigIni.b演奏音を強調する[indexInst], true);\r
+                                       }\r
+                                       if (!CDTXMania.Instance.ConfigIni.bLight[indexInst])\r
+                                       {\r
+                                               this.tチップのヒット処理_BadならびにTight時のMiss(inst);\r
                                        }\r
                                }\r
-                               List<STInputEvent> list = CDTXMania.Instance.Pad.GetEvents(inst, Eパッド.Wail);\r
-                               if ((list != null) && (list.Count > 0))\r
+                       }\r
+                       List<STInputEvent> list = CDTXMania.Instance.Pad.GetEvents(inst, Eパッド.Wail);\r
+                       if ((list != null) && (list.Count > 0))\r
+                       {\r
+                               foreach (STInputEvent eventWailed in list)\r
                                {\r
-                                       foreach (STInputEvent eventWailed in list)\r
+                                       if (!eventWailed.b押された)\r
                                        {\r
-                                               if (!eventWailed.b押された)\r
-                                               {\r
-                                                       continue;\r
-                                               }\r
-                                               DoWailingFromQueue(inst, eventWailed.nTimeStamp, autoW);\r
+                                               continue;\r
                                        }\r
+                                       DoWailingFromQueue(inst, eventWailed.nTimeStamp, autoW);\r
                                }\r
                        }\r
                }\r
@@ -4436,49 +4626,52 @@ namespace DTXMania
                                }\r
                        }\r
                }\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
+                       if (!CDTXMania.Instance.ConfigIni.bギタレボモード)\r
                        {\r
-                               if (CDTXMania.Instance.DTX.bチップがある.Guitar)\r
+                               if (((CDTXMania.Instance.ConfigIni.eDark != Eダークモード.HALF) && (CDTXMania.Instance.ConfigIni.eDark != Eダークモード.FULL)) &&\r
+                                       CDTXMania.Instance.ConfigIni.bGuitar有効)\r
                                {\r
-                                       int x = (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? 1521 : 1450;\r
-                                       for (int i = 0; i < 355; i += 0x80)\r
+                                       if (CDTXMania.Instance.DTX.bチップがある.Guitar)\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
+                                               int x = (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? 1521 : 1450;\r
+                                               for (int i = 0; i < 355; i += 0x80)\r
                                                {\r
-                                                       this.txレーンフレームGB.t2D描画(\r
-                                                               CDTXMania.Instance.Device,\r
-                                                               x,\r
-                                                               (57 + i) * Scale.Y,\r
-                                                               rc\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
-                               }\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
+                                       if (CDTXMania.Instance.DTX.bチップがある.Bass)\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
+                                               int x = (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? 1194 : 200;\r
+                                               for (int i = 0; i < 355; i += 0x80)\r
                                                {\r
-                                                       this.txレーンフレームGB.t2D描画(CDTXMania.Instance.Device,\r
-                                                               x,\r
-                                                               (57 + i) * Scale.Y,\r
-                                                               rc\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
@@ -4612,6 +4805,7 @@ namespace DTXMania
                        }\r
                        return true;\r
                }\r
+\r
                protected bool bフィルイン区間の最後のChipである(CChip pChip)\r
                {\r
                        if (pChip == null)\r
@@ -4633,5 +4827,455 @@ namespace DTXMania
                        }\r
                        return true;\r
                }\r
+\r
+               private void t進行描画_チップ_フィルイン(ref CChip pChip)\r
+               {\r
+                       if (!pChip.bHit && (pChip.nバーからの距離dot.Drums < 0))\r
+                       {\r
+                               pChip.bHit = true;\r
+\r
+                               if (CDTXMania.Instance.ConfigIni.bDrums有効)\r
+                               {\r
+                                       switch (pChip.n整数値)\r
+                                       {\r
+                                               case 0x01:      // フィルイン開始\r
+                                                       if (CDTXMania.Instance.ConfigIni.bフィルイン有効)\r
+                                                       {\r
+                                                               this.bフィルイン中 = true;\r
+                                                       }\r
+                                                       break;\r
+\r
+                                               case 0x02:      // フィルイン終了\r
+                                                       if (CDTXMania.Instance.ConfigIni.bフィルイン有効)\r
+                                                       {\r
+                                                               this.bフィルイン中 = false;\r
+                                                       }\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
+                                                                       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
+                                                                       CDTXMania.Instance.Skin.sound歓声音.n位置_次に鳴るサウンド = 0;\r
+                                                                       CDTXMania.Instance.Skin.sound歓声音.t再生する();\r
+                                                               }\r
+                                                       }\r
+                                                       break;\r
+#if TEST_NOTEOFFMODE   // 2011.1.1 yyagi TEST\r
+                                                               case 0x04:      // HH消音あり(従来同等)\r
+                                                                       CDTXMania.Instance.DTX.b演奏で直前の音を消音する.HH = true;\r
+                                                                       break;\r
+                                                               case 0x05:      // HH消音無し\r
+                                                                       CDTXMania.Instance.DTX.b演奏で直前の音を消音する.HH = false;\r
+                                                                       break;\r
+                                                               case 0x06:      // ギター消音あり(従来同等)\r
+                                                                       CDTXMania.Instance.DTX.b演奏で直前の音を消音する.Gutiar = true;\r
+                                                                       break;\r
+                                                               case 0x07:      // ギター消音無し\r
+                                                                       CDTXMania.Instance.DTX.b演奏で直前の音を消音する.Gutiar = false;\r
+                                                                       break;\r
+                                                               case 0x08:      // ベース消音あり(従来同等)\r
+                                                                       CDTXMania.Instance.DTX.b演奏で直前の音を消音する.Bass = true;\r
+                                                                       break;\r
+                                                               case 0x09:      // ベース消音無し\r
+                                                                       CDTXMania.Instance.DTX.b演奏で直前の音を消音する.Bass = false;\r
+                                                                       break;\r
+#endif\r
+                                       }\r
+                               }\r
+                       }\r
+               }\r
+               private void t進行描画_チップ_ドラムス(ref CChip pChip)\r
+               {\r
+                       if (CDTXMania.Instance.ConfigIni.bDrums有効)\r
+                       {\r
+                               #region [ Invisible処理 ]\r
+                               if (CDTXMania.Instance.ConfigIni.eInvisible.Drums != EInvisible.OFF)\r
+                               {\r
+                                       cInvisibleChip.SetInvisibleStatus(ref pChip);\r
+                               }\r
+                               #endregion\r
+                               else\r
+                               {\r
+                                       #region [ Sudden処理 ]\r
+                                       if (CDTXMania.Instance.ConfigIni.bSudden.Drums)\r
+                                       {\r
+                                               if (pChip.nバーからの距離dot.Drums < 200 * Scale.Y)\r
+                                               {\r
+                                                       pChip.b可視 = true;\r
+                                                       pChip.n透明度 = 0xff;\r
+                                               }\r
+                                               else if (pChip.nバーからの距離dot.Drums < 250 * Scale.Y)\r
+                                               {\r
+                                                       pChip.b可視 = true;\r
+                                                       pChip.n透明度 = 0xff - ((int)((((double)(pChip.nバーからの距離dot.Drums - 200 * Scale.Y)) * 255.0) / 50.0));\r
+                                               }\r
+                                               else\r
+                                               {\r
+                                                       pChip.b可視 = false;\r
+                                                       pChip.n透明度 = 0;\r
+                                               }\r
+                                       }\r
+                                       #endregion\r
+                                       #region [ Hidden処理 ]\r
+                                       if (CDTXMania.Instance.ConfigIni.bHidden.Drums)\r
+                                       {\r
+                                               if (pChip.nバーからの距離dot.Drums < 100 * Scale.Y)\r
+                                               {\r
+                                                       pChip.b可視 = false;\r
+                                               }\r
+                                               else if (pChip.nバーからの距離dot.Drums < 150 * Scale.Y)\r
+                                               {\r
+                                                       pChip.b可視 = true;\r
+                                                       pChip.n透明度 = (int)((((double)(pChip.nバーからの距離dot.Drums - 100 * Scale.Y)) * 255.0) / 50.0);\r
+                                               }\r
+                                       }\r
+                                       #endregion\r
+                               }\r
+                               if (!pChip.bHit && pChip.b可視)\r
+                               {\r
+                                       if (this.txチップ != null)\r
+                                       {\r
+                                               this.txチップ.n透明度 = pChip.n透明度;\r
+                                       }\r
+                                       int x = this.nチャンネルtoX座標[(int)CDTXMania.Instance.ConfigIni.eドラムレーン表示位置, pChip.eチャンネル番号 - Ech定義.HiHatClose];\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
+                                       if (this.txチップ != null)\r
+                                       {\r
+                                               double d = (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? 1.0 : 0.75;\r
+                                               this.txチップ.vc拡大縮小倍率 = new Vector3(\r
+                                                                                                               (float)(pChip.dbチップサイズ倍率 * d),\r
+                                                                                                               (float)pChip.dbチップサイズ倍率,\r
+                                                                                                               1f\r
+                                                                                                       );\r
+                                       }\r
+                                       int num9 = this.ctチップ模様アニメ.Drums.n現在の値;\r
+                                       switch (pChip.eチャンネル番号)\r
+                                       {\r
+                                               // HH\r
+                                               case Ech定義.HiHatClose:\r
+                                                       x += (int)(0x10 * Scale.X) - ((int)((32.0 * pChip.dbチップサイズ倍率 * Scale.X) / 2.0));\r
+                                                       if (this.txチップ != null)\r
+                                                       {\r
+                                                               this.txチップ.t2D描画(CDTXMania.Instance.Device, x, y - 9, new Rectangle((int)(44 * Scale.X), (int)(num9 * (18 - 2)), (int)(32 * Scale.X), (int)(18)));\r
+                                                       }\r
+                                                       break;\r
+\r
+                                               // SD\r
+                                               case Ech定義.Snare:\r
+                                                       x += (int)(0x10 * Scale.X) - ((int)((32.0 * pChip.dbチップサイズ倍率 * Scale.X) / 2.0));\r
+                                                       if (this.txチップ != null)\r
+                                                       {\r
+                                                               this.txチップ.t2D描画(CDTXMania.Instance.Device, x, y - 9, new Rectangle((int)(0x4c * Scale.X), (int)(num9 * (18 - 2)), (int)(0x20 * Scale.X), (int)(18)));\r
+                                                       }\r
+                                                       break;\r
+\r
+                                               // BD\r
+                                               case Ech定義.BassDrum:\r
+                                                       x += (int)(0x16 * Scale.X) - ((int)((44.0 * pChip.dbチップサイズ倍率 * Scale.X) / 2.0));\r
+                                                       if (this.txチップ != null)\r
+                                                       {\r
+                                                               this.txチップ.t2D描画(CDTXMania.Instance.Device, x, y - 11, new Rectangle((int)(0 * Scale.X), (int)(num9 * (22 - 2)), (int)(44 * Scale.X), (int)(22)));\r
+                                                       }\r
+                                                       break;\r
+\r
+                                               // HT\r
+                                               case Ech定義.HighTom:\r
+                                                       x += (int)(0x10 * Scale.X) - ((int)((32.0 * pChip.dbチップサイズ倍率 * Scale.X) / 2.0));\r
+                                                       if (this.txチップ != null)\r
+                                                       {\r
+                                                               this.txチップ.t2D描画(CDTXMania.Instance.Device, x, y - 9, new Rectangle((int)(0x6c * Scale.X), (int)(num9 * (18 - 2)), (int)(0x20 * Scale.X), (int)(18)));\r
+                                                       }\r
+                                                       break;\r
+\r
+                                               // LT\r
+                                               case Ech定義.LowTom:\r
+                                                       x += (int)(0x10 * Scale.X) - ((int)((32.0 * pChip.dbチップサイズ倍率 * Scale.X) / 2.0));\r
+                                                       if (this.txチップ != null)\r
+                                                       {\r
+                                                               this.txチップ.t2D描画(CDTXMania.Instance.Device, x, y - 9, new Rectangle((int)(140 * Scale.X), (int)(num9 * (18 - 2)), (int)(0x20 * Scale.X), (int)(18)));\r
+                                                       }\r
+                                                       break;\r
+\r
+                                               // CY\r
+                                               case Ech定義.Cymbal:\r
+                                                       x += (int)(0x13 * Scale.X) - ((int)((38.0 * pChip.dbチップサイズ倍率 * Scale.X) / 2.0));\r
+                                                       if (this.txチップ != null)\r
+                                                       {\r
+                                                               this.txチップ.t2D描画(CDTXMania.Instance.Device, x, y - 46, new Rectangle((int)(0xcc * Scale.X), (int)(786), (int)(0x26 * Scale.X), (int)(78)));\r
+                                                               this.txチップ.t2D描画(CDTXMania.Instance.Device, x, y - 9, new Rectangle((int)(0xcc * Scale.X), (int)(num9 * (18 - 2)), (int)(0x26 * Scale.X), (int)(18)));\r
+                                                       }\r
+                                                       break;\r
+\r
+                                               // FT\r
+                                               case Ech定義.FloorTom:\r
+                                                       x += (int)(0x10 * Scale.X) - ((int)((32.0 * pChip.dbチップサイズ倍率 * Scale.X) / 2.0));\r
+                                                       if (this.txチップ != null)\r
+                                                       {\r
+                                                               this.txチップ.t2D描画(CDTXMania.Instance.Device, x, y - 9, new Rectangle((int)(0xac * Scale.X), (int)(num9 * (18 - 2)), (int)(0x20 * Scale.X), (int)(18)));\r
+                                                       }\r
+                                                       break;\r
+\r
+                                               // HHO\r
+                                               case Ech定義.HiHatOpen:\r
+                                                       x += (int)(13 * Scale.X) - ((int)((26.0 * pChip.dbチップサイズ倍率 * Scale.X) / 2.0));\r
+                                                       if (this.txチップ != null)\r
+                                                       {\r
+                                                               this.txチップ.t2D描画(CDTXMania.Instance.Device, x, y - 9, new Rectangle((int)(0xf2 * Scale.X), (int)(num9 * (18 - 2)), (int)(0x1a * Scale.X), (int)(18)));\r
+                                                               this.txチップ.t2D描画(CDTXMania.Instance.Device, x, y - 16, new Rectangle((int)(0xf2 * Scale.X), (int)(790), (int)(0x1a * Scale.X), (int)(30)));\r
+                                                       }\r
+                                                       break;\r
+\r
+                                               // RCY\r
+                                               case Ech定義.RideCymbal:\r
+                                                       x += (int)(13 * Scale.X) - ((int)((26.0 * pChip.dbチップサイズ倍率 * Scale.X) / 2.0));\r
+                                                       if (this.txチップ != null)\r
+                                                       {\r
+                                                               this.txチップ.t2D描画(CDTXMania.Instance.Device, x, y - 9, new Rectangle((int)(0xf2 * Scale.X), (int)(num9 * (18 - 2)), (int)(0x1a * Scale.X), (int)(18)));\r
+                                                               this.txチップ.t2D描画(CDTXMania.Instance.Device, x, y - 16, new Rectangle((int)(0xf2 * Scale.X), (int)(790), (int)(0x1a * Scale.X), (int)(30)));\r
+                                                       }\r
+                                                       break;\r
+\r
+                                               // LCY\r
+                                               case Ech定義.LeftCymbal:\r
+                                                       x += (int)(0x13 * Scale.X) - ((int)((38.0 * pChip.dbチップサイズ倍率 * Scale.X) / 2.0));\r
+                                                       if (this.txチップ != null)\r
+                                                       {\r
+                                                               this.txチップ.t2D描画(CDTXMania.Instance.Device, x, y - 46, new Rectangle((int)(0xcc * Scale.X), (int)(786), (int)(0x26 * Scale.X), (int)(78)));\r
+                                                               this.txチップ.t2D描画(CDTXMania.Instance.Device, x, y - 9, new Rectangle((int)(0xcc * Scale.X), (int)(num9 * (18 - 2)), (int)(0x26 * Scale.X), (int)(18)));\r
+                                                       }\r
+                                                       break;\r
+                                       }\r
+                                       if (this.txチップ != null)\r
+                                       {\r
+                                               this.txチップ.vc拡大縮小倍率 = new Vector3(1f, 1f, 1f);\r
+                                               this.txチップ.n透明度 = 0xff;\r
+                                       }\r
+                               }\r
+\r
+                               int indexSevenLanes = CStage演奏画面共通.nチャンネル0Atoレーン07[pChip.eチャンネル番号 - Ech定義.HiHatClose];\r
+                               // #35411 chnmr0 modified\r
+                               bool autoPlayCondition = (CDTXMania.Instance.ConfigIni.bAutoPlay[indexSevenLanes] && !pChip.bHit);\r
+                               bool UsePerfectGhost = true;\r
+                               long ghostLag = 0;\r
+\r
+                               if (CDTXMania.Instance.ConfigIni.eAutoGhost.Drums != EAutoGhostData.PERFECT &&\r
+                                               CDTXMania.Instance.DTX.listAutoGhostLag.Drums != null &&\r
+                                               0 <= pChip.n楽器パートでの出現順 && pChip.n楽器パートでの出現順 < CDTXMania.Instance.DTX.listAutoGhostLag.Drums.Count)\r
+                               {\r
+                                       // ゴーストデータが有効 : ラグに合わせて判定\r
+                                       ghostLag = CDTXMania.Instance.DTX.listAutoGhostLag.Drums[pChip.n楽器パートでの出現順];\r
+                                       ghostLag = (ghostLag & 255) - 128;\r
+                                       ghostLag -= this.nInputAdjustTimeMs.Drums;\r
+                                       autoPlayCondition &= !pChip.bHit && (ghostLag + pChip.n発声時刻ms <= CSound管理.rc演奏用タイマ.n現在時刻ms);\r
+                                       UsePerfectGhost = false;\r
+                               }\r
+                               if (UsePerfectGhost)\r
+                               {\r
+                                       // 従来の AUTO : バー下で判定\r
+                                       autoPlayCondition &= (pChip.nバーからの距離dot.Drums < 0);\r
+                               }\r
+\r
+                               if (autoPlayCondition)\r
+                               {\r
+                                       pChip.bHit = true;\r
+                                       this.actLaneFlushD.Start((Eレーン)indexSevenLanes, ((float)CInput管理.n通常音量) / 127f);\r
+                                       bool flag = this.bフィルイン中;\r
+                                       bool flag2 = this.bフィルイン中 && this.bフィルイン区間の最後のChipである(pChip);\r
+                                       //bool flag3 = flag2;\r
+                                       // #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, CDTXMania.Instance.DTX.nモニタを考慮した音量(E楽器パート.DRUMS));\r
+                                       this.tチップのヒット処理(pChip.n発声時刻ms + ghostLag, pChip);\r
+                                       cInvisibleChip.StartSemiInvisible(E楽器パート.DRUMS);\r
+                               }\r
+                               // #35411 modify end\r
+\r
+                               // #35411 2015.08.21 chnmr0 add\r
+                               // 目標値グラフにゴーストの達成率を渡す\r
+                               if (CDTXMania.Instance.ConfigIni.eTargetGhost.Drums != ETargetGhostData.NONE &&\r
+                                               CDTXMania.Instance.DTX.listTargetGhsotLag.Drums != null)\r
+                               {\r
+                                       double val = 0;\r
+                                       if (CDTXMania.Instance.ConfigIni.eTargetGhost.Drums == ETargetGhostData.ONLINE)\r
+                                       {\r
+                                               if (CDTXMania.Instance.DTX.n可視チップ数.Drums > 0)\r
+                                               {\r
+                                                       // Online Stats の計算式\r
+                                                       val = 100 *\r
+                                                                       (this.nヒット数_TargetGhost.Drums.Perfect * 17 +\r
+                                                                        this.nヒット数_TargetGhost.Drums.Great * 7 +\r
+                                                                        this.n最大コンボ数_TargetGhost.Drums * 3) / (20.0 * CDTXMania.Instance.DTX.n可視チップ数.Drums);\r
+                                               }\r
+                                       }\r
+                                       else\r
+                                       {\r
+                                               val = CScoreIni.t演奏型スキルを計算して返す(\r
+                                                               CDTXMania.Instance.DTX.n可視チップ数.Drums,\r
+                                                               this.nヒット数_TargetGhost.Drums.Perfect,\r
+                                                               this.nヒット数_TargetGhost.Drums.Great,\r
+                                                               this.nヒット数_TargetGhost.Drums.Good,\r
+                                                               this.nヒット数_TargetGhost.Drums.Poor,\r
+                                                               this.nヒット数_TargetGhost.Drums.Miss,\r
+                                                               E楽器パート.DRUMS, new STAUTOPLAY());\r
+                                       }\r
+                                       if (val < 0) val = 0;\r
+                                       if (val > 100) val = 100;\r
+                                       this.actGraph.dbグラフ値目標_渡 = val;\r
+                               }\r
+                               return;\r
+                       }\r
+                       else\r
+                       {\r
+                               if (!pChip.bHit && (pChip.nバーからの距離dot.Drums < 0))\r
+                               {\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
+               }\r
+               private void t進行描画_チップ_ギターベース(ref CChip pChip, E楽器パート inst)\r
+               {\r
+                       if (CDTXMania.Instance.ConfigIni.bギタレボモード)\r
+                       {\r
+\r
+                               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
+                       else\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
+                               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
+                                       xGtO, xGtL, xBsO, xBsL,         // GtのX, Gt左利きのX, BsのX, Bs左利きのX,\r
+                                       26, 24                                          // 描画のX座標間隔, テクスチャのX座標間隔\r
+                               );\r
+                       }\r
+               }\r
+               private void t進行描画_ギターベース判定ライン()          // yyagi: ギタレボモードとは座標が違うだけですが、まとめづらかったのでそのまま放置してます。\r
+               {\r
+                       if (CDTXMania.Instance.ConfigIni.bギタレボモード)\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 = 23 * 3;\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
+                                               if (this.txヒットバー != null)\r
+                                               {\r
+                                                       for (int i = 0; i < 4; i++)\r
+                                                       {\r
+                                                               this.txヒットバー.t2D描画(CDTXMania.Instance.Device,\r
+                                                                       x + (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
+                                                                       )\r
+                                                               );\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                                       if (CDTXMania.Instance.DTX.bチップがある.Bass)\r
+                                       {\r
+                                               int x = 477 * 3;\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
+                                               if (this.txヒットバー != null)\r
+                                               {\r
+                                                       for (int j = 0; j < 4; j++)\r
+                                                       {\r
+                                                               this.txヒットバー.t2D描画(\r
+                                                                       CDTXMania.Instance.Device,\r
+                                                                       x + (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
+                                                                       )\r
+                                                               );\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                               }\r
+                       }\r
+                       else\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, 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
+                                               {\r
+                                                       for (int i = 0; i < 3; i++)\r
+                                                       {\r
+                                                               this.txヒットバーGB.t2D描画(CDTXMania.Instance.Device,\r
+                                                                       x + (3 * 26 * i),\r
+                                                                       y\r
+                                                               );\r
+                                                               this.txヒットバーGB.t2D描画(CDTXMania.Instance.Device,\r
+                                                                       x + (3 * 26 * i) + 48,\r
+                                                                       y,\r
+                                                                       rc\r
+                                                               );\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                                       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, 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
+                                               {\r
+                                                       for (int j = 0; j < 3; j++)\r
+                                                       {\r
+                                                               this.txヒットバーGB.t2D描画(CDTXMania.Instance.Device,\r
+                                                                       x + (3 * 26 * j),\r
+                                                                       y\r
+                                                               );\r
+                                                               this.txヒットバーGB.t2D描画(CDTXMania.Instance.Device,\r
+                                                                       x + (3 * 26 * j) + 48,\r
+                                                                       y,\r
+                                                                       rc\r
+                                                               );\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                               }\r
+                       }\r
+               }\r
        }\r
 }\r
index 160838e..a584672 100644 (file)
@@ -10,7 +10,7 @@ using System.Runtime.InteropServices;
 \r
 namespace DTXMania\r
 {\r
-       internal abstract partial class CStage演奏画面共通\r
+       internal partial class CStage演奏画面共通\r
        {\r
                protected enum HitState\r
                {\r
index 485c388..5f28270 100644 (file)
@@ -1,102 +1 @@
-using System;\r
-using System.Collections.Generic;\r
-using System.Text;\r
-using System.Drawing;\r
-using System.Diagnostics;\r
-using FDK;\r
-\r
-namespace DTXMania\r
-{\r
-       internal class CAct演奏GuitarDanger : CAct演奏Danger共通\r
-       {\r
-\r
-               public override void OnManagedリソースの作成()\r
-               {\r
-                       if (!base.b活性化してない)\r
-                       {\r
-                               this.txDANGER = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenPlayGuitar danger.png"));\r
-                               base.OnManagedリソースの作成();\r
-                       }\r
-               }\r
-               public override void OnManagedリソースの解放()\r
-               {\r
-                       if (!base.b活性化してない)\r
-                       {\r
-                               TextureFactory.tテクスチャの解放(ref this.txDANGER);\r
-                               base.OnManagedリソースの解放();\r
-                       }\r
-               }\r
-               public override int On進行描画()\r
-               {\r
-                       throw new InvalidOperationException("t進行描画(bool)のほうを使用してください。");\r
-               }\r
-               /// <summary>\r
-               /// DANGER表示(Guitar/Bass)\r
-               /// </summary>\r
-               /// <param name="bIsDangerDrums">DrumsがDangerか否か(未使用)</param>\r
-               /// <param name="bIsDangerGuitar">GuitarがDangerか否か</param>\r
-               /// <param name="bIsDangerBass">BassがDangerか否か</param>\r
-               /// <returns></returns>\r
-               public override int t進行描画(bool bIsDangerDrums, bool bIsDangerGuitar, bool bIsDangerBass)\r
-               {\r
-                       bool[] bIsDanger = { bIsDangerDrums, bIsDangerGuitar, bIsDangerBass };\r
-\r
-                       if (!base.b活性化してない)\r
-                       {\r
-                               if (this.ct透明度用 == null)\r
-                               {\r
-                                       //this.ct移動用 = new CCounter( 0, 0x7f, 7, CDTXMania.Instance.Timer );\r
-                                       this.ct透明度用 = new CCounter(0, n波長, 8, CDTXMania.Instance.Timer);\r
-                               }\r
-                               if (this.ct透明度用 != null)\r
-                               {\r
-                                       //this.ct移動用.t進行Loop();\r
-                                       this.ct透明度用.t進行Loop();\r
-                               }\r
-                               for (int nPart = (int)E楽器パート.GUITAR; nPart <= (int)E楽器パート.BASS; nPart++)\r
-                               {\r
-                                       //      this.bDanger中[nPart] = bIsDanger[nPart];\r
-                                       if (bIsDanger[nPart])\r
-                                       {\r
-                                               if (this.txDANGER != null)\r
-                                               {\r
-                                                       int d = this.ct透明度用.n現在の値;\r
-                                                       this.txDANGER.n透明度 = n透明度MIN + ((d < n波長 / 2) ? (n透明度MAX - n透明度MIN) * d / (n波長 / 2) : (n透明度MAX - n透明度MIN) * (n波長 - d) / (n波長 / 2));         // 60-200\r
-                                                       //              }\r
-                                                       //num = this.ct移動用.n現在の値;\r
-                                                       //int num2 = CDTXMania.Instance.ConfigIni.bReverse.Drums ? ( 0x7f - num ) : num;\r
-                                                       //                              for ( int i = -1; i < 4; i++ )\r
-                                                       //                              {\r
-                                                       //              if ( this.txDANGER != null )\r
-                                                       //              {\r
-                                                       this.txDANGER.t2D描画(\r
-                                                               CDTXMania.Instance.Device,\r
-                                                               nGaugeX[nPart] * Scale.X,\r
-                                                               0\r
-                                                       );\r
-                                                       //this.txDANGER.t2D描画( CDTXMania.Instance.app.Device, 0x26, ( ( i * 0x80 ) + num2 ) + 0x40, this.rc領域[ 1 ] );\r
-                                                       //this.txDANGER.t2D描画( CDTXMania.Instance.app.Device, 0x12a, ( i * 0x80 ) + num2, this.rc領域[ 0 ] );\r
-                                                       //this.txDANGER.t2D描画( CDTXMania.Instance.app.Device, 0x12a, ( ( i * 0x80 ) + num2 ) + 0x40, this.rc領域[ 1 ] );\r
-                                               }\r
-                                               //                              }\r
-                                       }\r
-                               }\r
-                       }\r
-                       return 0;\r
-               }\r
-\r
-\r
-               // その他\r
-\r
-               #region [ private ]\r
-               //-----------------\r
-               private const int n波長 = 40;\r
-               private const int n透明度MAX = 180;\r
-               private const int n透明度MIN = 20;\r
-               private readonly int[] nGaugeX = { 0, 168, 328 };\r
-               //              private readonly Rectangle[] rc領域 = new Rectangle[] { new Rectangle( 0, 0, 0x20, 0x40 ), new Rectangle( 0x20, 0, 0x20, 0x40 ) };\r
-               private CTexture txDANGER;\r
-               //-----------------\r
-               #endregion\r
-       }\r
-}\r
+
\ No newline at end of file
index c3537e2..5f28270 100644 (file)
@@ -1,96 +1 @@
-using System;\r
-using System.Collections.Generic;\r
-using System.Text;\r
-using System.Drawing;\r
-\r
-namespace DTXMania\r
-{\r
-       internal class CAct演奏GuitarRGB : CAct演奏RGB共通\r
-       {\r
-               // コンストラクタ\r
-\r
-               public CAct演奏GuitarRGB()\r
-               {\r
-                       base.b活性化してない = true;\r
-               }\r
-\r
-\r
-               // CActivity 実装(共通クラスからの差分のみ)\r
-\r
-               public override int On進行描画()\r
-               {\r
-                       throw new InvalidOperationException("t進行描画(C演奏判定ライン座標共通 演奏判定ライン共通 ) のほうを使用してください。");\r
-               }\r
-               public override int t進行描画(C演奏判定ライン座標共通 演奏判定ライン座標)\r
-               {\r
-                       if (!base.b活性化してない)\r
-                       {\r
-                               if (!CDTXMania.Instance.ConfigIni.bGuitar有効)\r
-                               {\r
-                                       return 0;\r
-                               }\r
-                               if (CDTXMania.Instance.DTX.bチップがある.Guitar)\r
-                               {\r
-                                       for (int j = 0; j < 3; j++)\r
-                                       {\r
-                                               int index = CDTXMania.Instance.ConfigIni.bLeft.Guitar ? (2 - j) : j;\r
-                                               Rectangle rectangle = new Rectangle(\r
-                                                       (int)(index * 0x18 * Scale.X),\r
-                                                       0,\r
-                                                       (int)(0x18 * Scale.X),\r
-                                                       (int)(0x20 * Scale.Y)\r
-                                               );\r
-                                               if (base.b押下状態[index])\r
-                                               {\r
-                                                       rectangle.Y += (int)(0x20 * Scale.Y);\r
-                                               }\r
-                                               if (base.txRGB != null)\r
-                                               {\r
-                                                       int y = 演奏判定ライン座標.n演奏RGBボタンY座標(E楽器パート.GUITAR, true, CDTXMania.Instance.ConfigIni.bReverse.Guitar);\r
-                                                       //      int y = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.GUITAR, true, CDTXMania.Instance.ConfigIni.bReverse.Guitar, false, false );\r
-                                                       base.txRGB.t2D描画(\r
-                                                               CDTXMania.Instance.Device,\r
-                                                               (0x1f + (j * 0x24)) * Scale.X,\r
-                                                               y,\r
-                                                               rectangle\r
-                                                       );\r
-                                               }\r
-                                       }\r
-                               }\r
-                               if (CDTXMania.Instance.DTX.bチップがある.Bass)\r
-                               {\r
-                                       for (int k = 0; k < 3; k++)\r
-                                       {\r
-                                               int index = CDTXMania.Instance.ConfigIni.bLeft.Bass ? (2 - k) : k;\r
-                                               Rectangle rectangle2 = new Rectangle(\r
-                                                       (int)(index * 0x18 * Scale.X),\r
-                                                       0,\r
-                                                       (int)(0x18 * Scale.X),\r
-                                                       (int)(0x20 * Scale.Y)\r
-                                               );\r
-                                               if (base.b押下状態[index + 3])\r
-                                               {\r
-                                                       rectangle2.Y += (int)(0x20 * Scale.Y);\r
-                                               }\r
-                                               if (base.txRGB != null)\r
-                                               {\r
-                                                       int y = 演奏判定ライン座標.n演奏RGBボタンY座標(E楽器パート.BASS, true, CDTXMania.Instance.ConfigIni.bReverse.Bass);\r
-                                                       //int y = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.BASS, true, CDTXMania.Instance.ConfigIni.bReverse.Bass, false, false );\r
-                                                       base.txRGB.t2D描画(\r
-                                                               CDTXMania.Instance.Device,\r
-                                                               (0x1e5 + (k * 0x24)) * Scale.X,\r
-                                                               y,\r
-                                                               rectangle2\r
-                                                       );\r
-                                               }\r
-                                       }\r
-                               }\r
-                               for (int i = 0; i < 6; i++)\r
-                               {\r
-                                       base.b押下状態[i] = false;\r
-                               }\r
-                       }\r
-                       return 0;\r
-               }\r
-       }\r
-}\r
+
\ No newline at end of file
index 1e1949b..5f28270 100644 (file)
@@ -1,146 +1 @@
-using System;\r
-using System.Collections.Generic;\r
-using System.Text;\r
-using System.Drawing;\r
-using FDK;\r
-\r
-namespace DTXMania\r
-{\r
-       internal class CAct演奏GuitarWailingBonus : CAct演奏WailingBonus共通\r
-       {\r
-               // メソッド\r
-\r
-               public CAct演奏GuitarWailingBonus()\r
-               {\r
-                       base.b活性化してない = true;\r
-               }\r
-               //public override void Start( E楽器パート part )\r
-               //{\r
-               //    this.Start( part, null );\r
-               //}\r
-               public override void Start(E楽器パート part, CChip r歓声Chip)\r
-               {\r
-                       if (part != E楽器パート.DRUMS)\r
-                       {\r
-                               for (int i = 0; i < 4; i++)\r
-                               {\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
-                                               {\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
-                                                               return;\r
-                                                       }\r
-                                                       CDTXMania.Instance.Skin.sound歓声音.n位置_次に鳴るサウンド = (part == E楽器パート.GUITAR) ? -50 : 50;\r
-                                                       CDTXMania.Instance.Skin.sound歓声音.t再生する();\r
-                                                       return;\r
-                                               }\r
-                                               break;\r
-                                       }\r
-                               }\r
-                       }\r
-               }\r
-\r
-\r
-               // CActivity 実装\r
-\r
-               public override void On活性化()\r
-               {\r
-                       for (int i = 0; i < 3; i++)\r
-                       {\r
-                               for (int j = 0; j < 4; j++)\r
-                               {\r
-                                       this.ct進行用[i, j] = null;\r
-                               }\r
-                       }\r
-                       base.On活性化();\r
-               }\r
-               public override int On進行描画()\r
-               {\r
-                       if (!base.b活性化してない)\r
-                       {\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
-                                       {\r
-                                               if ((this.ct進行用[(int)e楽器パート, k] != null) && !this.ct進行用[(int)e楽器パート, k].b停止中)\r
-                                               {\r
-                                                       if (this.ct進行用[(int)e楽器パート, k].b終了値に達した)\r
-                                                       {\r
-                                                               this.ct進行用[(int)e楽器パート, k].t停止();\r
-                                                       }\r
-                                                       else\r
-                                                       {\r
-                                                               this.ct進行用[(int)e楽器パート, k].t進行();\r
-                                                       }\r
-                                               }\r
-                                       }\r
-                               }\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
-                                       {\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 num6 = 0;\r
-                                                       int num7 = 0;\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
-                                                       }\r
-                                                       else if (num8 < 150)\r
-                                                       {\r
-                                                               num6 = (int)(64.0 + ((150 - num8) * Math.Sin((Math.PI * ((num8 - 100) % 0x19)) / 25.0)));\r
-                                                       }\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
-                                                       }\r
-                                                       if (CDTXMania.Instance.ConfigIni.bReverse[(int)e楽器パート2])\r
-                                                       {\r
-                                                               num6 = (0x199 - num6) - 0xf4;\r
-                                                       }\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
-                                                       }\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
-                                                       {\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
-                                                                       rectangle\r
-                                                               );\r
-                                                       }\r
-                                               }\r
-                                       }\r
-                               }\r
-                       }\r
-                       return 0;\r
-               }\r
-       }\r
-}\r
+
\ No newline at end of file
index f6e3aa5..5f28270 100644 (file)
@@ -1,267 +1 @@
-using System;\r
-using System.Collections.Generic;\r
-using System.Text;\r
-using System.Drawing;\r
-using FDK;\r
-\r
-namespace DTXMania\r
-{\r
-       internal class CAct演奏Guitarゲージ : CAct演奏ゲージ共通\r
-       {\r
-               // コンストラクタ\r
-\r
-               public CAct演奏Guitarゲージ()\r
-               {\r
-                       base.b活性化してない = true;\r
-               }\r
-\r
-\r
-               // CActivity 実装\r
-\r
-               public override void On活性化()\r
-               {\r
-                       base.On活性化();\r
-               }\r
-               public override void On非活性化()\r
-               {\r
-                       this.ct本体移動 = null;\r
-                       this.ct本体振動 = null;\r
-                       base.On非活性化();\r
-               }\r
-               public override void OnManagedリソースの作成()\r
-               {\r
-                       if (!base.b活性化してない)\r
-                       {\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
-                       {\r
-                               TextureFactory.tテクスチャの解放(ref this.txゲージ);\r
-                               base.OnManagedリソースの解放();\r
-                       }\r
-               }\r
-               public override int On進行描画()\r
-               {\r
-                       if (!base.b活性化してない)\r
-                       {\r
-                               int num;\r
-                               int num9;\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
-                                       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
-                               {\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
-                               }\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
-                                       {\r
-                                               if (this.db現在のゲージ値.Guitar == 1.0)\r
-                                               {\r
-                                                       rectangle = new Rectangle(0x1b, 0, 0x1b, 0x10);\r
-                                               }\r
-                                               else\r
-                                               {\r
-                                                       rectangle = new Rectangle(0, 0, 0x1b, 0x10);\r
-                                               }\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
-                                               {\r
-                                                       int num6 = (x + rectangle.Width) - (0xb2 + num);\r
-                                                       rectangle.Width -= num6;\r
-                                               }\r
-                                               if (rectangle.Left >= rectangle.Right)\r
-                                               {\r
-                                                       break;\r
-                                               }\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
-\r
-                                                       this.txゲージ.b加算合成 = false;\r
-                                                       this.txゲージ.t2D描画(\r
-                                                               CDTXMania.Instance.Device,\r
-                                                               x * Scale.X,\r
-                                                               8 * Scale.Y,\r
-                                                               rectangle1\r
-                                                       );\r
-                                               }\r
-                                               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
-                                       {\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
-                                       {\r
-                                               int num8 = (x + rectangle.Width) - (0xb2 + num);\r
-                                               rectangle.Width -= num8;\r
-                                       }\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
-                                                       x * Scale.X,\r
-                                                       8 * Scale.Y,\r
-                                                       rectangle\r
-                                               );\r
-                                       }\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.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
-                                       }\r
-                               }\r
-                               #endregion\r
-\r
-                               #region [ ベースのゲージ ]\r
-                               if (this.db現在のゲージ値.Bass == 1.0)\r
-                               {\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
-                               }\r
-                               if (num9 > 0)\r
-                               {\r
-                                       Rectangle rectangle2;\r
-                                       int num10 = this.ct本体移動.n現在の値;\r
-                                       int num11 = (0x1cf - num9) - num10;\r
-                                       int num12 = num9 + num10;\r
-                                       while (num12 > 0)\r
-                                       {\r
-                                               if (this.db現在のゲージ値.Bass == 1.0)\r
-                                               {\r
-                                                       rectangle2 = new Rectangle(10, 0x30, 0x1b, 0x10);\r
-                                               }\r
-                                               else\r
-                                               {\r
-                                                       rectangle2 = new Rectangle(0x25, 0x30, 0x1b, 0x10);\r
-                                               }\r
-                                               if (num11 < (0x1cf - num9))\r
-                                               {\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
-                                               {\r
-                                                       int num14 = (num11 + rectangle2.Width) - 0x1cf;\r
-                                                       rectangle2.Width -= num14;\r
-                                               }\r
-                                               if (rectangle2.Left >= rectangle2.Right)\r
-                                               {\r
-                                                       break;\r
-                                               }\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
-                                                       this.txゲージ.b加算合成 = false;\r
-                                                       this.txゲージ.t2D描画(\r
-                                                               CDTXMania.Instance.Device,\r
-                                                               num11 * Scale.X,\r
-                                                               8 * Scale.Y,\r
-                                                               rectangle3\r
-                                                       );\r
-                                               }\r
-                                               num12 -= rectangle2.Width;\r
-                                               num11 += rectangle2.Width;\r
-                                       }\r
-                                       rectangle2 = new Rectangle(0, 0x20, 0x40, 0x10);\r
-                                       num11 = 0x1cf - num9;\r
-                                       if ((num11 + rectangle2.Width) > 0x1cf)\r
-                                       {\r
-                                               int num15 = (num11 + rectangle2.Width) - 0x1cf;\r
-                                               rectangle2.Width -= num15;\r
-                                       }\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
-                                               this.txゲージ.t2D描画(\r
-                                                       CDTXMania.Instance.Device,\r
-                                                       num11 * Scale.X,\r
-                                                       8 * Scale.Y,\r
-                                                       rectangle2\r
-                                               );\r
-                                       }\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.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
-                                       }\r
-                               }\r
-                               #endregion\r
-                       }\r
-                       return 0;\r
-               }\r
-\r
-\r
-               // その他\r
-\r
-               #region [ private ]\r
-               //-----------------\r
-               //private CCounter ct本体移動;\r
-               //private CCounter ct本体振動;\r
-               //private CTexture txゲージ;\r
-               //-----------------\r
-               #endregion\r
-       }\r
-}\r
+
\ No newline at end of file
index 29c4faf..5f28270 100644 (file)
@@ -1,41 +1 @@
-using System;\r
-using System.Collections.Generic;\r
-using System.Text;\r
-\r
-namespace DTXMania\r
-{\r
-       internal class CAct演奏Guitarコンボ : CAct演奏Combo共通\r
-       {\r
-               // CAct演奏Combo共通 実装\r
-\r
-               protected override void tコンボ表示_ギター(int nCombo値, int nジャンプインデックス)\r
-               {\r
-                       int x = (int)(230 * Scale.X);\r
-                       int y = CDTXMania.Instance.ConfigIni.bReverse.Guitar ? 0x103 : 150;\r
-                       y = (int)(y * Scale.Y);\r
-                       //int y = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.GUITAR, false, CDTXMania.Instance.ConfigIni.bReverse.Guitar );\r
-                       //y += CDTXMania.Instance.ConfigIni.bReverse.Guitar ? -134 : +174;\r
-                       if (base.txCOMBOギター != null)\r
-                       {\r
-                               base.txCOMBOギター.n透明度 = 0xff;\r
-                       }\r
-                       base.tコンボ表示_ギター(nCombo値, x, y, nジャンプインデックス);\r
-               }\r
-               protected override void tコンボ表示_ドラム(int nCombo値, int nジャンプインデックス)\r
-               {\r
-               }\r
-               protected override void tコンボ表示_ベース(int nCombo値, int nジャンプインデックス)\r
-               {\r
-                       int x = (int)(410 * Scale.X);\r
-                       int y = CDTXMania.Instance.ConfigIni.bReverse.Bass ? 0x103 : 150;\r
-                       y = (int)(y * Scale.Y);\r
-                       //int y = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.BASS, false, CDTXMania.Instance.ConfigIni.bReverse.Bass );\r
-                       //y += CDTXMania.Instance.ConfigIni.bReverse.Bass ? -134 : +174;\r
-                       if (base.txCOMBOギター != null)\r
-                       {\r
-                               base.txCOMBOギター.n透明度 = 0xff;\r
-                       }\r
-                       base.tコンボ表示_ベース(nCombo値, x, y, nジャンプインデックス);\r
-               }\r
-       }\r
-}\r
+
\ No newline at end of file
index b77cd96..5f28270 100644 (file)
@@ -1,108 +1 @@
-using System;\r
-using System.Collections.Generic;\r
-using System.Text;\r
-using System.Drawing;\r
-using FDK;\r
-\r
-namespace DTXMania\r
-{\r
-       internal class CAct演奏Guitarスコア : CAct演奏スコア共通\r
-       {\r
-               // コンストラクタ\r
-\r
-               public CAct演奏Guitarスコア()\r
-               {\r
-                       base.b活性化してない = true;\r
-               }\r
-\r
-\r
-               // CActivity 実装(共通クラスからの差分のみ)\r
-\r
-               public override unsafe int On進行描画()\r
-               {\r
-                       if (!base.b活性化してない)\r
-                       {\r
-                               if (base.b初めての進行描画)\r
-                               {\r
-                                       base.n進行用タイマ = CDTXMania.Instance.Timer.n現在時刻;\r
-                                       base.b初めての進行描画 = false;\r
-                               }\r
-                               long num = CDTXMania.Instance.Timer.n現在時刻;\r
-                               if (num < base.n進行用タイマ)\r
-                               {\r
-                                       base.n進行用タイマ = num;\r
-                               }\r
-                               while ((num - base.n進行用タイマ) >= 10)\r
-                               {\r
-                                       for (int j = 0; j < 3; j++)\r
-                                       {\r
-                                               this.n現在表示中のスコア[j] += this.nスコアの増分[j];\r
-\r
-                                               if (this.n現在表示中のスコア[j] > (long)this.n現在の本当のスコア[j])\r
-                                                       this.n現在表示中のスコア[j] = (long)this.n現在の本当のスコア[j];\r
-                                       }\r
-                                       base.n進行用タイマ += 10;\r
-                               }\r
-                               for (int i = 1; i < 3; i++)\r
-                               {\r
-                                       string str = this.n現在表示中のスコア[i].ToString("0000000000");\r
-                                       for (int k = 0; k < 10; k++)\r
-                                       {\r
-                                               Rectangle rectangle;\r
-                                               char ch = str[k];\r
-                                               if (ch.Equals(' '))\r
-                                               {\r
-                                                       rectangle = new Rectangle(\r
-                                                               0,\r
-                                                               0,\r
-                                                               (int)(12 * Scale.X),\r
-                                                               (int)(0x18 * Scale.Y)\r
-                                                               );\r
-                                               }\r
-                                               else\r
-                                               {\r
-                                                       int num5 = int.Parse(str.Substring(k, 1));\r
-                                                       if (num5 < 5)\r
-                                                       {\r
-                                                               rectangle = new Rectangle(\r
-                                                                       (int)(num5 * 12 * Scale.X),\r
-                                                                       0,\r
-                                                                       (int)(12 * Scale.X),\r
-                                                                       (int)(0x18 * Scale.Y)\r
-                                                               );\r
-                                                       }\r
-                                                       else\r
-                                                       {\r
-                                                               rectangle = new Rectangle(\r
-                                                                       (int)((num5 - 5) * 12 * Scale.X),\r
-                                                                       (int)(0x18 * Scale.Y),\r
-                                                                       (int)(12 * Scale.X),\r
-                                                                       (int)(0x18 * Scale.Y)\r
-                                                               );\r
-                                                       }\r
-                                               }\r
-                                               if (base.txScore != null)\r
-                                               {\r
-                                                       base.txScore.t2D描画(\r
-                                                               CDTXMania.Instance.Device,\r
-                                                               (this.ptSCORE[i - 1].X + (k * 12)) * Scale.X,\r
-                                                               this.ptSCORE[i - 1].Y * Scale.Y,\r
-                                                               rectangle\r
-                                                       );\r
-                                               }\r
-                                       }\r
-                               }\r
-                       }\r
-                       return 0;\r
-               }\r
-\r
-\r
-               // その他\r
-\r
-               #region [ private ]\r
-               //-----------------\r
-               private readonly Point[] ptSCORE = new Point[] { new Point(0x1f, 0x1a9), new Point(0x1e9, 0x1a9) };\r
-               //-----------------\r
-               #endregion\r
-       }\r
-}\r
+
\ No newline at end of file
index 8998080..5f28270 100644 (file)
@@ -1,125 +1 @@
-using System;\r
-using System.Collections.Generic;\r
-using System.Text;\r
-using System.Runtime.InteropServices;\r
-using System.Drawing;\r
-using FDK;\r
-\r
-namespace DTXMania\r
-{\r
-       internal class CAct演奏Guitarステータスパネル : CAct演奏ステータスパネル共通\r
-       {\r
-               public override void OnManagedリソースの作成()\r
-               {\r
-                       if (!base.b活性化してない)\r
-                       {\r
-                               this.tx左パネル = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenPlay status panels left.png"));\r
-                               this.tx右パネル = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenPlay status panels right.png"));\r
-                               base.OnManagedリソースの作成();\r
-                       }\r
-               }\r
-               public override void OnManagedリソースの解放()\r
-               {\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
-                       {\r
-                               if (this.tx左パネル != null)\r
-                               {\r
-                                       this.tx左パネル.t2D描画(\r
-                                               CDTXMania.Instance.Device,\r
-                                               3 * Scale.X,\r
-                                               0x143 * Scale.Y,\r
-                                               new Rectangle(\r
-                                                       (int)(this.nStatus * 15 * Scale.X),\r
-                                                       (int)(0xb7 * Scale.Y),\r
-                                                       (int)(15 * Scale.X),\r
-                                                       (int)(0x49 * Scale.Y)\r
-                                               )\r
-                                       );\r
-                                       int guitar = CDTXMania.Instance.ConfigIni.n譜面スクロール速度.Guitar;\r
-                                       if (guitar < 0)\r
-                                       {\r
-                                               guitar = 0;\r
-                                       }\r
-                                       if (guitar > 15)\r
-                                       {\r
-                                               guitar = 15;\r
-                                       }\r
-                                       this.tx左パネル.t2D描画(\r
-                                               CDTXMania.Instance.Device,\r
-                                               3 * Scale.X,\r
-                                               0x35 * Scale.Y,\r
-                                               new Rectangle(\r
-                                                       (int)(guitar * 15 * Scale.X),\r
-                                                       0,\r
-                                                       (int)(15 * Scale.X),\r
-                                                       (int)(0xac * Scale.Y)\r
-                                               )\r
-                                       );\r
-                               }\r
-                               if (this.tx右パネル != null)\r
-                               {\r
-                                       this.tx右パネル.t2D描画(\r
-                                               CDTXMania.Instance.Device,\r
-                                               0x26e * Scale.X,\r
-                                               0x143 * Scale.Y,\r
-                                               new Rectangle(\r
-                                                       (int)(this.nStatus * 15 * Scale.X),\r
-                                                       (int)(0xb7 * Scale.Y),\r
-                                                       (int)(15 * Scale.X),\r
-                                                       (int)(0x49 * Scale.Y)\r
-                                               )\r
-                                       );\r
-                                       int bass = CDTXMania.Instance.ConfigIni.n譜面スクロール速度.Bass;\r
-                                       if (bass < 0)\r
-                                       {\r
-                                               bass = 0;\r
-                                       }\r
-                                       if (bass > 15)\r
-                                       {\r
-                                               bass = 15;\r
-                                       }\r
-                                       this.tx右パネル.t2D描画(\r
-                                               CDTXMania.Instance.Device,\r
-                                               0x26e * Scale.X,\r
-                                               0x35 * Scale.Y,\r
-                                               new Rectangle(\r
-                                                       (int)(bass * 15 * Scale.X),\r
-                                                       0,\r
-                                                       (int)(15 * Scale.X),\r
-                                                       (int)(0xac * Scale.Y)\r
-                                               )\r
-                                       );\r
-                               }\r
-                       }\r
-                       return 0;\r
-               }\r
-\r
-\r
-               // その他\r
-\r
-               #region [ private ]\r
-               //-----------------\r
-               //[StructLayout( LayoutKind.Sequential )]\r
-               //private struct STATUSPANEL\r
-               //{\r
-               //    public string label;\r
-               //    public int status;\r
-               //}\r
-\r
-               //private int nStatus;\r
-               //private STATUSPANEL[] stパネルマップ;\r
-               private CTexture tx右パネル;\r
-               private CTexture tx左パネル;\r
-               //-----------------\r
-               #endregion\r
-       }\r
-}\r
+
\ No newline at end of file
index b8a0e31..a6d4ffb 100644 (file)
@@ -8,38 +8,32 @@ namespace DTXMania
        internal class CAct演奏Guitarチップファイア : CAct演奏チップファイアGB\r
        {\r
                // コンストラクタ\r
-\r
                public CAct演奏Guitarチップファイア()\r
                {\r
                        base.b活性化してない = true;\r
                }\r
 \r
-\r
                // メソッド\r
-\r
                public override void Start(int nLane, C演奏判定ライン座標共通 演奏判定ライン座標)\r
                {\r
-                       if ((nLane < 0) && (nLane > 5))\r
+                       if (CDTXMania.Instance.ConfigIni.bギタレボモード)\r
                        {\r
-                               throw new IndexOutOfRangeException();\r
+                               if ((nLane < 0) && (nLane > 5))\r
+                               {\r
+                                       throw new IndexOutOfRangeException();\r
+                               }\r
+                               E楽器パート e楽器パート = (nLane < 3) ? E楽器パート.GUITAR : E楽器パート.BASS;\r
+                               int index = nLane;\r
+                               if (CDTXMania.Instance.ConfigIni.bLeft[(int)e楽器パート])\r
+                               {\r
+                                       index = ((index / 3) * 3) + (2 - (index % 3));\r
+                               }\r
+                               int x = (int)(this.pt中央[index].X * Scale.X);\r
+                               int y = 演奏判定ライン座標.n判定ラインY座標(e楽器パート, CDTXMania.Instance.ConfigIni.bReverse[(int)e楽器パート]);\r
+                               base.Start(nLane, x, y, 演奏判定ライン座標);\r
                        }\r
-                       E楽器パート e楽器パート = (nLane < 3) ? E楽器パート.GUITAR : E楽器パート.BASS;\r
-                       int index = nLane;\r
-                       if (CDTXMania.Instance.ConfigIni.bLeft[(int)e楽器パート])\r
-                       {\r
-                               index = ((index / 3) * 3) + (2 - (index % 3));\r
-                       }\r
-                       int x = (int)(this.pt中央[index].X * Scale.X);\r
-                       //int y = this.pt中央[ index ].Y;\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
-                       //}\r
-                       base.Start(nLane, x, y, 演奏判定ライン座標);\r
                }\r
 \r
-\r
                // その他\r
 \r
                #region [ private ]\r
index a45e9e7..5f28270 100644 (file)
@@ -1,70 +1 @@
-using System;\r
-using System.Collections.Generic;\r
-using System.Text;\r
-using System.Drawing;\r
-using FDK;\r
-\r
-namespace DTXMania\r
-{\r
-       internal class CAct演奏GuitarレーンフラッシュGB : CAct演奏レーンフラッシュGB共通\r
-       {\r
-               // コンストラクタ\r
-\r
-               public CAct演奏GuitarレーンフラッシュGB()\r
-               {\r
-                       base.b活性化してない = true;\r
-               }\r
-\r
-\r
-               // CActivity 実装(共通クラスからの差分のみ)\r
-\r
-               public override int On進行描画()\r
-               {\r
-                       if (!base.b活性化してない)\r
-                       {\r
-                               for (int i = 0; i < 6; i++)\r
-                               {\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
-                                               {\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
-                                                                       x * Scale.X,\r
-                                                                       y * Scale.Y,\r
-                                                                       new Rectangle(\r
-                                                                               0,\r
-                                                                               0,\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
-                                               {\r
-                                                       base.ct進行[i].t停止();\r
-                                               }\r
-                                       }\r
-                               }\r
-                       }\r
-                       return 0;\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
-               //-----------------\r
-               #endregion\r
-       }\r
-}\r
+
\ No newline at end of file
index e56d06a..5f28270 100644 (file)
@@ -1,250 +1 @@
-using System;\r
-using System.Collections.Generic;\r
-using System.Text;\r
-using System.Runtime.InteropServices;\r
-using SlimDX;\r
-\r
-namespace DTXMania\r
-{\r
-       internal class CAct演奏Guitar判定文字列 : CAct演奏判定文字列共通\r
-       {\r
-               // コンストラクタ\r
-\r
-               public CAct演奏Guitar判定文字列()\r
-               {\r
-                       this.stレーンサイズ = new STレーンサイズ[12];\r
-                       STレーンサイズ stレーンサイズ = new STレーンサイズ();\r
-                       int[,] sizeXW = new int[,] {\r
-                               { 0x24, 0x24 },\r
-                               { 0x4d, 30 },\r
-                               { 0x6f, 30 },\r
-                               { 0x92, 0x2a },\r
-                               { 0xc1, 30 },\r
-                               { 0xe3, 30 },\r
-                               { 0x105, 30 },\r
-                               { 0x127, 0x24 },\r
-                               { 0, 0 },\r
-                               { 0, 0 },\r
-                               { 0x1a, 0x6f },         // 最後2つ(Gt, Bs)がドラムスと異なる\r
-                               { 480, 0x6f }           // \r
-                       };\r
-                       for (int i = 0; i < 12; i++)\r
-                       {\r
-                               this.stレーンサイズ[i] = new STレーンサイズ();\r
-                               this.stレーンサイズ[i].x = sizeXW[i, 0];\r
-                               this.stレーンサイズ[i].w = sizeXW[i, 1];\r
-                       }\r
-                       base.b活性化してない = true;\r
-               }\r
-\r
-               // CActivity 実装(共通クラスからの差分のみ)\r
-\r
-               public override int On進行描画()\r
-               {\r
-                       throw new InvalidOperationException("t進行描画(C演奏判定ライン座標共通 演奏判定ライン共通 ) のほうを使用してください。");\r
-               }\r
-               public override int t進行描画(C演奏判定ライン座標共通 演奏判定ライン座標)\r
-               {\r
-                       if (!base.b活性化してない)\r
-                       {\r
-                               for (int i = 0; i < 12; i++)\r
-                               {\r
-                                       if (!base.st状態[i].ct進行.b停止中)\r
-                                       {\r
-                                               base.st状態[i].ct進行.t進行();\r
-                                               if (base.st状態[i].ct進行.b終了値に達した)\r
-                                               {\r
-                                                       base.st状態[i].ct進行.t停止();\r
-                                               }\r
-                                               int num2 = base.st状態[i].ct進行.n現在の値;\r
-                                               if ((base.st状態[i].judge != E判定.Miss) && (base.st状態[i].judge != E判定.Bad))\r
-                                               {\r
-                                                       if (num2 < 50)\r
-                                                       {\r
-                                                               base.st状態[i].fX方向拡大率 = 1f + (1f * (1f - (((float)num2) / 50f)));\r
-                                                               base.st状態[i].fY方向拡大率 = ((float)num2) / 50f;\r
-                                                               base.st状態[i].n相対X座標 = 0;\r
-                                                               base.st状態[i].n相対Y座標 = 0;\r
-                                                               base.st状態[i].n透明度 = 0xff;\r
-                                                       }\r
-                                                       else if (num2 < 130)\r
-                                                       {\r
-                                                               base.st状態[i].fX方向拡大率 = 1f;\r
-                                                               base.st状態[i].fY方向拡大率 = 1f;\r
-                                                               base.st状態[i].n相対X座標 = 0;\r
-                                                               base.st状態[i].n相対Y座標 = ((num2 % 6) == 0) ? (CDTXMania.Instance.Random.Next(6) - 3) : base.st状態[i].n相対Y座標;\r
-                                                               base.st状態[i].n透明度 = 0xff;\r
-                                                       }\r
-                                                       else if (num2 >= 240)\r
-                                                       {\r
-                                                               base.st状態[i].fX方向拡大率 = 1f;\r
-                                                               base.st状態[i].fY方向拡大率 = 1f - ((1f * (num2 - 240)) / 60f);\r
-                                                               base.st状態[i].n相対X座標 = 0;\r
-                                                               base.st状態[i].n相対Y座標 = 0;\r
-                                                               base.st状態[i].n透明度 = 0xff;\r
-                                                       }\r
-                                                       else\r
-                                                       {\r
-                                                               base.st状態[i].fX方向拡大率 = 1f;\r
-                                                               base.st状態[i].fY方向拡大率 = 1f;\r
-                                                               base.st状態[i].n相対X座標 = 0;\r
-                                                               base.st状態[i].n相対Y座標 = 0;\r
-                                                               base.st状態[i].n透明度 = 0xff;\r
-                                                       }\r
-                                               }\r
-                                               else if (num2 < 50)\r
-                                               {\r
-                                                       base.st状態[i].fX方向拡大率 = 1f;\r
-                                                       base.st状態[i].fY方向拡大率 = ((float)num2) / 50f;\r
-                                                       base.st状態[i].n相対X座標 = 0;\r
-                                                       base.st状態[i].n相対Y座標 = 0;\r
-                                                       base.st状態[i].n透明度 = 0xff;\r
-                                               }\r
-                                               else if (num2 >= 200)\r
-                                               {\r
-                                                       base.st状態[i].fX方向拡大率 = 1f - (((float)(num2 - 200)) / 100f);\r
-                                                       base.st状態[i].fY方向拡大率 = 1f - (((float)(num2 - 200)) / 100f);\r
-                                                       base.st状態[i].n相対X座標 = 0;\r
-                                                       base.st状態[i].n相対Y座標 = 0;\r
-                                                       base.st状態[i].n透明度 = 0xff;\r
-                                               }\r
-                                               else\r
-                                               {\r
-                                                       base.st状態[i].fX方向拡大率 = 1f;\r
-                                                       base.st状態[i].fY方向拡大率 = 1f;\r
-                                                       base.st状態[i].n相対X座標 = 0;\r
-                                                       base.st状態[i].n相対Y座標 = 0;\r
-                                                       base.st状態[i].n透明度 = 0xff;\r
-                                               }\r
-                                       }\r
-                               }\r
-                               for (int j = 0; j < 12; j++)\r
-                               {\r
-                                       if (!base.st状態[j].ct進行.b停止中)\r
-                                       {\r
-                                               int index = base.st判定文字列[(int)base.st状態[j].judge].n画像番号;\r
-                                               int baseX = 0;\r
-                                               int baseY = 0;\r
-                                               if (j >= 8)\r
-                                               {\r
-                                                       if (j == 11)            // Bass\r
-                                                       {\r
-                                                               if (((E判定文字表示位置)CDTXMania.Instance.ConfigIni.判定文字表示位置.Bass) == E判定文字表示位置.表示OFF)\r
-                                                               {\r
-                                                                       continue;\r
-                                                               }\r
-                                                               int yB;\r
-                                                               switch (CDTXMania.Instance.ConfigIni.判定文字表示位置.Bass)\r
-                                                               {\r
-                                                                       case E判定文字表示位置.コンボ下:\r
-                                                                               baseX = 0x163;\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, 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, CDTXMania.Instance.ConfigIni.bReverse.Bass);\r
-                                                                               baseY = CDTXMania.Instance.ConfigIni.bReverse.Bass ? yB + 30 : yB - 20;\r
-                                                                               break;\r
-                                                               }\r
-                                                       }\r
-                                                       else if (j == 10)       // Guitar\r
-                                                       {\r
-                                                               if (((E判定文字表示位置)CDTXMania.Instance.ConfigIni.判定文字表示位置.Guitar) == E判定文字表示位置.表示OFF)\r
-                                                               {\r
-                                                                       continue;\r
-                                                               }\r
-                                                               int yG;\r
-                                                               switch (CDTXMania.Instance.ConfigIni.判定文字表示位置.Guitar)\r
-                                                               {\r
-                                                                       case E判定文字表示位置.コンボ下:\r
-                                                                               baseX = 0xaf;\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, 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, CDTXMania.Instance.ConfigIni.bReverse.Guitar);\r
-                                                                               baseY = CDTXMania.Instance.ConfigIni.bReverse.Guitar ? yG + 30 : yG - 20;\r
-                                                                               break;\r
-                                                               }\r
-                                                       }\r
-                                                       //int xc = ( ( baseX + base.st状態[ j ].n相対X座標 ) + ( this.stレーンサイズ[ j ].w / 2 ) );\r
-                                                       //int x = xc - ( (int) ( ( ( 128f * base.st状態[ j ].fX方向拡大率 ) * 0.8 ) / 2.0 ) );\r
-                                                       //int y = ( baseY + base.st状態[ j ].n相対Y座標 ) - ( (int) ( ( ( 43f * base.st状態[ j ].fY方向拡大率 ) * 0.8 ) / 2.0 ) );\r
-\r
-                                                       int xc = (int)((((baseX + base.st状態[j].n相対X座標) + (this.stレーンサイズ[j].w / 2))) * Scale.X);\r
-                                                       int x = xc - (int)(((256f / 2) * base.st状態[j].fX方向拡大率) * 0.8);\r
-                                                       int y = (int)((baseY + base.st状態[j].n相対Y座標) * Scale.Y) - ((int)((((256f / 3) * base.st状態[j].fY方向拡大率) * 0.8) / 2.0));\r
-\r
-                                                       if (base.tx判定文字列[index] != null)\r
-                                                       {\r
-                                                               base.tx判定文字列[index].n透明度 = base.st状態[j].n透明度;\r
-                                                               base.tx判定文字列[index].vc拡大縮小倍率 = new Vector3((float)(base.st状態[j].fX方向拡大率 * 0.8), (float)(base.st状態[j].fY方向拡大率 * 0.8), 1f);\r
-                                                               base.tx判定文字列[index].t2D描画(CDTXMania.Instance.Device, x, y, base.st判定文字列[(int)base.st状態[j].judge].rc);\r
-\r
-                                                               #region [ #25370 2011.6.3 yyagi ShowLag support ]\r
-                                                               if (base.nShowLagType == (int)EShowLagType.ON ||\r
-                                                                        ((base.nShowLagType == (int)EShowLagType.GREAT_POOR) && (base.st状態[j].judge != E判定.Perfect)))\r
-                                                               {\r
-                                                                       if (base.st状態[j].judge != E判定.Auto && base.txlag数値 != null)         // #25370 2011.2.1 yyagi\r
-                                                                       {\r
-                                                                               bool minus = false;\r
-                                                                               int offsetX = 0;\r
-                                                                               string strDispLag = base.st状態[j].nLag.ToString();\r
-                                                                               if (st状態[j].nLag < 0)\r
-                                                                               {\r
-                                                                                       minus = true;\r
-                                                                               }\r
-                                                                               x = xc - (int)(strDispLag.Length * 15 / 2 * Scale.X);\r
-                                                                               for (int i = 0; i < strDispLag.Length; i++)\r
-                                                                               {\r
-                                                                                       int p = (strDispLag[i] == '-') ? 11 : (int)(strDispLag[i] - '0');       //int.Parse(strDispLag[i]);\r
-                                                                                       p += minus ? 0 : 12;            // change color if it is minus value\r
-                                                                                       base.txlag数値.t2D描画(\r
-                                                                                               CDTXMania.Instance.Device,\r
-                                                                                               x + offsetX * Scale.X,\r
-                                                                                               y + 35 * Scale.Y,\r
-                                                                                               base.stLag数値[p].rc\r
-                                                                                       );\r
-                                                                                       offsetX += 12;\r
-                                                                               }\r
-                                                                       }\r
-                                                               }\r
-                                                               #endregion\r
-                                                       }\r
-                                                       // Label_06B7: ;\r
-                                               }\r
-                                       }\r
-                               }\r
-                       }\r
-                       return 0;\r
-               }\r
-\r
-\r
-               // その他\r
-\r
-               #region [ private ]\r
-               //-----------------\r
-               [StructLayout(LayoutKind.Sequential)]\r
-               private struct STレーンサイズ\r
-               {\r
-                       public int x;\r
-                       public int w;\r
-               }\r
-\r
-               private STレーンサイズ[] stレーンサイズ;\r
-               //-----------------\r
-               #endregion\r
-       }\r
-}\r
+
\ No newline at end of file
index 8591edd..5f28270 100644 (file)
@@ -1,209 +1 @@
-using System;\r
-using System.Collections.Generic;\r
-using System.Text;\r
-using System.Runtime.InteropServices;\r
-using System.Drawing;\r
-using System.Drawing.Imaging;\r
-using System.IO;\r
-using System.Diagnostics;\r
-using System.Threading;\r
-using SlimDX.Direct3D9;\r
-using FDK;\r
-\r
-namespace DTXMania\r
-{\r
-       internal class CStage演奏ギター画面 : CStage演奏画面共通\r
-       {\r
-               // コンストラクタ\r
-\r
-               public CStage演奏ギター画面()\r
-               {\r
-                       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
-               }\r
-\r
-               // CStage 実装\r
-\r
-               public override void On活性化()\r
-               {\r
-                       dtLastQueueOperation = DateTime.MinValue;\r
-                       base.On活性化();\r
-               }\r
-               public override void OnManagedリソースの作成()\r
-               {\r
-                       if (!base.b活性化してない)\r
-                       {\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
-                       {\r
-                               TextureFactory.tテクスチャの解放(ref this.txチップ);\r
-                               TextureFactory.tテクスチャの解放(ref this.txヒットバー);\r
-                               base.OnManagedリソースの解放();\r
-                       }\r
-               }\r
-               // その他\r
-               #region [ private ]\r
-               //-----------------\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 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
-                                               {\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
-                                                               )\r
-                                                       );\r
-                                               }\r
-                                       }\r
-                               }\r
-                               if (CDTXMania.Instance.DTX.bチップがある.Bass)\r
-                               {\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
-                                               {\r
-                                                       this.txヒットバー.t2D描画(\r
-                                                               CDTXMania.Instance.Device,\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
-                                                               )\r
-                                                       );\r
-                                               }\r
-                                       }\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
-                       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
-                       {\r
-                               BACKGROUND = CDTXMania.Instance.DTX.BACKGROUND_GR;\r
-                       }\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
-                       {\r
-                               BgFilename = CDTXMania.Instance.DTX.strフォルダ名 + BACKGROUND;\r
-                       }\r
-                       base.t背景テクスチャの生成(DefaultBgFilename, DefaultLaneFilename, bgrect, BgFilename);\r
-               }\r
-\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
-                       {\r
-                               pChip.bHit = true;\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進行描画_チップ_ギターベース(ref CChip pChip, E楽器パート inst)\r
-               {\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
-               protected override void t進行描画_チップ_フィルイン(ref CChip pChip)\r
-               {\r
-                       if (!pChip.bHit && (pChip.nバーからの距離dot.Drums < 0))\r
-                       {\r
-                               pChip.bHit = true;\r
-                       }\r
-#if TEST_NOTEOFFMODE   // 2011.1.1 yyagi TEST\r
-                       switch ( pChip.n整数値 )\r
-                       {\r
-                               case 0x04:      // HH消音あり(従来同等)\r
-                                       CDTXMania.Instance.DTX.b演奏で直前の音を消音する.HH = true;\r
-                                       break;\r
-                               case 0x05:      // HH消音無し\r
-                                       CDTXMania.Instance.DTX.b演奏で直前の音を消音する.HH = false;\r
-                                       break;\r
-                               case 0x06:      // ギター消音あり(従来同等)\r
-                                       CDTXMania.Instance.DTX.b演奏で直前の音を消音する.Guitar = true;\r
-                                       break;\r
-                               case 0x07:      // ギター消音無し\r
-                                       CDTXMania.Instance.DTX.b演奏で直前の音を消音する.Guitar = false;\r
-                                       break;\r
-                               case 0x08:      // ベース消音あり(従来同等)\r
-                                       CDTXMania.Instance.DTX.b演奏で直前の音を消音する.Bass = true;\r
-                                       break;\r
-                               case 0x09:      // ベース消音無し\r
-                                       CDTXMania.Instance.DTX.b演奏で直前の音を消音する.Bass = false;\r
-                                       break;\r
-                       }\r
-#endif\r
-\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
-                       }\r
-               }\r
-\r
-               #endregion\r
-       }\r
-}\r
+
\ No newline at end of file
index 1f80802..5f28270 100644 (file)
@@ -1,103 +1 @@
-using System;\r
-using System.Collections.Generic;\r
-using System.Text;\r
-using System.Drawing;\r
-using SlimDX;\r
-using FDK;\r
-\r
-namespace DTXMania\r
-{\r
-       internal class CAct演奏DrumsDanger : CAct演奏Danger共通\r
-       {\r
-               public override void OnManagedリソースの作成()\r
-               {\r
-                       if (!base.b活性化してない)\r
-                       {\r
-                               this.txDANGER = TextureFactory.tテクスチャの生成Af(CSkin.Path(@"Graphics\ScreenPlayDrums danger.png"), false);\r
-                               base.OnManagedリソースの作成();\r
-                       }\r
-               }\r
-               public override void OnManagedリソースの解放()\r
-               {\r
-                       if (!base.b活性化してない)\r
-                       {\r
-                               TextureFactory.tテクスチャの解放(ref this.txDANGER);\r
-                               base.OnManagedリソースの解放();\r
-                       }\r
-               }\r
-               public override int On進行描画()\r
-               {\r
-                       throw new InvalidOperationException("t進行描画(bool)のほうを使用してください。");\r
-               }\r
-               /// <summary>\r
-               /// ドラム画面のDANGER描画\r
-               /// </summary>\r
-               /// <param name="bIsDangerDrums">DrumsのゲージがDangerかどうか(Guitar/Bassと共用のゲージ)</param>\r
-               /// <param name="bIsDangerGuitar">Guitarのゲージ(未使用)</param>\r
-               /// <param name="bIsDangerBass">Bassのゲージ(未使用)</param>\r
-               /// <returns></returns>\r
-               public override int t進行描画(bool bIsDangerDrums, bool bIsDangerGuitar, bool bIsDangerBass)\r
-               {\r
-                       if (!base.b活性化してない)\r
-                       {\r
-                               if (!bIsDangerDrums)\r
-                               {\r
-                                       this.bDanger中[(int)E楽器パート.DRUMS] = false;\r
-                                       return 0;\r
-                               }\r
-                               if (!this.bDanger中[(int)E楽器パート.DRUMS])\r
-                               {\r
-                                       this.ct移動用 = new CCounter(0, 0x7f, 7, CDTXMania.Instance.Timer);\r
-                                       this.ct透明度用 = new CCounter(0, 0x167, 4, CDTXMania.Instance.Timer);\r
-                               }\r
-                               this.bDanger中[(int)E楽器パート.DRUMS] = bIsDangerDrums;\r
-                               this.ct移動用.t進行Loop();\r
-                               this.ct透明度用.t進行Loop();\r
-                               if (!this.bDanger中[(int)E楽器パート.DRUMS])\r
-                               {\r
-                                       return 0;\r
-                               }\r
-                               int num = this.ct透明度用.n現在の値;\r
-                               if (this.txDANGER != null)\r
-                               {\r
-                                       this.txDANGER.n透明度 = 60 + ((num < 180) ? num : (360 - num));\r
-                               }\r
-                               num = this.ct移動用.n現在の値;\r
-                               int num2 = CDTXMania.Instance.ConfigIni.bReverse.Drums ? (0x7f - num) : num;\r
-                               float[,] n基準X座標 = new float[,] { { 38, 298 }, { 211f, 405.5f } };\r
-                               for (int i = -1; i < 4; i++)\r
-                               {\r
-                                       if (this.txDANGER != null)\r
-                                       {\r
-                                               float d = (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? 1.0f : 0.75f;\r
-                                               this.txDANGER.vc拡大縮小倍率 = new Vector3(d, d, d);\r
-                                               this.txDANGER.t2D描画(CDTXMania.Instance.Device, n基準X座標[(CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left ? 0 : 1), 0] * Scale.X, ((i * 0x80) + num2) * Scale.Y);\r
-                                               //this.txDANGER.t2D描画( CDTXMania.Instance.app.Device, 0x26 * Scale.X, ( ( ( i * 0x80 ) + num2 ) + 0x40 ) * Scale.Y, this.rc領域[ 1 ] );\r
-                                               this.txDANGER.t2D描画(CDTXMania.Instance.Device, n基準X座標[(CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left ? 0 : 1), 1] * Scale.X, ((i * 0x80) + num2) * Scale.Y);\r
-                                               //this.txDANGER.t2D描画( CDTXMania.Instance.app.Device, 0x12a * Scale.X, ( ( ( i * 0x80 ) + num2 ) + 0x40 ) * Scale.Y, this.rc領域[ 1 ] );\r
-                                       }\r
-                               }\r
-                       }\r
-                       return 0;\r
-               }\r
-\r
-\r
-               // その他\r
-\r
-               #region [ private ]\r
-               //-----------------\r
-               //private bool bDanger中;\r
-               //private CCounter ct移動用;\r
-               //private CCounter ct透明度用;\r
-               //              private const int n右位置 = 0x12a;\r
-               //              private const int n左位置 = 0x26;\r
-               //private readonly Rectangle[] rc領域 = new Rectangle[] {\r
-               //    new Rectangle( 0, 0, (int)(0x20 * Scale.X), (int)(0x40 * Scale.Y) ),\r
-               //    new Rectangle( (int)(0x20 * Scale.X), (int)(0 * Scale.Y), (int)(0x20 * Scale.X), (int)(0x40 * Scale.Y) )\r
-               //};\r
-               private CTextureAf txDANGER;\r
-\r
-               //-----------------\r
-               #endregion\r
-       }\r
-}\r
+
\ No newline at end of file
index c864973..5f28270 100644 (file)
@@ -1,90 +1 @@
-using System;\r
-using System.Collections.Generic;\r
-using System.Text;\r
-using System.Drawing;\r
-\r
-namespace DTXMania\r
-{\r
-       internal class CAct演奏DrumsRGB : CAct演奏RGB共通\r
-       {\r
-               // CActivity 実装(共通クラスからの差分のみ)\r
-\r
-               public override int On進行描画()\r
-               {\r
-                       throw new InvalidOperationException("t進行描画(C演奏判定ライン座標共通 演奏判定ライン共通 ) のほうを使用してください。");\r
-               }\r
-               public override int t進行描画(C演奏判定ライン座標共通 演奏判定ライン座標)\r
-               {\r
-                       if (!base.b活性化してない)\r
-                       {\r
-                               if (!CDTXMania.Instance.ConfigIni.bGuitar有効)\r
-                               {\r
-                                       return 0;\r
-                               }\r
-                               if (CDTXMania.Instance.DTX.bチップがある.Guitar)\r
-                               {\r
-                                       int x = (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? 1527 : 1456;\r
-                                       for (int i = 0; i < 3; i++)\r
-                                       {\r
-                                               int index = CDTXMania.Instance.ConfigIni.bLeft.Guitar ? (2 - i) : i;\r
-                                               Rectangle rc = new Rectangle(\r
-                                                       index * 72,\r
-                                                       0,\r
-                                                       72,\r
-                                                       72\r
-                                               );\r
-                                               if (base.b押下状態[index])\r
-                                               {\r
-                                                       rc.Y += 72;\r
-                                               }\r
-                                               if (base.txRGB != null)\r
-                                               {\r
-                                                       //      int y = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.GUITAR, true, CDTXMania.Instance.ConfigIni.bReverse.Guitar, false, false );\r
-                                                       //base.txRGB.t2D描画( CDTXMania.Instance.app.Device, 0x1fd + ( j * 0x1a ), 0x39, rectangle );\r
-                                                       int y = 演奏判定ライン座標.n演奏RGBボタンY座標(E楽器パート.GUITAR, false, CDTXMania.Instance.ConfigIni.bReverse.Guitar);\r
-                                                       base.txRGB.t2D描画(\r
-                                                               CDTXMania.Instance.Device,\r
-                                                               x + (i * 26 * 3),\r
-                                                               y,\r
-                                                               rc\r
-                                                       );\r
-                                               }\r
-                                       }\r
-                               }\r
-                               if (CDTXMania.Instance.DTX.bチップがある.Bass)\r
-                               {\r
-                                       for (int i = 0; i < 3; i++)\r
-                                       {\r
-                                               int x = (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? 1200 : 206;\r
-                                               int index = CDTXMania.Instance.ConfigIni.bLeft.Bass ? (2 - i) : i;\r
-                                               Rectangle rc = new Rectangle(\r
-                                                       index * 72,\r
-                                                       0,\r
-                                                       72,\r
-                                                       72\r
-                                               );\r
-                                               if (base.b押下状態[index + 3])\r
-                                               {\r
-                                                       rc.Y += 72;\r
-                                               }\r
-                                               if (base.txRGB != null)\r
-                                               {\r
-                                                       int y = 演奏判定ライン座標.n演奏RGBボタンY座標(E楽器パート.BASS, false, CDTXMania.Instance.ConfigIni.bReverse.Bass);\r
-                                                       base.txRGB.t2D描画(\r
-                                                               CDTXMania.Instance.Device,\r
-                                                               x + (i * 26 * 3),\r
-                                                               y,\r
-                                                               rc\r
-                                                       );\r
-                                               }\r
-                                       }\r
-                               }\r
-                               for (int i = 0; i < 6; i++)\r
-                               {\r
-                                       base.b押下状態[i] = false;\r
-                               }\r
-                       }\r
-                       return 0;\r
-               }\r
-       }\r
-}\r
+
\ No newline at end of file
index 41ce58d..5f28270 100644 (file)
@@ -1,163 +1 @@
-using System;\r
-using System.Collections.Generic;\r
-using System.Text;\r
-using System.Drawing;\r
-using FDK;\r
-\r
-namespace DTXMania\r
-{\r
-       internal class CAct演奏DrumsWailingBonus : CAct演奏WailingBonus共通\r
-       {\r
-               // コンストラクタ\r
-\r
-               public CAct演奏DrumsWailingBonus()\r
-               {\r
-                       base.b活性化してない = true;\r
-               }\r
-\r
-               // メソッド\r
-               public override void Start(E楽器パート part, CChip r歓声Chip)\r
-               {\r
-                       if ((part == E楽器パート.GUITAR) || (part == E楽器パート.BASS))\r
-                       {\r
-                               int num = (int)part;\r
-                               for (int i = 0; i < 4; i++)\r
-                               {\r
-                                       if (this.ct進行用[num, i].b停止中)\r
-                                       {\r
-                                               this.ct進行用[num, i] = new CCounter(0, 300, 2, CDTXMania.Instance.Timer);\r
-                                               if (CDTXMania.Instance.ConfigIni.b歓声を発声する)\r
-                                               {\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
-                                                               return;\r
-                                                       }\r
-                                                       CDTXMania.Instance.Skin.sound歓声音.t再生する();\r
-                                                       return;\r
-                                               }\r
-                                               break;\r
-                                       }\r
-                               }\r
-                       }\r
-               }\r
-\r
-\r
-               // CActivity 実装\r
-\r
-               public override void On活性化()\r
-               {\r
-                       for (int i = 0; i < 3; i++)\r
-                       {\r
-                               for (int j = 0; j < 4; j++)\r
-                               {\r
-                                       this.ct進行用[i, j] = new CCounter();\r
-                               }\r
-                       }\r
-                       base.On活性化();\r
-               }\r
-               public override void On非活性化()\r
-               {\r
-                       for (int i = 0; i < 3; i++)\r
-                       {\r
-                               for (int j = 0; j < 4; j++)\r
-                               {\r
-                                       this.ct進行用[i, j] = null;\r
-                               }\r
-                       }\r
-                       base.On非活性化();\r
-               }\r
-\r
-               public override int On進行描画()\r
-               {\r
-                       if (!base.b活性化してない)\r
-                       {\r
-                               for (int i = 0; i < 2; i++)\r
-                               {\r
-                                       E楽器パート e楽器パート = (i == 0) ? E楽器パート.GUITAR : E楽器パート.BASS;\r
-                                       for (int j = 0; j < 4; j++)\r
-                                       {\r
-                                               if (!this.ct進行用[(int)e楽器パート, j].b停止中)\r
-                                               {\r
-                                                       if (this.ct進行用[(int)e楽器パート, j].b終了値に達した)\r
-                                                       {\r
-                                                               this.ct進行用[(int)e楽器パート, j].t停止();\r
-                                                       }\r
-                                                       else\r
-                                                       {\r
-                                                               this.ct進行用[(int)e楽器パート, j].t進行();\r
-                                                               int x = ((e楽器パート == E楽器パート.GUITAR) ? 1521 + 234 : 1194 + 234);\r
-                                                               if (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Center)\r
-                                                               {\r
-                                                                       x -= (e楽器パート == E楽器パート.GUITAR) ? 71 : 994;\r
-                                                               }\r
-                                                               int num4 = 0;\r
-                                                               int num5 = 0;\r
-                                                               int num6 = this.ct進行用[(int)e楽器パート, j].n現在の値;\r
-                                                               if (num6 < 100)\r
-                                                               {\r
-                                                                       num4 = (int)(64.0 + (290.0 * Math.Cos(Math.PI / 2 * (((float)num6) / 100f))));\r
-                                                               }\r
-                                                               else if (num6 < 150)\r
-                                                               {\r
-                                                                       num4 = (int)(64.0 + ((150 - num6) * Math.Sin((Math.PI * ((num6 - 100) % 0x19)) / 25.0)));\r
-                                                               }\r
-                                                               else if (num6 < 200)\r
-                                                               {\r
-                                                                       num4 = 0x40;\r
-                                                               }\r
-                                                               else\r
-                                                               {\r
-                                                                       num4 = (int)(64f - (((float)(290 * (num6 - 200))) / 100f));\r
-                                                               }\r
-                                                               if (CDTXMania.Instance.ConfigIni.bReverse[(int)e楽器パート])\r
-                                                               {\r
-                                                                       num4 = (0x163 - num4) - 0xf4;\r
-                                                               }\r
-                                                               Rectangle rectangle = new Rectangle(0, 0, 0x1a, 0x7a * 2);\r
-                                                               if ((0x163 - num4) < rectangle.Bottom)\r
-                                                               {\r
-                                                                       rectangle.Height = (0x163 - num4) - rectangle.Top;\r
-                                                               }\r
-                                                               if (num4 < 0)\r
-                                                               {\r
-                                                                       rectangle.Y = -num4;\r
-                                                                       num5 = -num4;\r
-                                                               }\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
-                                                                       this.txWailingBonus.t2D描画(\r
-                                                                               CDTXMania.Instance.Device,\r
-                                                                               x,\r
-                                                                               ((((e楽器パート == E楽器パート.GUITAR) ? 0x39 : 0x39) + num4) + num5) * Scale.Y,\r
-                                                                               rectangle\r
-                                                                       );\r
-                                                               }\r
-                                                               //num5 = 0;\r
-                                                               //rectangle = new Rectangle( 0x1a, 0, 0x1a, 0x7a );\r
-                                                               //if( ( 0x163 - ( num4 + 0x7a ) ) < rectangle.Bottom )\r
-                                                               //{\r
-                                                               //    rectangle.Height = ( 0x163 - ( num4 + 0x7a ) ) - rectangle.Top;\r
-                                                               //}\r
-                                                               //if( ( num4 + 0x7a ) < 0 )\r
-                                                               //{\r
-                                                               //    rectangle.Y = -( num4 + 0x7a );\r
-                                                               //    num5 = -( num4 + 0x7a );\r
-                                                               //}\r
-                                                               //if( ( rectangle.Top < rectangle.Bottom ) && ( this.txWailingBonus != null ) )\r
-                                                               //{\r
-                                                               //    this.txWailingBonus.t2D描画( CDTXMania.Instance.app.Device, x, ( ( ( ( e楽器パート == E楽器パート.GUITAR ) ? 0x39 : 0x39 ) + num4 ) + num5 ) + 0x7a, rectangle );\r
-                                                               //}\r
-                                                       }\r
-                                               }\r
-                                       }\r
-                               }\r
-                       }\r
-                       return 0;\r
-               }\r
-       }\r
-}\r
+
\ No newline at end of file
index 336d968..ca065f7 100644 (file)
@@ -22,6 +22,12 @@ namespace DTXMania
                // 修正等\r
                // ・画像がないと落ちる→修正済\r
 \r
+               private double dbグラフ値目標;\r
+               private double dbグラフ値目標_表示;\r
+               private double dbグラフ値現在;\r
+               private double dbグラフ値現在_表示;\r
+\r
+               private CTexture txグラフ;\r
                private int XPos = 3 * 345;\r
                private int YPos = 200;\r
                private int DispHeight = 400;\r
@@ -98,333 +104,162 @@ namespace DTXMania
                {\r
                        if (!base.b活性化してない)\r
                        {\r
-                               if (base.b初めての進行描画)\r
+                               if (!CDTXMania.Instance.ConfigIni.bギタレボモード)\r
                                {\r
-                                       /* #35804 エフェクトを変更しました。\r
-                                       for( int k = 0; k < 64; k++ )\r
+                                       if (base.b初めての進行描画)\r
                                        {\r
-                                               this.stキラキラ[ k ].x = CDTXMania.Instance.Random.Next( 30 );\r
-                                               this.stキラキラ[ k ].fScale = 1f + ( CDTXMania.Instance.Random.Next( 9 ) * 0.2f );\r
-                                               this.stキラキラ[ k ].Trans = 0 + CDTXMania.Instance.Random.Next( 32 ) ;\r
-                        if (k < 32)\r
-                        {\r
-                            this.stキラキラ[ k ].ct進行 = new CCounter(0, DispHeight, 10 + CDTXMania.Instance.Random.Next(20), CDTXMania.Instance.Timer);\r
-                        }\r
-                        else if (k < 64)\r
-                        {\r
-                            this.stキラキラ[ k ].ct進行 = new CCounter(0, DispHeight, 20 + CDTXMania.Instance.Random.Next(50), CDTXMania.Instance.Timer);\r
-                        }\r
-                        this.stキラキラ[ k ].ct進行.n現在の値 = CDTXMania.Instance.Random.Next(DispHeight);\r
+                                               base.b初めての進行描画 = false;\r
+                                               counterYposInImg = new CCounter(0, 35, 16, CDTXMania.Instance.Timer);\r
                                        }\r
-                                       for( int k = 0; k < 16; k++ )\r
-                                       {\r
-                                               this.stフラッシュ[ k ].y = -1;\r
-                                               this.stフラッシュ[ k ].Trans = 0;\r
-                                       }\r
-                                       */\r
-                                       base.b初めての進行描画 = false;\r
-                                       counterYposInImg = new CCounter(0, 35, 16, CDTXMania.Instance.Timer);\r
-                               }\r
-\r
-                               counterYposInImg.t進行Loop();\r
-                               int stYposInImg = counterYposInImg.n現在の値;\r
 \r
-                               // レーン表示位置によって変更\r
-                               if (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Center)\r
-                               {\r
-                                       XPos = 1350;\r
-                               }\r
+                                       counterYposInImg.t進行Loop();\r
+                                       int stYposInImg = counterYposInImg.n現在の値;\r
 \r
-                               // 背景暗幕\r
-                               if (this.txグラフ != null)\r
-                               {\r
-                                       this.txグラフ.vc拡大縮小倍率 = new Vector3(DispWidth, DispHeight, 1f);\r
-                                       this.txグラフ.n透明度 = 128;\r
-                                       this.txグラフ.t2D描画(\r
-       CDTXMania.Instance.Device,\r
-       XPos,\r
-       YPos,\r
-       new Rectangle(62, 0, 1, 1)\r
-);\r
-                               }\r
-\r
-                               // 基準線\r
+                                       // レーン表示位置によって変更\r
+                                       if (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Center)\r
+                                       {\r
+                                               XPos = 1350;\r
+                                       }\r
 \r
-                               if (this.txグラフ != null)\r
-                               {\r
-                                       this.txグラフ.n透明度 = 128;\r
-                                       this.txグラフ.vc拡大縮小倍率 = new Vector3(DispWidth, 1f, 1f);\r
-                                       for (int i = 0; i < slices; i++)\r
+                                       // 背景暗幕\r
+                                       if (this.txグラフ != null)\r
                                        {\r
+                                               this.txグラフ.vc拡大縮小倍率 = new Vector3(DispWidth, DispHeight, 1f);\r
+                                               this.txグラフ.n透明度 = 128;\r
                                                this.txグラフ.t2D描画(\r
-       CDTXMania.Instance.Device,\r
-       XPos,\r
-       YPos + DispHeight * i / slices,\r
-       new Rectangle(60, 0, 1, 1)\r
-);\r
-                                       }\r
-                                       /* #35804 chnmr0 縦線は非表示にしました。\r
-                    this.txグラフ.vc拡大縮小倍率 = new Vector3(1f, DispHeight, 1f);\r
-                    for (int i = 0; i < 2; i++)\r
-                    {\r
-                        this.txグラフ.t2D描画(\r
-                                                       CDTXMania.Instance.app.Device,\r
-                                                       (XPos + 12 + i * 54),\r
-                                                       YPos,\r
-                                                       rectangle\r
-                                               );\r
-                        this.txグラフ.t2D描画(\r
-                                                       CDTXMania.Instance.app.Device,\r
-                                                       (45 + XPos + i * 54),\r
+                                                       CDTXMania.Instance.Device,\r
+                                                       XPos,\r
                                                        YPos,\r
-                                                       rectangle\r
-                                               );\r
-                    }\r
-                                       */\r
-                               }\r
+                                                       new Rectangle(62, 0, 1, 1)\r
+                                                       );\r
+                                       }\r
 \r
-                               if (this.txグラフ != null)\r
-                               {\r
-                                       this.txグラフ.vc拡大縮小倍率 = new Vector3(DispWidth, 1f, 1f);\r
-                               }\r
-                               for (int i = 0; i < 5; i++)\r
-                               {\r
-                                       Rectangle rectangle;\r
-                                       // 基準線を越えたら線が黄色くなる\r
-                                       if (this.dbグラフ値現在 >= (100 - i * slices))\r
+                                       // 基準線\r
+\r
+                                       if (this.txグラフ != null)\r
                                        {\r
-                                               rectangle = new Rectangle(61, 0, 1, 1); //黄色\r
-                                               if (this.txグラフ != null)\r
+                                               this.txグラフ.n透明度 = 128;\r
+                                               this.txグラフ.vc拡大縮小倍率 = new Vector3(DispWidth, 1f, 1f);\r
+                                               for (int i = 0; i < slices; i++)\r
                                                {\r
-                                                       this.txグラフ.n透明度 = 224;\r
+                                                       this.txグラフ.t2D描画(\r
+                                                               CDTXMania.Instance.Device,\r
+                                                               XPos,\r
+                                                               YPos + DispHeight * i / slices,\r
+                                                               new Rectangle(60, 0, 1, 1)\r
+                                                               );\r
                                                }\r
                                        }\r
-                                       else\r
+\r
+                                       if (this.txグラフ != null)\r
+                                       {\r
+                                               this.txグラフ.vc拡大縮小倍率 = new Vector3(DispWidth, 1f, 1f);\r
+                                       }\r
+                                       for (int i = 0; i < 5; i++)\r
                                        {\r
-                                               rectangle = new Rectangle(60, 0, 1, 1);\r
+                                               Rectangle rectangle;\r
+                                               // 基準線を越えたら線が黄色くなる\r
+                                               if (this.dbグラフ値現在 >= (100 - i * slices))\r
+                                               {\r
+                                                       rectangle = new Rectangle(61, 0, 1, 1); //黄色\r
+                                                       if (this.txグラフ != null)\r
+                                                       {\r
+                                                               this.txグラフ.n透明度 = 224;\r
+                                                       }\r
+                                               }\r
+                                               else\r
+                                               {\r
+                                                       rectangle = new Rectangle(60, 0, 1, 1);\r
+                                                       if (this.txグラフ != null)\r
+                                                       {\r
+                                                               this.txグラフ.n透明度 = 160;\r
+                                                       }\r
+                                               }\r
+\r
                                                if (this.txグラフ != null)\r
                                                {\r
-                                                       this.txグラフ.n透明度 = 160;\r
+                                                       this.txグラフ.t2D描画(\r
+                                                               CDTXMania.Instance.Device,\r
+                                                               XPos,\r
+                                                               YPos + i * DispHeight / slices,\r
+                                                               rectangle\r
+                                                               );\r
                                                }\r
                                        }\r
+                                       // グラフ\r
+                                       // --現在値\r
+                                       if (this.dbグラフ値現在_表示 < this.dbグラフ値現在)\r
+                                       {\r
+                                               this.dbグラフ値現在_表示 += (this.dbグラフ値現在 - this.dbグラフ値現在_表示) / 5 + 0.01;\r
+                                       }\r
+                                       if (this.dbグラフ値現在_表示 >= this.dbグラフ値現在)\r
+                                       {\r
+                                               this.dbグラフ値現在_表示 = this.dbグラフ値現在;\r
+                                       }\r
+                                       int ar = (int)(DispHeight * this.dbグラフ値現在_表示 / 100.0);\r
 \r
                                        if (this.txグラフ != null)\r
                                        {\r
+                                               this.txグラフ.vc拡大縮小倍率 = new Vector3(1f, 1f, 1f);\r
+                                               this.txグラフ.n透明度 = 255;\r
                                                this.txグラフ.t2D描画(\r
-       CDTXMania.Instance.Device,\r
-       XPos,\r
-       YPos + i * DispHeight / slices,\r
-       rectangle\r
-);\r
-                                       }\r
-                               }\r
-                               // グラフ\r
-                               // --現在値\r
-                               if (this.dbグラフ値現在_表示 < this.dbグラフ値現在)\r
-                               {\r
-                                       this.dbグラフ値現在_表示 += (this.dbグラフ値現在 - this.dbグラフ値現在_表示) / 5 + 0.01;\r
-                               }\r
-                               if (this.dbグラフ値現在_表示 >= this.dbグラフ値現在)\r
-                               {\r
-                                       this.dbグラフ値現在_表示 = this.dbグラフ値現在;\r
-                               }\r
-                               int ar = (int)(DispHeight * this.dbグラフ値現在_表示 / 100.0);\r
-\r
-                               if (this.txグラフ != null)\r
-                               {\r
-                                       this.txグラフ.vc拡大縮小倍率 = new Vector3(1f, 1f, 1f);\r
-                                       this.txグラフ.n透明度 = 255;\r
-                                       this.txグラフ.t2D描画(\r
-       CDTXMania.Instance.Device,\r
-       XPos,\r
-       YPos + DispHeight - ar,\r
-       new Rectangle(0, 5 + stYposInImg, 30, ar)\r
-);\r
-                                       this.txグラフ.t2D描画( // 上部白いバー\r
-                                               CDTXMania.Instance.Device,\r
-                                               XPos,\r
-                                               YPos + DispHeight - ar,\r
-                                               new Rectangle(0, 0, 30, 5)\r
-                                       );\r
-                               }\r
-                               /*\r
-                               for( int k = 0; k < 32; k++ )\r
-                               {\r
-                    rectangle = new Rectangle(60,0,1,1);\r
-                    if (this.txグラフ != null)\r
-                    {\r
-                                       this.stキラキラ[ k ].ct進行.t進行Loop();\r
-                        int num1 = (int)this.stキラキラ[ k ].x;\r
-                        int num2 = this.stキラキラ[ k ].ct進行.n現在の値;\r
-                        this.txグラフ.vc拡大縮小倍率 = new Vector3(this.stキラキラ[ k ].fScale, this.stキラキラ[ k ].fScale, this.stキラキラ[ k ].fScale);\r
-                        this.txグラフ.n透明度 = 138 - 2 * this.stキラキラ[ k ].Trans;\r
-                        if ( num2 < (2.3f * this.dbグラフ値現在_表示) )\r
-                        {\r
-                            this.txグラフ.t2D描画(\r
-                                                               CDTXMania.Instance.app.Device,\r
-                                                               XPos + 15 + num1,\r
-                                                               YPos + DispHeight - num2,\r
-                                                               rectangle\r
+                                                       CDTXMania.Instance.Device,\r
+                                                       XPos,\r
+                                                       YPos + DispHeight - ar,\r
+                                                       new Rectangle(0, 5 + stYposInImg, 30, ar)\r
                                                        );\r
-                        }\r
-                    }\r
-                               }\r
-                               */\r
-\r
-                               // --現在値_追加エフェクト\r
-                               /*\r
-                if (this.dbグラフ値直前 != this.dbグラフ値現在)\r
-                {\r
-                    this.stフラッシュ[ nグラフフラッシュct ].y = 0;\r
-                    this.stフラッシュ[ nグラフフラッシュct ].Trans = 224;\r
-                    nグラフフラッシュct ++;\r
-                    if (nグラフフラッシュct >= 16)\r
-                    {\r
-                        nグラフフラッシュct = 0;\r
-                    }\r
-                }\r
-                this.dbグラフ値直前 = this.dbグラフ値現在;\r
-\r
-                for (int m = 0; m < 16; m++)\r
-                {\r
-                                       rectangle = new Rectangle(60,0,1,1);\r
-\r
-                                       if ((this.stフラッシュ[ m ].y >= 0) &&\r
-                                               (this.stフラッシュ[ m ].y+3 < ar) &&\r
-                                               (this.txグラフ != null))\r
-                    {\r
-                        // this.txグラフ.vc拡大縮小倍率 = new Vector3(1f, 1f, 1f);\r
-                        this.txグラフ.n透明度 = this.stフラッシュ[ m ].Trans;\r
-                        this.txグラフ.t2D描画(\r
-                                                       CDTXMania.Instance.app.Device,\r
-                                                       XPos + 15,\r
-                                                       (this.stフラッシュ[ m ].y + YPos + DispHeight - ar),\r
-                                                       rectangle\r
-                                               );\r
-                        this.txグラフ.n透明度 = this.stフラッシュ[ m ].Trans;\r
-                        this.txグラフ.t2D描画(\r
-                                                       CDTXMania.Instance.app.Device,\r
-                                                       XPos + 15,\r
-                                                       (this.stフラッシュ[ m ].y + 2 + YPos + DispHeight - ar),\r
-                                                       rectangle\r
+                                               this.txグラフ.t2D描画( // 上部白いバー\r
+                                                       CDTXMania.Instance.Device,\r
+                                                       XPos,\r
+                                                       YPos + DispHeight - ar,\r
+                                                       new Rectangle(0, 0, 30, 5)\r
                                                );\r
-                    }\r
-                    this.stフラッシュ[ m ].y += 4;\r
-                    this.stフラッシュ[ m ].Trans -= 4;\r
-                }\r
-                               */\r
+                                       }\r
 \r
-                               // --現在値_目標越\r
-                               if ((dbグラフ値現在 >= dbグラフ値目標) && (this.txグラフ != null))\r
-                               {\r
-                                       // this.txグラフ.vc拡大縮小倍率 = new Vector3(1.4f, 1f, 1f);\r
-                                       this.txグラフ.n透明度 = 128;\r
-                                       this.txグラフ.b加算合成 = true;\r
-                                       this.txグラフ.t2D描画(\r
-       CDTXMania.Instance.Device,\r
-       XPos,\r
-       YPos + DispHeight - ar,\r
-       new Rectangle(0, 5 + stYposInImg, 30, ar)\r
-);\r
-                                       this.txグラフ.b加算合成 = false;\r
-                               }\r
-                               // --目標値\r
-                               if (this.dbグラフ値目標_表示 < this.dbグラフ値目標)\r
-                               {\r
-                                       this.dbグラフ値目標_表示 += (this.dbグラフ値目標 - this.dbグラフ値目標_表示) / 5 + 0.01;\r
-                               }\r
-                               if (this.dbグラフ値目標_表示 >= this.dbグラフ値目標)\r
-                               {\r
-                                       this.dbグラフ値目標_表示 = this.dbグラフ値目標;\r
-                               }\r
-                               ar = (int)(DispHeight * this.dbグラフ値目標_表示 / 100.0);\r
+                                       // --現在値_目標越\r
+                                       if ((dbグラフ値現在 >= dbグラフ値目標) && (this.txグラフ != null))\r
+                                       {\r
+                                               // this.txグラフ.vc拡大縮小倍率 = new Vector3(1.4f, 1f, 1f);\r
+                                               this.txグラフ.n透明度 = 128;\r
+                                               this.txグラフ.b加算合成 = true;\r
+                                               this.txグラフ.t2D描画(\r
+                                                       CDTXMania.Instance.Device,\r
+                                                       XPos,\r
+                                                       YPos + DispHeight - ar,\r
+                                                       new Rectangle(0, 5 + stYposInImg, 30, ar)\r
+                                                       );\r
+                                               this.txグラフ.b加算合成 = false;\r
+                                       }\r
+                                       // --目標値\r
+                                       if (this.dbグラフ値目標_表示 < this.dbグラフ値目標)\r
+                                       {\r
+                                               this.dbグラフ値目標_表示 += (this.dbグラフ値目標 - this.dbグラフ値目標_表示) / 5 + 0.01;\r
+                                       }\r
+                                       if (this.dbグラフ値目標_表示 >= this.dbグラフ値目標)\r
+                                       {\r
+                                               this.dbグラフ値目標_表示 = this.dbグラフ値目標;\r
+                                       }\r
+                                       ar = (int)(DispHeight * this.dbグラフ値目標_表示 / 100.0);\r
 \r
-                               if (this.txグラフ != null)\r
-                               {\r
-                                       // this.txグラフ.vc拡大縮小倍率 = new Vector3(1f, 1f, 1f);\r
-                                       // this.txグラフ.n透明度 = 192;\r
-                                       this.txグラフ.t2D描画(\r
-       CDTXMania.Instance.Device,\r
-       XPos + 30,\r
-       YPos + DispHeight - ar,\r
-       new Rectangle(30, 5 + stYposInImg, 30, ar)\r
-);\r
-                                       this.txグラフ.n透明度 = 255;\r
-                                       this.txグラフ.t2D描画( // 上部白いバー\r
-                                               CDTXMania.Instance.Device,\r
-                                               XPos + 30,\r
-                                               YPos + DispHeight - ar,\r
-                                               new Rectangle(30, 0, 30, 5)\r
-                                       );\r
-                                       /*\r
-                    // this.txグラフ.vc拡大縮小倍率 = new Vector3(1.4f, 1f, 1f);\r
-                    this.txグラフ.n透明度 = 48;\r
-                    this.txグラフ.b加算合成 = true;\r
-                    this.txグラフ.t2D描画(\r
-                                               CDTXMania.Instance.app.Device,\r
-                                               XPos + 63,\r
-                                               YPos + DispHeight - ar,\r
-                                               rectangle\r
-                                       );\r
-                    this.txグラフ.b加算合成 = false;\r
-                                       */\r
-                               }\r
-                               /*\r
-                               for( int k = 32; k < 64; k++ )\r
-                               {\r
-                    rectangle = new Rectangle(60,0,1,1);\r
-                    if (this.txグラフ != null)\r
-                    {\r
-                                       this.stキラキラ[ k ].ct進行.t進行Loop();\r
-                        int num1 = (int)this.stキラキラ[ k ].x;\r
-                        int num2 = this.stキラキラ[ k ].ct進行.n現在の値;\r
-                        this.txグラフ.vc拡大縮小倍率 = new Vector3(this.stキラキラ[ k ].fScale, this.stキラキラ[ k ].fScale, this.stキラキラ[ k ].fScale);\r
-                        this.txグラフ.n透明度 = 138 - 2 * this.stキラキラ[ k ].Trans;\r
-                        if ( num2 < (2.3f * this.dbグラフ値目標_表示) )\r
-                        {\r
-                            this.txグラフ.t2D描画(\r
-                                                               CDTXMania.Instance.app.Device,\r
-                                                               (XPos + 69 + 3 * num1),\r
-                                                               YPos + DispHeight - num2,\r
-                                                               rectangle\r
+                                       if (this.txグラフ != null)\r
+                                       {\r
+                                               this.txグラフ.t2D描画(\r
+                                                       CDTXMania.Instance.Device,\r
+                                                       XPos + 30,\r
+                                                       YPos + DispHeight - ar,\r
+                                                       new Rectangle(30, 5 + stYposInImg, 30, ar)\r
                                                        );\r
-                        }\r
-                    }\r
+                                               this.txグラフ.n透明度 = 255;\r
+                                               this.txグラフ.t2D描画( // 上部白いバー\r
+                                                       CDTXMania.Instance.Device,\r
+                                                       XPos + 30,\r
+                                                       YPos + DispHeight - ar,\r
+                                                       new Rectangle(30, 0, 30, 5)\r
+                                               );\r
+                                       }\r
                                }\r
-                               */\r
-\r
                        }\r
                        return 0;\r
                }\r
-\r
-\r
-               // その他\r
-\r
-               #region [ private ]\r
-               //----------------\r
-               /*\r
-               [StructLayout( LayoutKind.Sequential )]\r
-               private struct STキラキラ\r
-               {\r
-                       public int x;\r
-                       public int y;\r
-                       public float fScale;\r
-                       public int Trans;\r
-                       public CCounter ct進行;\r
-               }\r
-               */\r
-               // private STキラキラ[] stキラキラ = new STキラキラ[ 64 ];\r
-               // private STキラキラ[] stフラッシュ = new STキラキラ[ 16 ];\r
-\r
-               private double dbグラフ値目標;\r
-               private double dbグラフ値目標_表示;\r
-               private double dbグラフ値現在;\r
-               private double dbグラフ値現在_表示;\r
-               // private double dbグラフ値直前;\r
-               // private int nグラフフラッシュct;\r
-\r
-               private CTexture txグラフ;\r
-               //-----------------\r
-               #endregion\r
        }\r
 }\r
index 48e459e..5f28270 100644 (file)
@@ -1,281 +1 @@
-using System;\r
-using System.Collections.Generic;\r
-using System.Text;\r
-using System.Runtime.InteropServices;\r
-using System.Drawing;\r
-using System.Diagnostics;\r
-using SlimDX;\r
-using FDK;\r
-\r
-namespace DTXMania\r
-{\r
-       internal class CAct演奏Drumsゲージ : CAct演奏ゲージ共通\r
-       {\r
-               // プロパティ\r
-\r
-               // コンストラクタ\r
-\r
-               public CAct演奏Drumsゲージ()\r
-               {\r
-                       base.b活性化してない = true;\r
-               }\r
-\r
-\r
-               // CActivity 実装\r
-\r
-               public override void On活性化()\r
-               {\r
-                       // CAct演奏ゲージ共通.Init()に移動\r
-                       // this.dbゲージ値 = ( CDTXMania.Instance.ConfigIni.nRisky > 0 ) ? 1.0 : 0.66666666666666663;\r
-                       base.On活性化();\r
-               }\r
-               public override void On非活性化()\r
-               {\r
-                       this.ct本体振動 = null;\r
-                       this.ct本体移動 = null;\r
-                       for (int i = 0; i < 24; i++)\r
-                       {\r
-                               this.st白い星[i].ct進行 = null;\r
-                       }\r
-                       base.On非活性化();\r
-               }\r
-               public override void OnManagedリソースの作成()\r
-               {\r
-                       if (!base.b活性化してない)\r
-                       {\r
-                               this.txゲージ = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenPlayDrums gauge.png"));\r
-                               this.txゲージ白 = TextureFactory.tテクスチャの生成Af(CSkin.Path(@"Graphics\ScreenPlayDrums_gauge_white.png "));\r
-                               base.OnManagedリソースの作成();\r
-                       }\r
-               }\r
-               public override void OnManagedリソースの解放()\r
-               {\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
-                       {\r
-                               #region [ 初めての進行描画 ]\r
-                               if (base.b初めての進行描画)\r
-                               {\r
-                                       for (int k = 0; k < 0x18; k++)\r
-                                       {\r
-                                               this.st白い星[k].x = 2 + CDTXMania.Instance.Random.Next(4);\r
-                                               this.st白い星[k].fScale = 0.2f + (CDTXMania.Instance.Random.Next(2) * 0.05f);\r
-                                               this.st白い星[k].ct進行 = new CCounter(0, 0x160, 8 + CDTXMania.Instance.Random.Next(4), CDTXMania.Instance.Timer);\r
-                                               this.st白い星[k].ct進行.n現在の値 = CDTXMania.Instance.Random.Next(0x160);\r
-                                       }\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
-                               #endregion\r
-                               this.ct本体移動.t進行Loop();\r
-                               this.ct本体振動.t進行Loop();\r
-\r
-                               #region [ Risky残りMiss回数表示 ]\r
-                               if (this.bRisky && this.actLVLNFont != null)            // #23599 2011.7.30 yyagi Risky残りMiss回数表示\r
-                               {\r
-                                       CActLVLNFont.EFontColor efc = this.IsDanger(E楽器パート.DRUMS) ?\r
-                                               CActLVLNFont.EFontColor.Red : CActLVLNFont.EFontColor.Yellow;\r
-                                       actLVLNFont.t文字列描画((int)(12 * Scale.X), (int)(408 * Scale.Y), nRiskyTimes.ToString(), efc, CActLVLNFont.EFontAlign.Right);\r
-                               }\r
-                               #endregion\r
-\r
-                               #region [ 緑orオレンジのゲージ表示 ]\r
-                               const double dbゲージ最大値 = 352.0 * Scale.Y;\r
-                               int n表示するゲージの高さ = (this.dbゲージ値 == 1.0) ?\r
-                                       ((int)(dbゲージ最大値 * this.dbゲージ値)) :\r
-                                       ((int)((dbゲージ最大値 * this.dbゲージ値) + (2.0 * Math.Sin(Math.PI * 2 * (((double)this.ct本体振動.n現在の値) / 360.0)))));\r
-\r
-                               if (n表示するゲージの高さ <= 0)\r
-                               {\r
-                                       return 0;\r
-                               }\r
-                               if (this.txゲージ != null)\r
-                               {\r
-                                       this.txゲージ.vc拡大縮小倍率 = new Vector3(1f, 1f, 1f);\r
-                                       this.txゲージ.n透明度 = 0xff;\r
-                                       this.txゲージ.b加算合成 = false;\r
-                               }\r
-                               int nCtゲージ内部上昇スクロール現在値 = (int)(this.ct本体移動.n現在の値 * Scale.Y);\r
-                               int n表示ゲージ最大値 = (int)(0x195 * Scale.Y);\r
-                               int ybar = (n表示ゲージ最大値 - n表示するゲージの高さ) - nCtゲージ内部上昇スクロール現在値;\r
-                               int height = n表示するゲージの高さ + nCtゲージ内部上昇スクロール現在値;\r
-                               while (height > 0)\r
-                               {\r
-                                       Rectangle rect = (this.dbゲージ値 == 1.0) ?\r
-                                               new Rectangle(48, 0, 48, 61) :\r
-                                               new Rectangle(0, 0, 48, 61);\r
-                                       #region [ clipping ]\r
-                                       if (ybar < (n表示ゲージ最大値 - n表示するゲージの高さ))\r
-                                       {\r
-                                               int d = (n表示ゲージ最大値 - n表示するゲージの高さ) - ybar;\r
-                                               rect.Y += d;\r
-                                               rect.Height -= d;\r
-                                               ybar += d;\r
-                                       }\r
-                                       if ((ybar + rect.Height) > n表示ゲージ最大値)\r
-                                       {\r
-                                               int num7 = (ybar + rect.Height) - n表示ゲージ最大値;\r
-                                               rect.Height -= num7;\r
-                                       }\r
-                                       if (rect.Top >= rect.Bottom)\r
-                                       {\r
-                                               break;\r
-                                       }\r
-                                       #endregion\r
-                                       if (this.txゲージ != null)\r
-                                       {\r
-                                               this.txゲージ.t2D描画(\r
-                                                       CDTXMania.Instance.Device,\r
-                                                       6 * Scale.X,\r
-                                                       ybar,\r
-                                                       rect\r
-                                               );\r
-                                       }\r
-                                       height -= rect.Height;\r
-                                       ybar += rect.Height;\r
-                               }\r
-                               #endregion\r
-                               #region [ 光彩 ]\r
-                               if (this.txゲージ白 != null)\r
-                               {\r
-                                       this.txゲージ白.vc拡大縮小倍率 = new Vector3(1f, 1f, 1f);\r
-                                       this.txゲージ白.n透明度 = 180;\r
-                                       this.txゲージ白.b加算合成 = true;\r
-                               }\r
-                               {\r
-                                       Rectangle rect = new Rectangle(\r
-                                               0,\r
-                                               0,\r
-                                               (int)(0x10 * Scale.X),\r
-                                               (int)(0x40 * 4 * Scale.Y)\r
-                                       );\r
-                                       #region [ clipping1 ]\r
-                                       int ylight = (n表示ゲージ最大値 - n表示するゲージの高さ) + (int)(0 * 0x40 * Scale.Y);\r
-                                       if (ylight >= n表示ゲージ最大値)\r
-                                       {\r
-                                               //break;\r
-                                       }\r
-                                       #endregion\r
-                                       else\r
-                                       {\r
-                                               #region [ Clipping2 ]\r
-                                               if ((ylight + rect.Height) > n表示ゲージ最大値)\r
-                                               {\r
-                                                       int d = (ylight + rect.Height) - n表示ゲージ最大値;\r
-                                                       rect.Height -= d;\r
-                                               }\r
-                                               #endregion\r
-                                               if ((rect.Top < rect.Bottom) && (this.txゲージ白 != null))\r
-                                               {\r
-                                                       this.txゲージ白.t2D描画(\r
-                                                               CDTXMania.Instance.Device,\r
-                                                               (int)(6 * Scale.X),\r
-                                                               (int)(ylight + 0.5f),\r
-                                                               rect\r
-                                                       );\r
-                                               }\r
-                                       }\r
-                               }\r
-                               #endregion\r
-                               #region [ ゲージ頂上の光源 ]\r
-                               if (this.txゲージ != null)\r
-                               {\r
-                                       //this.txゲージ.vc拡大縮小倍率 = new Vector3( 1f, 1f, 1f );\r
-                                       this.txゲージ.n透明度 = 0xff;\r
-                                       this.txゲージ.b加算合成 = false;\r
-                               }\r
-                               {\r
-                                       Rectangle rect = new Rectangle(\r
-                                               (int)(0x30 * Scale.X),\r
-                                               0,\r
-                                               (int)(0x10 * Scale.X),\r
-                                               (int)(0x10 * Scale.Y)\r
-                                       );\r
-                                       int yゲージ頂上 = n表示ゲージ最大値 - n表示するゲージの高さ;\r
-                                       if (yゲージ頂上 < n表示ゲージ最大値)\r
-                                       {\r
-                                               #region [ clipping ]\r
-                                               if ((yゲージ頂上 + rect.Height) > n表示ゲージ最大値)\r
-                                               {\r
-                                                       int d = (yゲージ頂上 + rect.Height) - n表示ゲージ最大値;\r
-                                                       rect.Height -= d;\r
-                                               }\r
-                                               #endregion\r
-                                               if ((rect.Top < rect.Bottom) && (this.txゲージ != null))\r
-                                               {\r
-                                                       this.txゲージ.t2D描画(\r
-                                                               CDTXMania.Instance.Device,\r
-                                                               (int)(6 * Scale.X),\r
-                                                               (int)(yゲージ頂上 + 0.5f),\r
-                                                               rect\r
-                                                       );\r
-                                               }\r
-                                       }\r
-                               }\r
-                               #endregion\r
-                               #region [ 泡 ]\r
-                               if (this.txゲージ != null)\r
-                               {\r
-                                       this.txゲージ.b加算合成 = true;\r
-                               }\r
-                               for (int j = 0; j < 24; j++)\r
-                               {\r
-                                       this.st白い星[j].ct進行.t進行Loop();\r
-                                       int x = 6 + this.st白い星[j].x;\r
-                                       int y泡 = (n表示ゲージ最大値 - n表示するゲージの高さ) + (int)((0x160 - this.st白い星[j].ct進行.n現在の値) * Scale.Y);\r
-                                       int n透明度 = (this.st白い星[j].ct進行.n現在の値 < 0xb0) ? 0 : ((int)(255.0 * (((double)(this.st白い星[j].ct進行.n現在の値 - 0xb0)) / 176.0)));\r
-                                       if ((n透明度 != 0) && (y泡 < (int)(0x191 * Scale.Y)))\r
-                                       {\r
-                                               Rectangle rect = new Rectangle(\r
-                                                       (int)(0 * Scale.X),\r
-                                                       (int)(0x20 * Scale.Y),\r
-                                                       (int)(0x20 * Scale.X),\r
-                                                       (int)(0x20 * Scale.Y)\r
-                                               );\r
-                                               if (this.txゲージ != null)\r
-                                               {\r
-                                                       this.txゲージ.vc拡大縮小倍率 = new Vector3(this.st白い星[j].fScale, this.st白い星[j].fScale, 1f);\r
-                                                       this.txゲージ.n透明度 = n透明度;\r
-                                                       this.txゲージ.t2D描画(\r
-                                                               CDTXMania.Instance.Device,\r
-                                                               (int)(x * Scale.X),\r
-                                                               (int)(y泡 + 0.5f),\r
-                                                               rect\r
-                                                       );\r
-                                               }\r
-                                       }\r
-                               }\r
-                               #endregion\r
-                       }\r
-                       return 0;\r
-               }\r
-\r
-\r
-               // その他\r
-\r
-               #region [ private ]\r
-               //-----------------\r
-               [StructLayout(LayoutKind.Sequential)]\r
-               private struct ST白い星\r
-               {\r
-                       public int x;\r
-                       public float fScale;\r
-                       public CCounter ct進行;\r
-               }\r
-\r
-               private CTextureAf txゲージ白;\r
-               private const int STAR_MAX = 0x18;\r
-               private ST白い星[] st白い星 = new ST白い星[0x18];\r
-               //-----------------\r
-               #endregion\r
-       }\r
-}\r
+
\ No newline at end of file
index b60a6bd..5f28270 100644 (file)
@@ -1,55 +1 @@
-using System;\r
-using System.Collections.Generic;\r
-using System.Text;\r
-\r
-namespace DTXMania\r
-{\r
-       internal class CAct演奏DrumsコンボDGB : CAct演奏Combo共通\r
-       {\r
-               // CAct演奏Combo共通 実装\r
-\r
-               protected override void tコンボ表示_ギター(int nCombo値, int nジャンプインデックス)\r
-               {\r
-                       int x, y;\r
-                       if (CDTXMania.Instance.DTX.bチップがある.Bass || CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Center)\r
-                       {\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, 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
-                                       base.txCOMBOギター.n透明度 = 120;\r
-                               }\r
-                       }\r
-                       else\r
-                       {\r
-                               x = 1344;\r
-                               //y = CDTXMania.Instance.ConfigIni.bReverse.Guitar ? 0xee : 0xcf;\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
-                                       base.txCOMBOギター.n透明度 = 0xff;\r
-                               }\r
-                       }\r
-                       base.tコンボ表示_ギター(nCombo値, x, y, nジャンプインデックス);\r
-               }\r
-               protected override void tコンボ表示_ドラム(int nCombo値, int nジャンプインデックス)\r
-               {\r
-                       base.tコンボ表示_ドラム(nCombo値, nジャンプインデックス);\r
-               }\r
-               protected override void tコンボ表示_ベース(int nCombo値, int nジャンプインデックス)\r
-               {\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, 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
-                               base.txCOMBOギター.n透明度 = 120;\r
-                       }\r
-                       base.tコンボ表示_ベース(nCombo値, x, y, nジャンプインデックス);\r
-               }\r
-       }\r
-}\r
+
\ No newline at end of file
index 419ed72..5f28270 100644 (file)
@@ -1,87 +1 @@
-using System;\r
-using System.Collections.Generic;\r
-using System.Text;\r
-using System.Drawing;\r
-\r
-namespace DTXMania\r
-{\r
-       internal class CAct演奏Drumsスコア : CAct演奏スコア共通\r
-       {\r
-               // CActivity 実装(共通クラスからの差分のみ)\r
-\r
-               public override unsafe int On進行描画()\r
-               {\r
-                       if (!base.b活性化してない)\r
-                       {\r
-                               if (base.b初めての進行描画)\r
-                               {\r
-                                       base.n進行用タイマ = FDK.CSound管理.rc演奏用タイマ.n現在時刻;\r
-                                       base.b初めての進行描画 = false;\r
-                               }\r
-                               long num = FDK.CSound管理.rc演奏用タイマ.n現在時刻;\r
-                               if (num < base.n進行用タイマ)\r
-                               {\r
-                                       base.n進行用タイマ = num;\r
-                               }\r
-                               while ((num - base.n進行用タイマ) >= 10)\r
-                               {\r
-                                       for (int j = 0; j < 3; j++)\r
-                                       {\r
-                                               this.n現在表示中のスコア[j] += this.nスコアの増分[j];\r
-\r
-                                               if (this.n現在表示中のスコア[j] > (long)this.n現在の本当のスコア[j])\r
-                                                       this.n現在表示中のスコア[j] = (long)this.n現在の本当のスコア[j];\r
-                                       }\r
-                                       base.n進行用タイマ += 10;\r
-                               }\r
-                               string str = this.n現在表示中のスコア.Drums.ToString("0000000000");\r
-                               for (int i = 0; i < 10; i++)\r
-                               {\r
-                                       Rectangle rectangle;\r
-                                       char ch = str[i];\r
-                                       if (ch.Equals(' '))\r
-                                       {\r
-                                               rectangle = new Rectangle(\r
-                                                       0,\r
-                                                       0,\r
-                                                       (int)(12 * Scale.X),\r
-                                                       (int)(0x18 * Scale.Y)\r
-                                               );\r
-                                       }\r
-                                       else\r
-                                       {\r
-                                               int num4 = int.Parse(str.Substring(i, 1));\r
-                                               if (num4 < 5)\r
-                                               {\r
-                                                       rectangle = new Rectangle(\r
-                                                               (int)(num4 * 12 * Scale.X),\r
-                                                               0,\r
-                                                               (int)(12 * Scale.X),\r
-                                                               (int)(0x18 * Scale.Y)\r
-                                                       );\r
-                                               }\r
-                                               else\r
-                                               {\r
-                                                       rectangle = new Rectangle(\r
-                                                               (int)((num4 - 5) * 12 * Scale.X),\r
-                                                               (int)(0x18 * Scale.Y),\r
-                                                               (int)(12 * Scale.X),\r
-                                                               (int)(0x18 * Scale.Y)\r
-                                                       );\r
-                                               }\r
-                                       }\r
-                                       if (base.txScore != null)\r
-                                       {\r
-                                               base.txScore.t2D描画(\r
-                                                       CDTXMania.Instance.Device,\r
-                                                       (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? 1068 + (i * 36) : 1490 + i * 36,\r
-                                                       30,\r
-                                                       rectangle\r
-                                               );\r
-                                       }\r
-                               }\r
-                       }\r
-                       return 0;\r
-               }\r
-       }\r
-}\r
+
\ No newline at end of file
index ca63e5e..5f28270 100644 (file)
@@ -1,84 +1 @@
-using System;\r
-using System.Collections.Generic;\r
-using System.Text;\r
-using System.Runtime.InteropServices;\r
-using System.Drawing;\r
-using FDK;\r
-\r
-namespace DTXMania\r
-{\r
-       internal class CAct演奏Drumsステータスパネル : CAct演奏ステータスパネル共通\r
-       {\r
-               public override void OnManagedリソースの作成()\r
-               {\r
-                       if (!base.b活性化してない)\r
-                       {\r
-                               this.txStatusPanels = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenPlay status panels right.png"));\r
-                               base.OnManagedリソースの作成();\r
-                       }\r
-               }\r
-               public override void OnManagedリソースの解放()\r
-               {\r
-                       if (!base.b活性化してない)\r
-                       {\r
-                               TextureFactory.tテクスチャの解放(ref this.txStatusPanels);\r
-                               base.OnManagedリソースの解放();\r
-                       }\r
-               }\r
-               public override int On進行描画()\r
-               {\r
-                       if (!base.b活性化してない && (this.txStatusPanels != null))\r
-                       {\r
-                               this.txStatusPanels.t2D描画(\r
-                                       CDTXMania.Instance.Device,\r
-                                       0x26f * Scale.X,\r
-                                       0x14f * Scale.Y,\r
-                                       new Rectangle(\r
-                                               (int)(this.nStatus * 15 * Scale.X),\r
-                                               (int)(0xb7 * Scale.Y),\r
-                                               (int)(15 * Scale.X),\r
-                                               (int)(0x49 * Scale.Y)\r
-                                       )\r
-                               );\r
-                               int drums = CDTXMania.Instance.ConfigIni.n譜面スクロール速度.Drums;\r
-                               if (drums < 0)\r
-                               {\r
-                                       drums = 0;\r
-                               }\r
-                               if (drums > 15)\r
-                               {\r
-                                       drums = 15;\r
-                               }\r
-                               this.txStatusPanels.t2D描画(CDTXMania.Instance.Device,\r
-                                       0x26f * Scale.X,\r
-                                       0x3b * Scale.Y,\r
-                                       new Rectangle(\r
-                                               (int)(drums * 15 * Scale.X),\r
-                                               0,\r
-                                               (int)(15 * Scale.X),\r
-                                               (int)(0xac * Scale.Y)\r
-                                       )\r
-                               );\r
-                       }\r
-                       return 0;\r
-               }\r
-\r
-\r
-               // その他\r
-\r
-               #region [ private ]\r
-               //-----------------\r
-               //[StructLayout( LayoutKind.Sequential )]\r
-               //private struct STATUSPANEL\r
-               //{\r
-               //    public string label;\r
-               //    public int status;\r
-               //}\r
-\r
-               //private int nStatus;\r
-               //private STATUSPANEL[] stパネルマップ;\r
-               private CTexture txStatusPanels;\r
-               //-----------------\r
-               #endregion\r
-       }\r
-}\r
+
\ No newline at end of file
index c71a6fe..8a332de 100644 (file)
@@ -9,135 +9,182 @@ namespace DTXMania
 {\r
        internal class CAct演奏DrumsチップファイアD : CActivity\r
        {\r
-               // コンストラクタ\r
-\r
-               public CAct演奏DrumsチップファイアD()\r
-               {\r
-                       base.b活性化してない = true;\r
-               }\r
-\r
-\r
-               // メソッド\r
-\r
-               public void Start(Eレーン lane)\r
+               [StructLayout(LayoutKind.Sequential)]\r
+               private struct ST火花\r
                {\r
-                       this.Start(lane, false, false, false, 0);\r
+                       public int nLane;\r
+                       public bool b使用中;\r
+                       public CCounter ct進行;\r
+                       public float f回転単位;\r
+                       public float f回転方向;\r
+                       public float fサイズ;\r
                }\r
-               public void Start(Eレーン lane, bool bフィルイン)\r
+               [StructLayout(LayoutKind.Sequential)]\r
+               private struct ST細波\r
                {\r
-                       this.Start(lane, bフィルイン, false, false, 0);\r
+                       public int nLane;\r
+                       public bool b使用中;\r
+                       public CCounter ct進行;\r
+                       public float f角度X;\r
+                       public float f角度Y;\r
+                       public float f半径;\r
+                       public int n進行速度ms;\r
                }\r
-               public void Start(Eレーン lane, bool bフィルイン, bool b大波)\r
+               [StructLayout(LayoutKind.Sequential)]\r
+               private struct ST青い星\r
                {\r
-                       this.Start(lane, bフィルイン, b大波, false, 0);\r
+                       public int nLane;\r
+                       public bool b使用中;\r
+                       public CCounter ct進行;\r
+                       public int n前回のValue;\r
+                       public float fX;\r
+                       public float fY;\r
+                       public float f加速度X;\r
+                       public float f加速度Y;\r
+                       public float f加速度の加速度X;\r
+                       public float f加速度の加速度Y;\r
+                       public float f重力加速度;\r
+                       public float f半径;\r
                }\r
-               public void Start(Eレーン lane, bool bフィルイン, bool b大波, bool b細波)\r
+               [StructLayout(LayoutKind.Sequential)]\r
+               private struct ST大波\r
                {\r
-                       this.Start(lane, bフィルイン, b大波, b細波, 0);\r
+                       public int nLane;\r
+                       public bool b使用中;\r
+                       public CCounter ct進行;\r
+                       public float f角度X;\r
+                       public float f角度Y;\r
+                       public float f半径;\r
+                       public int n進行速度ms;\r
+                       public float f回転単位;\r
+                       public float f回転方向;\r
                }\r
-               public void Start(Eレーン lane, bool bフィルイン, bool b大波, bool b細波, int _nJudgeLinePosY_delta_Drums)\r
+\r
+               private const int BIGWAVE_MAX = 20;\r
+               private bool b細波Balance;\r
+               private bool b大波Balance;\r
+               private const int FIRE_MAX = 8 * 8;\r
+               private readonly float[] fY波の最小仰角 = new float[] { -130f, -126f, -120f, -118f, -110f, -108f, -103f, -97f };\r
+               private readonly float[] fY波の最大仰角 = new float[] { 70f, 72f, 77f, 84f, 89f, 91f, 99f, 107f };\r
+               private readonly int[] nレーンの中央X座標 = new int[] { 54 * 3 - 54 * 3, 92 * 3 - 54 * 3, 126 * 3 - 54 * 3, 167 * 3 - 54 * 3,\r
+                                                                                                                               208 * 3 - 54 * 3, 242 * 3 - 54 * 3, 276 * 3 - 54 * 3, 313 * 3 - 54 * 3 };\r
+               private const int STAR_MAX = 0x100;\r
+               private ST火花[] st火花 = new ST火花[FIRE_MAX];\r
+               private ST大波[] st大波 = new ST大波[BIGWAVE_MAX];\r
+               private ST細波[] st細波 = new ST細波[BIGWAVE_MAX];\r
+               private ST青い星[] st青い星 = new ST青い星[STAR_MAX];\r
+               private CTexture tx火花;\r
+               private CTexture tx細波;\r
+               private CTexture tx青い星;\r
+               private CTexture tx大波;\r
+               private int nJudgeLinePosY_delta_Drums;\r
+\r
+               // メソッド\r
+               public void Start(Eレーン lane, bool bフィルイン = false, bool b大波 = false, bool b細波 = false, int _nJudgeLinePosY_delta_Drums = 0)\r
                {\r
-                       nJudgeLinePosY_delta_Drums = _nJudgeLinePosY_delta_Drums;\r
-                       if (this.tx火花 != null)\r
+                       if (!CDTXMania.Instance.ConfigIni.bギタレボモード)\r
                        {\r
-                               for (int j = 0; j < FIRE_MAX; j++)\r
+                               nJudgeLinePosY_delta_Drums = _nJudgeLinePosY_delta_Drums;\r
+                               if (this.tx火花 != null)\r
                                {\r
-                                       if (this.st火花[j].b使用中 && this.st火花[j].nLane == (int)lane)         // yyagi 負荷軽減のつもり・・・だが、あまり効果なさげ\r
+                                       for (int j = 0; j < FIRE_MAX; j++)\r
                                        {\r
-                                               this.st火花[j].ct進行.t停止();\r
-                                               this.st火花[j].b使用中 = false;\r
+                                               if (this.st火花[j].b使用中 && this.st火花[j].nLane == (int)lane)         // yyagi 負荷軽減のつもり・・・だが、あまり効果なさげ\r
+                                               {\r
+                                                       this.st火花[j].ct進行.t停止();\r
+                                                       this.st火花[j].b使用中 = false;\r
+                                               }\r
                                        }\r
-                               }\r
-                               float n回転初期値 = CDTXMania.Instance.Random.Next(360);\r
-                               for (int i = 0; i < 8; i++)\r
-                               {\r
-                                       for (int j = 0; j < FIRE_MAX; j++)\r
+                                       float n回転初期値 = CDTXMania.Instance.Random.Next(360);\r
+                                       for (int i = 0; i < 8; i++)\r
                                        {\r
-                                               if (!this.st火花[j].b使用中)\r
+                                               for (int j = 0; j < FIRE_MAX; j++)\r
                                                {\r
-                                                       this.st火花[j].b使用中 = true;\r
-                                                       this.st火花[j].nLane = (int)lane;\r
-                                                       //                                                      this.st火花[ j ].ct進行 = new CCounter( 0, 35, 6, CDTXMania.Instance.Timer );\r
-                                                       this.st火花[j].ct進行 = new CCounter(0, 70, 3, CDTXMania.Instance.Timer);\r
-                                                       this.st火花[j].f回転単位 = C変換.DegreeToRadian((float)(n回転初期値 + (i * 90f)));\r
-                                                       this.st火花[j].f回転方向 = (i < 4) ? 1f : -2f;\r
-                                                       this.st火花[j].fサイズ = (i < 4) ? 1f : 0.5f;\r
-                                                       break;\r
+                                                       if (!this.st火花[j].b使用中)\r
+                                                       {\r
+                                                               this.st火花[j].b使用中 = true;\r
+                                                               this.st火花[j].nLane = (int)lane;\r
+                                                               this.st火花[j].ct進行 = new CCounter(0, 70, 3, CDTXMania.Instance.Timer);\r
+                                                               this.st火花[j].f回転単位 = C変換.DegreeToRadian((float)(n回転初期値 + (i * 90f)));\r
+                                                               this.st火花[j].f回転方向 = (i < 4) ? 1f : -2f;\r
+                                                               this.st火花[j].fサイズ = (i < 4) ? 1f : 0.5f;\r
+                                                               break;\r
+                                                       }\r
                                                }\r
                                        }\r
                                }\r
-                       }\r
-                       if (bフィルイン && (this.tx青い星 != null))\r
-                       {\r
-                               for (int i = 0; i < 0x10; i++)\r
+                               if (bフィルイン && (this.tx青い星 != null))\r
                                {\r
-                                       for (int j = 0; j < STAR_MAX; j++)\r
+                                       for (int i = 0; i < 0x10; i++)\r
                                        {\r
-                                               if (!this.st青い星[j].b使用中)\r
+                                               for (int j = 0; j < STAR_MAX; j++)\r
                                                {\r
-                                                       this.st青い星[j].b使用中 = true;\r
-                                                       int n回転初期値 = CDTXMania.Instance.Random.Next(360);\r
-                                                       double num7 = 0.9 + (((double)CDTXMania.Instance.Random.Next(40)) / 100.0);\r
-                                                       this.st青い星[j].nLane = (int)lane;\r
-                                                       this.st青い星[j].ct進行 = new CCounter(0, 100, 7, CDTXMania.Instance.Timer);\r
-                                                       this.st青い星[j].fX =\r
-                                                               (int)(this.nレーンの中央X座標[(int)lane] * (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left ? 1.0 : 0.75)) +\r
-                                                                                       ((CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? (float)(54 * 3) : (float)(619 + 12 + 40));\r
-                                                       this.st青い星[j].fY = CDTXMania.Instance.ConfigIni.bReverse.Drums ?\r
-                                                               (float)(119 + 4) - nJudgeLinePosY_delta_Drums : (float)(942 + 14) + nJudgeLinePosY_delta_Drums;\r
-                                                       this.st青い星[j].f加速度X = (float)(num7 * Math.Cos((Math.PI * 2 * n回転初期値) / 360.0));\r
-                                                       this.st青い星[j].f加速度Y = (float)(num7 * (Math.Sin((Math.PI * 2 * n回転初期値) / 360.0) - 0.2));\r
-                                                       this.st青い星[j].f加速度の加速度X = 0.995f;\r
-                                                       this.st青い星[j].f加速度の加速度Y = 0.995f;\r
-                                                       this.st青い星[j].f重力加速度 = 0.00355f;\r
-                                                       this.st青い星[j].f半径 = (float)(0.5 + (((double)CDTXMania.Instance.Random.Next(30)) / 100.0));\r
-                                                       break;\r
+                                                       if (!this.st青い星[j].b使用中)\r
+                                                       {\r
+                                                               this.st青い星[j].b使用中 = true;\r
+                                                               int n回転初期値 = CDTXMania.Instance.Random.Next(360);\r
+                                                               double num7 = 0.9 + (((double)CDTXMania.Instance.Random.Next(40)) / 100.0);\r
+                                                               this.st青い星[j].nLane = (int)lane;\r
+                                                               this.st青い星[j].ct進行 = new CCounter(0, 100, 7, CDTXMania.Instance.Timer);\r
+                                                               this.st青い星[j].fX =\r
+                                                                       (int)(this.nレーンの中央X座標[(int)lane] * (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left ? 1.0 : 0.75)) +\r
+                                                                                               ((CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? (float)(54 * 3) : (float)(619 + 12 + 40));\r
+                                                               this.st青い星[j].fY = CDTXMania.Instance.ConfigIni.bReverse.Drums ?\r
+                                                                       (float)(119 + 4) - nJudgeLinePosY_delta_Drums : (float)(942 + 14) + nJudgeLinePosY_delta_Drums;\r
+                                                               this.st青い星[j].f加速度X = (float)(num7 * Math.Cos((Math.PI * 2 * n回転初期値) / 360.0));\r
+                                                               this.st青い星[j].f加速度Y = (float)(num7 * (Math.Sin((Math.PI * 2 * n回転初期値) / 360.0) - 0.2));\r
+                                                               this.st青い星[j].f加速度の加速度X = 0.995f;\r
+                                                               this.st青い星[j].f加速度の加速度Y = 0.995f;\r
+                                                               this.st青い星[j].f重力加速度 = 0.00355f;\r
+                                                               this.st青い星[j].f半径 = (float)(0.5 + (((double)CDTXMania.Instance.Random.Next(30)) / 100.0));\r
+                                                               break;\r
+                                                       }\r
                                                }\r
                                        }\r
                                }\r
-                       }\r
-                       if (b大波 && (this.tx大波 != null))\r
-                       {\r
-                               for (int i = 0; i < 4; i++)\r
+                               if (b大波 && (this.tx大波 != null))\r
                                {\r
-                                       for (int j = 0; j < BIGWAVE_MAX; j++)\r
+                                       for (int i = 0; i < 4; i++)\r
                                        {\r
-                                               if (!this.st大波[j].b使用中)\r
+                                               for (int j = 0; j < BIGWAVE_MAX; j++)\r
                                                {\r
-                                                       this.st大波[j].b使用中 = true;\r
-                                                       this.st大波[j].nLane = (int)lane;\r
-                                                       this.st大波[j].f半径 = ((float)((20 - CDTXMania.Instance.Random.Next(40)) + 100)) / 100f;\r
-                                                       this.st大波[j].n進行速度ms = 10;\r
-                                                       this.st大波[j].ct進行 = new CCounter(0, 100, this.st大波[j].n進行速度ms, CDTXMania.Instance.Timer);\r
-                                                       this.st大波[j].ct進行.n現在の値 = i * 10;\r
-                                                       this.st大波[j].f角度X = C変換.DegreeToRadian((float)((((double)(CDTXMania.Instance.Random.Next(100) * 50)) / 100.0) + 30.0));\r
-                                                       this.st大波[j].f角度Y = C変換.DegreeToRadian(this.b大波Balance ? (this.fY波の最小仰角[(int)lane] + CDTXMania.Instance.Random.Next(30)) : (this.fY波の最大仰角[(int)lane] - CDTXMania.Instance.Random.Next(30)));\r
-                                                       this.st大波[j].f回転単位 = C変換.DegreeToRadian((float)0f);\r
-                                                       this.st大波[j].f回転方向 = 1f;\r
-                                                       this.b大波Balance = !this.b大波Balance;\r
-                                                       break;\r
+                                                       if (!this.st大波[j].b使用中)\r
+                                                       {\r
+                                                               this.st大波[j].b使用中 = true;\r
+                                                               this.st大波[j].nLane = (int)lane;\r
+                                                               this.st大波[j].f半径 = ((float)((20 - CDTXMania.Instance.Random.Next(40)) + 100)) / 100f;\r
+                                                               this.st大波[j].n進行速度ms = 10;\r
+                                                               this.st大波[j].ct進行 = new CCounter(0, 100, this.st大波[j].n進行速度ms, CDTXMania.Instance.Timer);\r
+                                                               this.st大波[j].ct進行.n現在の値 = i * 10;\r
+                                                               this.st大波[j].f角度X = C変換.DegreeToRadian((float)((((double)(CDTXMania.Instance.Random.Next(100) * 50)) / 100.0) + 30.0));\r
+                                                               this.st大波[j].f角度Y = C変換.DegreeToRadian(this.b大波Balance ? (this.fY波の最小仰角[(int)lane] + CDTXMania.Instance.Random.Next(30)) : (this.fY波の最大仰角[(int)lane] - CDTXMania.Instance.Random.Next(30)));\r
+                                                               this.st大波[j].f回転単位 = C変換.DegreeToRadian((float)0f);\r
+                                                               this.st大波[j].f回転方向 = 1f;\r
+                                                               this.b大波Balance = !this.b大波Balance;\r
+                                                               break;\r
+                                                       }\r
                                                }\r
                                        }\r
                                }\r
-                       }\r
-                       if (b細波 && (this.tx細波 != null))\r
-                       {\r
-                               for (int i = 0; i < 1; i++)\r
+                               if (b細波 && (this.tx細波 != null))\r
                                {\r
-                                       for (int j = 0; j < BIGWAVE_MAX; j++)\r
+                                       for (int i = 0; i < 1; i++)\r
                                        {\r
-                                               if (!this.st細波[j].b使用中)\r
+                                               for (int j = 0; j < BIGWAVE_MAX; j++)\r
                                                {\r
-                                                       this.st細波[j].b使用中 = true;\r
-                                                       this.st細波[j].nLane = (int)lane;\r
-                                                       this.st細波[j].f半径 = ((float)((20 - CDTXMania.Instance.Random.Next(40)) + 100)) / 100f;\r
-                                                       this.st細波[j].n進行速度ms = 8;\r
-                                                       this.st細波[j].ct進行 = new CCounter(0, 100, this.st細波[j].n進行速度ms, CDTXMania.Instance.Timer);\r
-                                                       this.st細波[j].ct進行.n現在の値 = 0;\r
-                                                       this.st細波[j].f角度X = C変換.DegreeToRadian((float)((((double)(CDTXMania.Instance.Random.Next(100) * 50)) / 100.0) + 30.0));\r
-                                                       this.st細波[j].f角度Y = C変換.DegreeToRadian(this.b細波Balance ? (this.fY波の最小仰角[(int)lane] + CDTXMania.Instance.Random.Next(30)) : (this.fY波の最大仰角[(int)lane] - CDTXMania.Instance.Random.Next(30)));\r
-                                                       this.b細波Balance = !this.b細波Balance;\r
-                                                       break;\r
+                                                       if (!this.st細波[j].b使用中)\r
+                                                       {\r
+                                                               this.st細波[j].b使用中 = true;\r
+                                                               this.st細波[j].nLane = (int)lane;\r
+                                                               this.st細波[j].f半径 = ((float)((20 - CDTXMania.Instance.Random.Next(40)) + 100)) / 100f;\r
+                                                               this.st細波[j].n進行速度ms = 8;\r
+                                                               this.st細波[j].ct進行 = new CCounter(0, 100, this.st細波[j].n進行速度ms, CDTXMania.Instance.Timer);\r
+                                                               this.st細波[j].ct進行.n現在の値 = 0;\r
+                                                               this.st細波[j].f角度X = C変換.DegreeToRadian((float)((((double)(CDTXMania.Instance.Random.Next(100) * 50)) / 100.0) + 30.0));\r
+                                                               this.st細波[j].f角度Y = C変換.DegreeToRadian(this.b細波Balance ? (this.fY波の最小仰角[(int)lane] + CDTXMania.Instance.Random.Next(30)) : (this.fY波の最大仰角[(int)lane] - CDTXMania.Instance.Random.Next(30)));\r
+                                                               this.b細波Balance = !this.b細波Balance;\r
+                                                               break;\r
+                                                       }\r
                                                }\r
                                        }\r
                                }\r
@@ -174,20 +221,23 @@ namespace DTXMania
                }\r
                public override void On非活性化()\r
                {\r
-                       for (int i = 0; i < FIRE_MAX; i++)\r
-                       {\r
-                               this.st火花[i].ct進行 = null;\r
-                       }\r
-                       for (int i = 0; i < STAR_MAX; i++)\r
-                       {\r
-                               this.st青い星[i].ct進行 = null;\r
-                       }\r
-                       for (int i = 0; i < BIGWAVE_MAX; i++)\r
+                       if (base.b活性化してる)\r
                        {\r
-                               this.st大波[i].ct進行 = null;\r
-                               this.st細波[i].ct進行 = null;\r
+                               for (int i = 0; i < FIRE_MAX; i++)\r
+                               {\r
+                                       this.st火花[i].ct進行 = null;\r
+                               }\r
+                               for (int i = 0; i < STAR_MAX; i++)\r
+                               {\r
+                                       this.st青い星[i].ct進行 = null;\r
+                               }\r
+                               for (int i = 0; i < BIGWAVE_MAX; i++)\r
+                               {\r
+                                       this.st大波[i].ct進行 = null;\r
+                                       this.st細波[i].ct進行 = null;\r
+                               }\r
+                               base.On非活性化();\r
                        }\r
-                       base.On非活性化();\r
                }\r
                public override void OnManagedリソースの作成()\r
                {\r
@@ -231,167 +281,168 @@ namespace DTXMania
                {\r
                        if (!base.b活性化してない)\r
                        {\r
-                               for (int i = 0; i < FIRE_MAX; i++)\r
-                               {\r
-                                       if (this.st火花[i].b使用中)\r
-                                       {\r
-                                               this.st火花[i].ct進行.t進行();\r
-                                               if (this.st火花[i].ct進行.b終了値に達した)\r
-                                               {\r
-                                                       this.st火花[i].ct進行.t停止();\r
-                                                       this.st火花[i].b使用中 = false;\r
-                                               }\r
-                                               Matrix identity = Matrix.Identity;\r
-                                               //                                              float num2 = ( (float) this.st火花[ i ].ct進行.n現在の値 * 2 ) / 70f;\r
-                                               float num2 = ((float)this.st火花[i].ct進行.n現在の値) / 70f;\r
-                                               float num3 = this.st火花[i].f回転単位 + (this.st火花[i].f回転方向 * C変換.DegreeToRadian((float)(60f * num2)));\r
-                                               //                                              float num4 = ( (float) ( 0.2 + ( 0.8 * Math.Cos( ( ( (double) this.st火花[ i ].ct進行.n現在の値 ) * 2 / 50.0 ) * Math.PI / 2 ) ) ) ) * this.st火花[ i ].fサイズ;\r
-                                               float num4 = ((float)(0.2 + (0.8 * Math.Cos((((double)this.st火花[i].ct進行.n現在の値) / 50.0) * Math.PI / 2)))) * this.st火花[i].fサイズ;\r
-                                               identity *= Matrix.Scaling(0.2f + num4, 0.2f + this.st火花[i].fサイズ, 1f);\r
-                                               identity *= Matrix.RotationZ(num3 + ((float)Math.PI / 2));\r
-                                               float num5 = ((float)(0.8 * Math.Sin(num2 * Math.PI / 2))) * this.st火花[i].fサイズ;\r
-                                               identity *= Matrix.Translation(\r
-                                                       ((int)(this.nレーンの中央X座標[this.st火花[i].nLane] * ((CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? 1.0 : 0.75))\r
-                                                       +\r
-                                                               ((CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? (float)(54 * 3) : (float)(619 + 12 + 40)) +\r
-                                                               (((float)Math.Cos((double)num3)) * num5)) - SampleFramework.GameWindowSize.Width / 2,\r
-                                                       -(((CDTXMania.Instance.ConfigIni.bReverse.Drums ?\r
-                                                               (119 + 4) - nJudgeLinePosY_delta_Drums : (942 + 14) + nJudgeLinePosY_delta_Drums)\r
-                                                       + (((float)Math.Sin((double)num3)) * num5)) - SampleFramework.GameWindowSize.Height / 2),\r
-                                                       0f\r
-                                               );\r
-                                               if (this.tx火花 != null)\r
-                                               {\r
-                                                       this.tx火花.t3D描画(CDTXMania.Instance.Device, identity);\r
-                                               }\r
-                                       }\r
-                               }\r
-                               for (int i = 0; i < STAR_MAX; i++)\r
+                               if (!CDTXMania.Instance.ConfigIni.bギタレボモード)\r
                                {\r
-                                       if (this.st青い星[i].b使用中)\r
+                                       for (int i = 0; i < FIRE_MAX; i++)\r
                                        {\r
-                                               this.st青い星[i].n前回のValue = this.st青い星[i].ct進行.n現在の値;\r
-                                               this.st青い星[i].ct進行.t進行();\r
-                                               if (this.st青い星[i].ct進行.b終了値に達した)\r
-                                               {\r
-                                                       this.st青い星[i].ct進行.t停止();\r
-                                                       this.st青い星[i].b使用中 = false;\r
-                                               }\r
-                                               for (int n = this.st青い星[i].n前回のValue; n < this.st青い星[i].ct進行.n現在の値; n++)\r
+                                               if (this.st火花[i].b使用中)\r
                                                {\r
-                                                       this.st青い星[i].fX += this.st青い星[i].f加速度X;\r
-                                                       this.st青い星[i].fY -= this.st青い星[i].f加速度Y;\r
-                                                       this.st青い星[i].f加速度X *= this.st青い星[i].f加速度の加速度X;\r
-                                                       this.st青い星[i].f加速度Y *= this.st青い星[i].f加速度の加速度Y;\r
-                                                       this.st青い星[i].f加速度Y -= this.st青い星[i].f重力加速度;\r
-                                               }\r
-                                               Matrix mat = Matrix.Identity;\r
-                                               float x = (float)(this.st青い星[i].f半径 * Math.Cos((Math.PI / 2 * this.st青い星[i].ct進行.n現在の値) / 100.0));\r
-                                               mat *= Matrix.Scaling(x, x, 1f);\r
-                                               mat *= Matrix.Translation(\r
-                                                       this.st青い星[i].fX - SampleFramework.GameWindowSize.Width / 2,\r
-                                                       -(this.st青い星[i].fY * Scale.Y - SampleFramework.GameWindowSize.Height / 2),\r
-                                                       0f\r
-                                               );\r
-                                               if (this.tx青い星 != null)\r
-                                               {\r
-                                                       this.tx青い星.t3D描画(CDTXMania.Instance.Device, mat);\r
+                                                       this.st火花[i].ct進行.t進行();\r
+                                                       if (this.st火花[i].ct進行.b終了値に達した)\r
+                                                       {\r
+                                                               this.st火花[i].ct進行.t停止();\r
+                                                               this.st火花[i].b使用中 = false;\r
+                                                       }\r
+                                                       Matrix identity = Matrix.Identity;\r
+                                                       float num2 = ((float)this.st火花[i].ct進行.n現在の値) / 70f;\r
+                                                       float num3 = this.st火花[i].f回転単位 + (this.st火花[i].f回転方向 * C変換.DegreeToRadian((float)(60f * num2)));\r
+                                                       float num4 = ((float)(0.2 + (0.8 * Math.Cos((((double)this.st火花[i].ct進行.n現在の値) / 50.0) * Math.PI / 2)))) * this.st火花[i].fサイズ;\r
+                                                       identity *= Matrix.Scaling(0.2f + num4, 0.2f + this.st火花[i].fサイズ, 1f);\r
+                                                       identity *= Matrix.RotationZ(num3 + ((float)Math.PI / 2));\r
+                                                       float num5 = ((float)(0.8 * Math.Sin(num2 * Math.PI / 2))) * this.st火花[i].fサイズ;\r
+                                                       identity *= Matrix.Translation(\r
+                                                               ((int)(this.nレーンの中央X座標[this.st火花[i].nLane] * ((CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? 1.0 : 0.75))\r
+                                                               +\r
+                                                                       ((CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? (float)(54 * 3) : (float)(619 + 12 + 40)) +\r
+                                                                       (((float)Math.Cos((double)num3)) * num5)) - SampleFramework.GameWindowSize.Width / 2,\r
+                                                               -(((CDTXMania.Instance.ConfigIni.bReverse.Drums ?\r
+                                                                       (119 + 4) - nJudgeLinePosY_delta_Drums : (942 + 14) + nJudgeLinePosY_delta_Drums)\r
+                                                               + (((float)Math.Sin((double)num3)) * num5)) - SampleFramework.GameWindowSize.Height / 2),\r
+                                                               0f\r
+                                                       );\r
+                                                       if (this.tx火花 != null)\r
+                                                       {\r
+                                                               this.tx火花.t3D描画(CDTXMania.Instance.Device, identity);\r
+                                                       }\r
                                                }\r
                                        }\r
-                               }\r
-                               for (int i = 0; i < BIGWAVE_MAX; i++)\r
-                               {\r
-                                       if (this.st大波[i].b使用中)\r
+                                       for (int i = 0; i < STAR_MAX; i++)\r
                                        {\r
-                                               this.st大波[i].ct進行.t進行();\r
-                                               if (this.st大波[i].ct進行.b終了値に達した)\r
+                                               if (this.st青い星[i].b使用中)\r
                                                {\r
-                                                       this.st大波[i].ct進行.t停止();\r
-                                                       this.st大波[i].b使用中 = false;\r
-                                               }\r
-                                               if (this.st大波[i].ct進行.n現在の値 >= 0)\r
-                                               {\r
-                                                       Matrix matrix3 = Matrix.Identity;\r
-                                                       float num10 = ((float)this.st大波[i].ct進行.n現在の値) / 100f;\r
-                                                       float angle = this.st大波[i].f回転単位 + (this.st大波[i].f回転方向 * C変換.DegreeToRadian((float)(60f * num10)));\r
-                                                       float num12 = 1f;\r
-                                                       if (num10 < 0.4f)\r
-                                                       {\r
-                                                               num12 = 2.5f * num10;\r
-                                                       }\r
-                                                       else if (num10 < 0.8f)\r
+                                                       this.st青い星[i].n前回のValue = this.st青い星[i].ct進行.n現在の値;\r
+                                                       this.st青い星[i].ct進行.t進行();\r
+                                                       if (this.st青い星[i].ct進行.b終了値に達した)\r
                                                        {\r
-                                                               num12 = (float)(1.0 + (10.1 * (1.0 - Math.Cos((Math.PI / 2 * (num10 - 0.4)) * 2.5))));\r
+                                                               this.st青い星[i].ct進行.t停止();\r
+                                                               this.st青い星[i].b使用中 = false;\r
                                                        }\r
-                                                       else\r
+                                                       for (int n = this.st青い星[i].n前回のValue; n < this.st青い星[i].ct進行.n現在の値; n++)\r
                                                        {\r
-                                                               num12 = 11.1f + (12.5f * (num10 - 0.8f));\r
+                                                               this.st青い星[i].fX += this.st青い星[i].f加速度X;\r
+                                                               this.st青い星[i].fY -= this.st青い星[i].f加速度Y;\r
+                                                               this.st青い星[i].f加速度X *= this.st青い星[i].f加速度の加速度X;\r
+                                                               this.st青い星[i].f加速度Y *= this.st青い星[i].f加速度の加速度Y;\r
+                                                               this.st青い星[i].f加速度Y -= this.st青い星[i].f重力加速度;\r
                                                        }\r
-                                                       int num13 = 0xff;\r
-                                                       if (num10 < 0.75f)\r
+                                                       Matrix mat = Matrix.Identity;\r
+                                                       float x = (float)(this.st青い星[i].f半径 * Math.Cos((Math.PI / 2 * this.st青い星[i].ct進行.n現在の値) / 100.0));\r
+                                                       mat *= Matrix.Scaling(x, x, 1f);\r
+                                                       mat *= Matrix.Translation(\r
+                                                               this.st青い星[i].fX - SampleFramework.GameWindowSize.Width / 2,\r
+                                                               -(this.st青い星[i].fY * Scale.Y - SampleFramework.GameWindowSize.Height / 2),\r
+                                                               0f\r
+                                                       );\r
+                                                       if (this.tx青い星 != null)\r
                                                        {\r
-                                                               num13 = 0x37;\r
+                                                               this.tx青い星.t3D描画(CDTXMania.Instance.Device, mat);\r
                                                        }\r
-                                                       else\r
+                                               }\r
+                                       }\r
+                                       for (int i = 0; i < BIGWAVE_MAX; i++)\r
+                                       {\r
+                                               if (this.st大波[i].b使用中)\r
+                                               {\r
+                                                       this.st大波[i].ct進行.t進行();\r
+                                                       if (this.st大波[i].ct進行.b終了値に達した)\r
                                                        {\r
-                                                               num13 = (int)((55f * (1f - num10)) / 0.25f);\r
+                                                               this.st大波[i].ct進行.t停止();\r
+                                                               this.st大波[i].b使用中 = false;\r
                                                        }\r
-                                                       matrix3 *= Matrix.Scaling(num12 * this.st大波[i].f半径, num12 * this.st大波[i].f半径, 1f);\r
-                                                       matrix3 *= Matrix.RotationZ(angle);\r
-                                                       matrix3 *= Matrix.RotationX(this.st大波[i].f角度X);\r
-                                                       matrix3 *= Matrix.RotationY(this.st大波[i].f角度Y);\r
-                                                       matrix3 *= Matrix.Translation(\r
-                                                               (int)(this.nレーンの中央X座標[this.st大波[i].nLane] * (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left ? 1.0 : 0.75)) +\r
-                                                                       ((CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? (float)(54 * 3) : (float)(619 + 12 + 40))\r
-                                                                       - SampleFramework.GameWindowSize.Width / 2,\r
-                                                               -((CDTXMania.Instance.ConfigIni.bReverse.Drums ?\r
-                                                               (119 + 4) - nJudgeLinePosY_delta_Drums : (942 + 14) + nJudgeLinePosY_delta_Drums)\r
-                                                               - SampleFramework.GameWindowSize.Height / 2),\r
-                                                               0f);\r
-                                                       if (this.tx大波 != null)\r
+                                                       if (this.st大波[i].ct進行.n現在の値 >= 0)\r
                                                        {\r
-                                                               this.tx大波.n透明度 = num13;\r
-                                                               this.tx大波.t3D描画(CDTXMania.Instance.Device, matrix3);\r
+                                                               Matrix matrix3 = Matrix.Identity;\r
+                                                               float num10 = ((float)this.st大波[i].ct進行.n現在の値) / 100f;\r
+                                                               float angle = this.st大波[i].f回転単位 + (this.st大波[i].f回転方向 * C変換.DegreeToRadian((float)(60f * num10)));\r
+                                                               float num12 = 1f;\r
+                                                               if (num10 < 0.4f)\r
+                                                               {\r
+                                                                       num12 = 2.5f * num10;\r
+                                                               }\r
+                                                               else if (num10 < 0.8f)\r
+                                                               {\r
+                                                                       num12 = (float)(1.0 + (10.1 * (1.0 - Math.Cos((Math.PI / 2 * (num10 - 0.4)) * 2.5))));\r
+                                                               }\r
+                                                               else\r
+                                                               {\r
+                                                                       num12 = 11.1f + (12.5f * (num10 - 0.8f));\r
+                                                               }\r
+                                                               int num13 = 0xff;\r
+                                                               if (num10 < 0.75f)\r
+                                                               {\r
+                                                                       num13 = 0x37;\r
+                                                               }\r
+                                                               else\r
+                                                               {\r
+                                                                       num13 = (int)((55f * (1f - num10)) / 0.25f);\r
+                                                               }\r
+                                                               matrix3 *= Matrix.Scaling(num12 * this.st大波[i].f半径, num12 * this.st大波[i].f半径, 1f);\r
+                                                               matrix3 *= Matrix.RotationZ(angle);\r
+                                                               matrix3 *= Matrix.RotationX(this.st大波[i].f角度X);\r
+                                                               matrix3 *= Matrix.RotationY(this.st大波[i].f角度Y);\r
+                                                               matrix3 *= Matrix.Translation(\r
+                                                                       (int)(this.nレーンの中央X座標[this.st大波[i].nLane] * (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left ? 1.0 : 0.75)) +\r
+                                                                               ((CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? (float)(54 * 3) : (float)(619 + 12 + 40))\r
+                                                                               - SampleFramework.GameWindowSize.Width / 2,\r
+                                                                       -((CDTXMania.Instance.ConfigIni.bReverse.Drums ?\r
+                                                                       (119 + 4) - nJudgeLinePosY_delta_Drums : (942 + 14) + nJudgeLinePosY_delta_Drums)\r
+                                                                       - SampleFramework.GameWindowSize.Height / 2),\r
+                                                                       0f);\r
+                                                               if (this.tx大波 != null)\r
+                                                               {\r
+                                                                       this.tx大波.n透明度 = num13;\r
+                                                                       this.tx大波.t3D描画(CDTXMania.Instance.Device, matrix3);\r
+                                                               }\r
                                                        }\r
                                                }\r
                                        }\r
-                               }\r
-                               for (int i = 0; i < BIGWAVE_MAX; i++)\r
-                               {\r
-                                       if (this.st細波[i].b使用中)\r
+                                       for (int i = 0; i < BIGWAVE_MAX; i++)\r
                                        {\r
-                                               this.st細波[i].ct進行.t進行();\r
-                                               if (this.st細波[i].ct進行.b終了値に達した)\r
+                                               if (this.st細波[i].b使用中)\r
                                                {\r
-                                                       this.st細波[i].ct進行.t停止();\r
-                                                       this.st細波[i].b使用中 = false;\r
-                                               }\r
-                                               if (this.st細波[i].ct進行.n現在の値 >= 0)\r
-                                               {\r
-                                                       Matrix matrix4 = Matrix.Identity;\r
-                                                       float num15 = ((float)this.st細波[i].ct進行.n現在の値) / 100f;\r
-                                                       float num16 = 14f * num15;\r
-                                                       int num17 = (num15 < 0.5f) ? 155 : ((int)((155f * (1f - num15)) / 1f));\r
-                                                       matrix4 *= Matrix.Scaling(\r
-                                                                                       num16 * this.st細波[i].f半径,\r
-                                                                                       num16 * this.st細波[i].f半径,\r
-                                                                                       1f\r
-                                                       );\r
-                                                       matrix4 *= Matrix.RotationX(this.st細波[i].f角度X);\r
-                                                       matrix4 *= Matrix.RotationY(this.st細波[i].f角度Y);\r
-                                                       matrix4 *= Matrix.Translation(\r
-                                                               (int)(this.nレーンの中央X座標[this.st細波[i].nLane] * (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left ? 1.0 : 0.75)) +\r
-                                                               ((CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? (float)(54 * 3) : (float)(619 + 12 + 40))\r
-                                                                       - SampleFramework.GameWindowSize.Width / 2,\r
-                                                               -((CDTXMania.Instance.ConfigIni.bReverse.Drums ?\r
-                                                               (119 + 4) - nJudgeLinePosY_delta_Drums : (942 + 14) + nJudgeLinePosY_delta_Drums)\r
-                                                               - SampleFramework.GameWindowSize.Height / 2),\r
-                                                               0f\r
-                                                       );\r
-                                                       if (this.tx細波 != null)\r
+                                                       this.st細波[i].ct進行.t進行();\r
+                                                       if (this.st細波[i].ct進行.b終了値に達した)\r
                                                        {\r
-                                                               this.tx細波.n透明度 = num17;\r
-                                                               this.tx細波.t3D描画(CDTXMania.Instance.Device, matrix4);\r
+                                                               this.st細波[i].ct進行.t停止();\r
+                                                               this.st細波[i].b使用中 = false;\r
+                                                       }\r
+                                                       if (this.st細波[i].ct進行.n現在の値 >= 0)\r
+                                                       {\r
+                                                               Matrix matrix4 = Matrix.Identity;\r
+                                                               float num15 = ((float)this.st細波[i].ct進行.n現在の値) / 100f;\r
+                                                               float num16 = 14f * num15;\r
+                                                               int num17 = (num15 < 0.5f) ? 155 : ((int)((155f * (1f - num15)) / 1f));\r
+                                                               matrix4 *= Matrix.Scaling(\r
+                                                                                               num16 * this.st細波[i].f半径,\r
+                                                                                               num16 * this.st細波[i].f半径,\r
+                                                                                               1f\r
+                                                               );\r
+                                                               matrix4 *= Matrix.RotationX(this.st細波[i].f角度X);\r
+                                                               matrix4 *= Matrix.RotationY(this.st細波[i].f角度Y);\r
+                                                               matrix4 *= Matrix.Translation(\r
+                                                                       (int)(this.nレーンの中央X座標[this.st細波[i].nLane] * (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left ? 1.0 : 0.75)) +\r
+                                                                       ((CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? (float)(54 * 3) : (float)(619 + 12 + 40))\r
+                                                                               - SampleFramework.GameWindowSize.Width / 2,\r
+                                                                       -((CDTXMania.Instance.ConfigIni.bReverse.Drums ?\r
+                                                                       (119 + 4) - nJudgeLinePosY_delta_Drums : (942 + 14) + nJudgeLinePosY_delta_Drums)\r
+                                                                       - SampleFramework.GameWindowSize.Height / 2),\r
+                                                                       0f\r
+                                                               );\r
+                                                               if (this.tx細波 != null)\r
+                                                               {\r
+                                                                       this.tx細波.n透明度 = num17;\r
+                                                                       this.tx細波.t3D描画(CDTXMania.Instance.Device, matrix4);\r
+                                                               }\r
                                                        }\r
                                                }\r
                                        }\r
@@ -399,82 +450,5 @@ namespace DTXMania
                        }\r
                        return 0;\r
                }\r
-\r
-\r
-               // その他\r
-\r
-               #region [ private ]\r
-               //-----------------\r
-               [StructLayout(LayoutKind.Sequential)]\r
-               private struct ST火花\r
-               {\r
-                       public int nLane;\r
-                       public bool b使用中;\r
-                       public CCounter ct進行;\r
-                       public float f回転単位;\r
-                       public float f回転方向;\r
-                       public float fサイズ;\r
-               }\r
-               [StructLayout(LayoutKind.Sequential)]\r
-               private struct ST細波\r
-               {\r
-                       public int nLane;\r
-                       public bool b使用中;\r
-                       public CCounter ct進行;\r
-                       public float f角度X;\r
-                       public float f角度Y;\r
-                       public float f半径;\r
-                       public int n進行速度ms;\r
-               }\r
-               [StructLayout(LayoutKind.Sequential)]\r
-               private struct ST青い星\r
-               {\r
-                       public int nLane;\r
-                       public bool b使用中;\r
-                       public CCounter ct進行;\r
-                       public int n前回のValue;\r
-                       public float fX;\r
-                       public float fY;\r
-                       public float f加速度X;\r
-                       public float f加速度Y;\r
-                       public float f加速度の加速度X;\r
-                       public float f加速度の加速度Y;\r
-                       public float f重力加速度;\r
-                       public float f半径;\r
-               }\r
-               [StructLayout(LayoutKind.Sequential)]\r
-               private struct ST大波\r
-               {\r
-                       public int nLane;\r
-                       public bool b使用中;\r
-                       public CCounter ct進行;\r
-                       public float f角度X;\r
-                       public float f角度Y;\r
-                       public float f半径;\r
-                       public int n進行速度ms;\r
-                       public float f回転単位;\r
-                       public float f回転方向;\r
-               }\r
-\r
-               private const int BIGWAVE_MAX = 20;\r
-               private bool b細波Balance;\r
-               private bool b大波Balance;\r
-               private const int FIRE_MAX = 8 * 8;\r
-               private readonly float[] fY波の最小仰角 = new float[] { -130f, -126f, -120f, -118f, -110f, -108f, -103f, -97f };\r
-               private readonly float[] fY波の最大仰角 = new float[] { 70f, 72f, 77f, 84f, 89f, 91f, 99f, 107f };\r
-               private readonly int[] nレーンの中央X座標 = new int[] { 54 * 3 - 54 * 3, 92 * 3 - 54 * 3, 126 * 3 - 54 * 3, 167 * 3 - 54 * 3,\r
-                                                                                                                               208 * 3 - 54 * 3, 242 * 3 - 54 * 3, 276 * 3 - 54 * 3, 313 * 3 - 54 * 3 };\r
-               private const int STAR_MAX = 0x100;\r
-               private ST火花[] st火花 = new ST火花[FIRE_MAX];\r
-               private ST大波[] st大波 = new ST大波[BIGWAVE_MAX];\r
-               private ST細波[] st細波 = new ST細波[BIGWAVE_MAX];\r
-               private ST青い星[] st青い星 = new ST青い星[STAR_MAX];\r
-               private CTexture tx火花;\r
-               private CTexture tx細波;\r
-               private CTexture tx青い星;\r
-               private CTexture tx大波;\r
-               private int nJudgeLinePosY_delta_Drums;\r
-               //-----------------\r
-               #endregion\r
        }\r
 }\r
index ea6d617..dccf48e 100644 (file)
@@ -8,37 +8,8 @@ namespace DTXMania
 {\r
        internal class CAct演奏DrumsチップファイアGB : CAct演奏チップファイアGB\r
        {\r
-               // メソッド\r
-\r
-               public override void Start(int nLane, C演奏判定ライン座標共通 演奏判定ライン座標)\r
+               private readonly Point[] pt中央 = new Point[]\r
                {\r
-                       if ((nLane < 0) && (nLane > 5))\r
-                       {\r
-                               throw new IndexOutOfRangeException();\r
-                       }\r
-                       E楽器パート e楽器パート = (nLane < 3) ? E楽器パート.GUITAR : E楽器パート.BASS;\r
-                       int index = nLane;\r
-                       if (CDTXMania.Instance.ConfigIni.bLeft[(int)e楽器パート])\r
-                       {\r
-                               index = ((index / 3) * 3) + (2 - (index % 3));\r
-                       }\r
-                       int x = this.pt中央[index].X;\r
-                       if (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Center)\r
-                       {\r
-                               x -= (e楽器パート == E楽器パート.GUITAR) ? 71 : 994;\r
-                       }\r
-                       //int y = this.pt中央[ index ].Y;\r
-                       int y = 演奏判定ライン座標.n判定ラインY座標(e楽器パート, CDTXMania.Instance.ConfigIni.bReverse[(int)e楽器パート]);\r
-\r
-                       base.Start(nLane, x, y, 演奏判定ライン座標);\r
-               }\r
-\r
-\r
-               // その他\r
-\r
-               #region [ private ]\r
-               //-----------------\r
-               private readonly Point[] pt中央 = new Point[] {\r
                        new Point( 519 * 3, (int) (95 * 2.25) ),        // GtR\r
                        new Point( 545 * 3, (int) (95 * 2.25) ),        // GtG\r
                        new Point( 571 * 3, (int) (95 * 2.25) ),        // GtB\r
@@ -46,7 +17,32 @@ namespace DTXMania
                        new Point( 436 * 3, (int) (95 * 2.25) ),        // BsG\r
                        new Point( 462 * 3, (int) (95 * 2.25) )         // BsB\r
                };\r
-               //-----------------\r
-               #endregion\r
+\r
+               // メソッド\r
+               public override void Start(int nLane, C演奏判定ライン座標共通 演奏判定ライン座標)\r
+               {\r
+                       if (!CDTXMania.Instance.ConfigIni.bギタレボモード)\r
+                       {\r
+                               if ((nLane < 0) && (nLane > 5))\r
+                               {\r
+                                       throw new IndexOutOfRangeException();\r
+                               }\r
+                               E楽器パート e楽器パート = (nLane < 3) ? E楽器パート.GUITAR : E楽器パート.BASS;\r
+                               int index = nLane;\r
+                               if (CDTXMania.Instance.ConfigIni.bLeft[(int)e楽器パート])\r
+                               {\r
+                                       index = ((index / 3) * 3) + (2 - (index % 3));\r
+                               }\r
+                               int x = this.pt中央[index].X;\r
+                               if (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Center)\r
+                               {\r
+                                       x -= (e楽器パート == E楽器パート.GUITAR) ? 71 : 994;\r
+                               }\r
+                               //int y = this.pt中央[ index ].Y;\r
+                               int y = 演奏判定ライン座標.n判定ラインY座標(e楽器パート, CDTXMania.Instance.ConfigIni.bReverse[(int)e楽器パート]);\r
+\r
+                               base.Start(nLane, x, y, 演奏判定ライン座標);\r
+                       }\r
+               }\r
        }\r
 }\r
index 84b7df4..5440846 100644 (file)
@@ -9,27 +9,56 @@ namespace DTXMania
 {\r
        internal class CAct演奏Drumsパッド : CActivity\r
        {\r
-               // コンストラクタ\r
+               private long nY座標制御タイマ;\r
+               private long nフラッシュ制御タイマ;\r
+               private readonly int[] n描画順 = new int[] { 3, 6, 5, 4, 2, 1, 8, 7, 0 };\r
+               private STパッド状態[] stパッド状態 = new STパッド状態[9];\r
+               // private readonly ST基本位置[] st基本位置;\r
+               private CTexture txパッド;\r
+               private CTexture tx光るパッド;\r
 \r
-               public CAct演奏Drumsパッド()\r
+               private static readonly ST基本位置[] st基本位置 = new ST基本位置[9]\r
                {\r
-                       this.st基本位置 = new ST基本位置[9] {\r
-                               new ST基本位置(  22 * 3 - 66,  0, new Rectangle( 0, 0, 170, 130 ) ),\r
-                               new ST基本位置(  61 * 3 - 66, 11, new Rectangle( 170, 0, 170, 130 ) ),\r
-                               new ST基本位置(  96 * 3 - 66,  8, new Rectangle( 340, 0, 170, 130 ) ),\r
-                               new ST基本位置( 138 * 3 - 66,  7, new Rectangle( 0, 130, 170, 130 ) ),\r
-                               new ST基本位置( 179 * 3 - 66,  0, new Rectangle( 170, 130, 170, 130 ) ),\r
-                               new ST基本位置( 212 * 3 - 66,  5, new Rectangle( 340, 130, 170, 130 ) ),\r
-                               new ST基本位置( 250 * 3 - 66, 15, new Rectangle( 0, 260, 170, 130) ),\r
-                               new ST基本位置( 282 * 3 - 66,  0, new Rectangle( 170, 260, 170, 130 ) ),\r
-                               new ST基本位置( 304 * 3 - 66,  8, new Rectangle( 340, 260, 170, 130 ) )\r
-                       };\r
-                       base.b活性化してない = true;\r
+                       new ST基本位置(  22 * 3 - 66,  0, new Rectangle( 0, 0, 170, 130 ) ),\r
+                       new ST基本位置(  61 * 3 - 66, 11, new Rectangle( 170, 0, 170, 130 ) ),\r
+                       new ST基本位置(  96 * 3 - 66,  8, new Rectangle( 340, 0, 170, 130 ) ),\r
+                       new ST基本位置( 138 * 3 - 66,  7, new Rectangle( 0, 130, 170, 130 ) ),\r
+                       new ST基本位置( 179 * 3 - 66,  0, new Rectangle( 170, 130, 170, 130 ) ),\r
+                       new ST基本位置( 212 * 3 - 66,  5, new Rectangle( 340, 130, 170, 130 ) ),\r
+                       new ST基本位置( 250 * 3 - 66, 15, new Rectangle( 0, 260, 170, 130) ),\r
+                       new ST基本位置( 282 * 3 - 66,  0, new Rectangle( 170, 260, 170, 130 ) ),\r
+                       new ST基本位置( 304 * 3 - 66,  8, new Rectangle( 340, 260, 170, 130 ) )\r
+               };\r
+\r
+               [StructLayout(LayoutKind.Sequential)]\r
+               private struct STパッド状態\r
+               {\r
+                       public int n明るさ;\r
+                       public int nY座標オフセットdot;\r
+                       public int nY座標加速度dot;\r
+                       public STパッド状態(int n明るさ_, int nY座標オフセットdot_, int nY座標加速度dot_)\r
+                       {\r
+                               n明るさ = n明るさ_;\r
+                               nY座標オフセットdot = nY座標オフセットdot_;\r
+                               nY座標加速度dot = nY座標加速度dot_;\r
+                       }\r
                }\r
+               [StructLayout(LayoutKind.Sequential)]\r
+               private struct ST基本位置\r
+               {\r
+                       public int x;\r
+                       public int y;\r
+                       public Rectangle rc;\r
 \r
+                       public ST基本位置(int x_, int y_, Rectangle rc_)\r
+                       {\r
+                               x = x_;\r
+                               y = y_;\r
+                               rc = rc_;\r
+                       }\r
+               }\r
 \r
                // メソッド\r
-\r
                public void Hit(int nLane)\r
                {\r
                        this.stパッド状態[nLane].n明るさ = 6;\r
@@ -38,7 +67,6 @@ namespace DTXMania
 \r
 \r
                // CActivity 実装\r
-\r
                public override void On活性化()\r
                {\r
                        this.nフラッシュ制御タイマ = -1;\r
@@ -71,127 +99,85 @@ namespace DTXMania
                {\r
                        if (!base.b活性化してない)\r
                        {\r
-                               if (base.b初めての進行描画)\r
-                               {\r
-                                       this.nフラッシュ制御タイマ = FDK.CSound管理.rc演奏用タイマ.n現在時刻;\r
-                                       this.nY座標制御タイマ = FDK.CSound管理.rc演奏用タイマ.n現在時刻;\r
-                                       base.b初めての進行描画 = false;\r
-                               }\r
-                               long n現在時刻 = FDK.CSound管理.rc演奏用タイマ.n現在時刻;\r
-                               if (n現在時刻 < this.nフラッシュ制御タイマ)\r
+                               if (!CDTXMania.Instance.ConfigIni.bギタレボモード)\r
                                {\r
-                                       this.nフラッシュ制御タイマ = n現在時刻;\r
-                               }\r
-                               while ((n現在時刻 - this.nフラッシュ制御タイマ) >= 15)\r
-                               {\r
-                                       for (int i = 0; i < 9; i++)\r
+                                       if (base.b初めての進行描画)\r
+                                       {\r
+                                               this.nフラッシュ制御タイマ = FDK.CSound管理.rc演奏用タイマ.n現在時刻;\r
+                                               this.nY座標制御タイマ = FDK.CSound管理.rc演奏用タイマ.n現在時刻;\r
+                                               base.b初めての進行描画 = false;\r
+                                       }\r
+                                       long n現在時刻 = FDK.CSound管理.rc演奏用タイマ.n現在時刻;\r
+                                       if (n現在時刻 < this.nフラッシュ制御タイマ)\r
+                                       {\r
+                                               this.nフラッシュ制御タイマ = n現在時刻;\r
+                                       }\r
+                                       while ((n現在時刻 - this.nフラッシュ制御タイマ) >= 15)\r
                                        {\r
-                                               if (this.stパッド状態[i].n明るさ > 0)\r
+                                               for (int i = 0; i < 9; i++)\r
                                                {\r
-                                                       this.stパッド状態[i].n明るさ--;\r
+                                                       if (this.stパッド状態[i].n明るさ > 0)\r
+                                                       {\r
+                                                               this.stパッド状態[i].n明るさ--;\r
+                                                       }\r
                                                }\r
+                                               this.nフラッシュ制御タイマ += 15;\r
                                        }\r
-                                       this.nフラッシュ制御タイマ += 15;\r
-                               }\r
-                               n現在時刻 = FDK.CSound管理.rc演奏用タイマ.n現在時刻;\r
-                               if (n現在時刻 < this.nY座標制御タイマ)\r
-                               {\r
-                                       this.nY座標制御タイマ = n現在時刻;\r
-                               }\r
-                               while ((n現在時刻 - this.nY座標制御タイマ) >= 5)\r
-                               {\r
+                                       n現在時刻 = FDK.CSound管理.rc演奏用タイマ.n現在時刻;\r
+                                       if (n現在時刻 < this.nY座標制御タイマ)\r
+                                       {\r
+                                               this.nY座標制御タイマ = n現在時刻;\r
+                                       }\r
+                                       while ((n現在時刻 - this.nY座標制御タイマ) >= 5)\r
+                                       {\r
+                                               for (int i = 0; i < 9; i++)\r
+                                               {\r
+                                                       this.stパッド状態[i].nY座標オフセットdot += this.stパッド状態[i].nY座標加速度dot;\r
+                                                       if (this.stパッド状態[i].nY座標オフセットdot > 15)\r
+                                                       {\r
+                                                               this.stパッド状態[i].nY座標オフセットdot = 15;\r
+                                                               this.stパッド状態[i].nY座標加速度dot = -1;\r
+                                                       }\r
+                                                       else if (this.stパッド状態[i].nY座標オフセットdot < 0)\r
+                                                       {\r
+                                                               this.stパッド状態[i].nY座標オフセットdot = 0;\r
+                                                               this.stパッド状態[i].nY座標加速度dot = 0;\r
+                                                       }\r
+                                               }\r
+                                               this.nY座標制御タイマ += 5;\r
+                                       }\r
+                                       #region [ 表示 ]\r
                                        for (int i = 0; i < 9; i++)\r
                                        {\r
-                                               this.stパッド状態[i].nY座標オフセットdot += this.stパッド状態[i].nY座標加速度dot;\r
-                                               if (this.stパッド状態[i].nY座標オフセットdot > 15)\r
+                                               int index = this.n描画順[i];\r
+                                               int x = st基本位置[index].x;\r
+                                               int xDist = (int)(x * (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left ? 1.0 : 0.75));\r
+                                               x = (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? 66 : 619 - 24;\r
+                                               x += xDist;\r
+                                               int y = (st基本位置[index].y + (CDTXMania.Instance.ConfigIni.bReverse.Drums ? -10 : 0x19e)) + this.stパッド状態[index].nY座標オフセットdot;\r
+                                               if (this.txパッド != null)\r
                                                {\r
-                                                       this.stパッド状態[i].nY座標オフセットdot = 15;\r
-                                                       this.stパッド状態[i].nY座標加速度dot = -1;\r
+                                                       this.txパッド.t2D描画(\r
+                                                               CDTXMania.Instance.Device,\r
+                                                               x,\r
+                                                               y * Scale.Y,\r
+                                                               st基本位置[index].rc\r
+                                                       );\r
                                                }\r
-                                               else if (this.stパッド状態[i].nY座標オフセットdot < 0)\r
+                                               if (this.tx光るパッド != null)\r
                                                {\r
-                                                       this.stパッド状態[i].nY座標オフセットdot = 0;\r
-                                                       this.stパッド状態[i].nY座標加速度dot = 0;\r
+                                                       this.tx光るパッド.n透明度 = (this.stパッド状態[index].n明るさ * 40) + 15;\r
+                                                       this.tx光るパッド.t2D描画(\r
+                                                               CDTXMania.Instance.Device,\r
+                                                               x,\r
+                                                               y * Scale.Y,\r
+                                                               st基本位置[index].rc);\r
                                                }\r
                                        }\r
-                                       this.nY座標制御タイマ += 5;\r
-                               }\r
-                               #region [ 表示 ]\r
-                               for (int i = 0; i < 9; i++)\r
-                               {\r
-                                       int index = this.n描画順[i];\r
-                                       int x = this.st基本位置[index].x;\r
-                                       int xDist = (int)(x * (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left ? 1.0 : 0.75));\r
-                                       x = (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? 66 : 619 - 24;\r
-                                       x += xDist;\r
-                                       int y = (this.st基本位置[index].y + (CDTXMania.Instance.ConfigIni.bReverse.Drums ? -10 : 0x19e)) + this.stパッド状態[index].nY座標オフセットdot;\r
-                                       if (this.txパッド != null)\r
-                                       {\r
-                                               // this.txパッド.vc拡大縮小倍率.X = ( CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left ) ? 1.0f : 0.75f;\r
-                                               this.txパッド.t2D描画(\r
-                                                       CDTXMania.Instance.Device,\r
-                                                       x,\r
-                                                       y * Scale.Y,\r
-                                                       this.st基本位置[index].rc\r
-                                               );\r
-                                       }\r
-                                       if (this.tx光るパッド != null)\r
-                                       {\r
-                                               // this.tx光るパッド.vc拡大縮小倍率.X = ( CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left ) ? 1.0f : 0.75f;\r
-                                               this.tx光るパッド.n透明度 = (this.stパッド状態[index].n明るさ * 40) + 15;\r
-                                               this.tx光るパッド.t2D描画(\r
-                                                       CDTXMania.Instance.Device,\r
-                                                       x,\r
-                                                       y * Scale.Y,\r
-                                                       this.st基本位置[index].rc);\r
-                                       }\r
+                                       #endregion\r
                                }\r
-                               #endregion\r
                        }\r
                        return 0;\r
                }\r
-\r
-\r
-               // その他\r
-\r
-               #region [ private ]\r
-               //-----------------\r
-               [StructLayout(LayoutKind.Sequential)]\r
-               private struct STパッド状態\r
-               {\r
-                       public int n明るさ;\r
-                       public int nY座標オフセットdot;\r
-                       public int nY座標加速度dot;\r
-                       public STパッド状態(int n明るさ_, int nY座標オフセットdot_, int nY座標加速度dot_)\r
-                       {\r
-                               n明るさ = n明るさ_;\r
-                               nY座標オフセットdot = nY座標オフセットdot_;\r
-                               nY座標加速度dot = nY座標加速度dot_;\r
-                       }\r
-               }\r
-               [StructLayout(LayoutKind.Sequential)]\r
-               private struct ST基本位置\r
-               {\r
-                       public int x;\r
-                       public int y;\r
-                       public Rectangle rc;\r
-\r
-                       public ST基本位置(int x_, int y_, Rectangle rc_)\r
-                       {\r
-                               x = x_;\r
-                               y = y_;\r
-                               rc = rc_;\r
-                       }\r
-               }\r
-\r
-               private long nY座標制御タイマ;\r
-               private long nフラッシュ制御タイマ;\r
-               private readonly int[] n描画順 = new int[] { 3, 6, 5, 4, 2, 1, 8, 7, 0 };\r
-               private STパッド状態[] stパッド状態 = new STパッド状態[9];\r
-               private readonly ST基本位置[] st基本位置;\r
-               private CTexture txパッド;\r
-               private CTexture tx光るパッド;\r
-               //-----------------\r
-               #endregion\r
        }\r
 }\r
index 36d3fe7..ef1f55a 100644 (file)
@@ -9,8 +9,24 @@ namespace DTXMania
 {\r
        internal class CAct演奏DrumsレーンフラッシュD : CActivity\r
        {\r
-               // コンストラクタ\r
+               [StructLayout(LayoutKind.Sequential)]\r
+               private struct STレーンサイズ\r
+               {\r
+                       public int x;\r
+                       public int w;\r
+                       public STレーンサイズ(int x_, int w_)\r
+                       {\r
+                               x = x_;\r
+                               w = w_;\r
+                       }\r
+               }\r
+\r
+               private CCounter[] ct進行 = new CCounter[8];\r
+               private readonly string[] strファイル名;\r
+               private readonly STレーンサイズ[] stレーンサイズ;\r
+               private CTextureAf[] txFlush = new CTextureAf[0x10];\r
 \r
+               // コンストラクタ\r
                public CAct演奏DrumsレーンフラッシュD()\r
                {\r
                        this.stレーンサイズ = new STレーンサイズ[8]\r
@@ -99,75 +115,78 @@ namespace DTXMania
                {\r
                        if (!base.b活性化してない)\r
                        {\r
-                               for (int i = 0; i < 8; i++)\r
+                               if (!CDTXMania.Instance.ConfigIni.bギタレボモード)\r
                                {\r
-                                       if (!this.ct進行[i].b停止中)\r
+                                       for (int i = 0; i < 8; i++)\r
                                        {\r
-                                               this.ct進行[i].t進行();\r
-                                               if (this.ct進行[i].b終了値に達した)\r
+                                               if (!this.ct進行[i].b停止中)\r
                                                {\r
-                                                       this.ct進行[i].t停止();\r
+                                                       this.ct進行[i].t進行();\r
+                                                       if (this.ct進行[i].b終了値に達した)\r
+                                                       {\r
+                                                               this.ct進行[i].t停止();\r
+                                                       }\r
                                                }\r
                                        }\r
-                               }\r
-                               for (int j = 0; j < 8; j++)\r
-                               {\r
-                                       if (!this.ct進行[j].b停止中)\r
+                                       for (int j = 0; j < 8; j++)\r
                                        {\r
-                                               int x = this.stレーンサイズ[j].x;\r
-                                               int w = this.stレーンサイズ[j].w;\r
+                                               if (!this.ct進行[j].b停止中)\r
+                                               {\r
+                                                       int x = this.stレーンサイズ[j].x;\r
+                                                       int w = this.stレーンサイズ[j].w;\r
 \r
-                                               x = (int)(x * (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left ? 1.0 : 0.75));\r
-                                               x += (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? 36 * 3 : 619 - 24 + 36;\r
-                                               w = (int)(w * (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left ? 1.0 : 0.75));\r
+                                                       x = (int)(x * (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left ? 1.0 : 0.75));\r
+                                                       x += (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? 36 * 3 : 619 - 24 + 36;\r
+                                                       w = (int)(w * (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left ? 1.0 : 0.75));\r
 \r
-                                               //for ( int k = 0; k < 3; k++ )\r
-                                               int k = 0;\r
-                                               {\r
-                                                       if (CDTXMania.Instance.ConfigIni.bReverse.Drums)\r
+                                                       //for ( int k = 0; k < 3; k++ )\r
+                                                       int k = 0;\r
                                                        {\r
-                                                               int y = (k * 0x80) - ((this.ct進行[j].n現在の値 * 0x180) / 100);\r
-                                                               for (int m = 0; m < w; m += 42)\r
+                                                               if (CDTXMania.Instance.ConfigIni.bReverse.Drums)\r
                                                                {\r
-                                                                       if (this.txFlush[j + 8] != null)\r
+                                                                       int y = (k * 0x80) - ((this.ct進行[j].n現在の値 * 0x180) / 100);\r
+                                                                       for (int m = 0; m < w; m += 42)\r
                                                                        {\r
-                                                                               this.txFlush[j + 8].t2D描画(\r
-                                                                                       CDTXMania.Instance.Device,\r
-                                                                                       (x + m),\r
-                                                                                       y * Scale.Y,\r
-                                                                                       new Rectangle(\r
-                                                                                               (int)((k * 0x2a) * Scale.X),\r
-                                                                                               0,\r
-                                                                                               ((w - m) < 0x2a) ? (int)((w - m) * Scale.X) : (int)(0x2a * Scale.X),\r
-                                                                                               (int)(0x80 * 3 * Scale.Y)\r
-                                                                                       )\r
-                                                                               );\r
-                                                                       }\r
-                                                               }\r
-                                                       }\r
-                                                       else\r
-                                                       {\r
-                                                               int y = (0x60 + (k * 0x80)) + ((this.ct進行[j].n現在の値 * 0x180) / 100);\r
-                                                               if (y < 480)\r
-                                                               {\r
-                                                                       for (int n = 0; n < w; n += 42)\r
-                                                                       {\r
-                                                                               if (this.txFlush[j] != null)\r
+                                                                               if (this.txFlush[j + 8] != null)\r
                                                                                {\r
-                                                                                       this.txFlush[j].t2D描画(\r
+                                                                                       this.txFlush[j + 8].t2D描画(\r
                                                                                                CDTXMania.Instance.Device,\r
-                                                                                               (x + n),\r
-                                                                                               (int)(y * Scale.Y),\r
+                                                                                               (x + m),\r
+                                                                                               y * Scale.Y,\r
                                                                                                new Rectangle(\r
-                                                                                                       (int)(k * 0x2a * Scale.X),\r
+                                                                                                       (int)((k * 0x2a) * Scale.X),\r
                                                                                                        0,\r
-                                                                                                       ((w - n) < 0x2a) ? (int)((w - n) * Scale.X) : (int)(0x2a * Scale.X),\r
+                                                                                                       ((w - m) < 0x2a) ? (int)((w - m) * Scale.X) : (int)(0x2a * Scale.X),\r
                                                                                                        (int)(0x80 * 3 * Scale.Y)\r
                                                                                                )\r
                                                                                        );\r
                                                                                }\r
                                                                        }\r
                                                                }\r
+                                                               else\r
+                                                               {\r
+                                                                       int y = (0x60 + (k * 0x80)) + ((this.ct進行[j].n現在の値 * 0x180) / 100);\r
+                                                                       if (y < 480)\r
+                                                                       {\r
+                                                                               for (int n = 0; n < w; n += 42)\r
+                                                                               {\r
+                                                                                       if (this.txFlush[j] != null)\r
+                                                                                       {\r
+                                                                                               this.txFlush[j].t2D描画(\r
+                                                                                                       CDTXMania.Instance.Device,\r
+                                                                                                       (x + n),\r
+                                                                                                       (int)(y * Scale.Y),\r
+                                                                                                       new Rectangle(\r
+                                                                                                               (int)(k * 0x2a * Scale.X),\r
+                                                                                                               0,\r
+                                                                                                               ((w - n) < 0x2a) ? (int)((w - n) * Scale.X) : (int)(0x2a * Scale.X),\r
+                                                                                                               (int)(0x80 * 3 * Scale.Y)\r
+                                                                                                       )\r
+                                                                                               );\r
+                                                                                       }\r
+                                                                               }\r
+                                                                       }\r
+                                                               }\r
                                                        }\r
                                                }\r
                                        }\r
@@ -175,29 +194,5 @@ namespace DTXMania
                        }\r
                        return 0;\r
                }\r
-\r
-\r
-               // その他\r
-\r
-               #region [ private ]\r
-               //-----------------\r
-               [StructLayout(LayoutKind.Sequential)]\r
-               private struct STレーンサイズ\r
-               {\r
-                       public int x;\r
-                       public int w;\r
-                       public STレーンサイズ(int x_, int w_)\r
-                       {\r
-                               x = x_;\r
-                               w = w_;\r
-                       }\r
-               }\r
-\r
-               private CCounter[] ct進行 = new CCounter[8];\r
-               private readonly string[] strファイル名;\r
-               private readonly STレーンサイズ[] stレーンサイズ;\r
-               private CTextureAf[] txFlush = new CTextureAf[0x10];\r
-               //-----------------\r
-               #endregion\r
        }\r
 }\r
index 6805602..5f28270 100644 (file)
@@ -1,64 +1 @@
-using System;\r
-using System.Collections.Generic;\r
-using System.Text;\r
-using System.Drawing;\r
-using FDK;\r
-\r
-namespace DTXMania\r
-{\r
-       internal class CAct演奏DrumsレーンフラッシュGB : CAct演奏レーンフラッシュGB共通\r
-       {\r
-               // CActivity 実装(共通クラスからの差分のみ)\r
-\r
-               public override int On進行描画()\r
-               {\r
-                       if (!base.b活性化してない)\r
-                       {\r
-                               for (int i = 0; i < 6; i++)\r
-                               {\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
-                                               if (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Center)\r
-                                               {\r
-                                                       x -= (e楽器パート == E楽器パート.GUITAR) ? 71 : 994;\r
-                                               }\r
-                                               int y = ((i < 3) ? 0x39 : 0x39);\r
-                                               if (texture != null)\r
-                                               {\r
-                                                       texture.t2D描画(\r
-                                                               CDTXMania.Instance.Device,\r
-                                                               x,\r
-                                                               y * Scale.Y,\r
-                                                               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
-                                                               )\r
-                                                       );\r
-                                               }\r
-                                               base.ct進行[i].t進行();\r
-                                               if (base.ct進行[i].b終了値に達した)\r
-                                               {\r
-                                                       base.ct進行[i].t停止();\r
-                                               }\r
-                                       }\r
-                               }\r
-                       }\r
-                       return 0;\r
-               }\r
-\r
-\r
-               // その他\r
-\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
-               //-----------------\r
-               #endregion\r
-       }\r
-}\r
+
\ No newline at end of file
index 9d2c22e..5f28270 100644 (file)
@@ -1,335 +1 @@
-using System;\r
-using System.Collections.Generic;\r
-using System.Diagnostics;\r
-using System.Text;\r
-using System.Runtime.InteropServices;\r
-using SlimDX;\r
-\r
-namespace DTXMania\r
-{\r
-       internal class CAct演奏Drums判定文字列 : CAct演奏判定文字列共通\r
-       {\r
-               // コンストラクタ\r
-\r
-               public CAct演奏Drums判定文字列()\r
-               {\r
-                       this.stレーンサイズ = new STレーンサイズ[12]\r
-                       {\r
-                               new STレーンサイズ(  36 - 36, 36 ),\r
-                               new STレーンサイズ(  77 - 36, 30 ),\r
-                               new STレーンサイズ( 111 - 36, 30 ),\r
-                               new STレーンサイズ( 146 - 36, 42 ),\r
-                               new STレーンサイズ( 192 - 36, 30 ),\r
-                               new STレーンサイズ( 227 - 36, 30 ),\r
-                               new STレーンサイズ( 261 - 36, 30 ),\r
-                               new STレーンサイズ( 295 - 36, 36 ),\r
-                               new STレーンサイズ(   0 - 36, 0 ),\r
-                               new STレーンサイズ(   0 - 36, 0 ),\r
-                               new STレーンサイズ( 507 - 36, 80 ),\r
-                               new STレーンサイズ( 398 - 36, 80 )\r
-                       };\r
-                       //for ( int i = 0; i < 12; i++ )\r
-                       //{\r
-                       //      this.stレーンサイズ[i] = new STレーンサイズ();\r
-                       //      this.stレーンサイズ[i].x = sizeXW[i, 0];\r
-                       //      this.stレーンサイズ[i].w = sizeXW[i, 1];\r
-                       //}\r
-                       base.b活性化してない = true;\r
-               }\r
-\r
-\r
-               // CActivity 実装(共通クラスからの差分のみ)\r
-               public override int On進行描画()\r
-               {\r
-                       throw new InvalidOperationException("t進行描画(C演奏判定ライン座標共通 演奏判定ライン共通 ) のほうを使用してください。");\r
-               }\r
-               public override int t進行描画(C演奏判定ライン座標共通 演奏判定ライン座標)\r
-               {\r
-                       if (!base.b活性化してない)\r
-                       {\r
-                               #region [ 表示拡大率の設定 ]\r
-                               for (int i = 0; i < 12; i++)\r
-                               {\r
-                                       if (!base.st状態[i].ct進行.b停止中)\r
-                                       {\r
-                                               base.st状態[i].ct進行.t進行();\r
-                                               if (base.st状態[i].ct進行.b終了値に達した)\r
-                                               {\r
-                                                       base.st状態[i].ct進行.t停止();\r
-                                               }\r
-                                               int num2 = base.st状態[i].ct進行.n現在の値;\r
-                                               if ((base.st状態[i].judge != E判定.Miss) && (base.st状態[i].judge != E判定.Bad))\r
-                                               {\r
-                                                       if (num2 < 50)\r
-                                                       {\r
-                                                               base.st状態[i].fX方向拡大率 = 1f + (1f * (1f - (((float)num2) / 50f)));\r
-                                                               base.st状態[i].fY方向拡大率 = ((float)num2) / 50f;\r
-                                                               base.st状態[i].n相対X座標 = 0;\r
-                                                               base.st状態[i].n相対Y座標 = 0;\r
-                                                               base.st状態[i].n透明度 = 0xff;\r
-                                                       }\r
-                                                       else if (num2 < 130)\r
-                                                       {\r
-                                                               base.st状態[i].fX方向拡大率 = 1f;\r
-                                                               base.st状態[i].fY方向拡大率 = 1f;\r
-                                                               base.st状態[i].n相対X座標 = 0;\r
-                                                               base.st状態[i].n相対Y座標 = ((num2 % 6) == 0) ? (CDTXMania.Instance.Random.Next(6) - 3) : base.st状態[i].n相対Y座標;\r
-                                                               base.st状態[i].n透明度 = 0xff;\r
-                                                       }\r
-                                                       else if (num2 >= 240)\r
-                                                       {\r
-                                                               base.st状態[i].fX方向拡大率 = 1f;\r
-                                                               base.st状態[i].fY方向拡大率 = 1f - ((1f * (num2 - 240)) / 60f);\r
-                                                               base.st状態[i].n相対X座標 = 0;\r
-                                                               base.st状態[i].n相対Y座標 = 0;\r
-                                                               base.st状態[i].n透明度 = 0xff;\r
-                                                       }\r
-                                                       else\r
-                                                       {\r
-                                                               base.st状態[i].fX方向拡大率 = 1f;\r
-                                                               base.st状態[i].fY方向拡大率 = 1f;\r
-                                                               base.st状態[i].n相対X座標 = 0;\r
-                                                               base.st状態[i].n相対Y座標 = 0;\r
-                                                               base.st状態[i].n透明度 = 0xff;\r
-                                                       }\r
-                                               }\r
-                                               else if (num2 < 50)\r
-                                               {\r
-                                                       base.st状態[i].fX方向拡大率 = 1f;\r
-                                                       base.st状態[i].fY方向拡大率 = ((float)num2) / 50f;\r
-                                                       base.st状態[i].n相対X座標 = 0;\r
-                                                       base.st状態[i].n相対Y座標 = 0;\r
-                                                       base.st状態[i].n透明度 = 0xff;\r
-                                               }\r
-                                               else if (num2 >= 200)\r
-                                               {\r
-                                                       base.st状態[i].fX方向拡大率 = 1f - (((float)(num2 - 200)) / 100f);\r
-                                                       base.st状態[i].fY方向拡大率 = 1f - (((float)(num2 - 200)) / 100f);\r
-                                                       base.st状態[i].n相対X座標 = 0;\r
-                                                       base.st状態[i].n相対Y座標 = 0;\r
-                                                       base.st状態[i].n透明度 = 0xff;\r
-                                               }\r
-                                               else\r
-                                               {\r
-                                                       base.st状態[i].fX方向拡大率 = 1f;\r
-                                                       base.st状態[i].fY方向拡大率 = 1f;\r
-                                                       base.st状態[i].n相対X座標 = 0;\r
-                                                       base.st状態[i].n相対Y座標 = 0;\r
-                                                       base.st状態[i].n透明度 = 0xff;\r
-                                               }\r
-                                       }\r
-                               }\r
-                               #endregion\r
-                               for (int j = 0; j < 12; j++)\r
-                               {\r
-                                       if (!base.st状態[j].ct進行.b停止中)\r
-                                       {\r
-                                               int index = base.st判定文字列[(int)base.st状態[j].judge].n画像番号;\r
-                                               int baseX = 0;\r
-                                               int baseY = 0;\r
-                                               #region [ Drums 判定文字列 baseX/Y生成 ]\r
-                                               if (j < 8)                      // Drums\r
-                                               {\r
-                                                       if (CDTXMania.Instance.ConfigIni.判定文字表示位置.Drums == E判定文字表示位置.表示OFF)\r
-                                                       {\r
-                                                               continue;\r
-                                                       }\r
-                                                       baseX = this.stレーンサイズ[j].x;\r
-                                                       baseX = (int)(baseX * (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left ? 1.0 : 0.75));\r
-                                                       baseX += (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left ? 36 : 205);\r
-                                                       baseY = CDTXMania.Instance.ConfigIni.bReverse.Drums ?\r
-                                                               ((((E判定文字表示位置)CDTXMania.Instance.ConfigIni.判定文字表示位置.Drums) == E判定文字表示位置.レーン上) ? (240 + (this.n文字の縦表示位置[j] * 0x20)) : 50) :\r
-                                                               ((((E判定文字表示位置)CDTXMania.Instance.ConfigIni.判定文字表示位置.Drums) == E判定文字表示位置.レーン上) ? (180 + (this.n文字の縦表示位置[j] * 0x20)) : 450);\r
-                                                       baseY = (int)(baseY * Scale.Y);\r
-                                               }\r
-                                               #endregion\r
-                                               #region [ Bass 判定文字列描画 baseX/Y生成 ]\r
-                                               else if (j == 11)       // Bass\r
-                                               {\r
-                                                       if (((E判定文字表示位置)CDTXMania.Instance.ConfigIni.判定文字表示位置.Bass) == E判定文字表示位置.表示OFF)\r
-                                                       {\r
-                                                               continue;\r
-                                                       }\r
-                                                       int yB;\r
-                                                       switch (CDTXMania.Instance.ConfigIni.判定文字表示位置.Bass)\r
-                                                       {\r
-                                                               case E判定文字表示位置.コンボ下:\r
-                                                                       baseX = this.stレーンサイズ[j].x + 36;\r
-                                                                       if (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Center)\r
-                                                                       {\r
-                                                                               baseX -= 331 + 1;\r
-                                                                       }\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
-                                                                                                       yB + (int)((+184 + 0) * Scale.Y)\r
-                                                                                       )\r
-                                                                                       + (int)(this.n文字の縦表示位置[j] * 0x20 * Scale.Y);\r
-                                                                       break;\r
-                                                               case E判定文字表示位置.レーン上:\r
-                                                                       baseX = this.stレーンサイズ[j].x + 36;\r
-                                                                       if (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Center)\r
-                                                                       {\r
-                                                                               baseX -= 331 + 1;\r
-                                                                       }\r
-                                                                       //baseY = ( CDTXMania.Instance.ConfigIni.bReverse.Bass ? 240 : 180 ) + ( this.n文字の縦表示位置[ j ] * 0x20 );\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
-                                                                                                       yB + (int)(75 * Scale.Y)\r
-                                                                                       )\r
-                                                                                       + (int)(this.n文字の縦表示位置[j] * 0x20 * Scale.Y);\r
-                                                                       break;\r
-                                                               case E判定文字表示位置.判定ライン上:\r
-                                                                       baseX = this.stレーンサイズ[j].x + 36;\r
-                                                                       if (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Center)\r
-                                                                       {\r
-                                                                               baseX -= 331 + 1;\r
-                                                                       }\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
-                                                                       break;\r
-                                                       }\r
-                                               }\r
-                                               #endregion\r
-                                               #region [ Guitar 判定文字列描画 baseX/Y生成 ]\r
-                                               else if (j == 10)       // Guitar\r
-                                               {\r
-                                                       if (((E判定文字表示位置)CDTXMania.Instance.ConfigIni.判定文字表示位置.Guitar) == E判定文字表示位置.表示OFF)\r
-                                                       {\r
-                                                               continue;\r
-                                                       }\r
-                                                       int yG;\r
-                                                       switch (CDTXMania.Instance.ConfigIni.判定文字表示位置.Guitar)\r
-                                                       {\r
-                                                               case E判定文字表示位置.コンボ下:\r
-                                                                       baseX = (CDTXMania.Instance.DTX.bチップがある.Bass) ? this.stレーンサイズ[j].x + 36 : 0x198;\r
-                                                                       if (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Center)\r
-                                                                       {\r
-                                                                               baseX = this.stレーンサイズ[j].x + 36;    // 判定表示がドラムレーンにかぶらないよう、ベース有りの時と同じ表示方法にする\r
-                                                                               baseX -= 24 + 1;\r
-                                                                       }\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
-                                                                                                       yG + (int)((+184 + 0) * Scale.Y)\r
-                                                                                       )\r
-                                                                                       + (int)(this.n文字の縦表示位置[j] * 0x20 * Scale.Y);\r
-                                                                       break;\r
-                                                               case E判定文字表示位置.レーン上:\r
-                                                                       baseX = (CDTXMania.Instance.DTX.bチップがある.Bass) ? this.stレーンサイズ[j].x + 36 : 0x198;\r
-                                                                       if (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Center)\r
-                                                                       {\r
-                                                                               baseX = this.stレーンサイズ[j].x + 36;    // 判定表示がドラムレーンにかぶらないよう、ベース有りの時と同じ表示方法にする\r
-                                                                               baseX -= 24 + 1;\r
-                                                                       }\r
-                                                                       //baseY = ( CDTXMania.Instance.ConfigIni.bReverse.Guitar ? 240 : 180 ) + ( this.n文字の縦表示位置[ j ] * 0x20 );\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
-                                                                                                       yG + (int)(75 * Scale.Y)\r
-                                                                                       )\r
-                                                                                       + (int)(this.n文字の縦表示位置[j] * 0x20 * Scale.Y);\r
-                                                                       break;\r
-                                                               case E判定文字表示位置.判定ライン上:\r
-                                                                       baseX = (CDTXMania.Instance.DTX.bチップがある.Bass) ? this.stレーンサイズ[j].x + 36 : 0x198;\r
-                                                                       if (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Center)\r
-                                                                       {\r
-                                                                               baseX = this.stレーンサイズ[j].x + 36;    // 判定表示がドラムレーンにかぶらないよう、ベース有りの時と同じ表示方法にする\r
-                                                                               baseX -= 24 + 1;\r
-                                                                       }\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
-                                                                       break;\r
-                                                       }\r
-                                               }\r
-                                               #endregion\r
-                                               int xc = (int)((((baseX + base.st状態[j].n相対X座標) + (this.stレーンサイズ[j].w / 2))) * Scale.X); // Xcenter座標\r
-                                               int x = xc - ((int)(((256f / 2) * base.st状態[j].fX方向拡大率) * ((j < 10) ? 1.0 : 0.7)));\r
-                                               int y = (int)(baseY + (base.st状態[j].n相対Y座標) * Scale.Y) - ((int)((((256f / 3) * base.st状態[j].fY方向拡大率) * ((j < 10) ? 1.0 : 0.7)) / 2.0));\r
-\r
-                                               //int xc = ( ( baseX + base.st状態[ j ].n相対X座標 ) + ( this.stレーンサイズ[ j ].w / 2 ) );        // Xcenter座標\r
-                                               //int x = xc - ( (int) ( ( 64f * base.st状態[ j ].fX方向拡大率 ) * ( ( j < 10 ) ? 1.0 : 0.7 ) ) );\r
-                                               //int y = ( baseY + base.st状態[ j ].n相対Y座標 ) - ( (int) ( ( ( 43f * base.st状態[ j ].fY方向拡大率 ) * ( ( j < 10 ) ? 1.0 : 0.7 ) ) / 2.0 ) );\r
-                                               if (base.tx判定文字列[index] != null)\r
-                                               {\r
-                                                       base.tx判定文字列[index].n透明度 = base.st状態[j].n透明度;\r
-                                                       base.tx判定文字列[index].vc拡大縮小倍率 = new Vector3((float)(base.st状態[j].fX方向拡大率 * ((j < 10) ? 1.0 : 0.7)), (float)(base.st状態[j].fY方向拡大率 * ((j < 10) ? 1.0 : 0.7)), 1f);\r
-                                                       base.tx判定文字列[index].t2D描画(\r
-                                                               CDTXMania.Instance.Device,\r
-                                                               x,\r
-                                                               y,\r
-                                                               base.st判定文字列[(int)base.st状態[j].judge].rc\r
-                                                       );\r
-\r
-                                                       #region [ #25370 2011.6.3 yyagi ShowLag support ]\r
-                                                       if (base.nShowLagType == (int)EShowLagType.ON ||\r
-                                                                ((base.nShowLagType == (int)EShowLagType.GREAT_POOR) && (base.st状態[j].judge != E判定.Perfect)))\r
-                                                       {\r
-                                                               if (base.st状態[j].judge != E判定.Auto && base.txlag数値 != null)         // #25370 2011.2.1 yyagi\r
-                                                               {\r
-                                                                       bool minus = false;\r
-                                                                       int offsetX = 0;\r
-                                                                       string strDispLag = base.st状態[j].nLag.ToString();\r
-                                                                       if (st状態[j].nLag < 0)\r
-                                                                       {\r
-                                                                               minus = true;\r
-                                                                       }\r
-                                                                       //x = xc - strDispLag.Length * 15 / 2;\r
-                                                                       x = xc - (int)((strDispLag.Length * 15 / 2) * Scale.X);\r
-                                                                       for (int i = 0; i < strDispLag.Length; i++)\r
-                                                                       {\r
-                                                                               int p = (strDispLag[i] == '-') ? 11 : (int)(strDispLag[i] - '0');       //int.Parse(strDispLag[i]);\r
-                                                                               p += minus ? 0 : 12;            // change color if it is minus value\r
-                                                                               //base.txlag数値.t2D描画( CDTXMania.Instance.app.Device, x + offsetX, y + 34, base.stLag数値[ p ].rc );\r
-                                                                               base.txlag数値.t2D描画(\r
-                                                                                       CDTXMania.Instance.Device,\r
-                                                                                       x + offsetX * Scale.X,\r
-                                                                                       y + 38 * Scale.Y,\r
-                                                                                       base.stLag数値[p].rc\r
-                                                                               );\r
-                                                                               offsetX += 12;  // 15 -> 12\r
-                                                                       }\r
-                                                               }\r
-                                                       }\r
-                                                       #endregion\r
-                                               }\r
-                                               // Label_07FC: ;\r
-                                       }\r
-                               }\r
-                       }\r
-                       return 0;\r
-               }\r
-\r
-\r
-               // その他\r
-\r
-               #region [ private ]\r
-               //-----------------\r
-               [StructLayout(LayoutKind.Sequential)]\r
-               private struct STレーンサイズ\r
-               {\r
-                       public int x;\r
-                       public int w;\r
-                       public STレーンサイズ(int x_, int w_)\r
-                       {\r
-                               x = x_;\r
-                               w = w_;\r
-                       }\r
-\r
-               }\r
-\r
-               private readonly int[] n文字の縦表示位置 = new int[] { 1, 2, 0, 1, 3, 2, 1, 0, 0, 0, 1, 1 };\r
-               private STレーンサイズ[] stレーンサイズ;\r
-               //-----------------\r
-               #endregion\r
-       }\r
-}\r
+
\ No newline at end of file
index 37aa04b..5f28270 100644 (file)
@@ -1,657 +1 @@
-using System;\r
-using System.Collections.Generic;\r
-using System.Text;\r
-using System.Runtime.InteropServices;\r
-using System.Drawing;\r
-using System.Drawing.Imaging;\r
-using System.IO;\r
-using System.Diagnostics;\r
-using System.Threading;\r
-using SlimDX;\r
-using SlimDX.Direct3D9;\r
-using FDK;\r
-\r
-namespace DTXMania\r
-{\r
-       internal class CStage演奏ドラム画面 : CStage演奏画面共通\r
-       {\r
-               // コンストラクタ\r
-\r
-               public CStage演奏ドラム画面()\r
-               {\r
-                       base.eステージID = CStage.Eステージ.演奏;\r
-                       base.eフェーズID = CStage.Eフェーズ.共通_通常状態;\r
-                       base.b活性化してない = true;\r
-                       base.list子Activities.Add(this.actPad = new CAct演奏Drumsパッド());\r
-                       base.list子Activities.Add(this.actCombo = new CAct演奏DrumsコンボDGB());\r
-                       base.list子Activities.Add(this.actDANGER = new CAct演奏DrumsDanger());\r
-                       base.list子Activities.Add(this.actChipFireD = new CAct演奏DrumsチップファイアD());\r
-                       base.list子Activities.Add(this.actChipFireGB = new CAct演奏DrumsチップファイアGB());\r
-                       base.list子Activities.Add(this.actGauge = new CAct演奏Drumsゲージ());\r
-                       base.list子Activities.Add(this.actGraph = new CAct演奏Drumsグラフ()); // #24074 2011.01.23 add ikanick\r
-                       base.list子Activities.Add(this.actJudgeString = new CAct演奏Drums判定文字列());\r
-                       base.list子Activities.Add(this.actLaneFlushD = new CAct演奏DrumsレーンフラッシュD());\r
-                       base.list子Activities.Add(this.actLaneFlushGB = new CAct演奏DrumsレーンフラッシュGB());\r
-                       base.list子Activities.Add(this.actRGB = new CAct演奏DrumsRGB());\r
-                       base.list子Activities.Add(this.actScore = new CAct演奏Drumsスコア());\r
-                       base.list子Activities.Add(this.actStatusPanels = new CAct演奏Drumsステータスパネル());\r
-                       base.list子Activities.Add(this.actWailingBonus = new CAct演奏DrumsWailingBonus());\r
-                       base.list子Activities.Add(this.act譜面スクロール速度 = new CAct演奏スクロール速度());\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.actStageFailed = new CAct演奏ステージ失敗());\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
-               // CStage 実装\r
-               public override void On活性化()\r
-               {\r
-                       this.bフィルイン中 = false;\r
-                       base.On活性化();\r
-\r
-                       // MODIFY_BEGIN #25398 2011.06.07 FROM\r
-                       if (CDTXMania.Instance.bコンパクトモード)\r
-                       {\r
-                               var score = new Cスコア();\r
-                               CDTXMania.Instance.Songs管理.tScoreIniを読み込んで譜面情報を設定する(CDTXMania.Instance.strコンパクトモードファイル + ".score.ini", ref score);\r
-                               this.actGraph.dbグラフ値目標_渡 = score.譜面情報.最大スキル[0];\r
-                       }\r
-                       else\r
-                       {\r
-                               this.actGraph.dbグラフ値目標_渡 = CDTXMania.Instance.stage選曲.r確定されたスコア.譜面情報.最大スキル[0];      // #24074 2011.01.23 add ikanick\r
-\r
-                               // #35411 2015.08.21 chnmr0 add\r
-                               // ゴースト利用可のなとき、0で初期化\r
-                               if (CDTXMania.Instance.ConfigIni.eTargetGhost.Drums != ETargetGhostData.NONE)\r
-                               {\r
-                                       if (CDTXMania.Instance.DTX.listTargetGhsotLag[(int)E楽器パート.DRUMS] != null)\r
-                                       {\r
-                                               this.actGraph.dbグラフ値目標_渡 = 0;\r
-                                       }\r
-                               }\r
-                       }\r
-                       // MODIFY_END #25398\r
-                       dtLastQueueOperation = DateTime.MinValue;\r
-               }\r
-               public override void On非活性化()\r
-               {\r
-                       base.On非活性化();\r
-               }\r
-               public override void OnManagedリソースの作成()\r
-               {\r
-                       if (!base.b活性化してない)\r
-                       {\r
-                               //this.t背景テクスチャの生成();\r
-                               this.txチップ = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenPlayDrums chips.png"));\r
-                               this.txヒットバー = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenPlayDrums hit-bar.png"));\r
-                               this.txヒットバーGB = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenPlayDrums hit-bar guitar.png"));\r
-                               //this.txWailing枠 = TextureFactory.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenPlay wailing cursor.png" ) );\r
-                               this.txレーンフレームGB = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenPlayDrums lane parts guitar.png"));\r
-                               if (this.txレーンフレームGB != null)\r
-                               {\r
-                                       this.txレーンフレームGB.n透明度 = 0xff - CDTXMania.Instance.ConfigIni.n背景の透過度;\r
-                               }\r
-                               base.OnManagedリソースの作成();\r
-                       }\r
-               }\r
-               public override void OnManagedリソースの解放()\r
-               {\r
-                       if (!base.b活性化してない)\r
-                       {\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
-                               base.OnManagedリソースの解放();\r
-                       }\r
-               }\r
-               // その他\r
-               #region [ private ]\r
-               //-----------------\r
-\r
-               private readonly Eパッド[] eチャンネルtoパッド = new Eパッド[]\r
-               {\r
-                       Eパッド.HH, Eパッド.SD, Eパッド.BD, Eパッド.HT,\r
-                       Eパッド.LT, Eパッド.CY, Eパッド.FT, Eパッド.HHO,\r
-                       Eパッド.RD, Eパッド.LC\r
-               };\r
-               private readonly int[,] nチャンネルtoX座標 = new int[,] {\r
-                               { 76 * 3, 110 * 3, 145 * 3, 192 * 3, 226 * 3, 294 * 3, 260 * 3, 79 * 3, 300 * 3, 35 * 3 },\r
-                               // 619 - 35 * 3= 584\r
-                               {\r
-                                76 * 3 * 3 / 4 + 548,\r
-                               110 * 3 * 3 / 4  + 548,\r
-                               145 * 3 * 3 / 4  + 548,\r
-                               192 * 3 * 3 / 4  + 548,\r
-                               226 * 3 * 3 / 4  + 548,\r
-                               294 * 3 * 3 / 4  + 548,\r
-                               260 * 3 * 3 / 4  + 548,\r
-                                79 * 3 * 3 / 4  + 548,\r
-                               300 * 3 * 3 / 4  + 548,\r
-                                35 * 3 * 3 / 4  + 548\r
-                               }\r
-               };\r
-               private CTexture txヒットバーGB;\r
-               //-----------------\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, 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
-                                       {\r
-                                               for (int i = 0; i < 3; i++)\r
-                                               {\r
-                                                       this.txヒットバーGB.t2D描画(CDTXMania.Instance.Device,\r
-                                                               x + (3 * 26 * i),\r
-                                                               y\r
-                                                       );\r
-                                                       this.txヒットバーGB.t2D描画(CDTXMania.Instance.Device,\r
-                                                               x + (3 * 26 * i) + 48,\r
-                                                               y,\r
-                                                               rc\r
-                                                       );\r
-                                               }\r
-                                       }\r
-                               }\r
-                               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, 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
-                                       {\r
-                                               for (int j = 0; j < 3; j++)\r
-                                               {\r
-                                                       this.txヒットバーGB.t2D描画(CDTXMania.Instance.Device,\r
-                                                               x + (3 * 26 * j),\r
-                                                               y\r
-                                                       );\r
-                                                       this.txヒットバーGB.t2D描画(CDTXMania.Instance.Device,\r
-                                                               x + (3 * 26 * j) + 48,\r
-                                                               y,\r
-                                                               rc\r
-                                                       );\r
-                                               }\r
-                                       }\r
-                               }\r
-                       }\r
-               }\r
-\r
-               protected override void t背景テクスチャの生成()\r
-               {\r
-                       Rectangle bgrect;\r
-                       if (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left)\r
-                       {\r
-                               bgrect = new Rectangle((int)(338 * Scale.X), (int)(57 * Scale.Y), (int)(278 * 2), (int)(355 * 2));\r
-                       }\r
-                       else\r
-                       {\r
-                               bgrect = new Rectangle(619 + 682, (int)(57 * Scale.Y), (int)(278 * 2), (int)(355 * 2));\r
-                       }\r
-                       string DefaultBgFilename = (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ?\r
-                                                                               @"Graphics\ScreenPlayDrums background.png" :\r
-                                                                               @"Graphics\ScreenPlayDrums-background-center.png";\r
-                       string DefaultLaneFilename = "";        //  @"Graphics\ScreenPlayDrums_Lane_parts_drums.png";\r
-                       string BgFilename = "";\r
-                       if (((CDTXMania.Instance.DTX.BACKGROUND != null) && (CDTXMania.Instance.DTX.BACKGROUND.Length > 0)) && !CDTXMania.Instance.ConfigIni.bストイックモード)\r
-                       {\r
-                               BgFilename = CDTXMania.Instance.DTX.strフォルダ名 + CDTXMania.Instance.DTX.BACKGROUND;\r
-                       }\r
-                       base.t背景テクスチャの生成(DefaultBgFilename, DefaultLaneFilename, bgrect, BgFilename);\r
-               }\r
-\r
-               protected override void t進行描画_チップ_ドラムス(ref CChip pChip)\r
-               {\r
-                       if (CDTXMania.Instance.ConfigIni.bDrums有効)\r
-                       {\r
-                               #region [ Invisible処理 ]\r
-                               if (CDTXMania.Instance.ConfigIni.eInvisible.Drums != EInvisible.OFF)\r
-                               {\r
-                                       cInvisibleChip.SetInvisibleStatus(ref pChip);\r
-                               }\r
-                               #endregion\r
-                               else\r
-                               {\r
-                                       #region [ Sudden処理 ]\r
-                                       if (CDTXMania.Instance.ConfigIni.bSudden.Drums)\r
-                                       {\r
-                                               if (pChip.nバーからの距離dot.Drums < 200 * Scale.Y)\r
-                                               {\r
-                                                       pChip.b可視 = true;\r
-                                                       pChip.n透明度 = 0xff;\r
-                                               }\r
-                                               else if (pChip.nバーからの距離dot.Drums < 250 * Scale.Y)\r
-                                               {\r
-                                                       pChip.b可視 = true;\r
-                                                       pChip.n透明度 = 0xff - ((int)((((double)(pChip.nバーからの距離dot.Drums - 200 * Scale.Y)) * 255.0) / 50.0));\r
-                                               }\r
-                                               else\r
-                                               {\r
-                                                       pChip.b可視 = false;\r
-                                                       pChip.n透明度 = 0;\r
-                                               }\r
-                                       }\r
-                                       #endregion\r
-                                       #region [ Hidden処理 ]\r
-                                       if (CDTXMania.Instance.ConfigIni.bHidden.Drums)\r
-                                       {\r
-                                               if (pChip.nバーからの距離dot.Drums < 100 * Scale.Y)\r
-                                               {\r
-                                                       pChip.b可視 = false;\r
-                                               }\r
-                                               else if (pChip.nバーからの距離dot.Drums < 150 * Scale.Y)\r
-                                               {\r
-                                                       pChip.b可視 = true;\r
-                                                       pChip.n透明度 = (int)((((double)(pChip.nバーからの距離dot.Drums - 100 * Scale.Y)) * 255.0) / 50.0);\r
-                                               }\r
-                                       }\r
-                                       #endregion\r
-                               }\r
-                               if (!pChip.bHit && pChip.b可視)\r
-                               {\r
-                                       if (this.txチップ != null)\r
-                                       {\r
-                                               this.txチップ.n透明度 = pChip.n透明度;\r
-                                       }\r
-                                       int x = this.nチャンネルtoX座標[(int)CDTXMania.Instance.ConfigIni.eドラムレーン表示位置, pChip.eチャンネル番号 - Ech定義.HiHatClose];\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
-                                       if (this.txチップ != null)\r
-                                       {\r
-                                               double d = (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? 1.0 : 0.75;\r
-                                               this.txチップ.vc拡大縮小倍率 = new Vector3(\r
-                                                                                                               (float)(pChip.dbチップサイズ倍率 * d),\r
-                                                                                                               (float)pChip.dbチップサイズ倍率,\r
-                                                                                                               1f\r
-                                                                                                       );\r
-                                       }\r
-                                       int num9 = this.ctチップ模様アニメ.Drums.n現在の値;\r
-                                       switch (pChip.eチャンネル番号)\r
-                                       {\r
-                                               // HH\r
-                                               case Ech定義.HiHatClose:\r
-                                                       x += (int)(0x10 * Scale.X) - ((int)((32.0 * pChip.dbチップサイズ倍率 * Scale.X) / 2.0));\r
-                                                       if (this.txチップ != null)\r
-                                                       {\r
-                                                               this.txチップ.t2D描画(CDTXMania.Instance.Device,\r
-                                                                       x,\r
-                                                                       y - 9,\r
-                                                                       new Rectangle(\r
-                                                                               (int)(44 * Scale.X),\r
-                                                                               (int)(num9 * (18 - 2)),\r
-                                                                               (int)(32 * Scale.X),\r
-                                                                               (int)(18)\r
-                                                                       )\r
-                                                               );\r
-                                                       }\r
-                                                       break;\r
-\r
-                                               // SD\r
-                                               case Ech定義.Snare:\r
-                                                       x += (int)(0x10 * Scale.X) - ((int)((32.0 * pChip.dbチップサイズ倍率 * Scale.X) / 2.0));\r
-                                                       if (this.txチップ != null)\r
-                                                       {\r
-                                                               this.txチップ.t2D描画(CDTXMania.Instance.Device,\r
-                                                                       x,\r
-                                                                       y - 9,\r
-                                                                       new Rectangle(\r
-                                                                               (int)(0x4c * Scale.X),\r
-                                                                               (int)(num9 * (18 - 2)),\r
-                                                                               (int)(0x20 * Scale.X),\r
-                                                                               (int)(18)));\r
-                                                       }\r
-                                                       break;\r
-\r
-                                               // BD\r
-                                               case Ech定義.BassDrum:\r
-                                                       x += (int)(0x16 * Scale.X) - ((int)((44.0 * pChip.dbチップサイズ倍率 * Scale.X) / 2.0));\r
-                                                       if (this.txチップ != null)\r
-                                                       {\r
-                                                               this.txチップ.t2D描画(CDTXMania.Instance.Device,\r
-                                                                       x,\r
-                                                                       y - 11,\r
-                                                                       new Rectangle(\r
-                                                                               (int)(0 * Scale.X),\r
-                                                                               (int)(num9 * (22 - 2)),\r
-                                                                               (int)(44 * Scale.X),\r
-                                                                               (int)(22)\r
-                                                                       )\r
-                                                               );\r
-                                                       }\r
-                                                       break;\r
-\r
-                                               // HT\r
-                                               case Ech定義.HighTom:\r
-                                                       x += (int)(0x10 * Scale.X) - ((int)((32.0 * pChip.dbチップサイズ倍率 * Scale.X) / 2.0));\r
-                                                       if (this.txチップ != null)\r
-                                                       {\r
-                                                               this.txチップ.t2D描画(CDTXMania.Instance.Device,\r
-                                                                       x,\r
-                                                                       y - 9,\r
-                                                                       new Rectangle(\r
-                                                                               (int)(0x6c * Scale.X),\r
-                                                                               (int)(num9 * (18 - 2)),\r
-                                                                               (int)(0x20 * Scale.X),\r
-                                                                               (int)(18)));\r
-                                                       }\r
-                                                       break;\r
-\r
-                                               // LT\r
-                                               case Ech定義.LowTom:\r
-                                                       x += (int)(0x10 * Scale.X) - ((int)((32.0 * pChip.dbチップサイズ倍率 * Scale.X) / 2.0));\r
-                                                       if (this.txチップ != null)\r
-                                                       {\r
-                                                               this.txチップ.t2D描画(CDTXMania.Instance.Device,\r
-                                                                       x,\r
-                                                                       y - 9,\r
-                                                                       new Rectangle(\r
-                                                                               (int)(140 * Scale.X),\r
-                                                                               (int)(num9 * (18 - 2)),\r
-                                                                               (int)(0x20 * Scale.X),\r
-                                                                               (int)(18)));\r
-                                                       }\r
-                                                       break;\r
-\r
-                                               // CY\r
-                                               case Ech定義.Cymbal:\r
-                                                       x += (int)(0x13 * Scale.X) - ((int)((38.0 * pChip.dbチップサイズ倍率 * Scale.X) / 2.0));\r
-                                                       if (this.txチップ != null)\r
-                                                       {\r
-                                                               this.txチップ.t2D描画(CDTXMania.Instance.Device,\r
-                                                                       x,\r
-                                                                       y - 46,\r
-                                                                       new Rectangle(\r
-                                                                               (int)(0xcc * Scale.X),\r
-                                                                               (int)(786),\r
-                                                                               (int)(0x26 * Scale.X),\r
-                                                                               (int)(78)));\r
-\r
-                                                               this.txチップ.t2D描画(CDTXMania.Instance.Device,\r
-                                                                       x,\r
-                                                                       y - 9,\r
-                                                                       new Rectangle(\r
-                                                                               (int)(0xcc * Scale.X),\r
-                                                                               (int)(num9 * (18 - 2)),\r
-                                                                               (int)(0x26 * Scale.X),\r
-                                                                               (int)(18)));\r
-                                                       }\r
-                                                       break;\r
-\r
-                                               // FT\r
-                                               case Ech定義.FloorTom:\r
-                                                       x += (int)(0x10 * Scale.X) - ((int)((32.0 * pChip.dbチップサイズ倍率 * Scale.X) / 2.0));\r
-                                                       if (this.txチップ != null)\r
-                                                       {\r
-                                                               this.txチップ.t2D描画(CDTXMania.Instance.Device,\r
-                                                                       x,\r
-                                                                       y - 9,\r
-                                                                       new Rectangle(\r
-                                                                               (int)(0xac * Scale.X),\r
-                                                                               (int)(num9 * (18 - 2)),\r
-                                                                               (int)(0x20 * Scale.X),\r
-                                                                               (int)(18)));\r
-                                                       }\r
-                                                       break;\r
-\r
-                                               // HHO\r
-                                               case Ech定義.HiHatOpen:\r
-                                                       x += (int)(13 * Scale.X) - ((int)((26.0 * pChip.dbチップサイズ倍率 * Scale.X) / 2.0));\r
-                                                       if (this.txチップ != null)\r
-                                                       {\r
-                                                               this.txチップ.t2D描画(CDTXMania.Instance.Device,\r
-                                                                       x,\r
-                                                                       y - 9,\r
-                                                                       new Rectangle(\r
-                                                                               (int)(0xf2 * Scale.X),\r
-                                                                               (int)(num9 * (18 - 2)),\r
-                                                                               (int)(0x1a * Scale.X),\r
-                                                                               (int)(18)\r
-                                                                               ));\r
-                                                               this.txチップ.t2D描画(CDTXMania.Instance.Device,\r
-                                                                       x,\r
-                                                                       y - 16,\r
-                                                                       new Rectangle(\r
-                                                                               (int)(0xf2 * Scale.X),\r
-                                                                               (int)(790),\r
-                                                                               (int)(0x1a * Scale.X),\r
-                                                                               (int)(30)\r
-                                                                               ));\r
-                                                       }\r
-                                                       break;\r
-\r
-                                               // RCY\r
-                                               case Ech定義.RideCymbal:\r
-                                                       x += (int)(13 * Scale.X) - ((int)((26.0 * pChip.dbチップサイズ倍率 * Scale.X) / 2.0));\r
-                                                       if (this.txチップ != null)\r
-                                                       {\r
-                                                               this.txチップ.t2D描画(CDTXMania.Instance.Device,\r
-                                                                       x,\r
-                                                                       y - 9,\r
-                                                                       new Rectangle(\r
-                                                                               (int)(0xf2 * Scale.X),\r
-                                                                               (int)(num9 * (18 - 2)),\r
-                                                                               (int)(0x1a * Scale.X),\r
-                                                                               (int)(18)\r
-                                                                               ));\r
-                                                               this.txチップ.t2D描画(CDTXMania.Instance.Device,\r
-                                                                       x,\r
-                                                                       y - 16,\r
-                                                                       new Rectangle(\r
-                                                                               (int)(0xf2 * Scale.X),\r
-                                                                               (int)(790),\r
-                                                                               (int)(0x1a * Scale.X),\r
-                                                                               (int)(30)\r
-                                                                               ));\r
-                                                       }\r
-                                                       break;\r
-\r
-                                               // LCY\r
-                                               case Ech定義.LeftCymbal:\r
-                                                       x += (int)(0x13 * Scale.X) - ((int)((38.0 * pChip.dbチップサイズ倍率 * Scale.X) / 2.0));\r
-                                                       if (this.txチップ != null)\r
-                                                       {\r
-                                                               this.txチップ.t2D描画(CDTXMania.Instance.Device,\r
-                                                                       x,\r
-                                                                       y - 46,\r
-                                                                       new Rectangle(\r
-                                                                               (int)(0xcc * Scale.X),\r
-                                                                               (int)(786),\r
-                                                                               (int)(0x26 * Scale.X),\r
-                                                                               (int)(78)\r
-                                                                               ));\r
-                                                               this.txチップ.t2D描画(CDTXMania.Instance.Device,\r
-                                                                       x,\r
-                                                                       y - 9,\r
-                                                                       new Rectangle(\r
-                                                                               (int)(0xcc * Scale.X),\r
-                                                                               (int)(num9 * (18 - 2)),\r
-                                                                               (int)(0x26 * Scale.X),\r
-                                                                               (int)(18)\r
-                                                                               ));\r
-                                                       }\r
-                                                       break;\r
-                                       }\r
-                                       if (this.txチップ != null)\r
-                                       {\r
-                                               this.txチップ.vc拡大縮小倍率 = new Vector3(1f, 1f, 1f);\r
-                                               this.txチップ.n透明度 = 0xff;\r
-                                       }\r
-                               }\r
-\r
-                               int indexSevenLanes = CStage演奏画面共通.nチャンネル0Atoレーン07[pChip.eチャンネル番号 - Ech定義.HiHatClose];\r
-                               // #35411 chnmr0 modified\r
-                               bool autoPlayCondition = (CDTXMania.Instance.ConfigIni.bAutoPlay[indexSevenLanes] && !pChip.bHit);\r
-                               bool UsePerfectGhost = true;\r
-                               long ghostLag = 0;\r
-\r
-                               if (CDTXMania.Instance.ConfigIni.eAutoGhost.Drums != EAutoGhostData.PERFECT &&\r
-                                               CDTXMania.Instance.DTX.listAutoGhostLag.Drums != null &&\r
-                                               0 <= pChip.n楽器パートでの出現順 && pChip.n楽器パートでの出現順 < CDTXMania.Instance.DTX.listAutoGhostLag.Drums.Count)\r
-                               {\r
-                                       // ゴーストデータが有効 : ラグに合わせて判定\r
-                                       ghostLag = CDTXMania.Instance.DTX.listAutoGhostLag.Drums[pChip.n楽器パートでの出現順];\r
-                                       ghostLag = (ghostLag & 255) - 128;\r
-                                       ghostLag -= this.nInputAdjustTimeMs.Drums;\r
-                                       autoPlayCondition &= !pChip.bHit && (ghostLag + pChip.n発声時刻ms <= CSound管理.rc演奏用タイマ.n現在時刻ms);\r
-                                       UsePerfectGhost = false;\r
-                               }\r
-                               if (UsePerfectGhost)\r
-                               {\r
-                                       // 従来の AUTO : バー下で判定\r
-                                       autoPlayCondition &= (pChip.nバーからの距離dot.Drums < 0);\r
-                               }\r
-\r
-                               if (autoPlayCondition)\r
-                               {\r
-                                       pChip.bHit = true;\r
-                                       this.actLaneFlushD.Start((Eレーン)indexSevenLanes, ((float)CInput管理.n通常音量) / 127f);\r
-                                       bool flag = this.bフィルイン中;\r
-                                       bool flag2 = this.bフィルイン中 && this.bフィルイン区間の最後のChipである(pChip);\r
-                                       //bool flag3 = flag2;\r
-                                       // #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, CDTXMania.Instance.DTX.nモニタを考慮した音量(E楽器パート.DRUMS));\r
-                                       this.tチップのヒット処理(pChip.n発声時刻ms + ghostLag, pChip);\r
-                                       cInvisibleChip.StartSemiInvisible(E楽器パート.DRUMS);\r
-                               }\r
-                               // #35411 modify end\r
-\r
-                               // #35411 2015.08.21 chnmr0 add\r
-                               // 目標値グラフにゴーストの達成率を渡す\r
-                               if (CDTXMania.Instance.ConfigIni.eTargetGhost.Drums != ETargetGhostData.NONE &&\r
-                                               CDTXMania.Instance.DTX.listTargetGhsotLag.Drums != null)\r
-                               {\r
-                                       double val = 0;\r
-                                       if (CDTXMania.Instance.ConfigIni.eTargetGhost.Drums == ETargetGhostData.ONLINE)\r
-                                       {\r
-                                               if (CDTXMania.Instance.DTX.n可視チップ数.Drums > 0)\r
-                                               {\r
-                                                       // Online Stats の計算式\r
-                                                       val = 100 *\r
-                                                                       (this.nヒット数_TargetGhost.Drums.Perfect * 17 +\r
-                                                                        this.nヒット数_TargetGhost.Drums.Great * 7 +\r
-                                                                        this.n最大コンボ数_TargetGhost.Drums * 3) / (20.0 * CDTXMania.Instance.DTX.n可視チップ数.Drums);\r
-                                               }\r
-                                       }\r
-                                       else\r
-                                       {\r
-                                               val = CScoreIni.t演奏型スキルを計算して返す(\r
-                                                               CDTXMania.Instance.DTX.n可視チップ数.Drums,\r
-                                                               this.nヒット数_TargetGhost.Drums.Perfect,\r
-                                                               this.nヒット数_TargetGhost.Drums.Great,\r
-                                                               this.nヒット数_TargetGhost.Drums.Good,\r
-                                                               this.nヒット数_TargetGhost.Drums.Poor,\r
-                                                               this.nヒット数_TargetGhost.Drums.Miss,\r
-                                                               E楽器パート.DRUMS, new STAUTOPLAY());\r
-                                       }\r
-                                       if (val < 0) val = 0;\r
-                                       if (val > 100) val = 100;\r
-                                       this.actGraph.dbグラフ値目標_渡 = val;\r
-                               }\r
-                               //break;\r
-                               return;\r
-                       }       // end of "if configIni.bDrums有効"\r
-                       if (!pChip.bHit && (pChip.nバーからの距離dot.Drums < 0))\r
-                       {\r
-                               this.tサウンド再生(pChip, 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進行描画_チップ_ギターベース(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進行描画_チップ_ギターベース(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
-                               xGtO, xGtL, xBsO, xBsL,         // GtのX, Gt左利きのX, BsのX, Bs左利きのX,\r
-                               26, 24                                          // 描画のX座標間隔, テクスチャのX座標間隔\r
-                       );\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
-                               switch (pChip.n整数値)\r
-                               {\r
-                                       case 0x01:      // フィルイン開始\r
-                                               if (CDTXMania.Instance.ConfigIni.bフィルイン有効)\r
-                                               {\r
-                                                       this.bフィルイン中 = true;\r
-                                               }\r
-                                               break;\r
-\r
-                                       case 0x02:      // フィルイン終了\r
-                                               if (CDTXMania.Instance.ConfigIni.bフィルイン有効)\r
-                                               {\r
-                                                       this.bフィルイン中 = false;\r
-                                               }\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
-                                                               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
-                                                               CDTXMania.Instance.Skin.sound歓声音.n位置_次に鳴るサウンド = 0;\r
-                                                               CDTXMania.Instance.Skin.sound歓声音.t再生する();\r
-                                                       }\r
-                                               }\r
-                                               break;\r
-#if TEST_NOTEOFFMODE   // 2011.1.1 yyagi TEST\r
-                                                               case 0x04:      // HH消音あり(従来同等)\r
-                                                                       CDTXMania.Instance.DTX.b演奏で直前の音を消音する.HH = true;\r
-                                                                       break;\r
-                                                               case 0x05:      // HH消音無し\r
-                                                                       CDTXMania.Instance.DTX.b演奏で直前の音を消音する.HH = false;\r
-                                                                       break;\r
-                                                               case 0x06:      // ギター消音あり(従来同等)\r
-                                                                       CDTXMania.Instance.DTX.b演奏で直前の音を消音する.Gutiar = true;\r
-                                                                       break;\r
-                                                               case 0x07:      // ギター消音無し\r
-                                                                       CDTXMania.Instance.DTX.b演奏で直前の音を消音する.Gutiar = false;\r
-                                                                       break;\r
-                                                               case 0x08:      // ベース消音あり(従来同等)\r
-                                                                       CDTXMania.Instance.DTX.b演奏で直前の音を消音する.Bass = true;\r
-                                                                       break;\r
-                                                               case 0x09:      // ベース消音無し\r
-                                                                       CDTXMania.Instance.DTX.b演奏で直前の音を消音する.Bass = false;\r
-                                                                       break;\r
-#endif\r
-                               }\r
-                       }\r
-               }\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
-                       }\r
-               }\r
-               #endregion\r
-       }\r
-}\r
+
\ No newline at end of file
index 73dba20..2fb6eb5 100644 (file)
@@ -135,8 +135,7 @@ namespace DTXMania
                public CStageコンフィグ stageコンフィグ { 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 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
                public CStage終了 stage終了 { get; private set; }\r
@@ -685,8 +684,7 @@ namespace DTXMania
                        stageコンフィグ = new CStageコンフィグ();\r
                        stage選曲 = new CStage選曲();\r
                        stage曲読み込み = new CStage曲読み込み();\r
-                       stage演奏ドラム画面 = new CStage演奏ドラム画面();\r
-                       stage演奏ギター画面 = new CStage演奏ギター画面();\r
+                       stage演奏画面 = new CStage演奏画面共通();\r
                        stage結果 = new CStage結果();\r
                        stageChangeSkin = new CStageChangeSkin();\r
                        stage終了 = new CStage終了();\r
@@ -699,8 +697,7 @@ namespace DTXMania
                        this.listトップレベルActivities.Add(stageコンフィグ);\r
                        this.listトップレベルActivities.Add(stage選曲);\r
                        this.listトップレベルActivities.Add(stage曲読み込み);\r
-                       this.listトップレベルActivities.Add(stage演奏ドラム画面);\r
-                       this.listトップレベルActivities.Add(stage演奏ギター画面);\r
+                       this.listトップレベルActivities.Add(stage演奏画面);\r
                        this.listトップレベルActivities.Add(stage結果);\r
                        this.listトップレベルActivities.Add(stageChangeSkin);\r
                        this.listトップレベルActivities.Add(stage終了);\r
@@ -1537,44 +1534,10 @@ namespace DTXMania
                                                        }\r
                                                        #endregion\r
 \r
-                                                       if (!ConfigIni.bギタレボモード)\r
-                                                       {\r
-                                                               Trace.TraceInformation("----------------------");\r
-                                                               Trace.TraceInformation("■ 演奏(ドラム画面)");\r
-#if false              // #23625 2011.1.11 Config.iniからダメージ/回復値の定数変更を行う場合はここを有効にする 087リリースに合わせ機能無効化\r
-for (int i = 0; i < 5; i++)\r
-{\r
-       for (int j = 0; j < 2; j++)\r
-       {\r
-               stage演奏ドラム画面.fDamageGaugeDelta[i, j] = ConfigIni.fGaugeFactor[i, j];\r
-       }\r
-}\r
-for (int i = 0; i < 3; i++) {\r
-       stage演奏ドラム画面.fDamageLevelFactor[i] = ConfigIni.fDamageLevelFactor[i];\r
-}              \r
-#endif\r
-                                                               r直前のステージ = r現在のステージ;\r
-                                                               r現在のステージ = stage演奏ドラム画面;\r
-                                                       }\r
-                                                       else\r
-                                                       {\r
-                                                               Trace.TraceInformation("----------------------");\r
-                                                               Trace.TraceInformation("■ 演奏(ギター画面)");\r
-#if false              // #23625 2011.1.11 Config.iniからダメージ/回復値の定数変更を行う場合はここを有効にする 087リリースに合わせ機能無効化\r
-for (int i = 0; i < 5; i++)\r
-{\r
-       for (int j = 0; j < 2; j++)\r
-       {\r
-               stage演奏ギター画面.fDamageGaugeDelta[i, j] = ConfigIni.fGaugeFactor[i, j];\r
-       }\r
-}\r
-for (int i = 0; i < 3; i++) {\r
-       stage演奏ギター画面.fDamageLevelFactor[i] = ConfigIni.fDamageLevelFactor[i];\r
-}              \r
-#endif\r
-                                                               r直前のステージ = r現在のステージ;\r
-                                                               r現在のステージ = stage演奏ギター画面;\r
-                                                       }\r
+                                                       Trace.TraceInformation("----------------------");\r
+                                                       Trace.TraceInformation("■ 演奏(ドラム画面)");\r
+                                                       r直前のステージ = r現在のステージ;\r
+                                                       r現在のステージ = stage演奏画面;\r
 \r
                                                        foreach (STPlugin pg in this.listプラグイン)\r
                                                        {\r
@@ -1611,14 +1574,8 @@ for (int i = 0; i < 3; i++) {
 \r
                                                        if (DTXVmode.Command == CDTXVmode.ECommand.Stop)\r
                                                        {\r
-                                                               if (!ConfigIni.bギタレボモード)\r
-                                                               {\r
-                                                                       CDTXMania.Instance.stage演奏ドラム画面.t停止();\r
-                                                               }\r
-                                                               else\r
-                                                               {\r
-                                                                       CDTXMania.Instance.stage演奏ギター画面.t停止();\r
-                                                               }\r
+                                                               CDTXMania.Instance.stage演奏画面.t停止();\r
+\r
                                                                if (previewSound != null)\r
                                                                {\r
                                                                        this.previewSound.tサウンドを停止する();\r
@@ -1661,14 +1618,7 @@ for (int i = 0; i < 3; i++) {
                                                        {\r
                                                                if (DTXVmode.NeedReload)\r
                                                                {\r
-                                                                       if (!ConfigIni.bギタレボモード)\r
-                                                                       {\r
-                                                                               CDTXMania.Instance.stage演奏ドラム画面.t再読込();\r
-                                                                       }\r
-                                                                       else\r
-                                                                       {\r
-                                                                               CDTXMania.Instance.stage演奏ギター画面.t再読込();\r
-                                                                       }\r
+                                                                       CDTXMania.Instance.stage演奏画面.t再読込();\r
 \r
                                                                        CDTXMania.Instance.ConfigIni.bDrums有効 = !DTXVmode.GRmode;\r
                                                                        CDTXMania.Instance.ConfigIni.bGuitar有効 = true;\r
@@ -1682,14 +1632,7 @@ for (int i = 0; i < 3; i++) {
                                                                }\r
                                                                else\r
                                                                {\r
-                                                                       if (!ConfigIni.bギタレボモード)\r
-                                                                       {\r
-                                                                               CDTXMania.Instance.stage演奏ドラム画面.t演奏位置の変更(CDTXMania.Instance.DTXVmode.nStartBar);\r
-                                                                       }\r
-                                                                       else\r
-                                                                       {\r
-                                                                               CDTXMania.Instance.stage演奏ギター画面.t演奏位置の変更(CDTXMania.Instance.DTXVmode.nStartBar);\r
-                                                                       }\r
+                                                                       CDTXMania.Instance.stage演奏画面.t演奏位置の変更(CDTXMania.Instance.DTXVmode.nStartBar);\r
                                                                }\r
                                                        }\r
                                                }\r
@@ -1850,16 +1793,8 @@ for (int i = 0; i < 3; i++) {
                                                                STDGBVALUE<CScoreIni.C演奏記録> record;\r
                                                                CChip[] chipArray = new CChip[10];\r
 \r
-                                                               if (!ConfigIni.bギタレボモード)\r
-                                                               {\r
-                                                                       chipArray = stage演奏ギター画面.GetNoChipDrums();\r
-                                                                       record = stage演奏ドラム画面.Record;\r
-                                                               }\r
-                                                               else\r
-                                                               {\r
-                                                                       record = stage演奏ギター画面.Record;\r
-                                                                       record.Drums = new CScoreIni.C演奏記録();\r
-                                                               }\r
+                                                               chipArray = stage演奏画面.GetNoChipDrums();\r
+                                                               record = stage演奏画面.Record;\r
 \r
                                                                double playskill = 0.0;\r
 \r