OSDN Git Service

#34026 Drumsの演奏画面をFullHDに対応させた。
authoryyagi <yyagi@16f42ceb-6dc6-49c8-ba94-f2d53467949d>
Tue, 22 Jul 2014 14:37:11 +0000 (14:37 +0000)
committeryyagi <yyagi@16f42ceb-6dc6-49c8-ba94-f2d53467949d>
Tue, 22 Jul 2014 14:37:11 +0000 (14:37 +0000)
※ まだ全体としては正常な表示にはなっておりません。あしからずご承知おきください。

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

30 files changed:
DTXManiaプロジェクト/コード/スコア、曲/CDTX.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/CAct演奏BGA.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/CAct演奏Combo共通.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/CAct演奏WailingBonus共通.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/CAct演奏ステージ失敗.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/CAct演奏チップファイアGB.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/CAct演奏パネル文字列.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/CAct演奏判定文字列共通.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/CStage演奏画面共通.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/C演奏判定ライン座標共通.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プロジェクト/コード/全体/C定数.cs
実行時フォルダ(DTXCreator)/dll/FDK.dll
実行時フォルダ/DTXManiaGR.exe
実行時フォルダ/dll/FDK.dll

index ace5f22..cd3b2d7 100644 (file)
@@ -46,16 +46,24 @@ namespace DTXMania
                                #region [ strAVIファイル名の作成。]\r
                                //-----------------\r
                                string strAVIファイル名;\r
-                               if( !string.IsNullOrEmpty( CDTXMania.DTX.PATH_WAV ) )\r
-                                       strAVIファイル名 = CDTXMania.DTX.PATH_WAV + this.strファイル名;\r
+\r
+                               if ( CDTXMania.DTX != null && !Path.IsPathRooted( this.strファイル名 ) )   // CDTX抜きでCAVI単体で使うことを考慮(選曲画面, リザルト画面)\r
+                               {                                                                                                                                                       // 演奏終了直後はCDTXオブジェクトが残っているので、ファイル名がフルパスかどうかでプレビュー判定する\r
+                                       if ( !string.IsNullOrEmpty( CDTXMania.DTX.PATH_WAV ) )\r
+                                               strAVIファイル名 = CDTXMania.DTX.PATH_WAV + this.strファイル名;\r
+                                       else\r
+                                               strAVIファイル名 = CDTXMania.DTX.strフォルダ名 + this.strファイル名;\r
+                               }\r
                                else\r
-                                       strAVIファイル名 = CDTXMania.DTX.strフォルダ名 + this.strファイル名;\r
+                               {\r
+                                       strAVIファイル名 = this.strファイル名;\r
+                               }\r
                                //-----------------\r
                                #endregion\r
 \r
                                if( !File.Exists( strAVIファイル名 ) )\r
                                {\r
-                                       Trace.TraceWarning( "ファイルが存在しません。({0})({1})", this.strコメント文, strAVIファイル名 );\r
+                                       Trace.TraceWarning( "CAVI: ファイルが存在しません。({0})({1})", this.strコメント文, Path.GetFileName( strAVIファイル名 ) );\r
                                        this.avi = null;\r
                                        return;\r
                                }\r
@@ -65,12 +73,12 @@ namespace DTXMania
                                try\r
                                {\r
                                        this.avi = new CAvi( strAVIファイル名 );\r
-                                       Trace.TraceInformation( "動画を生成しました。({0})({1})({2}frames)", this.strコメント文, strAVIファイル名, this.avi.GetMaxFrameCount() );\r
+                                       Trace.TraceInformation( "CAVI: 動画を生成しました。({0})({1})({2}frames)", this.strコメント文, Path.GetFileName( strAVIファイル名 ), this.avi.GetMaxFrameCount() );\r
                                }\r
-                               catch( Exception e )\r
+                               catch ( Exception e )\r
                                {\r
                                        Trace.TraceError( e.Message );\r
-                                       Trace.TraceError( "動画の生成に失敗しました。({0})({1})", this.strコメント文, strAVIファイル名 );\r
+                                       Trace.TraceError( "CAVI: 動画の生成に失敗しました。({0})({1})", this.strコメント文, Path.GetFileName( strAVIファイル名 ) );\r
                                        this.avi = null;\r
                                }\r
                        }\r
@@ -88,22 +96,28 @@ namespace DTXMania
 \r
                                if( this.avi != null )\r
                                {\r
-                                       #region [ strAVIファイル名 の作成。 ]\r
+                                       #region [ strAVIファイル名 の作成。なぜDispose時にファイル名の生成をしているのかと思ったら、デバッグログ用でした。 ]\r
                                        //-----------------\r
                                        string strAVIファイル名;\r
-                                       if( !string.IsNullOrEmpty( CDTXMania.DTX.PATH_WAV ) )\r
-                                               strAVIファイル名 = CDTXMania.DTX.PATH_WAV + this.strファイル名;\r
+                                       if ( CDTXMania.DTX != null && !Path.IsPathRooted( this.strファイル名 ) )   // CDTX抜きでCAVI単体で使うことを考慮(選曲画面, リザルト画面)\r
+                                       {                                                                                                                                                       // 演奏終了直後はCDTXオブジェクトが残っているので、ファイル名がフルパスかどうかでプレビュー判定する\r
+                                               if ( !string.IsNullOrEmpty( CDTXMania.DTX.PATH_WAV ) )\r
+                                                       strAVIファイル名 = CDTXMania.DTX.PATH_WAV + this.strファイル名;\r
+                                               else\r
+                                                       strAVIファイル名 = CDTXMania.DTX.strフォルダ名 + this.strファイル名;\r
+                                       }\r
                                        else\r
-                                               strAVIファイル名 = CDTXMania.DTX.strフォルダ名 + this.strファイル名;\r
+                                       {\r
+                                               strAVIファイル名 = this.strファイル名;\r
+                                       }\r
                                        //-----------------\r
                                        #endregion\r
 \r
                                        this.avi.Dispose();\r
                                        this.avi = null;\r
                                        \r
-                                       Trace.TraceInformation( "動画を解放しました。({0})({1})", this.strコメント文, strAVIファイル名 );\r
+                                       Trace.TraceInformation( "動画を解放しました。({0})({1})", this.strコメント文, Path.GetFileName( strAVIファイル名 ) );\r
                                }\r
-\r
                                this.bDispose済み = true;\r
                        }\r
                        //-----------------\r
@@ -397,11 +411,10 @@ namespace DTXMania
                        {\r
                                get\r
                                {\r
-                                       if (this.nチャンネル番号 == 3 || this.nチャンネル番号 == 8) {\r
-                                               return true;\r
-                                       } else {\r
-                                               return false;\r
-                                       }\r
+                                       return (\r
+                                               this.nチャンネル番号 == (int) Ech定義.BPM ||\r
+                                               this.nチャンネル番号 == (int) Ech定義.BPMEx\r
+                                       );\r
                                }\r
                        }\r
                        public bool bWAVを使うチャンネルである\r
@@ -673,6 +686,169 @@ namespace DTXMania
                        }\r
                        //-----------------\r
                        #endregion\r
+\r
+                       #region [ チャンネル番号→Chipの種類、の変換。今後の拡張を容易にするために追加。 ]\r
+                       public ESoundChipType tチャンネル番号からESoundChipTypeを得る()\r
+                       {\r
+                               switch ( this.nチャンネル番号 )\r
+                               {\r
+                                       #region [ Drums ]\r
+                                       case (int) Ech定義.HiHatClose:\r
+                                       case (int) Ech定義.Snare:\r
+                                       case (int) Ech定義.BassDrum:\r
+                                       case (int) Ech定義.HighTom:\r
+                                       case (int) Ech定義.LowTom:\r
+                                       case (int) Ech定義.Cymbal:\r
+                                       case (int) Ech定義.FloorTom:\r
+                                       case (int) Ech定義.HiHatOpen:\r
+                                       case (int) Ech定義.RideCymbal:\r
+                                       case (int) Ech定義.LeftCymbal:\r
+\r
+                                       case (int) Ech定義.HiHatClose_Hidden:\r
+                                       case (int) Ech定義.Snare_Hidden:\r
+                                       case (int) Ech定義.BassDrum_Hidden:\r
+                                       case (int) Ech定義.HighTom_Hidden:\r
+                                       case (int) Ech定義.LowTom_Hidden:\r
+                                       case (int) Ech定義.Cymbal_Hidden:\r
+                                       case (int) Ech定義.FloorTom_Hidden:\r
+                                       case (int) Ech定義.HiHatOpen_Hidden:\r
+                                       case (int) Ech定義.RideCymbal_Hidden:\r
+                                       case (int) Ech定義.LeftCymbal_Hidden:\r
+\r
+                                       case (int) Ech定義.HiHatClose_NoChip:\r
+                                       case (int) Ech定義.Snare_NoChip:\r
+                                       case (int) Ech定義.BassDrum_NoChip:\r
+                                       case (int) Ech定義.HighTom_NoChip:\r
+                                       case (int) Ech定義.LowTom_NoChip:\r
+                                       case (int) Ech定義.Cymbal_NoChip:\r
+                                       case (int) Ech定義.FloorTom_NoChip:\r
+                                       case (int) Ech定義.HiHatOpen_NoChip:\r
+                                       case (int) Ech定義.RideCymbal_NoChip:\r
+                                       case (int) Ech定義.LeftCymbal_NoChip:\r
+                                               return ESoundChipType.Drums;\r
+                                       #endregion\r
+\r
+                                       #region [ Guitar ]\r
+                                       case (int) Ech定義.Guitar_Open:\r
+                                       case (int) Ech定義.Guitar_xxB:\r
+                                       case (int) Ech定義.Guitar_xGx:\r
+                                       case (int) Ech定義.Guitar_xGB:\r
+                                       case (int) Ech定義.Guitar_Rxx:\r
+                                       case (int) Ech定義.Guitar_RxB:\r
+                                       case (int) Ech定義.Guitar_RGx:\r
+                                       case (int) Ech定義.Guitar_RGB:\r
+                                       case (int) Ech定義.Guitar_Wailing:\r
+                                       case (int) Ech定義.Guitar_WailingSound:\r
+                                       case (int) Ech定義.Guitar_NoChip:\r
+                                               return ESoundChipType.Guitar;\r
+                                       #endregion\r
+\r
+                                       #region [ Bass ]\r
+                                       case (int) Ech定義.Bass_Open:\r
+                                       case (int) Ech定義.Bass_xxB:\r
+                                       case (int) Ech定義.Bass_xGx:\r
+                                       case (int) Ech定義.Bass_xGB:\r
+                                       case (int) Ech定義.Bass_Rxx:\r
+                                       case (int) Ech定義.Bass_RxB:\r
+                                       case (int) Ech定義.Bass_RGx:\r
+                                       case (int) Ech定義.Bass_RGB:\r
+                                       case (int) Ech定義.Bass_Wailing:\r
+                                       case (int) Ech定義.Bass_WailingSound:\r
+                                       case (int) Ech定義.Bass_NoChip:\r
+                                               return ESoundChipType.Bass;\r
+                                       #endregion\r
+\r
+                                       #region [ SE ]\r
+                                       case (int) Ech定義.SE01:\r
+                                       case (int) Ech定義.SE02:\r
+                                       case (int) Ech定義.SE03:\r
+                                       case (int) Ech定義.SE04:\r
+                                       case (int) Ech定義.SE05:\r
+                                       case (int) Ech定義.SE06:\r
+                                       case (int) Ech定義.SE07:\r
+                                       case (int) Ech定義.SE08:\r
+                                       case (int) Ech定義.SE09:\r
+                                       case (int) Ech定義.SE10:\r
+                                       case (int) Ech定義.SE11:\r
+                                       case (int) Ech定義.SE12:\r
+                                       case (int) Ech定義.SE13:\r
+                                       case (int) Ech定義.SE14:\r
+                                       case (int) Ech定義.SE15:\r
+                                       case (int) Ech定義.SE16:\r
+                                       case (int) Ech定義.SE17:\r
+                                       case (int) Ech定義.SE18:\r
+                                       case (int) Ech定義.SE19:\r
+                                       case (int) Ech定義.SE20:\r
+                                       case (int) Ech定義.SE21:\r
+                                       case (int) Ech定義.SE22:\r
+                                       case (int) Ech定義.SE23:\r
+                                       case (int) Ech定義.SE24:\r
+                                       case (int) Ech定義.SE25:\r
+                                       case (int) Ech定義.SE26:\r
+                                       case (int) Ech定義.SE27:\r
+                                       case (int) Ech定義.SE28:\r
+                                       case (int) Ech定義.SE29:\r
+                                       case (int) Ech定義.SE30:\r
+                                       case (int) Ech定義.SE31:\r
+                                       case (int) Ech定義.SE32:\r
+                                               return ESoundChipType.SE;\r
+                                       #endregion\r
+\r
+                                       #region [ BGM ]\r
+                                       case (int) Ech定義.BGM:\r
+                                               return ESoundChipType.BGM;\r
+                                       #endregion\r
+\r
+                                       #region [ その他 ]\r
+                                       default:\r
+                                               return ESoundChipType.UNKNOWN;\r
+                                       #endregion\r
+                               }\r
+                       }\r
+                       #endregion\r
+\r
+                       public bool bIsVisibleChip\r
+                       {\r
+                               get\r
+                               {\r
+                                       switch ( this.nチャンネル番号 )\r
+                                       {\r
+                                               case (int) Ech定義.HiHatClose:\r
+                                               case (int) Ech定義.Snare:\r
+                                               case (int) Ech定義.BassDrum:\r
+                                               case (int) Ech定義.HighTom:\r
+                                               case (int) Ech定義.LowTom:\r
+                                               case (int) Ech定義.Cymbal:\r
+                                               case (int) Ech定義.FloorTom:\r
+                                               case (int) Ech定義.HiHatOpen:\r
+                                               case (int) Ech定義.RideCymbal:\r
+                                               case (int) Ech定義.LeftCymbal:\r
+\r
+                                               case (int) Ech定義.Guitar_Open:\r
+                                               case (int) Ech定義.Guitar_xxB:\r
+                                               case (int) Ech定義.Guitar_xGx:\r
+                                               case (int) Ech定義.Guitar_xGB:\r
+                                               case (int) Ech定義.Guitar_Rxx:\r
+                                               case (int) Ech定義.Guitar_RxB:\r
+                                               case (int) Ech定義.Guitar_RGx:\r
+                                               case (int) Ech定義.Guitar_RGB:\r
+\r
+                                               case (int) Ech定義.Bass_Open:\r
+                                               case (int) Ech定義.Bass_xxB:\r
+                                               case (int) Ech定義.Bass_xGx:\r
+                                               case (int) Ech定義.Bass_xGB:\r
+                                               case (int) Ech定義.Bass_Rxx:\r
+                                               case (int) Ech定義.Bass_RxB:\r
+                                               case (int) Ech定義.Bass_RGx:\r
+                                               case (int) Ech定義.Bass_RGB:\r
+                                                       return true;\r
+\r
+                                               default:\r
+                                                       return false;\r
+                                       }\r
+                               }\r
+                       }\r
+\r
                        /// <summary>\r
                        /// shallow copyです。\r
                        /// </summary>\r
@@ -988,6 +1164,9 @@ namespace DTXMania
                        public bool LeftCymbal;\r
                        public bool OpenGuitar;\r
                        public bool OpenBass;\r
+\r
+                       public bool BGA;\r
+                       public bool Movie;\r
                        \r
                        public bool this[ int index ]\r
                        {\r
@@ -1124,7 +1303,7 @@ namespace DTXMania
 //             public bool bGUITAR演奏で直前のGUITARを消音する;\r
 //             public bool bBASS演奏で直前のBASSを消音する;\r
 #endif\r
-               // コンストラクタ\r
+               #region [ コンストラクタ ]\r
 \r
                public CDTX()\r
                {\r
@@ -1168,6 +1347,8 @@ namespace DTXMania
                        this.bチップがある.LeftCymbal = false;\r
                        this.bチップがある.OpenGuitar = false;\r
                        this.bチップがある.OpenBass = false;\r
+                       this.bチップがある.BGA = false;\r
+                       this.bチップがある.Movie = false; \r
                        this.strファイル名 = "";\r
                        this.strフォルダ名 = "";\r
                        this.strファイル名の絶対パス = "";\r
@@ -1215,7 +1396,7 @@ namespace DTXMania
                        this.bGUITAR演奏で直前のGUITARを消音する = true;\r
                        this.bBASS演奏で直前のBASSを消音する = true;\r
 #endif\r
-       \r
+\r
                }\r
                public CDTX( string str全入力文字列 )\r
                        : this()\r
@@ -1241,6 +1422,7 @@ namespace DTXMania
                        this.On活性化();\r
                        this.t入力( strファイル名, bヘッダのみ, db再生速度, nBGMAdjust );\r
                }\r
+               #endregion\r
 \r
 \r
                // メソッド\r
@@ -2549,24 +2731,21 @@ namespace DTXMania
                                                                this.listWAV[ chip.n整数値・内部番号 ].listこのWAVを使用するチャンネル番号の集合.Add( chip.nチャンネル番号 );\r
 \r
                                                                int c = chip.nチャンネル番号 >> 4;\r
-                                                               switch ( c )\r
+                                                               switch ( chip.tチャンネル番号からESoundChipTypeを得る() )\r
                                                                {\r
-                                                                       case 0x01:\r
+                                                                       case ESoundChipType.Drums:\r
                                                                                if ( !chip.b空打ちチップである )\r
                                                                                {\r
                                                                                        this.listWAV[ chip.n整数値・内部番号 ].bIsDrumsSound = true;\r
                                                                                }\r
                                                                                break;\r
-                                                                       case 0x02:\r
+                                                                       case ESoundChipType.Guitar:\r
                                                                                this.listWAV[ chip.n整数値・内部番号 ].bIsGuitarSound = true; break;\r
-                                                                       case 0x0A:\r
+                                                                       case ESoundChipType.Bass:\r
                                                                                this.listWAV[ chip.n整数値・内部番号 ].bIsBassSound = true; break;\r
-                                                                       case 0x06:\r
-                                                                       case 0x07:\r
-                                                                       case 0x08:\r
-                                                                       case 0x09:\r
+                                                                       case ESoundChipType.SE:\r
                                                                                this.listWAV[ chip.n整数値・内部番号 ].bIsSESound = true; break;\r
-                                                                       case 0x00:\r
+                                                                       case ESoundChipType.BGM:\r
                                                                                if ( chip.nチャンネル番号 == 0x01 )\r
                                                                                {\r
                                                                                        this.listWAV[ chip.n整数値・内部番号 ].bIsBGMSound = true; break;\r
@@ -2697,7 +2876,7 @@ namespace DTXMania
                                        case 0x80:      case 0x81:      case 0x82:      case 0x83:      case 0x84:      case 0x85:      case 0x86:      case 0x87:      case 0x88:      case 0x89:\r
                                        case 0x90:      case 0x91:      case 0x92:\r
 \r
-                                               #region [ 発音1秒前のタイミングを算出 ]\r
+                                               #region [ 発音1秒前のタイミングを記録 ]\r
                                                int n発音前余裕ms = 1000, n発音後余裕ms = 800;\r
                                                {\r
                                                        int ch = pChip.nチャンネル番号 >> 4;\r
@@ -5067,7 +5246,17 @@ namespace DTXMania
                        {\r
                                this.bチップがある.Bass = true;\r
                        }\r
-                       switch( nチャンネル番号 )\r
+                       else if ( ( nチャンネル番号 == 0x04 ) || ( nチャンネル番号 == 0x07 ) ||\r
+                               ( ( 0x55 <= nチャンネル番号 ) && ( nチャンネル番号 <= 0x59 ) ) || ( nチャンネル番号 == 0x60 ) )\r
+                       {\r
+                               this.bチップがある.BGA = true;\r
+                       }\r
+                       else if ( nチャンネル番号 == 0x54 )\r
+                       {\r
+                               this.bチップがある.Movie = true;\r
+                       }\r
+\r
+                       switch ( nチャンネル番号 )\r
                        {\r
                                case 0x18:\r
                                        this.bチップがある.HHOpen = true;\r
index 6e8875c..e5371f8 100644 (file)
@@ -4,6 +4,7 @@ using System.Text;
 using System.Runtime.InteropServices;\r
 using System.Drawing;\r
 using SlimDX.Direct3D9;\r
+using SlimDX;\r
 using FDK;\r
 \r
 namespace DTXMania\r
@@ -263,11 +264,23 @@ namespace DTXMania
                                                        {\r
                                                                if( ( this.stLayer[ i ].rBMP != null ) && ( this.stLayer[ i ].rBMP.tx画像 != null ) )\r
                                                                {\r
-                                                                       this.stLayer[ i ].rBMP.tx画像.t2D描画( CDTXMania.app.Device, x + rectangle2.X, y + rectangle2.Y, rectangle );\r
+                                                                       this.stLayer[ i ].rBMP.tx画像.vc拡大縮小倍率 = new Vector3( Scale.X, Scale.Y, 1f );\r
+                                                                       //this.stLayer[ i ].rBMP.tx画像.vc拡大縮小倍率 = new Vector3( 2f, 2f, 1f );\r
+                                                                       this.stLayer[ i ].rBMP.tx画像.t2D描画(\r
+                                                                               CDTXMania.app.Device,\r
+                                                                               (x + rectangle2.X) * Scale.X,\r
+                                                                               (y + rectangle2.Y) * Scale.Y,\r
+                                                                               rectangle );\r
                                                                }\r
                                                                else if( ( this.stLayer[ i ].rBMPTEX != null ) && ( this.stLayer[ i ].rBMPTEX.tx画像 != null ) )\r
                                                                {\r
-                                                                       this.stLayer[ i ].rBMPTEX.tx画像.t2D描画( CDTXMania.app.Device, x + rectangle2.X, y + rectangle2.Y, rectangle );\r
+                                                                       this.stLayer[ i ].rBMPTEX.tx画像.vc拡大縮小倍率 = new Vector3( Scale.X, Scale.Y, 1f );\r
+                                                                       //this.stLayer[ i ].rBMPTEX.tx画像.vc拡大縮小倍率 = new Vector3( 2f, 2f, 1f );\r
+                                                                       this.stLayer[ i ].rBMPTEX.tx画像.t2D描画(\r
+                                                                               CDTXMania.app.Device,\r
+                                                                               (x + rectangle2.X) * Scale.X,\r
+                                                                               (y + rectangle2.Y) * Scale.Y,\r
+                                                                               rectangle );\r
                                                                }\r
                                                        }\r
                                                }\r
index 3acb650..4077d00 100644 (file)
@@ -120,16 +120,16 @@ namespace DTXMania
 \r
                protected enum EEvent { 非表示, 数値更新, 同一数値, ミス通知 }\r
                protected enum EMode { 非表示中, 進行表示中, 残像表示中 }\r
-               protected const int nギターコンボのCOMBO文字の高さ = 16;\r
-               protected const int nギターコンボのCOMBO文字の幅 = 45;\r
-               protected const int nギターコンボの高さ = 35;\r
-               protected const int nギターコンボの幅 = 23;\r
-               protected const int nギターコンボの文字間隔 = 1;\r
-               protected const int nドラムコンボのCOMBO文字の高さ = 32;\r
-               protected const int nドラムコンボのCOMBO文字の幅 = 90;\r
-               protected const int nドラムコンボの高さ = 70;\r
-               protected const int nドラムコンボの幅 = 45;\r
-               protected const int nドラムコンボの文字間隔 = 2;\r
+               protected const int nギターコンボのCOMBO文字の高さ = (int) ( 16 * Scale.Y );\r
+               protected const int nギターコンボのCOMBO文字の幅 = (int) ( 45 * Scale.X );\r
+               protected const int nギターコンボの高さ = (int) ( 35 * Scale.Y );\r
+               protected const int nギターコンボの幅 = (int) ( 23 * Scale.X );\r
+               protected const int nギターコンボの文字間隔 = (int) ( 1 * Scale.X );\r
+               protected const int nドラムコンボのCOMBO文字の高さ = (int) ( 32 * Scale.Y );\r
+               protected const int nドラムコンボのCOMBO文字の幅 = (int) ( 90 * Scale.X );\r
+               protected const int nドラムコンボの高さ = (int) ( 70 * Scale.Y );\r
+               protected const int nドラムコンボの幅 = (int) ( 45 * Scale.X );\r
+               protected const int nドラムコンボの文字間隔 = (int) ( 2 * Scale.X );\r
                protected int[] nジャンプ差分値 = new int[ 180 ];\r
                protected CSTATUS status;\r
                protected CTexture txCOMBOギター;\r
@@ -201,7 +201,7 @@ namespace DTXMania
 \r
                        // 180度分のジャンプY座標差分を取得。(0度: 0 → 90度:-15 → 180度: 0)\r
                        for( int i = 0; i < 180; i++ )\r
-                               this.nジャンプ差分値[ i ] = (int) ( -15.0 * Math.Sin( ( Math.PI * i ) / 180.0 ) );\r
+                               this.nジャンプ差分値[ i ] = (int) ( -15.0 * Math.Sin( ( Math.PI * i ) / 180.0 ) * Scale.Y );\r
                        演奏判定ライン座標 = new C演奏判定ライン座標共通();\r
                }\r
 \r
@@ -261,22 +261,22 @@ namespace DTXMania
                        //-----------------\r
                        const int n1桁ごとのジャンプの遅れ = 50;     // 1桁につき 50 インデックス遅れる\r
 \r
-                       int nX中央位置px = 187;\r
+                       int nX中央位置px = (int) ( 187 * Scale.X );\r
                        switch( e表示位置 )\r
                        {\r
                                case Eドラムコンボ文字の表示位置.LEFT:\r
-                                       nX中央位置px = 187;\r
+                                       nX中央位置px = (int) ( 187 * Scale.X );\r
                                        break;\r
 \r
                                case Eドラムコンボ文字の表示位置.CENTER:\r
-                                       nX中央位置px = 320;\r
+                                       nX中央位置px = (int) ( 320 * Scale.X );\r
                                        break;\r
 \r
                                case Eドラムコンボ文字の表示位置.RIGHT:\r
-                                       nX中央位置px = 485;\r
+                                       nX中央位置px = (int) ( 485 * Scale.X );\r
                                        break;\r
                        }\r
-                       int nY上辺位置px = CDTXMania.ConfigIni.bReverse.Drums ? 350 : 60;\r
+                       int nY上辺位置px = CDTXMania.ConfigIni.bReverse.Drums ? (int) ( 350 * Scale.Y ) : (int) ( 60 * Scale.Y );\r
                        int n数字とCOMBOを合わせた画像の全長px = ( ( nドラムコンボの幅 + nドラムコンボの文字間隔 ) * n桁数 ) + nドラムコンボのCOMBO文字の幅;\r
                        int x = ( nX中央位置px + ( n数字とCOMBOを合わせた画像の全長px / 2 ) ) - nドラムコンボのCOMBO文字の幅;\r
                        int y = ( nY上辺位置px + nドラムコンボの高さ ) - nドラムコンボのCOMBO文字の高さ;\r
@@ -285,7 +285,9 @@ namespace DTXMania
                                y += this.nジャンプ差分値[ nJump ];\r
 \r
                        if( this.txCOMBOドラム != null )\r
-                               this.txCOMBOドラム.t2D描画( CDTXMania.app.Device, x, y, new Rectangle( 0, 140, 90, 32 ) ); // "COMBO" を表示。\r
+                               this.txCOMBOドラム.t2D描画( CDTXMania.app.Device,\r
+                                       x, y,\r
+                                       new Rectangle( 0, (int) ( 140 * Scale.Y ), (int) ( 90 * Scale.X ), (int) ( 32 * Scale.Y ) ) );  // "COMBO" を表示。\r
 \r
                        // COMBO値を1の位から順に表示。\r
 \r
@@ -300,7 +302,8 @@ namespace DTXMania
 \r
                                if( this.txCOMBOドラム != null )\r
                                {\r
-                                       this.txCOMBOドラム.t2D描画( CDTXMania.app.Device, x, y,\r
+                                       this.txCOMBOドラム.t2D描画( CDTXMania.app.Device,\r
+                                               x, y,\r
                                                new Rectangle( ( n位の数[ i ] % 5 ) * nドラムコンボの幅, ( n位の数[ i ] / 5 ) * nドラムコンボの高さ, nドラムコンボの幅, nドラムコンボの高さ ) );\r
                                }\r
                        }\r
@@ -370,16 +373,27 @@ namespace DTXMania
                        #endregion\r
                        #region [ "COMBO" 文字を表示。]\r
                        //-----------------\r
-                       int x = n表示中央X - ( (int) ( ( nギターコンボのCOMBO文字の幅 * f拡大率 ) / 2.0f ) );\r
-                       int y = n表示中央Y;\r
-                       \r
-                       if( this.txCOMBOギター != null )\r
-                               this.txCOMBOギター.t2D描画( CDTXMania.app.Device, x, y, new Rectangle( 0, 70, 45, 16 ) );\r
+                       int x = (int) ( n表示中央X * Scale.X ) - ( (int) ( ( nギターコンボのCOMBO文字の幅 * f拡大率 ) / 2.0f ) );\r
+                       int y = (int) ( n表示中央Y * Scale.Y );\r
+\r
+                       if ( this.txCOMBOギター != null )\r
+                               this.txCOMBOギター.t2D描画(\r
+                                       CDTXMania.app.Device,\r
+                                       x,\r
+                                       y,\r
+                                       new Rectangle(\r
+                                               0,\r
+                                               (int) ( 70 * Scale.Y ),\r
+                                               (int) ( 45 * Scale.X ),\r
+                                               (int) ( 16 * Scale.Y )\r
+                                       )\r
+                               ); \r
                        //-----------------\r
                        #endregion\r
 \r
+                       //x = (int) ( n表示中央X * Scale.X ) + ( n全桁の合計幅 / 2 );\r
                        x = n表示中央X + ( n全桁の合計幅 / 2 );\r
-                       for( int i = 0; i < n桁数; i++ )\r
+                       for ( int i = 0; i < n桁数; i++ )\r
                        {\r
                                #region [ 数字の拡大率を設定。]\r
                                //-----------------\r
@@ -394,6 +408,7 @@ namespace DTXMania
                                #region [ 数字を1桁表示。]\r
                                //-----------------\r
                                x -= nギターコンボの幅 + nギターコンボの文字間隔;\r
+                               //y = (int) ( n表示中央Y * Scale.Y ) - nギターコンボの高さ;\r
                                y = n表示中央Y - nギターコンボの高さ;\r
 \r
                                if( this.txCOMBOギター != null )\r
index 76fccc9..a39389f 100644 (file)
@@ -38,7 +38,7 @@ namespace DTXMania
                {\r
                        if ( !base.b活性化してない )\r
                        {\r
-                               this.txWailingBonus = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenPlay wailing bonus.png" ) );\r
+                               this.txWailingBonus = CDTXMania.tテクスチャの生成Af( CSkin.Path( @"Graphics\ScreenPlay wailing bonus.png" ), false );\r
                                base.OnManagedリソースの作成();\r
                        }\r
                }\r
@@ -57,7 +57,7 @@ namespace DTXMania
                #region [ private ]\r
                //-----------------\r
                protected CCounter[,] ct進行用 = new CCounter[ 3, 4 ];\r
-               protected CTexture txWailingBonus;\r
+               protected CTextureAf txWailingBonus;\r
                //-----------------\r
                #endregion\r
        }\r
index fa19d07..414c4a5 100644 (file)
@@ -74,10 +74,14 @@ namespace DTXMania
                        if( this.ct進行.n現在の値 < 100 )\r
                        {\r
                                int x = (int) ( 320.0 * Math.Cos( ( Math.PI / 2 * this.ct進行.n現在の値 ) / 100.0 ) );\r
-                               if( ( x != 320 ) && ( this.txStageFailed != null ) )\r
+                               if ( ( x != 320 ) && ( this.txStageFailed != null ) )\r
                                {\r
-                                       this.txStageFailed.t2D描画( CDTXMania.app.Device, 0, 0, new Rectangle( x, 0, 320 - x, 480 ) );\r
-                                       this.txStageFailed.t2D描画( CDTXMania.app.Device, 320 + x, 0, new Rectangle( 320, 0, 320 - x, 480 ) );\r
+                                       this.txStageFailed.t2D描画( CDTXMania.app.Device,\r
+                                               0, 0,\r
+                                               new Rectangle( (int) ( x * Scale.X ), 0, (int) ( ( 320 - x ) * Scale.X ), (int) ( 480 * Scale.Y ) ) );\r
+                                       this.txStageFailed.t2D描画( CDTXMania.app.Device,\r
+                                               (int) ( ( 320 + x ) * Scale.X ), 0,\r
+                                               new Rectangle( (int) ( 320 * Scale.X ), 0, (int) ( ( 320 - x ) * Scale.X ), (int) ( 480 * Scale.Y ) ) );\r
                                }\r
                        }\r
                        else\r
@@ -92,7 +96,7 @@ namespace DTXMania
                                        int y = CDTXMania.Random.Next( 5 ) - 2;\r
                                        if( this.txStageFailed != null )\r
                                        {\r
-                                               this.txStageFailed.t2D描画( CDTXMania.app.Device, num2, y );\r
+                                               this.txStageFailed.t2D描画( CDTXMania.app.Device, num2 * Scale.X, y * Scale.Y );\r
                                        }\r
                                }\r
                                if( !this.b効果音再生済み )\r
index 0256ab7..4373694 100644 (file)
@@ -103,8 +103,8 @@ namespace DTXMania
                                        if( ( this.ct進行[ j ].n現在の経過時間ms != -1 ) && ( this.tx火花[ j % 3 ] != null ) )\r
                                        {\r
                                                float scale = (float) ( 3.0 * Math.Cos( ( Math.PI * ( 90.0 - ( 90.0 * ( ( (double) this.ct進行[ j ].n現在の値 ) / 56.0 ) ) ) ) / 180.0 ) );\r
-                                               int x = this.pt中央位置[ j ].X - ( (int) ( ( this.tx火花[ j % 3 ].sz画像サイズ.Width * scale ) / 2f ) );\r
-                                               int y = this.pt中央位置[ j ].Y - ( (int) ( ( this.tx火花[ j % 3 ].sz画像サイズ.Height * scale ) / 2f ) );\r
+                                               int x = (int) ( this.pt中央位置[ j ].X ) - ( (int) ( ( this.tx火花[ j % 3 ].sz画像サイズ.Width * scale ) / 2f ) );\r
+                                               int y = (int) ( this.pt中央位置[ j ].Y ) - ( (int) ( ( this.tx火花[ j % 3 ].sz画像サイズ.Height * scale ) / 2f ) );\r
                                                this.tx火花[ j % 3 ].n透明度 = ( this.ct進行[ j ].n現在の値 < 0x1c ) ? 0xff : ( 0xff - ( (int) ( 255.0 * Math.Cos( ( Math.PI * ( 90.0 - ( 90.0 * ( ( (double) ( this.ct進行[ j ].n現在の値 - 0x1c ) ) / 28.0 ) ) ) ) / 180.0 ) ) ) );\r
                                                this.tx火花[ j % 3 ].vc拡大縮小倍率 = new Vector3( scale, scale, 1f );\r
 \r
index 0e8cce2..1dcc571 100644 (file)
@@ -51,7 +51,7 @@ namespace DTXMania
                                                Trace.TraceError( "パネル文字列テクスチャの生成に失敗しました。" );\r
                                                this.txPanel = null;\r
                                        }\r
-                                       this.ct進行用 = new CCounter( -278, this.n文字列の長さdot / 2, 8, CDTXMania.Timer );\r
+                                       this.ct進行用 = new CCounter( (int) ( -278 * Scale.X ), this.n文字列の長さdot / 2, unchecked( (int) ( 8.0f / Scale.X ) ), CDTXMania.Timer );\r
                                }\r
                                this.Start();\r
                        }\r
@@ -71,7 +71,7 @@ namespace DTXMania
 \r
                public override void On活性化()\r
                {\r
-                       this.ft表示用フォント = new Font( "MS PGothic", 48f, FontStyle.Italic | FontStyle.Bold, GraphicsUnit.Pixel );\r
+                       this.ft表示用フォント = new Font( "MS PGothic", 48f * Scale.Y, FontStyle.Italic | FontStyle.Bold, GraphicsUnit.Pixel );\r
                        this.n文字列の長さdot = 0;\r
                        this.txPanel = null;\r
                        this.ct進行用 = new CCounter();\r
@@ -119,10 +119,15 @@ namespace DTXMania
                                        return 0;\r
                                }\r
                                float num = this.txPanel.vc拡大縮小倍率.X;\r
-                               Rectangle rectangle = new Rectangle( (int) ( ( (float) this.ct進行用.n現在の値 ) / num ), 0, (int) ( 278f / num ), (int) this.ft表示用フォント.Size );\r
-                               if( rectangle.X < 0 )\r
+                               Rectangle rectangle = new Rectangle(\r
+                                       (int) ( ( (float) this.ct進行用.n現在の値 ) / num ),\r
+                                       0,\r
+                                       (int) ( 278f / num * Scale.X ),\r
+                                       (int) this.ft表示用フォント.Size\r
+                                       );\r
+                               if ( rectangle.X < 0 )\r
                                {\r
-                                       x -= (int) ( rectangle.X * num );\r
+                                       x -= (int) ( rectangle.X * num / Scale.X );\r
                                        rectangle.Width += rectangle.X;\r
                                        rectangle.X = 0;\r
                                }\r
@@ -130,7 +135,7 @@ namespace DTXMania
                                {\r
                                        rectangle.Width -= rectangle.Right - this.n文字列の長さdot;\r
                                }\r
-                               this.txPanel.t2D描画( CDTXMania.app.Device, x, y, rectangle );\r
+                               this.txPanel.t2D描画( CDTXMania.app.Device, x * Scale.X, y * Scale.Y, rectangle );\r
                        }\r
                        return 0;\r
                }\r
index 0f9b155..ef36ec5 100644 (file)
@@ -56,13 +56,14 @@ namespace DTXMania
                {\r
                        this.st判定文字列 = new ST判定文字列[ 7 ];\r
                        Rectangle[] r = new Rectangle[] {\r
-                               new Rectangle( 0, 0,    0x80, 0x2a ),           // Perfect\r
-                               new Rectangle( 0, 0x2b, 0x80, 0x2a ),           // Great\r
-                               new Rectangle( 0, 0x56, 0x80, 0x2a ),           // Good\r
-                               new Rectangle( 0, 0,    0x80, 0x2a ),           // Poor\r
-                               new Rectangle( 0, 0x2b, 0x80, 0x2a ),           // Miss\r
-                               new Rectangle( 0, 0x56, 0x80, 0x2a ),           // Bad\r
-                               new Rectangle( 0, 0,    0x80, 0x2a )            // Auto\r
+                               new Rectangle( 0, 256 / 3 * 0, 256, 256 / 3 ),          // Perfect\r
+                               new Rectangle( 0, 256 / 3 * 1, 256, 256 / 3 ),          // Great\r
+                               new Rectangle( 0, 256 / 3 * 2, 256, 256 / 3 ),          // Good\r
+                               new Rectangle( 0, 256 / 3 * 0, 256, 256 / 3 ),          // Poor\r
+                               new Rectangle( 0, 256 / 3 * 1, 256, 256 / 3 ),          // Miss\r
+                               new Rectangle( 0, 256 / 3 * 2, 256, 256 / 3 ),          // Bad\r
+                               new Rectangle( 0, 256 / 3 * 0, 256, 256 / 3 )           // Auto\r
+\r
                        };\r
                        for ( int i = 0; i < 7; i++ )\r
                        {\r
@@ -72,10 +73,21 @@ namespace DTXMania
                        }\r
 \r
                        this.stLag数値 = new STlag数値[ 12 * 2 ];           // #25370 2011.2.1 yyagi\r
+\r
                        for ( int i = 0; i < 12; i++ )\r
                        {\r
-                               this.stLag数値[ i      ].rc = new Rectangle( ( i % 4 ) * 15     , ( i / 4 ) * 19     , 15, 19 );      // plus numbers\r
-                               this.stLag数値[ i + 12 ].rc = new Rectangle( ( i % 4 ) * 15 + 64, ( i / 4 ) * 19 + 64, 15, 19 );      // minus numbers\r
+                               this.stLag数値[ i ].rc = new Rectangle(\r
+                                                                                               (int) ( ( i % 4 ) * 15 * Scale.X ),\r
+                                                                                               (int) ( ( i / 4 ) * 19 * Scale.Y ),\r
+                                                                                               (int) ( 15 * Scale.X ),\r
+                                                                                               (int) ( 19 * Scale.Y )\r
+                                                                                               );      // plus numbers\r
+                               this.stLag数値[ i + 12 ].rc = new Rectangle(\r
+                                                                                               (int) ( ( ( i % 4 ) * 15 + 64 ) * Scale.X ),\r
+                                                                                               (int) ( ( ( i / 4 ) * 19 + 64 ) * Scale.Y ),\r
+                                                                                               (int) ( 15 * Scale.X ),\r
+                                                                                               (int) ( 19 * Scale.Y )\r
+                                                                                               );      // minus numbers\r
                        }\r
                        base.b活性化してない = true;\r
                }\r
index d72892f..e3b19d5 100644 (file)
@@ -1668,7 +1668,7 @@ namespace DTXMania
                {\r
                        if ( ( ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) ) && ( !CDTXMania.ConfigIni.bストイックモード && CDTXMania.ConfigIni.bAVI有効 ) )\r
                        {\r
-                               this.actAVI.t進行描画( x, y );\r
+                               this.actAVI.t進行描画( (int) ( x * Scale.X ), (int) ( y * Scale.Y ) );\r
                        }\r
                }\r
                protected abstract void t進行描画・BGA();\r
@@ -1785,9 +1785,9 @@ namespace DTXMania
                        //double speed = 264.0; // BPM150の時の1小節の長さ[dot]\r
                        const double speed = 234.0;     // BPM150の時の1小節の長さ[dot]\r
 \r
-                       double ScrollSpeedDrums = ( this.act譜面スクロール速度.db現在の譜面スクロール速度.Drums + 1.0 ) * 0.5 * 37.5 * speed / 60000.0;\r
+                       double ScrollSpeedDrums =  ( this.act譜面スクロール速度.db現在の譜面スクロール速度.Drums  + 1.0 ) * 0.5       * 37.5 * speed / 60000.0;\r
                        double ScrollSpeedGuitar = ( this.act譜面スクロール速度.db現在の譜面スクロール速度.Guitar + 1.0 ) * 0.5 * 0.5 * 37.5 * speed / 60000.0;\r
-                       double ScrollSpeedBass = ( this.act譜面スクロール速度.db現在の譜面スクロール速度.Bass + 1.0 ) * 0.5 * 0.5 * 37.5 * speed / 60000.0;\r
+                       double ScrollSpeedBass =   ( this.act譜面スクロール速度.db現在の譜面スクロール速度.Bass   + 1.0 ) * 0.5 * 0.5 * 37.5 * speed / 60000.0;\r
 \r
                        CDTX dTX = CDTXMania.DTX;\r
                        CConfigIni configIni = CDTXMania.ConfigIni;\r
@@ -1995,7 +1995,13 @@ namespace DTXMania
                                                }\r
                                                if ( ( ePlayMode == E楽器パート.DRUMS ) && ( configIni.eDark != Eダークモード.FULL ) && pChip.b可視 && ( this.txチップ != null ) )\r
                                                {\r
-                                                       this.txチップ.t2D描画( CDTXMania.app.Device, 0x23, configIni.bReverse.Drums ? ( ( 0x38 + pChip.nバーからの距離dot.Drums ) - 1 ) : ( ( 0x1a6 - pChip.nバーからの距離dot.Drums ) - 1 ), new Rectangle( 0, 0x1bf, 0x128, 1 ) );\r
+                                                       this.txチップ.t2D描画( CDTXMania.app.Device,\r
+                                                               0x23 * Scale.X,\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
+                                                               new Rectangle( 0, (int) ( 0x1bf * Scale.Y ), (int) ( 0x128 * Scale.X ), (int) ( 1 * Scale.Y ) )\r
+                                                       );\r
                                                }\r
                                                break;\r
                                        #endregion\r
@@ -2019,12 +2025,17 @@ namespace DTXMania
                                                        pChip.bHit = true;\r
                                                        if ( configIni.bAVI有効 )\r
                                                        {\r
+                                                               if ( CDTXMania.DTX.bチップがある.BGA )\r
+                                                               {\r
+                                                                       this.actAVI.bHasBGA = true;\r
+                                                               }\r
                                                                switch ( pChip.eAVI種別 )\r
                                                                {\r
                                                                        case EAVI種別.AVI:\r
-                                                                               if ( pChip.rAVI != null )\r
                                                                                {\r
-                                                                                       this.actAVI.Start( pChip.nチャンネル番号, pChip.rAVI, 278, 355, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, pChip.n発声時刻ms );\r
+                                                                                       int startWidth = ( CDTXMania.DTX.bチップがある.BGA ) ? 278 : SampleFramework.GameWindowSize.Width;\r
+                                                                                       int startHeight = ( CDTXMania.DTX.bチップがある.BGA ) ? 355 : SampleFramework.GameWindowSize.Height;\r
+                                                                                       this.actAVI.Start( pChip.nチャンネル番号, pChip.rAVI, startWidth, startHeight, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, pChip.n発声時刻ms );\r
                                                                                }\r
                                                                                break;\r
 \r
@@ -2535,9 +2546,10 @@ namespace DTXMania
                protected abstract void t進行描画・チップ・ギターベース( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip, E楽器パート inst );\r
 \r
                protected void t進行描画・チップ・ギターベース( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip, E楽器パート inst,\r
-                       int barYNormal, int barYReverse, int showRangeY0, int showRangeY1, int openXg, int openXb,\r
-                       int rectOpenOffsetX, int rectOpenOffsetY, int openChipWidth, int chipHeight,\r
-                       int chipWidth, int guitarNormalX, int guitarLeftyX, int bassNormalX, int bassLeftyX, int drawDeltaX, int chipTexDeltaX )\r
+                       int barYNormal, int barYReverse,\r
+                       int showRangeY0, int showRangeY1, int openXg, int openXb,\r
+                       int rectOpenOffsetX, int rectOpenOffsetY, int openChipWidth, int chipHeight, int chipWidth,\r
+                       int guitarNormalX, int guitarLeftyX, int bassNormalX, int bassLeftyX, int drawDeltaX, int chipTexDeltaX )\r
                {\r
                        int instIndex = (int) inst;\r
                        if ( configIni.bGuitar有効 )\r
@@ -2576,8 +2588,12 @@ namespace DTXMania
                                        {\r
                                                this.txチップ.n透明度 = pChip.n透明度;\r
                                        }\r
-                                       int y = configIni.bReverse[ instIndex ] ? ( barYReverse - pChip.nバーからの距離dot[ instIndex ] ) : ( barYNormal + pChip.nバーからの距離dot[ instIndex ] );\r
-                                       int n小節線消失距離dot = configIni.bReverse[ instIndex ] ? -100 : ( configIni.e判定位置[ instIndex ] == E判定位置.標準 ) ? -36 : -25;\r
+                                       int y = configIni.bReverse[ instIndex ] ?\r
+                                               (int) ( barYReverse - pChip.nバーからの距離dot[ instIndex ] * Scale.Y ) :\r
+                                               (int) ( barYNormal  + pChip.nバーからの距離dot[ instIndex ] * Scale.Y );\r
+                                       int n小節線消失距離dot = configIni.bReverse[ instIndex ] ?\r
+                                               (int) ( -100 * Scale.Y ) :\r
+                                               ( configIni.e判定位置[ instIndex ] == E判定位置.標準 ) ? (int) ( -36 * Scale.Y ) : (int) ( -25 * Scale.Y );\r
                                        if ( configIni.bReverse[ instIndex ] )\r
                                        {\r
                                                //showRangeY1 = barYReverse - n小節線消失距離dot;\r
@@ -2591,14 +2607,29 @@ namespace DTXMania
                                                if ( this.txチップ != null )\r
                                                {\r
                                                        int nアニメカウンタ現在の値 = this.ctチップ模様アニメ[ instIndex ].n現在の値;\r
+                                                       #region [ OPENチップの描画 ]\r
                                                        if ( pChip.nチャンネル番号 == OPEN )\r
                                                        {\r
                                                                int xo = ( inst == E楽器パート.GUITAR ) ? openXg : openXb;\r
-                                                               this.txチップ.t2D描画( CDTXMania.app.Device, xo, y - 2,\r
-                                                                       new Rectangle( rectOpenOffsetX, rectOpenOffsetY + ( ( nアニメカウンタ現在の値 % 5 ) * chipHeight ),\r
-                                                                               openChipWidth, chipHeight ) );\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device,\r
+                                                                       xo * Scale.X,\r
+                                                                       y - ( 2 * Scale.Y ),\r
+                                                                       new Rectangle(\r
+                                                                               (int) ( rectOpenOffsetX * Scale.X ),\r
+                                                                               (int) ( rectOpenOffsetY * Scale.Y ) + (int) ( ( ( nアニメカウンタ現在の値 % 5 ) * chipHeight * Scale.Y ) ),\r
+                                                                               (int) ( openChipWidth * Scale.X ),\r
+                                                                               (int) ( chipHeight * Scale.Y )\r
+                                                                       )\r
+                                                               );\r
                                                        }\r
-                                                       Rectangle rc = new Rectangle( rectOpenOffsetX, nアニメカウンタ現在の値 * chipHeight, chipWidth, chipHeight );\r
+                                                       #endregion\r
+                                                       Rectangle rc = new Rectangle(\r
+                                                               (int) ( rectOpenOffsetX * Scale.X ),\r
+                                                               (int) ( nアニメカウンタ現在の値 * chipHeight * Scale.Y ),\r
+                                                               (int) ( chipWidth * Scale.X ),\r
+                                                               (int) ( chipHeight * Scale.Y )\r
+                                                       );\r
+                                                       #region [ RGBチップのX座標初期化 ]\r
                                                        int x;\r
                                                        if ( inst == E楽器パート.GUITAR )\r
                                                        {\r
@@ -2609,24 +2640,42 @@ namespace DTXMania
                                                                x = ( configIni.bLeft.Bass ) ? bassLeftyX : bassNormalX;\r
                                                        }\r
                                                        int deltaX = ( configIni.bLeft[ instIndex ] ) ? -drawDeltaX : +drawDeltaX;\r
-\r
-//Trace.TraceInformation( "chip={0:x2}, E楽器パート={1}, x={2}", pChip.nチャンネル番号, inst, x );\r
+                                                       #endregion\r
+                                                       //Trace.TraceInformation( "chip={0:x2}, E楽器パート={1}, x={2}", pChip.nチャンネル番号, inst, x );\r
+                                                       #region [ Rチップ描画 ]\r
                                                        if ( bChipHasR )\r
                                                        {\r
-                                                               this.txチップ.t2D描画( CDTXMania.app.Device, x, y - chipHeight / 2, rc );\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device,\r
+                                                                       x * Scale.X,\r
+                                                                       y - ( chipHeight / 2 ) * Scale.Y,\r
+                                                                       rc\r
+                                                               );\r
                                                        }\r
-                                                       rc.X += chipTexDeltaX;\r
+                                                       #endregion\r
+                                                       #region [ Gチップ描画 ]\r
+                                                       rc.X += (int) ( chipTexDeltaX * Scale.X );\r
                                                        x += deltaX;\r
                                                        if ( bChipHasG )\r
                                                        {\r
-                                                               this.txチップ.t2D描画( CDTXMania.app.Device, x, y - chipHeight / 2, rc );\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device,\r
+                                                                       x * Scale.X,\r
+                                                                       y - ( chipHeight / 2 ) * Scale.Y,\r
+                                                                       rc\r
+                                                               );\r
                                                        }\r
-                                                       rc.X += chipTexDeltaX;\r
+                                                       #endregion\r
+                                                       #region [ Bチップ描画 ]\r
+                                                       rc.X += (int) ( chipTexDeltaX * Scale.X );\r
                                                        x += deltaX;\r
                                                        if ( bChipHasB )\r
                                                        {\r
-                                                               this.txチップ.t2D描画( CDTXMania.app.Device, x, y - chipHeight / 2, rc );\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device,\r
+                                                                       x * Scale.X,\r
+                                                                       y - ( chipHeight / 2 ) * Scale.Y,\r
+                                                                       rc\r
+                                                               );\r
                                                        }\r
+                                                       #endregion\r
                                                }\r
                                        }\r
                                }\r
@@ -2851,13 +2900,16 @@ namespace DTXMania
                {\r
                        if ( CDTXMania.ConfigIni.eDark != Eダークモード.FULL )\r
                        {\r
-                               int y = CDTXMania.ConfigIni.bReverse.Drums ? 53 - 演奏判定ライン座標.nJudgeLinePosY_delta.Drums : 419 + 演奏判定ライン座標.nJudgeLinePosY_delta.Drums;\r
+                               int y = CDTXMania.ConfigIni.bReverse.Drums ? (int) ( 53 * Scale.Y ) - 演奏判定ライン座標.nJudgeLinePosY_delta.Drums : (int) ( 419 * Scale.Y ) + 演奏判定ライン座標.nJudgeLinePosY_delta.Drums;\r
                                                                                                                                // #31602 2013.6.23 yyagi 描画遅延対策として、判定ラインの表示位置をオフセット調整できるようにする\r
                                if ( this.txヒットバー != null )\r
                                {\r
                                        for ( int i = 32; i < 335; i += 8 )\r
                                        {\r
-                                               this.txヒットバー.t2D描画( CDTXMania.app.Device, i, y, new Rectangle( 0, 0, ( ( i + 8 ) >= 335 ) ? ( 7 - ( ( i + 8 ) - 335 ) ) : 8, 8 ) );\r
+                                               this.txヒットバー.t2D描画( CDTXMania.app.Device,\r
+                                                       i * Scale.X,\r
+                                                       y,\r
+                                                       new Rectangle( 0, 0, ( ( i + 8 ) >= 335 ) ? (int) ( ( 7 - ( ( i + 8 ) - 335 ) ) * Scale.X ) : (int) ( 8 * Scale.X ), (int) ( 8 * Scale.Y ) ) );\r
                                        }\r
                                }\r
                        }\r
@@ -2896,26 +2948,38 @@ namespace DTXMania
                        {\r
                                try\r
                                {\r
-                                       Bitmap bitmap2 = null;\r
-                                       bitmap2 = new Bitmap( bgfilename );\r
-                                       if ( ( bitmap2.Size.Width == 0 ) && ( bitmap2.Size.Height == 0 ) )\r
+                                       Bitmap bitmap1 = null;\r
+                                       bitmap1 = new Bitmap( bgfilename );\r
+                                       if ( ( bitmap1.Size.Width == 0 ) && ( bitmap1.Size.Height == 0 ) )\r
                                        {\r
                                                this.tx背景 = null;\r
                                                return;\r
                                        }\r
-                                       Bitmap bitmap3 = new Bitmap(SampleFramework.GameWindowSize.Width, SampleFramework.GameWindowSize.Height);\r
-                                       Graphics graphics = Graphics.FromImage( bitmap3 );\r
+\r
+                                       int newWidth = (int) ( bitmap1.Width * Scale.X );\r
+                                       int newHeight = (int) ( bitmap1.Height * Scale.Y );\r
+                                       Bitmap bitmap2 = new Bitmap( newWidth, newHeight );\r
+                                       Graphics graphic2 = Graphics.FromImage( bitmap2 );\r
+                                       graphic2.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;\r
+                                       graphic2.DrawImage( bitmap1, 0, 0, newWidth, newHeight );\r
+                                       graphic2.Dispose();\r
+                                       bitmap1.Dispose();\r
+\r
+\r
+                                       Bitmap bitmap3 = new Bitmap( SampleFramework.GameWindowSize.Width, SampleFramework.GameWindowSize.Height );\r
+                                       Graphics graphics3 = Graphics.FromImage( bitmap3 );\r
                                        for ( int i = 0; i < SampleFramework.GameWindowSize.Height; i += bitmap2.Size.Height )\r
                                        {\r
                                                for ( int j = 0; j < SampleFramework.GameWindowSize.Width; j += bitmap2.Size.Width )\r
                                                {\r
-                                                       graphics.DrawImage( bitmap2, j, i, bitmap2.Width, bitmap2.Height );\r
+                                                       graphics3.DrawImage( bitmap2, j, i, bitmap2.Width, bitmap2.Height );\r
                                                }\r
                                        }\r
-                                       graphics.Dispose();\r
+                                       graphics3.Dispose(); \r
+                                       \r
                                        bitmap2.Dispose();\r
                                        image = new Bitmap( CSkin.Path( DefaultBgFilename ) );\r
-                                       graphics = Graphics.FromImage( image );\r
+                                       graphics3 = Graphics.FromImage( image );\r
                                        ColorMatrix matrix2 = new ColorMatrix();\r
                                        matrix2.Matrix00 = 1f;\r
                                        matrix2.Matrix11 = 1f;\r
@@ -2925,10 +2989,10 @@ namespace DTXMania
                                        ColorMatrix newColorMatrix = matrix2;\r
                                        ImageAttributes imageAttr = new ImageAttributes();\r
                                        imageAttr.SetColorMatrix( newColorMatrix );\r
-                                       graphics.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, new Rectangle( 0, 0, SampleFramework.GameWindowSize.Width, SampleFramework.GameWindowSize.Height ), 0, 0, SampleFramework.GameWindowSize.Width, SampleFramework.GameWindowSize.Height, GraphicsUnit.Pixel, imageAttr );\r
                                        imageAttr.Dispose();\r
-                                       graphics.DrawImage( bitmap3, bgrect, bgrect.X, bgrect.Y, bgrect.Width, bgrect.Height, GraphicsUnit.Pixel );\r
-                                       graphics.Dispose();\r
+                                       graphics3.DrawImage( bitmap3, bgrect, bgrect.X, bgrect.Y, bgrect.Width, bgrect.Height, GraphicsUnit.Pixel );\r
+                                       graphics3.Dispose();\r
                                        bitmap3.Dispose();\r
                                        flag = false;\r
                                }\r
@@ -2960,6 +3024,7 @@ namespace DTXMania
                        try\r
                        {\r
                                this.tx背景 = new CTexture( CDTXMania.app.Device, image, CDTXMania.TextureFormat );\r
+                               this.tx背景.n透明度 = CDTXMania.ConfigIni.n背景の透過度;             // 背景動画用\r
                        }\r
                        catch ( CTextureCreateFailedException )\r
                        {\r
index 1a2cde1..7b86679 100644 (file)
@@ -37,74 +37,74 @@ namespace DTXMania
                        #region [ 判定ライン座標の初期化]\r
                        // Normal, Drums画面, 判定ライン\r
                        n判定ラインY座標元データ[ 0, 0, 0 ].Drums  = 0;              //未使用\r
-                       n判定ラインY座標元データ[ 0, 0, 0 ].Guitar = 95;\r
-                       n判定ラインY座標元データ[ 0, 0, 0 ].Bass   = 95;\r
+                       n判定ラインY座標元データ[ 0, 0, 0 ].Guitar = (int)(95 * Scale.Y);\r
+                       n判定ラインY座標元データ[ 0, 0, 0 ].Bass   = (int)(95 * Scale.Y);\r
                        // Reverse, Drums画面, 判定ライン\r
                        n判定ラインY座標元データ[ 1, 0, 0 ].Drums  = 0;              //未使用\r
-                       n判定ラインY座標元データ[ 1, 0, 0 ].Guitar = 374;\r
-                       n判定ラインY座標元データ[ 1, 0, 0 ].Bass   = 374;\r
+                       n判定ラインY座標元データ[ 1, 0, 0 ].Guitar = (int)(374 * Scale.Y);\r
+                       n判定ラインY座標元データ[ 1, 0, 0 ].Bass   = (int)(374 * Scale.Y);\r
                        // Normal, Drums画面, Wailing枠\r
                        n判定ラインY座標元データ[ 0, 0, 1 ].Drums  = 0;              //未使用\r
-                       n判定ラインY座標元データ[ 0, 0, 1 ].Guitar = 69;\r
-                       n判定ラインY座標元データ[ 0, 0, 1 ].Bass   = 69;\r
+                       n判定ラインY座標元データ[ 0, 0, 1 ].Guitar = (int)(69 * Scale.Y);\r
+                       n判定ラインY座標元データ[ 0, 0, 1 ].Bass   = (int)(69 * Scale.Y);\r
                        // Reverse, Drums画面, Wailing枠\r
                        n判定ラインY座標元データ[ 1, 0, 1 ].Drums  = 0;              //未使用\r
-                       n判定ラインY座標元データ[ 1, 0, 1 ].Guitar = 350;\r
-                       n判定ラインY座標元データ[ 1, 0, 1 ].Bass   = 350;\r
+                       n判定ラインY座標元データ[ 1, 0, 1 ].Guitar = (int)(350 * Scale.Y);\r
+                       n判定ラインY座標元データ[ 1, 0, 1 ].Bass   = (int)(350 * Scale.Y);\r
 \r
                        // Normal, GR画面, 判定ライン\r
                        n判定ラインY座標元データ[ 0, 1, 0 ].Drums  = 0;              //未使用\r
-                       n判定ラインY座標元データ[ 0, 1, 0 ].Guitar = 40;\r
-                       n判定ラインY座標元データ[ 0, 1, 0 ].Bass   = 40;\r
+                       n判定ラインY座標元データ[ 0, 1, 0 ].Guitar = (int)(40 * Scale.Y);\r
+                       n判定ラインY座標元データ[ 0, 1, 0 ].Bass   = (int)(40 * Scale.Y);\r
                        // Reverse, GR画面, 判定ライン\r
                        n判定ラインY座標元データ[ 1, 1, 0 ].Drums  = 0;              //未使用\r
-                       n判定ラインY座標元データ[ 1, 1, 0 ].Guitar = 369;\r
-                       n判定ラインY座標元データ[ 1, 1, 0 ].Bass   = 369;\r
+                       n判定ラインY座標元データ[ 1, 1, 0 ].Guitar = (int)(369 * Scale.Y);\r
+                       n判定ラインY座標元データ[ 1, 1, 0 ].Bass   = (int)(369 * Scale.Y);\r
                        // Normal, GR画面, Wailing枠\r
                        n判定ラインY座標元データ[ 0, 1, 1 ].Drums  = 0;              //未使用\r
-                       n判定ラインY座標元データ[ 0, 1, 1 ].Guitar = 11;\r
-                       n判定ラインY座標元データ[ 0, 1, 1 ].Bass   = 11;\r
+                       n判定ラインY座標元データ[ 0, 1, 1 ].Guitar = (int)(11 * Scale.Y);\r
+                       n判定ラインY座標元データ[ 0, 1, 1 ].Bass   = (int)(11 * Scale.Y);\r
                        // Reverse, GR画面, Wailing枠\r
                        n判定ラインY座標元データ[ 1, 1, 1 ].Drums  = 0;              //未使用\r
-                       n判定ラインY座標元データ[ 1, 1, 1 ].Guitar = 340;\r
-                       n判定ラインY座標元データ[ 1, 1, 1 ].Bass   = 340;\r
+                       n判定ラインY座標元データ[ 1, 1, 1 ].Guitar = (int)(340 * Scale.Y);\r
+                       n判定ラインY座標元データ[ 1, 1, 1 ].Bass   = (int)(340 * Scale.Y);\r
                        #endregion\r
 \r
                        n演奏RGBボタンY座標元データ = new STDGBVALUE<int>[ 2, 2, 2 ];\r
                        #region [ RGBボタン座標の初期化]\r
                        // Normal, Drums画面, RGBボタン\r
                        n演奏RGBボタンY座標元データ[ 0, 0, 0 ].Drums  = 0;           // 未使用\r
-                       n演奏RGBボタンY座標元データ[ 0, 0, 0 ].Guitar = 57;\r
-                       n演奏RGBボタンY座標元データ[ 0, 0, 0 ].Bass   = 57;\r
+                       n演奏RGBボタンY座標元データ[ 0, 0, 0 ].Guitar = (int)(57 * Scale.Y);\r
+                       n演奏RGBボタンY座標元データ[ 0, 0, 0 ].Bass   = (int)(57 * Scale.Y);\r
                        // Reverse, Drums画面, RGBボタン\r
                        n演奏RGBボタンY座標元データ[ 1, 0, 0 ].Drums  = 0;           // 未使用\r
-                       n演奏RGBボタンY座標元データ[ 1, 0, 0 ].Guitar = 57;\r
-                       n演奏RGBボタンY座標元データ[ 1, 0, 0 ].Bass   = 57;\r
+                       n演奏RGBボタンY座標元データ[ 1, 0, 0 ].Guitar = (int)(57 * Scale.Y);\r
+                       n演奏RGBボタンY座標元データ[ 1, 0, 0 ].Bass   = (int)(57 * Scale.Y);\r
                        // Normal, Drums画面, RGBボタン(Vシリーズ)\r
                        n演奏RGBボタンY座標元データ[ 0, 0, 1 ].Drums  = 0;           // 未使用\r
-                       n演奏RGBボタンY座標元データ[ 0, 0, 1 ].Guitar = 107;\r
-                       n演奏RGBボタンY座標元データ[ 0, 0, 1 ].Bass   = 107;\r
+                       n演奏RGBボタンY座標元データ[ 0, 0, 1 ].Guitar = (int)(107 * Scale.Y);\r
+                       n演奏RGBボタンY座標元データ[ 0, 0, 1 ].Bass   = (int)(107 * Scale.Y);\r
                        // Reverse, Drums画面, RGBボタン(Vシリーズ)\r
                        n演奏RGBボタンY座標元データ[ 1, 0, 1 ].Drums  = 0;           // 未使用\r
-                       n演奏RGBボタンY座標元データ[ 1, 0, 1 ].Guitar = 107;\r
-                       n演奏RGBボタンY座標元データ[ 1, 0, 1 ].Bass   = 107;\r
+                       n演奏RGBボタンY座標元データ[ 1, 0, 1 ].Guitar = (int)(107 * Scale.Y);\r
+                       n演奏RGBボタンY座標元データ[ 1, 0, 1 ].Bass   = (int)(107 * Scale.Y);\r
 \r
                        // Normal, GR画面, RGBボタン\r
                        n演奏RGBボタンY座標元データ[ 0, 1, 0 ].Drums  = 0;           // 未使用\r
-                       n演奏RGBボタンY座標元データ[ 0, 1, 0 ].Guitar = 3;\r
-                       n演奏RGBボタンY座標元データ[ 0, 1, 0 ].Bass   = 3;\r
+                       n演奏RGBボタンY座標元データ[ 0, 1, 0 ].Guitar = (int)(3 * Scale.Y);\r
+                       n演奏RGBボタンY座標元データ[ 0, 1, 0 ].Bass   = (int)(3 * Scale.Y);\r
                        // Reverse, GR画面, RGBボタン\r
                        n演奏RGBボタンY座標元データ[ 1, 1, 0 ].Drums  = 0;           // 未使用\r
-                       n演奏RGBボタンY座標元データ[ 1, 1, 0 ].Guitar = 3;\r
-                       n演奏RGBボタンY座標元データ[ 1, 1, 0 ].Bass   = 3;\r
+                       n演奏RGBボタンY座標元データ[ 1, 1, 0 ].Guitar = (int)(3 * Scale.Y);\r
+                       n演奏RGBボタンY座標元データ[ 1, 1, 0 ].Bass   = (int)(3 * Scale.Y);\r
                        // Normal, GR画面, RGBボタン(Vシリーズ)\r
                        n演奏RGBボタンY座標元データ[ 0, 1, 1 ].Drums  = 0;           // 未使用\r
-                       n演奏RGBボタンY座標元データ[ 0, 1, 1 ].Guitar = 44;\r
-                       n演奏RGBボタンY座標元データ[ 0, 1, 1 ].Bass   = 44;\r
+                       n演奏RGBボタンY座標元データ[ 0, 1, 1 ].Guitar = (int)(44 * Scale.Y);\r
+                       n演奏RGBボタンY座標元データ[ 0, 1, 1 ].Bass   = (int)(44 * Scale.Y);\r
                        // Reverse, GR画面, RGBボタン(Vシリーズ)\r
                        n演奏RGBボタンY座標元データ[ 1, 1, 1 ].Drums  = 0;           // 未使用\r
-                       n演奏RGBボタンY座標元データ[ 1, 1, 1 ].Guitar = 44;\r
-                       n演奏RGBボタンY座標元データ[ 1, 1, 1 ].Bass   = 44;\r
+                       n演奏RGBボタンY座標元データ[ 1, 1, 1 ].Guitar = (int)(44 * Scale.Y);\r
+                       n演奏RGBボタンY座標元データ[ 1, 1, 1 ].Bass = (int) ( 44 * Scale.Y );\r
                        #endregion\r
 \r
                        n判定位置 = new STDGBVALUE<E判定位置>();\r
@@ -129,7 +129,7 @@ namespace DTXMania
                /// <returns></returns>\r
                public int n判定ラインY座標( E楽器パート eInst, bool bGRmode, bool bReverse )\r
                {\r
-                       return n判定ラインY座標( eInst, bGRmode, bReverse, false );\r
+                       return n判定ラインY座標( eInst, bGRmode, bReverse, false, false );\r
                }\r
 \r
                public int n判定ラインY座標( E楽器パート eInst, bool bGRmode, bool bReverse, bool bWailingFrame )\r
@@ -165,12 +165,12 @@ namespace DTXMania
                                int ret = this.n判定ラインY座標元データ[ nReverse, nGRmode, nWailing ][ nInst ];             // 補正無しの値\r
                                if ( bReverse )\r
                                {\r
-                                       if ( n判定位置[ nInst ] == E判定位置.Lower ) ret += 13;\r
+                                       if ( n判定位置[ nInst ] == E判定位置.Lower ) ret += (int)(13 * Scale.Y);\r
                                        if ( b補正あり )            ret += nJudgeLinePosY_delta[ nInst ];\r
                                }\r
                                else\r
                                {\r
-                                       if ( n判定位置[ nInst ] == E判定位置.Lower ) ret += 52;\r
+                                       if ( n判定位置[ nInst ] == E判定位置.Lower ) ret += (int) ( 52 * Scale.Y );\r
                                        if ( b補正あり )            ret -= nJudgeLinePosY_delta[ nInst ];\r
                                }\r
                                return ret;\r
index 4d47b4b..7563932 100644 (file)
@@ -245,7 +245,9 @@ namespace DTXMania
                {\r
                        int yG = this.演奏判定ライン座標.n判定ラインY座標( E楽器パート.GUITAR, true, bReverse[ (int) E楽器パート.GUITAR ], true );\r
                        int yB = this.演奏判定ライン座標.n判定ラインY座標( E楽器パート.BASS,   true, bReverse[ (int) E楽器パート.BASS   ], true );\r
-                       base.t進行描画・Wailing枠( 0x8b, 0x251,\r
+                       base.t進行描画・Wailing枠(\r
+                               (int) ( 0x8b * Scale.X ),\r
+                               (int) ( 0x251 * Scale.X ),\r
                                yG,\r
                                yB\r
                                //CDTXMania.ConfigIni.bReverse.Guitar ? 340 : 11,\r
@@ -342,10 +344,11 @@ namespace DTXMania
                        base.t進行描画・チップ・ギターベース( configIni, ref dTX, ref pChip, inst,\r
                                演奏判定ライン座標.n判定ラインY座標( inst, true, false ),       // 40\r
                                演奏判定ライン座標.n判定ラインY座標( inst, true, true ),        // 369\r
-                               0, 409,                         // Y軸表示範囲\r
-                               26, 480,                        // openチップのX座標(Gt, Bs)\r
-                               0, 192, 103, 8,         // オープンチップの x, y, w, h\r
-                               32, 26, 98, 480, 552, 36, 32\r
+                               (int) ( 0 * Scale.Y ), (int) ( 409 * Scale.Y ),                         // Y軸表示範囲\r
+                               26, 480,                                        // openチップのX座標(Gt, Bs)\r
+                               0, 192, 103, 8, 32,                     // オープンチップregionの x, y, w, h, 通常チップのw\r
+                               26, 98, 480, 552,                       // GtのX, Gt左利きのX, BsのX, Bs左利きのX,\r
+                               36, 32                                          // 描画のX座標間隔, テクスチャのX座標間隔\r
                        );\r
                }\r
 #if false\r
index 8ce46ce..eee16af 100644 (file)
@@ -35,7 +35,7 @@ namespace DTXMania
                {\r
                        if( !base.b活性化してない )\r
                        {\r
-                               this.txDANGER = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenPlayDrums danger.png" ) );\r
+                               this.txDANGER = CDTXMania.tテクスチャの生成Af( CSkin.Path( @"Graphics\ScreenPlayDrums danger.png" ), false );\r
                                base.OnManagedリソースの作成();\r
                        }\r
                }\r
@@ -90,10 +90,10 @@ namespace DTXMania
                                {\r
                                        if( this.txDANGER != null )\r
                                        {\r
-                                               this.txDANGER.t2D描画( CDTXMania.app.Device, 0x26, ( i * 0x80 ) + num2, this.rc領域[ 0 ] );\r
-                                               this.txDANGER.t2D描画( CDTXMania.app.Device, 0x26, ( ( i * 0x80 ) + num2 ) + 0x40, this.rc領域[ 1 ] );\r
-                                               this.txDANGER.t2D描画( CDTXMania.app.Device, 0x12a, ( i * 0x80 ) + num2, this.rc領域[ 0 ] );\r
-                                               this.txDANGER.t2D描画( CDTXMania.app.Device, 0x12a, ( ( i * 0x80 ) + num2 ) + 0x40, this.rc領域[ 1 ] );\r
+                                               this.txDANGER.t2D描画( CDTXMania.app.Device, 0x26 * Scale.X, ( ( i * 0x80 ) + num2 ) * Scale.Y );\r
+                                               //this.txDANGER.t2D描画( CDTXMania.app.Device, 0x26 * Scale.X, ( ( ( i * 0x80 ) + num2 ) + 0x40 ) * Scale.Y, this.rc領域[ 1 ] );\r
+                                               this.txDANGER.t2D描画( CDTXMania.app.Device, 0x12a * Scale.X, ( ( i * 0x80 ) + num2 ) * Scale.Y );\r
+                                               //this.txDANGER.t2D描画( CDTXMania.app.Device, 0x12a * Scale.X, ( ( ( i * 0x80 ) + num2 ) + 0x40 ) * Scale.Y, this.rc領域[ 1 ] );\r
                                        }\r
                                }\r
                        }\r
@@ -110,8 +110,12 @@ namespace DTXMania
                //private CCounter ct透明度用;\r
 //             private const int n右位置 = 0x12a;\r
 //             private const int n左位置 = 0x26;\r
-               private readonly Rectangle[] rc領域 = new Rectangle[] { new Rectangle( 0, 0, 0x20, 0x40 ), new Rectangle( 0x20, 0, 0x20, 0x40 ) };\r
-               private CTexture txDANGER;\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
index 9321f85..3d00f0f 100644 (file)
@@ -26,17 +26,27 @@ namespace DTXMania
                                        for( int j = 0; j < 3; j++ )\r
                                        {\r
                                                int index = CDTXMania.ConfigIni.bLeft.Guitar ? ( 2 - j ) : j;\r
-                                               Rectangle rectangle = new Rectangle( index * 0x18, 0, 0x18, 0x20 );\r
-                                               if( base.b押下状態[ index ] )\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 += 0x20;\r
+                                                       rectangle.Y += (int) ( 0x20 * Scale.Y );\r
                                                }\r
                                                if( base.txRGB != null )\r
                                                {\r
-                                                       int y = 演奏判定ライン座標.n演奏RGBボタンY座標( E楽器パート.GUITAR, false, CDTXMania.ConfigIni.bReverse.Guitar );\r
                                                        //      int y = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.GUITAR, true, CDTXMania.ConfigIni.bReverse.Guitar, false, false );\r
-                                                       base.txRGB.t2D描画( CDTXMania.app.Device, 0x1fd + ( j * 0x1a ), y, rectangle );\r
                                                        //base.txRGB.t2D描画( CDTXMania.app.Device, 0x1fd + ( j * 0x1a ), 0x39, rectangle );\r
+                                                       int y = 演奏判定ライン座標.n演奏RGBボタンY座標( E楽器パート.GUITAR, false, CDTXMania.ConfigIni.bReverse.Guitar );\r
+                                                       base.txRGB.t2D描画(\r
+                                                               CDTXMania.app.Device,\r
+                                                               ( 0x1fd + ( j * 0x1a ) ) * Scale.X,\r
+                                                               y,\r
+                                                               rectangle\r
+                                                       );\r
                                                }\r
                                        }\r
                                }\r
@@ -45,15 +55,25 @@ namespace DTXMania
                                        for( int k = 0; k < 3; k++ )\r
                                        {\r
                                                int num4 = CDTXMania.ConfigIni.bLeft.Bass ? ( 2 - k ) : k;\r
-                                               Rectangle rectangle2 = new Rectangle( num4 * 0x18, 0, 0x18, 0x20 );\r
+                                               Rectangle rectangle2 = new Rectangle(\r
+                                                       (int) ( num4 * 0x18 * Scale.X ),\r
+                                                       (int) ( 0 * Scale.Y ),\r
+                                                       (int) ( 0x18 * Scale.X ),\r
+                                                       (int) ( 0x20 * Scale.Y )\r
+                                               );\r
                                                if( base.b押下状態[ num4 + 3 ] )\r
                                                {\r
-                                                       rectangle2.Y += 0x20;\r
+                                                       rectangle2.Y += (int) ( 0x20 * Scale.Y );\r
                                                }\r
                                                if( base.txRGB != null )\r
                                                {\r
                                                        int y = 演奏判定ライン座標.n演奏RGBボタンY座標( E楽器パート.BASS, false, CDTXMania.ConfigIni.bReverse.Bass );\r
-                                                       base.txRGB.t2D描画( CDTXMania.app.Device, 400 + ( k * 0x1a ), y, rectangle2 );\r
+                                                       base.txRGB.t2D描画(\r
+                                                               CDTXMania.app.Device,\r
+                                                               ( 400 + ( k * 0x1a )) * Scale.X,\r
+                                                               y,\r
+                                                               rectangle2\r
+                                                       );\r
                                                }\r
                                        }\r
                                }\r
index 44b5b86..113b24f 100644 (file)
@@ -116,8 +116,8 @@ namespace DTXMania
                                                                {\r
                                                                        num4 = ( 0x163 - num4 ) - 0xf4;\r
                                                                }\r
-                                                               Rectangle rectangle = new Rectangle( 0, 0, 0x1a, 0x7a );\r
-                                                               if( ( 0x163 - num4 ) < rectangle.Bottom )\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
@@ -126,25 +126,34 @@ namespace DTXMania
                                                                        rectangle.Y = -num4;\r
                                                                        num5 = -num4;\r
                                                                }\r
-                                                               if( ( rectangle.Top < rectangle.Bottom ) && ( this.txWailingBonus != null ) )\r
+                                                               if ( ( rectangle.Top < rectangle.Bottom ) && ( this.txWailingBonus != null ) )\r
                                                                {\r
-                                                                       this.txWailingBonus.t2D描画( CDTXMania.app.Device, x, ( ( ( e楽器パート == E楽器パート.GUITAR ) ? 0x39 : 0x39 ) + num4 ) + num5, rectangle );\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.app.Device, x, ( ( ( ( e楽器パート == E楽器パート.GUITAR ) ? 0x39 : 0x39 ) + num4 ) + num5 ) + 0x7a, rectangle );\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.app.Device,\r
+                                                                               x * Scale.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.app.Device, x, ( ( ( ( e楽器パート == E楽器パート.GUITAR ) ? 0x39 : 0x39 ) + num4 ) + num5 ) + 0x7a, rectangle );\r
+                                                               //}\r
                                                        }\r
                                                }\r
                                        }\r
index 94f618a..e954e5d 100644 (file)
@@ -116,29 +116,59 @@ namespace DTXMania
                                        base.b初めての進行描画 = false;\r
                 }\r
                 // 背景暗幕\r
-                Rectangle rectangle = new Rectangle(22, 0, 1, 1);\r
+                Rectangle rectangle = new Rectangle(\r
+                                       (int)(22 * Scale.X),\r
+                                       (int)(0 * Scale.Y),\r
+                                       (int)(1* Scale.X),\r
+                                       (int)(1 * Scale.Y)\r
+                               );\r
                 if (this.txグラフ != null)\r
                 {\r
                     this.txグラフ.vc拡大縮小倍率 = new Vector3(38f, 230f, 1f);\r
                     this.txグラフ.n透明度 = 128;\r
-                    this.txグラフ.t2D描画(CDTXMania.app.Device, 345, 88, rectangle);\r
+                    this.txグラフ.t2D描画(\r
+                                               CDTXMania.app.Device,\r
+                                               345 * Scale.X,\r
+                                               88 * Scale.Y,\r
+                                               rectangle\r
+                                       );\r
                 }\r
                 \r
                 // 基準線\r
-                rectangle = new Rectangle(20, 0, 1, 1);\r
+                rectangle = new Rectangle(\r
+                                       (int)(20 * Scale.X),\r
+                                       (int)(0 * Scale.Y),\r
+                                       (int)(1* Scale.X),\r
+                                       (int)(1 * Scale.Y)\r
+                               );\r
                 if (this.txグラフ != null)\r
                 {\r
                     this.txグラフ.n透明度 = 32;\r
                     this.txグラフ.vc拡大縮小倍率 = new Vector3(38f, 1f, 1f);\r
                     for (int i = 0; i < 20; i++)\r
                     {\r
-                        this.txグラフ.t2D描画(CDTXMania.app.Device, 345, 88 + (int)(11.5 * i), rectangle);\r
+                        this.txグラフ.t2D描画(\r
+                                                       CDTXMania.app.Device,\r
+                                                       345 * Scale.X,\r
+                                                       (88 + (int)(11.5 * i)) * Scale.Y,\r
+                                                       rectangle\r
+                                               );\r
                     }\r
                     this.txグラフ.vc拡大縮小倍率 = new Vector3(1f, 230f, 1f);\r
                     for (int i = 0; i < 2; i++)\r
                     {\r
-                        this.txグラフ.t2D描画(CDTXMania.app.Device, 349 + i * 18, 88 , rectangle);\r
-                        this.txグラフ.t2D描画(CDTXMania.app.Device, 360 + i * 18, 88 , rectangle);\r
+                        this.txグラフ.t2D描画(\r
+                                                       CDTXMania.app.Device,\r
+                                                       (349 + i * 18) * Scale.X,\r
+                                                       (88 * Scale.Y),\r
+                                                       rectangle\r
+                                               );\r
+                        this.txグラフ.t2D描画(\r
+                                                       CDTXMania.app.Device,\r
+                                                       (360 + i * 18) * Scale.X,\r
+                                                       (88 * Scale.Y),\r
+                                                       rectangle\r
+                                               );\r
                     }\r
                 }\r
                 if (this.txグラフ != null)\r
@@ -150,15 +180,25 @@ namespace DTXMania
                     // 基準線を越えたら線が黄色くなる\r
                     if (this.dbグラフ値現在 >= (100 - i * 10))\r
                     {\r
-                        rectangle = new Rectangle(21, 0, 1, 1);//黄色\r
-                        if (this.txグラフ != null)\r
+                        rectangle = new Rectangle(     //黄色\r
+                                                       (int)(21 * Scale.X),\r
+                                                       (int)(0 * Scale.Y),\r
+                                                       (int)(1* Scale.X),\r
+                                                       (int)(1 * Scale.Y)\r
+                                               );\r
+                                               if (this.txグラフ != null)\r
                         {\r
                             this.txグラフ.n透明度 = 224;\r
                         }\r
                     }\r
                     else\r
                     {\r
-                        rectangle = new Rectangle(20, 0, 1, 1);\r
+                        rectangle = new Rectangle(\r
+                                                       (int)(20 * Scale.X),\r
+                                                       (int)(0 * Scale.Y),\r
+                                                       (int)(1* Scale.X),\r
+                                                       (int)(1 * Scale.Y)\r
+                                               );\r
                         if (this.txグラフ != null)\r
                         {\r
                             this.txグラフ.n透明度 = 160;\r
@@ -167,7 +207,12 @@ namespace DTXMania
 \r
                     if (this.txグラフ != null)\r
                     {\r
-                        this.txグラフ.t2D描画(CDTXMania.app.Device, 345, 88 + i * 23, rectangle);\r
+                        this.txグラフ.t2D描画(\r
+                                                       CDTXMania.app.Device,\r
+                                                       345 * Scale.X,\r
+                                                       (88 + i * 23) * Scale.Y,\r
+                                                       rectangle\r
+                                               );\r
                     }\r
                 }\r
                 // グラフ\r
@@ -180,16 +225,32 @@ namespace DTXMania
                 {\r
                     this.dbグラフ値現在_表示 = this.dbグラフ値現在;\r
                 }\r
-                rectangle = new Rectangle(0, 0, 10, (int)(230f * this.dbグラフ値現在_表示 / 100));\r
-                if (this.txグラフ != null)\r
+                rectangle = new Rectangle(\r
+                                       (int)(0 * Scale.X),\r
+                                       (int)(0 * Scale.Y),\r
+                                       (int)(10* Scale.X),\r
+                                       (int)((int)(230f * this.dbグラフ値現在_表示 / 100) * Scale.Y)\r
+                               );\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描画(CDTXMania.app.Device, 350, 318 - (int)(230f * this.dbグラフ値現在_表示 / 100), rectangle);\r
+                    this.txグラフ.t2D描画(\r
+                                               CDTXMania.app.Device,\r
+                                               350 * Scale.X,\r
+                                               (318 - (int)(230f * this.dbグラフ値現在_表示 / 100)) * Scale.Y,\r
+                                               rectangle\r
+                                       );\r
                 }\r
                                for( int k = 0; k < 32; k++ )\r
                                {\r
-                    rectangle = new Rectangle(20, 0, 1, 1);\r
+                    rectangle = new Rectangle(\r
+                                               (int)(20 * Scale.X),\r
+                                               (int)(0 * Scale.Y),\r
+                                               (int)(1* Scale.X),\r
+                                               (int)(1 * Scale.Y)\r
+                                       );\r
                     if (this.txグラフ != null)\r
                     {\r
                                        this.stキラキラ[ k ].ct進行.t進行Loop();\r
@@ -199,7 +260,12 @@ namespace DTXMania
                         this.txグラフ.n透明度 = 138 - 2 * this.stキラキラ[ k ].Trans;\r
                         if ( num2 < (2.3f * this.dbグラフ値現在_表示) )\r
                         {\r
-                            this.txグラフ.t2D描画(CDTXMania.app.Device, 350+num1, 318-num2, rectangle);\r
+                            this.txグラフ.t2D描画(\r
+                                                               CDTXMania.app.Device,\r
+                                                               (350+num1) * Scale.X,\r
+                                                               (318-num2) * Scale.Y,\r
+                                                               rectangle\r
+                                                       );\r
                         }\r
                     }\r
                                }\r
@@ -217,26 +283,51 @@ namespace DTXMania
                 this.dbグラフ値直前 = this.dbグラフ値現在;\r
                 for (int m = 0; m < 16; m++)\r
                 {\r
-                    rectangle = new Rectangle(20, 0, 1, 1);\r
+                                       rectangle = new Rectangle(\r
+                                               (int) ( 20 * Scale.X ),\r
+                                               (int) ( 0 * Scale.Y ),\r
+                                               (int) ( 1 * Scale.X ),\r
+                                               (int) ( 1 * Scale.Y )\r
+                                       );\r
                     if ((this.stフラッシュ[ m ].y >= 0) && (this.stフラッシュ[ m ].y+3 < (int)(230f * this.dbグラフ値現在_表示 / 100)) && (this.txグラフ != null))\r
                     {\r
                         this.txグラフ.vc拡大縮小倍率 = new Vector3(10f, 1f, 1f);\r
                         this.txグラフ.n透明度 = this.stフラッシュ[ m ].Trans;\r
-                        this.txグラフ.t2D描画(CDTXMania.app.Device, 350, this.stフラッシュ[ m ].y + (318 - (int)(230f * this.dbグラフ値現在_表示 / 100)), rectangle);\r
+                        this.txグラフ.t2D描画(\r
+                                                       CDTXMania.app.Device,\r
+                                                       350 * Scale.X,\r
+                                                       (this.stフラッシュ[ m ].y + (318 - (int)(230f * this.dbグラフ値現在_表示 / 100))) * Scale.Y,\r
+                                                       rectangle\r
+                                               );\r
                         this.txグラフ.n透明度 = this.stフラッシュ[ m ].Trans;\r
-                        this.txグラフ.t2D描画(CDTXMania.app.Device, 350, this.stフラッシュ[ m ].y + 2 + (318 - (int)(230f * this.dbグラフ値現在_表示 / 100)), rectangle);\r
+                        this.txグラフ.t2D描画(\r
+                                                       CDTXMania.app.Device,\r
+                                                       350 * Scale.X,\r
+                                                       (this.stフラッシュ[ m ].y + 2 + (318 - (int)(230f * this.dbグラフ値現在_表示 / 100))) * Scale.Y,\r
+                                                       rectangle\r
+                                               );\r
                     }\r
                     this.stフラッシュ[ m ].y += 4;\r
                     this.stフラッシュ[ m ].Trans -= 4;\r
                 }\r
                 // --現在値_目標越\r
-                rectangle = new Rectangle(0, 0, 10, (int)(230f * this.dbグラフ値現在_表示 / 100));\r
+                               rectangle = new Rectangle(\r
+                                       (int) ( 0 * Scale.X ),\r
+                                       (int) ( 0 * Scale.Y ),\r
+                                       (int) ( 10 * Scale.X ),\r
+                                       (int) ( (int)(230f * this.dbグラフ値現在_表示 / 100) * Scale.Y )\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描画(CDTXMania.app.Device, 348, 318 - (int)(230f * this.dbグラフ値現在_表示 / 100), rectangle);\r
+                    this.txグラフ.t2D描画(\r
+                                               CDTXMania.app.Device,\r
+                                               348 * Scale.X,\r
+                                               (318 - (int)(230f * this.dbグラフ値現在_表示 / 100)) * Scale.Y,\r
+                                               rectangle\r
+                                       );\r
                     this.txグラフ.b加算合成 = false;\r
                 }\r
                 // --目標値\r
@@ -248,21 +339,41 @@ namespace DTXMania
                 {\r
                     this.dbグラフ値目標_表示 = this.dbグラフ値目標;\r
                 }\r
-                rectangle = new Rectangle(10, 0, 10, (int)(230f * this.dbグラフ値目標_表示 / 100));\r
+                rectangle = new Rectangle(\r
+                                       (int) ( 10 * Scale.X ),\r
+                                       (int) ( 0 * Scale.Y ),\r
+                                       (int) ( 10 * Scale.X ),\r
+                                       (int) ( (int)(230f * this.dbグラフ値目標_表示 / 100) * Scale.Y )\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描画(CDTXMania.app.Device, 368, 318 - (int)(230f * this.dbグラフ値目標_表示 / 100), rectangle);\r
+                    this.txグラフ.t2D描画(\r
+                                               CDTXMania.app.Device,\r
+                                               368 * Scale.X,\r
+                                               (318 - (int)(230f * this.dbグラフ値目標_表示 / 100))*Scale.Y,\r
+                                               rectangle\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描画(CDTXMania.app.Device, 366, 318 - (int)(230f * this.dbグラフ値目標_表示 / 100), rectangle);\r
+                    this.txグラフ.t2D描画(\r
+                                               CDTXMania.app.Device,\r
+                                               366 * Scale.X,\r
+                                               (318 - (int)(230f * this.dbグラフ値目標_表示 / 100)) * Scale.Y,\r
+                                               rectangle\r
+                                       );\r
                     this.txグラフ.b加算合成 = false;\r
                 }\r
                                for( int k = 32; k < 64; k++ )\r
                                {\r
-                    rectangle = new Rectangle(20, 0, 1, 1);\r
+                    rectangle = new Rectangle(\r
+                                               (int) ( 20 * Scale.X ),\r
+                                               (int) ( 0 * Scale.Y ),\r
+                                               (int) ( 1 * Scale.X ),\r
+                                               (int) ( 1 * Scale.Y )\r
+                                       );\r
                     if (this.txグラフ != null)\r
                     {\r
                                        this.stキラキラ[ k ].ct進行.t進行Loop();\r
@@ -272,7 +383,12 @@ namespace DTXMania
                         this.txグラフ.n透明度 = 138 - 2 * this.stキラキラ[ k ].Trans;\r
                         if ( num2 < (2.3f * this.dbグラフ値目標_表示) )\r
                         {\r
-                            this.txグラフ.t2D描画(CDTXMania.app.Device, 368+num1, 318-num2, rectangle);\r
+                            this.txグラフ.t2D描画(\r
+                                                               CDTXMania.app.Device,\r
+                                                               (368+num1) * Scale.X,\r
+                                                               (318-num2) * Scale.Y,\r
+                                                               rectangle\r
+                                                       );\r
                         }\r
                     }\r
                                }\r
index 27695ee..281d8ea 100644 (file)
@@ -96,7 +96,7 @@ namespace DTXMania
                                {\r
                                        CActLVLNFont.EFontColor efc = this.IsDanger( E楽器パート.DRUMS ) ?\r
                                                CActLVLNFont.EFontColor.Red : CActLVLNFont.EFontColor.Yellow;\r
-                                       actLVLNFont.t文字列描画( 15, 408, nRiskyTimes.ToString(), efc, CActLVLNFont.EFontAlign.Right );\r
+                                       actLVLNFont.t文字列描画( (int)(12 * Scale.X), (int)(408 * Scale.Y), nRiskyTimes.ToString(), efc, CActLVLNFont.EFontAlign.Right );\r
                                }\r
 \r
                                int num2 = ( this.dbゲージ値 == 1.0 ) ? ( (int) ( 352.0 * this.dbゲージ値 ) ) : ( (int) ( ( 352.0 * this.dbゲージ値 ) + ( 2.0 * Math.Sin( Math.PI * 2 * ( ( (double) this.ct本体振動.n現在の値 ) / 360.0 ) ) ) ) );\r
@@ -115,7 +115,9 @@ namespace DTXMania
                                int num5 = num2 + num3;\r
                                while( num5 > 0 )\r
                                {\r
-                                       Rectangle rectangle = ( this.dbゲージ値 == 1.0 ) ? new Rectangle( 0x10, 0, 0x10, 0x1b ) : new Rectangle( 0, 0, 0x10, 0x1b );\r
+                                       Rectangle rectangle = ( this.dbゲージ値 == 1.0 ) ?\r
+                                               new Rectangle( 0x10, 0, 0x10, 0x1b ) :\r
+                                               new Rectangle( 0, 0, 0x10, 0x1b );\r
                                        if( y < ( 0x195 - num2 ) )\r
                                        {\r
                                                int num6 = ( 0x195 - num2 ) - y;\r
@@ -132,12 +134,22 @@ namespace DTXMania
                                        {\r
                                                break;\r
                                        }\r
-                                       if( this.txゲージ != null )\r
+                                       Rectangle rectangle1 = rectangle;\r
+                                       if ( this.txゲージ != null )\r
                                        {\r
-                                               this.txゲージ.t2D描画( CDTXMania.app.Device, 6, y, rectangle );\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描画(\r
+                                                       CDTXMania.app.Device,\r
+                                                       6 * Scale.X,\r
+                                                       y * Scale.Y,\r
+                                                       rectangle\r
+                                               );\r
                                        }\r
-                                       num5 -= rectangle.Height;\r
-                                       y += rectangle.Height;\r
+                                       num5 -= rectangle1.Height;\r
+                                       y += rectangle1.Height - 1;             // 横線が入る問題を、取り急ぎ対策\r
                                }\r
                                if( this.txゲージ != null )\r
                                {\r
@@ -147,7 +159,12 @@ namespace DTXMania
                                }\r
                                for( int i = 0; i < 4; i++ )\r
                                {\r
-                                       Rectangle rectangle2 = new Rectangle( 0x40 + ( i * 0x10 ), 0, 0x10, 0x40 );\r
+                                       Rectangle rectangle2 = new Rectangle(\r
+                                               0x40 + ( i * 0x10 ),\r
+                                               0,\r
+                                               0x10,\r
+                                               0x40\r
+                                       );\r
                                        int num9 = ( 0x195 - num2 ) + ( i * 0x40 );\r
                                        if( num9 >= 0x195 )\r
                                        {\r
@@ -160,7 +177,17 @@ namespace DTXMania
                                        }\r
                                        if( ( rectangle2.Top < rectangle2.Bottom ) && ( this.txゲージ != null ) )\r
                                        {\r
-                                               this.txゲージ.t2D描画( CDTXMania.app.Device, 6, num9, rectangle2 );\r
+                                               rectangle2.X = (int) ( rectangle2.X * Scale.X );\r
+                                               rectangle2.Y = (int) ( rectangle2.Y * Scale.Y + 0.5f );\r
+                                               rectangle2.Width = (int) ( rectangle2.Width * Scale.X );\r
+                                               rectangle2.Height = (int) ( rectangle2.Height * Scale.Y + 0.5f );\r
+\r
+                                               this.txゲージ.t2D描画(\r
+                                                       CDTXMania.app.Device,\r
+                                                       (int)(6 * Scale.X),\r
+                                                       (int)(num9 * Scale.Y + 0.5f),\r
+                                                       rectangle2\r
+                                               );\r
                                        }\r
                                }\r
                                if( this.txゲージ != null )\r
@@ -169,7 +196,12 @@ namespace DTXMania
                                        this.txゲージ.n透明度 = 0xff;\r
                                        this.txゲージ.b加算合成 = false;\r
                                }\r
-                               Rectangle rectangle3 = new Rectangle( 0x30, 0, 0x10, 0x10 );\r
+                               Rectangle rectangle3 = new Rectangle(\r
+                                       0x30,\r
+                                       0,\r
+                                       0x10,\r
+                                       0x10\r
+                               );\r
                                int num11 = 0x195 - num2;\r
                                if( num11 < 0x195 )\r
                                {\r
@@ -180,7 +212,16 @@ namespace DTXMania
                                        }\r
                                        if( ( rectangle3.Top < rectangle3.Bottom ) && ( this.txゲージ != null ) )\r
                                        {\r
-                                               this.txゲージ.t2D描画( CDTXMania.app.Device, 6, num11, rectangle3 );\r
+                                               rectangle3.X = (int) ( rectangle3.X * Scale.X );\r
+                                               rectangle3.Y = (int) ( rectangle3.Y * Scale.Y + 0.5f );\r
+                                               rectangle3.Width = (int) ( rectangle3.Width * Scale.X );\r
+                                               rectangle3.Height = (int) ( rectangle3.Height * Scale.Y + 0.5f );\r
+                                               this.txゲージ.t2D描画(\r
+                                                       CDTXMania.app.Device,\r
+                                                       (int)(6*Scale.X),\r
+                                                       (int)(num11*Scale.Y + 0.5f),\r
+                                                       rectangle3\r
+                                               );\r
                                        }\r
                                }\r
                                if( this.txゲージ != null )\r
@@ -195,12 +236,22 @@ namespace DTXMania
                                        int num16 = ( this.st白い星[ j ].ct進行.n現在の値 < 0xb0 ) ? 0 : ( (int) ( 255.0 * ( ( (double) ( this.st白い星[ j ].ct進行.n現在の値 - 0xb0 ) ) / 176.0 ) ) );\r
                                        if( ( num16 != 0 ) && ( num15 < 0x191 ) )\r
                                        {\r
-                                               Rectangle rectangle4 = new Rectangle( 0, 0x20, 0x20, 0x20 );\r
+                                               Rectangle rectangle4 = 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透明度 = num16;\r
-                                                       this.txゲージ.t2D描画( CDTXMania.app.Device, x, num15, rectangle4 );\r
+                                                       this.txゲージ.t2D描画(\r
+                                                               CDTXMania.app.Device,\r
+                                                               (int)(x*Scale.X),\r
+                                                               (int)(num15*Scale.Y+0.5f),\r
+                                                               rectangle4\r
+                                                       );\r
                                                }\r
                                        }\r
                                }\r
index 4c101ce..11ea71a 100644 (file)
@@ -13,10 +13,10 @@ namespace DTXMania
                        int x, y;\r
                        if( CDTXMania.DTX.bチップがある.Bass )\r
                        {\r
-                               x = 0x222;\r
+                               x = ( int ) ( 0x222 * Scale.X );\r
                                //y = CDTXMania.ConfigIni.bReverse.Guitar ? 0xaf : 270;\r
                                y = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.GUITAR, false, CDTXMania.ConfigIni.bReverse.Guitar );\r
-                               y += CDTXMania.ConfigIni.bReverse.Guitar ? -134 : +174;\r
+                               y += CDTXMania.ConfigIni.bReverse.Guitar ? (int) ( -134 * Scale.Y ) : (int) ( +174 * Scale.Y );\r
                                if ( base.txCOMBOギター != null )\r
                                {\r
                                        base.txCOMBOギター.n透明度 = 120;\r
@@ -24,10 +24,10 @@ namespace DTXMania
                        }\r
                        else\r
                        {\r
-                               x = 0x1c0;\r
+                               x = (int) ( 0x1c0 * Scale.X );\r
                                //y = CDTXMania.ConfigIni.bReverse.Guitar ? 0xee : 0xcf;\r
                                y = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.GUITAR, false, CDTXMania.ConfigIni.bReverse.Guitar );\r
-                               y += CDTXMania.ConfigIni.bReverse.Guitar ? -134 : +174;\r
+                               y += CDTXMania.ConfigIni.bReverse.Guitar ? (int) ( -134 * Scale.Y ) : (int) ( +174 * Scale.Y );\r
                                if ( base.txCOMBOギター != null )\r
                                {\r
                                        base.txCOMBOギター.n透明度 = 0xff;\r
@@ -41,10 +41,10 @@ namespace DTXMania
                }\r
                protected override void tコンボ表示・ベース( int nCombo値, int nジャンプインデックス )\r
                {\r
-                       int x = 0x1b5;\r
+                       int x = ( int ) ( 0x1b5 * Scale.X );\r
                        //int y = CDTXMania.ConfigIni.bReverse.Bass ? 0xaf : 270;\r
                        int y = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.BASS, false, CDTXMania.ConfigIni.bReverse.Bass );\r
-                       y += CDTXMania.ConfigIni.bReverse.Bass ? -134 : +174;\r
+                       y += CDTXMania.ConfigIni.bReverse.Guitar ? (int) ( -134 * Scale.Y ) : (int) ( +174 * Scale.Y );\r
                        if ( base.txCOMBOギター != null )\r
                        {\r
                                base.txCOMBOギター.n透明度 = 120;\r
index f371bee..ddd8b01 100644 (file)
@@ -39,26 +39,46 @@ namespace DTXMania
             {\r
                 Rectangle rectangle;\r
                 char ch = str[i];\r
-                if (ch.Equals(' '))\r
-                {\r
-                    rectangle = new Rectangle(0, 0, 12, 0x18);\r
-                }\r
-                else\r
-                {\r
-                    int num4 = int.Parse(str.Substring(i, 1));\r
-                    if (num4 < 5)\r
-                    {\r
-                        rectangle = new Rectangle(num4 * 12, 0, 12, 0x18);\r
-                    }\r
-                    else\r
-                    {\r
-                        rectangle = new Rectangle((num4 - 5) * 12, 0x18, 12, 0x18);\r
-                    }\r
-                }\r
-                if (base.txScore != null)\r
-                {\r
-                    base.txScore.t2D描画(CDTXMania.app.Device, 0x164 + (i * 12), 14, rectangle);\r
-                }\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.app.Device,\r
+                                               ( 0x164 + ( i * 12 ) ) * Scale.X,\r
+                                               14 * Scale.Y,\r
+                                               rectangle\r
+                                       );\r
+                               }\r
             }\r
         }\r
         return 0;\r
index 6a2318f..57945e3 100644 (file)
@@ -64,19 +64,38 @@ namespace DTXMania
                }\r
                public override int On進行描画()\r
                {\r
-                       if( !base.b活性化してない && ( this.txStatusPanels != null ) )\r
+                       if ( !base.b活性化してない && ( this.txStatusPanels != null ) )\r
                        {\r
-                               this.txStatusPanels.t2D描画( CDTXMania.app.Device, 0x26f, 0x14f, new Rectangle( this.nStatus * 15, 0xb7, 15, 0x49 ) );\r
+                               this.txStatusPanels.t2D描画(\r
+                                       CDTXMania.app.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.ConfigIni.n譜面スクロール速度.Drums;\r
-                               if( drums < 0 )\r
+                               if ( drums < 0 )\r
                                {\r
                                        drums = 0;\r
                                }\r
-                               if( drums > 15 )\r
+                               if ( drums > 15 )\r
                                {\r
                                        drums = 15;\r
                                }\r
-                               this.txStatusPanels.t2D描画( CDTXMania.app.Device, 0x26f, 0x3b, new Rectangle( drums * 15, 0, 15, 0xac ) );\r
+                               this.txStatusPanels.t2D描画( CDTXMania.app.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
index 5dd2b66..aaccb11 100644 (file)
@@ -248,8 +248,8 @@ namespace DTXMania
                                                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
-                                                       (this.nレーンの中央X座標[this.st火花[i].nLane] + (((float)Math.Cos((double)num3)) * num5)) - SampleFramework.GameWindowSize.Width / 2,\r
-                                                       -( ( ( CDTXMania.ConfigIni.bReverse.Drums ? 55f - nJudgeLinePosY_delta_Drums : 425f + nJudgeLinePosY_delta_Drums ) + ( ( (float)Math.Sin( (double)num3 ) ) * num5 ) ) - SampleFramework.GameWindowSize.Height / 2 ),\r
+                                                       ( this.nレーンの中央X座標[ this.st火花[ i ].nLane ] * Scale.X + ( ( (float) Math.Cos( (double) num3 ) ) * num5 ) ) - SampleFramework.GameWindowSize.Width / 2,\r
+                                                       -( ( ( CDTXMania.ConfigIni.bReverse.Drums ? 55f * Scale.Y - nJudgeLinePosY_delta_Drums : 425f * Scale.Y + nJudgeLinePosY_delta_Drums ) + ( ( (float) Math.Sin( (double) num3 ) ) * num5 ) ) - SampleFramework.GameWindowSize.Height / 2 ),\r
                                                        0f\r
                                                );\r
                                                if( this.tx火花 != null )\r
@@ -281,8 +281,8 @@ namespace DTXMania
                                                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 - SampleFramework.GameWindowSize.Height / 2),\r
+                                                       this.st青い星[ i ].fX * Scale.X - SampleFramework.GameWindowSize.Width / 2,\r
+                                                       -( this.st青い星[ i ].fY * Scale.Y - SampleFramework.GameWindowSize.Height / 2 ),\r
                                                        0f\r
                                                );\r
                                                if( this.tx青い星 != null )\r
@@ -333,8 +333,8 @@ namespace DTXMania
                                                        matrix3 *= Matrix.RotationX( this.st大波[ i ].f角度X );\r
                                                        matrix3 *= Matrix.RotationY( this.st大波[ i ].f角度Y );\r
                                                        matrix3 *= Matrix.Translation(\r
-                                                               this.nレーンの中央X座標[this.st大波[i].nLane] - SampleFramework.GameWindowSize.Width / 2,\r
-                                                               -((CDTXMania.ConfigIni.bReverse.Drums ? 55f - nJudgeLinePosY_delta_Drums : 425f + nJudgeLinePosY_delta_Drums ) - SampleFramework.GameWindowSize.Height / 2),\r
+                                                               this.nレーンの中央X座標[ this.st大波[ i ].nLane ] * Scale.X - SampleFramework.GameWindowSize.Width / 2,\r
+                                                               -( ( CDTXMania.ConfigIni.bReverse.Drums ? 55f * Scale.Y - nJudgeLinePosY_delta_Drums : 425f * Scale.Y + nJudgeLinePosY_delta_Drums ) - SampleFramework.GameWindowSize.Height / 2 ),\r
                                                                0f );\r
                                                        if( this.tx大波 != null )\r
                                                        {\r
@@ -368,8 +368,8 @@ namespace DTXMania
                                                        matrix4 *= Matrix.RotationX( this.st細波[ i ].f角度X );\r
                                                        matrix4 *= Matrix.RotationY( this.st細波[ i ].f角度Y );\r
                                                        matrix4 *= Matrix.Translation(\r
-                                                               this.nレーンの中央X座標[this.st細波[i].nLane] - SampleFramework.GameWindowSize.Width / 2,\r
-                                                               -((CDTXMania.ConfigIni.bReverse.Drums ? 55f - nJudgeLinePosY_delta_Drums : 425f + nJudgeLinePosY_delta_Drums ) - SampleFramework.GameWindowSize.Height / 2),\r
+                                                               this.nレーンの中央X座標[ this.st細波[ i ].nLane ] * Scale.X - SampleFramework.GameWindowSize.Width / 2,\r
+                                                               -( ( CDTXMania.ConfigIni.bReverse.Drums ? 55f * Scale.Y - nJudgeLinePosY_delta_Drums : 425f * Scale.Y + nJudgeLinePosY_delta_Drums ) - SampleFramework.GameWindowSize.Height / 2 ),\r
                                                                0f\r
                                                        );\r
                                                        if (this.tx細波 != null)\r
index 4e6497e..f7da92b 100644 (file)
@@ -2,6 +2,7 @@
 using System.Collections.Generic;\r
 using System.Text;\r
 using System.Drawing;\r
+using System.Diagnostics;\r
 \r
 namespace DTXMania\r
 {\r
@@ -21,16 +22,11 @@ namespace DTXMania
                        {\r
                                index = ( ( index / 3 ) * 3 ) + ( 2 - ( index % 3 ) );\r
                        }\r
-                       int x = this.pt中央[ index ].X;\r
+                       int x = (int) ( this.pt中央[ index ].X * Scale.X );\r
                        //int y = this.pt中央[ index ].Y;\r
                        int y = 演奏判定ライン座標.n判定ラインY座標( e楽器パート, false, CDTXMania.ConfigIni.bReverse[ (int) e楽器パート ] );\r
-                       //if ( CDTXMania.ConfigIni.bReverse[ (int)e楽器パート ] )\r
-                       //{\r
-                       //    y = 374;\r
 \r
-                       //}\r
                        base.Start( nLane, x, y, 演奏判定ライン座標 );\r
-\r
                }\r
 \r
 \r
index dc06d49..4ac93f9 100644 (file)
@@ -17,53 +17,53 @@ namespace DTXMania
                        ST基本位置 st基本位置 = new ST基本位置();\r
                        st基本位置.x = 0x16;\r
                        st基本位置.y = 0;\r
-                       st基本位置.rc = new Rectangle( 0, 0, 0x40, 0x40 );\r
+                       st基本位置.rc = new Rectangle( (int) ( 0 * Scale.X ), (int) ( 0 * Scale.Y ), (int) ( 0x40 * Scale.X ), (int) ( 0x40 * Scale.Y ) );\r
                        st基本位置Array[ 0 ] = st基本位置;\r
                        ST基本位置 st基本位置2 = new ST基本位置();\r
                        st基本位置2.x = 0x3d;\r
                        st基本位置2.y = 11;\r
-                       st基本位置2.rc = new Rectangle( 0x40, 0, 0x40, 0x40 );\r
+                       st基本位置2.rc = new Rectangle( (int) ( 0x40 * Scale.X ), (int) ( 0 * Scale.Y ), (int) ( 0x40 * Scale.X ), (int) ( 0x40 * Scale.Y ) );\r
                        st基本位置Array[ 1 ] = st基本位置2;\r
                        ST基本位置 st基本位置3 = new ST基本位置();\r
                        st基本位置3.x = 0x60;\r
                        st基本位置3.y = 8;\r
-                       st基本位置3.rc = new Rectangle( 0x80, 0, 0x40, 0x40 );\r
+                       st基本位置3.rc = new Rectangle( (int) ( 0x80 * Scale.X ), (int) ( 0 * Scale.Y ), (int) ( 0x40 * Scale.X ), (int) ( 0x40 * Scale.Y ) );\r
                        st基本位置Array[ 2 ] = st基本位置3;\r
                        ST基本位置 st基本位置4 = new ST基本位置();\r
                        st基本位置4.x = 0x8a;\r
                        st基本位置4.y = 7;\r
-                       st基本位置4.rc = new Rectangle( 0, 0x40, 0x40, 0x40 );\r
+                       st基本位置4.rc = new Rectangle( (int) ( 0 * Scale.X ), (int) ( 0x40 * Scale.Y ), (int) ( 0x40 * Scale.X ), (int) ( 0x40 * Scale.Y ) );\r
                        st基本位置Array[ 3 ] = st基本位置4;\r
                        ST基本位置 st基本位置5 = new ST基本位置();\r
                        st基本位置5.x = 0xb3;\r
                        st基本位置5.y = 0;\r
-                       st基本位置5.rc = new Rectangle( 0x40, 0x40, 0x40, 0x40 );\r
+                       st基本位置5.rc = new Rectangle( (int) ( 0x40 * Scale.X ), (int) ( 0x40 * Scale.Y ), (int) ( 0x40 * Scale.X ), (int) ( 0x40 * Scale.Y ) );\r
                        st基本位置Array[ 4 ] = st基本位置5;\r
                        ST基本位置 st基本位置6 = new ST基本位置();\r
                        st基本位置6.x = 0xd4;\r
                        st基本位置6.y = 5;\r
-                       st基本位置6.rc = new Rectangle( 0x80, 0x40, 0x40, 0x40 );\r
+                       st基本位置6.rc = new Rectangle( (int) ( 0x80 * Scale.X ), (int) ( 0x40 * Scale.Y ), (int) ( 0x40 * Scale.X ), (int) ( 0x40 * Scale.Y ) );\r
                        st基本位置Array[ 5 ] = st基本位置6;\r
                        ST基本位置 st基本位置7 = new ST基本位置();\r
                        st基本位置7.x = 250;\r
                        st基本位置7.y = 15;\r
-                       st基本位置7.rc = new Rectangle( 0, 0x80, 0x40, 0x40 );\r
+                       st基本位置7.rc = new Rectangle( (int) ( 0 * Scale.X ), (int) ( 0x80 * Scale.Y ), (int) ( 0x40 * Scale.X ), (int) ( 0x40 * Scale.Y ) );\r
                        st基本位置Array[ 6 ] = st基本位置7;\r
                        ST基本位置 st基本位置8 = new ST基本位置();\r
                        st基本位置8.x = 0x11a;\r
                        st基本位置8.y = 0;\r
-                       st基本位置8.rc = new Rectangle( 0x40, 0x80, 0x40, 0x40 );\r
+                       st基本位置8.rc = new Rectangle( (int) ( 0x40 * Scale.X ), (int) ( 0x80 * Scale.Y ), (int) ( 0x40 * Scale.X ), (int) ( 0x40 * Scale.Y ) );\r
                        st基本位置Array[ 7 ] = st基本位置8;\r
                        ST基本位置 st基本位置9 = new ST基本位置();\r
                        st基本位置9.x = 0x130;\r
                        st基本位置9.y = 8;\r
-                       st基本位置9.rc = new Rectangle( 0x80, 0x80, 0x40, 0x40 );\r
+                       st基本位置9.rc = new Rectangle( (int) ( 0x80 * Scale.X ), (int) ( 0x80 * Scale.Y ), (int) ( 0x40 * Scale.X ), (int) ( 0x40 * Scale.Y ) );\r
                        st基本位置Array[ 8 ] = st基本位置9;\r
                        this.st基本位置 = st基本位置Array;\r
                        base.b活性化してない = true;\r
                }\r
-               \r
-               \r
+\r
+\r
                // メソッド\r
 \r
                public void Hit( int nLane )\r
@@ -79,7 +79,7 @@ namespace DTXMania
                {\r
                        this.nフラッシュ制御タイマ = -1;\r
                        this.nY座標制御タイマ = -1;\r
-                       for( int i = 0; i < 9; i++ )\r
+                       for ( int i = 0; i < 9; i++ )\r
                        {\r
                                STパッド状態 stパッド状態2 = new STパッド状態();\r
                                STパッド状態 stパッド状態 = stパッド状態2;\r
@@ -92,7 +92,7 @@ namespace DTXMania
                }\r
                public override void OnManagedリソースの作成()\r
                {\r
-                       if( !base.b活性化してない )\r
+                       if ( !base.b活性化してない )\r
                        {\r
                                this.txパッド = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenPlayDrums pads.png" ) );\r
                                this.tx光るパッド = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenPlayDrums pads flush.png" ) );\r
@@ -101,7 +101,7 @@ namespace DTXMania
                }\r
                public override void OnManagedリソースの解放()\r
                {\r
-                       if( !base.b活性化してない )\r
+                       if ( !base.b活性化してない )\r
                        {\r
                                CDTXMania.tテクスチャの解放( ref this.txパッド );\r
                                CDTXMania.tテクスチャの解放( ref this.tx光るパッド );\r
@@ -110,24 +110,24 @@ namespace DTXMania
                }\r
                public override int On進行描画()\r
                {\r
-                       if( !base.b活性化してない )\r
+                       if ( !base.b活性化してない )\r
                        {\r
-                               if( base.b初めての進行描画 )\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 num = FDK.CSound管理.rc演奏用タイマ.n現在時刻;\r
-                               if( num < this.nフラッシュ制御タイマ )\r
+                               if ( num < this.nフラッシュ制御タイマ )\r
                                {\r
                                        this.nフラッシュ制御タイマ = num;\r
                                }\r
-                               while( ( num - this.nフラッシュ制御タイマ ) >= 15 )\r
+                               while ( ( num - this.nフラッシュ制御タイマ ) >= 15 )\r
                                {\r
-                                       for( int j = 0; j < 9; j++ )\r
+                                       for ( int j = 0; j < 9; j++ )\r
                                        {\r
-                                               if( this.stパッド状態[ j ].n明るさ > 0 )\r
+                                               if ( this.stパッド状態[ j ].n明るさ > 0 )\r
                                                {\r
                                                        this.stパッド状態[ j ].n明るさ--;\r
                                                }\r
@@ -135,21 +135,21 @@ namespace DTXMania
                                        this.nフラッシュ制御タイマ += 15;\r
                                }\r
                                long num3 = CSound管理.rc演奏用タイマ.n現在時刻;\r
-                               if( num3 < this.nY座標制御タイマ )\r
+                               if ( num3 < this.nY座標制御タイマ )\r
                                {\r
                                        this.nY座標制御タイマ = num3;\r
                                }\r
-                               while( ( num3 - this.nY座標制御タイマ ) >= 5 )\r
+                               while ( ( num3 - this.nY座標制御タイマ ) >= 5 )\r
                                {\r
-                                       for( int k = 0; k < 9; k++ )\r
+                                       for ( int k = 0; k < 9; k++ )\r
                                        {\r
                                                this.stパッド状態[ k ].nY座標オフセットdot += this.stパッド状態[ k ].nY座標加速度dot;\r
-                                               if( this.stパッド状態[ k ].nY座標オフセットdot > 15 )\r
+                                               if ( this.stパッド状態[ k ].nY座標オフセットdot > 15 )\r
                                                {\r
                                                        this.stパッド状態[ k ].nY座標オフセットdot = 15;\r
                                                        this.stパッド状態[ k ].nY座標加速度dot = -1;\r
                                                }\r
-                                               else if( this.stパッド状態[ k ].nY座標オフセットdot < 0 )\r
+                                               else if ( this.stパッド状態[ k ].nY座標オフセットdot < 0 )\r
                                                {\r
                                                        this.stパッド状態[ k ].nY座標オフセットdot = 0;\r
                                                        this.stパッド状態[ k ].nY座標加速度dot = 0;\r
@@ -157,19 +157,28 @@ namespace DTXMania
                                        }\r
                                        this.nY座標制御タイマ += 5;\r
                                }\r
-                               for( int i = 0; i < 9; i++ )\r
+                               for ( int i = 0; i < 9; i++ )\r
                                {\r
                                        int index = this.n描画順[ i ];\r
                                        int x = this.st基本位置[ index ].x;\r
                                        int y = ( this.st基本位置[ index ].y + ( CDTXMania.ConfigIni.bReverse.Drums ? -10 : 0x19e ) ) + this.stパッド状態[ index ].nY座標オフセットdot;\r
-                                       if( this.txパッド != null )\r
+                                       if ( this.txパッド != null )\r
                                        {\r
-                                               this.txパッド.t2D描画( CDTXMania.app.Device, x, y, this.st基本位置[ index ].rc );\r
+                                               this.txパッド.t2D描画(\r
+                                                       CDTXMania.app.Device,\r
+                                                       x * Scale.X,\r
+                                                       y * Scale.Y,\r
+                                                       this.st基本位置[ index ].rc\r
+                                               );\r
                                        }\r
-                                       if( this.tx光るパッド != null )\r
+                                       if ( this.tx光るパッド != null )\r
                                        {\r
                                                this.tx光るパッド.n透明度 = ( this.stパッド状態[ index ].n明るさ * 40 ) + 15;\r
-                                               this.tx光るパッド.t2D描画( CDTXMania.app.Device, x, y, this.st基本位置[ index ].rc );\r
+                                               this.tx光るパッド.t2D描画(\r
+                                                       CDTXMania.app.Device,\r
+                                                       x * Scale.X,\r
+                                                       y * Scale.Y,\r
+                                                       this.st基本位置[ index ].rc );\r
                                        }\r
                                }\r
                        }\r
index c4dca49..dd93a1f 100644 (file)
@@ -50,8 +50,8 @@ namespace DTXMania
                        this.strファイル名 = new string[] { @"Graphics\ScreenPlayDrums lane flush cymbal.png", @"Graphics\ScreenPlayDrums lane flush hihat.png", @"Graphics\ScreenPlayDrums lane flush snare.png", @"Graphics\ScreenPlayDrums lane flush bass.png", @"Graphics\ScreenPlayDrums lane flush hitom.png", @"Graphics\ScreenPlayDrums lane flush lowtom.png", @"Graphics\ScreenPlayDrums lane flush floortom.png", @"Graphics\ScreenPlayDrums lane flush cymbal.png", @"Graphics\ScreenPlayDrums lane flush cymbal reverse.png", @"Graphics\ScreenPlayDrums lane flush hihat reverse.png", @"Graphics\ScreenPlayDrums lane flush snare reverse.png", @"Graphics\ScreenPlayDrums lane flush bass reverse.png", @"Graphics\ScreenPlayDrums lane flush hitom reverse.png", @"Graphics\ScreenPlayDrums lane flush lowtom reverse.png", @"Graphics\ScreenPlayDrums lane flush floortom reverse.png", @"Graphics\ScreenPlayDrums lane flush cymbal reverse.png" };\r
                        base.b活性化してない = true;\r
                }\r
-               \r
-               \r
+\r
+\r
                // メソッド\r
 \r
                public void Start( Eレーン lane, float f強弱度合い )\r
@@ -65,7 +65,7 @@ namespace DTXMania
 \r
                public override void On活性化()\r
                {\r
-                       for( int i = 0; i < 8; i++ )\r
+                       for ( int i = 0; i < 8; i++ )\r
                        {\r
                                this.ct進行[ i ] = new CCounter();\r
                        }\r
@@ -73,7 +73,7 @@ namespace DTXMania
                }\r
                public override void On非活性化()\r
                {\r
-                       for( int i = 0; i < 8; i++ )\r
+                       for ( int i = 0; i < 8; i++ )\r
                        {\r
                                this.ct進行[ i ] = null;\r
                        }\r
@@ -81,9 +81,9 @@ namespace DTXMania
                }\r
                public override void OnManagedリソースの作成()\r
                {\r
-                       if( !base.b活性化してない )\r
+                       if ( !base.b活性化してない )\r
                        {\r
-                               for( int i = 0; i < 0x10; i++ )\r
+                               for ( int i = 0; i < 0x10; i++ )\r
                                {\r
                                        this.txFlush[ i ] = CDTXMania.tテクスチャの生成( CSkin.Path( this.strファイル名[ i ] ) );\r
                                }\r
@@ -92,9 +92,9 @@ namespace DTXMania
                }\r
                public override void OnManagedリソースの解放()\r
                {\r
-                       if( !base.b活性化してない )\r
+                       if ( !base.b活性化してない )\r
                        {\r
-                               for( int i = 0; i < 0x10; i++ )\r
+                               for ( int i = 0; i < 0x10; i++ )\r
                                {\r
                                        CDTXMania.tテクスチャの解放( ref this.txFlush[ i ] );\r
                                }\r
@@ -103,48 +103,68 @@ namespace DTXMania
                }\r
                public override int On進行描画()\r
                {\r
-                       if( !base.b活性化してない )\r
+                       if ( !base.b活性化してない )\r
                        {\r
-                               for( int i = 0; i < 8; i++ )\r
+                               for ( int i = 0; i < 8; i++ )\r
                                {\r
-                                       if( !this.ct進行[ i ].b停止中 )\r
+                                       if ( !this.ct進行[ i ].b停止中 )\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
                                                }\r
                                        }\r
                                }\r
-                               for( int j = 0; j < 8; j++ )\r
+                               for ( int j = 0; j < 8; j++ )\r
                                {\r
-                                       if( !this.ct進行[ j ].b停止中 )\r
+                                       if ( !this.ct進行[ j ].b停止中 )\r
                                        {\r
                                                int x = this.stレーンサイズ[ j ].x;\r
                                                int w = this.stレーンサイズ[ j ].w;\r
-                                               for( int k = 0; k < 3; k++ )\r
+                                               for ( int k = 0; k < 3; k++ )\r
                                                {\r
-                                                       if( CDTXMania.ConfigIni.bReverse.Drums )\r
+                                                       if ( CDTXMania.ConfigIni.bReverse.Drums )\r
                                                        {\r
                                                                int y = ( k * 0x80 ) - ( ( this.ct進行[ j ].n現在の値 * 0x180 ) / 100 );\r
-                                                               for( int m = 0; m < w; m += 0x2a )\r
+                                                               for ( int m = 0; m < w; m += 0x2a )\r
                                                                {\r
-                                                                       if( this.txFlush[ j + 8 ] != null )\r
+                                                                       if ( this.txFlush[ j + 8 ] != null )\r
                                                                        {\r
-                                                                               this.txFlush[ j + 8 ].t2D描画( CDTXMania.app.Device, x + m, y, new Rectangle( ( k * 0x2a ) + 2, 0, ( ( w - m ) < 0x2a ) ? ( w - m ) : 0x2a, 0x80 ) );\r
+                                                                               this.txFlush[ j + 8 ].t2D描画(\r
+                                                                                       CDTXMania.app.Device,\r
+                                                                                       ( x + m ) * Scale.X,\r
+                                                                                       y * Scale.Y,\r
+                                                                                       new Rectangle(\r
+                                                                                               (int) ( ( ( k * 0x2a ) + 2 ) * Scale.X ),\r
+                                                                                               0,\r
+                                                                                               ( ( w - m ) < 0x2a ) ? (int) ( ( w - m ) * Scale.X ) : (int) ( 0x2a * Scale.X ),\r
+                                                                                               (int) ( 0x80 * Scale.Y )\r
+                                                                                       )\r
+                                                                               );\r
                                                                        }\r
                                                                }\r
                                                        }\r
                                                        else\r
                                                        {\r
                                                                int num8 = ( 0x60 + ( k * 0x80 ) ) + ( ( this.ct進行[ j ].n現在の値 * 0x180 ) / 100 );\r
-                                                               if( num8 < 480 )\r
+                                                               if ( num8 < 480 )\r
                                                                {\r
-                                                                       for( int n = 0; n < w; n += 0x2a )\r
+                                                                       for ( int n = 0; n < w; n += 0x2a )\r
                                                                        {\r
-                                                                               if( this.txFlush[ j ] != null )\r
+                                                                               if ( this.txFlush[ j ] != null )\r
                                                                                {\r
-                                                                                       this.txFlush[ j ].t2D描画( CDTXMania.app.Device, x + n, num8, new Rectangle( k * 0x2a, 0, ( ( w - n ) < 0x2a ) ? ( w - n ) : 0x2a, 0x80 ) );\r
+                                                                                       this.txFlush[ j ].t2D描画(\r
+                                                                                               CDTXMania.app.Device,\r
+                                                                                               (int) ( ( x + n ) * Scale.X ),\r
+                                                                                               (int) ( num8 * 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 * Scale.Y )\r
+                                                                                               )\r
+                                                                                       );\r
                                                                                }\r
                                                                        }\r
                                                                }\r
@@ -156,7 +176,7 @@ namespace DTXMania
                        return 0;\r
                }\r
 \r
-               \r
+\r
                // その他\r
 \r
                #region [ private ]\r
index 8fe6b76..0059e68 100644 (file)
@@ -12,26 +12,36 @@ namespace DTXMania
 \r
                public override int On進行描画()\r
                {\r
-                       if( !base.b活性化してない )\r
+                       if ( !base.b活性化してない )\r
                        {\r
-                               for( int i = 0; i < 6; i++ )\r
+                               for ( int i = 0; i < 6; i++ )\r
                                {\r
-                                       if( !base.ct進行[ i ].b停止中 )\r
+                                       if ( !base.ct進行[ i ].b停止中 )\r
                                        {\r
                                                E楽器パート e楽器パート = ( i < 3 ) ? E楽器パート.GUITAR : E楽器パート.BASS;\r
                                                CTexture texture = CDTXMania.ConfigIni.bReverse[ (int) e楽器パート ] ? base.txFlush[ ( i % 3 ) + 3 ] : base.txFlush[ i % 3 ];\r
                                                int num2 = CDTXMania.ConfigIni.bLeft[ (int) e楽器パート ] ? 1 : 0;\r
-                                               for( int j = 0; j < 3; j++ )\r
+                                               for ( int j = 0; j < 3; j++ )\r
                                                {\r
                                                        int x = ( ( ( i < 3 ) ? 0x1fb : 0x18e ) + this.nRGBのX座標[ num2, i ] ) + ( ( 0x10 * base.ct進行[ i ].n現在の値 ) / 100 );\r
                                                        int y = ( ( i < 3 ) ? 0x39 : 0x39 ) + ( j * 0x76 );\r
-                                                       if( texture != null )\r
+                                                       if ( texture != null )\r
                                                        {\r
-                                                               texture.t2D描画( CDTXMania.app.Device, x, y, new Rectangle( j * 0x20, 0, ( 0x18 * ( 100 - base.ct進行[ i ].n現在の値 ) ) / 100, 0x76 ) );\r
+                                                               texture.t2D描画(\r
+                                                                       CDTXMania.app.Device,\r
+                                                                       x * Scale.X,\r
+                                                                       y * Scale.Y,\r
+                                                                       new Rectangle(\r
+                                                                               (int) ( ( j * 0x20 ) * Scale.X ),\r
+                                                                               0,\r
+                                                                               (int) ( ( 0x18 * ( 100 - base.ct進行[ i ].n現在の値 ) ) / 100 * Scale.X ),\r
+                                                                               (int) ( 0x76 * Scale.Y )\r
+                                                                       )\r
+                                                               );\r
                                                        }\r
                                                }\r
                                                base.ct進行[ i ].t進行();\r
-                                               if( base.ct進行[ i ].b終了値に達した )\r
+                                               if ( base.ct進行[ i ].b終了値に達した )\r
                                                {\r
                                                        base.ct進行[ i ].t停止();\r
                                                }\r
@@ -46,7 +56,7 @@ namespace DTXMania
 \r
                #region [ private ]\r
                //-----------------\r
-               private readonly int[,] nRGBのX座標 = new int[ , ] { { 2, 0x1c, 0x36, 2, 0x1c, 0x36 }, { 0x36, 0x1c, 2, 0x36, 0x1c, 2 } };\r
+               private readonly int[ , ] nRGBのX座標 = new int[ , ] { { 2, 0x1c, 0x36, 2, 0x1c, 0x36 }, { 0x36, 0x1c, 2, 0x36, 0x1c, 2 } };\r
                //-----------------\r
                #endregion\r
        }\r
index 7e5ffd9..048e7e0 100644 (file)
@@ -48,7 +48,8 @@ namespace DTXMania
                {\r
                        if( !base.b活性化してない )\r
                        {\r
-                               for( int i = 0; i < 12; i++ )\r
+                               #region [ 表示拡大率の設定 ]\r
+                               for ( int i = 0; i < 12; i++ )\r
                                {\r
                                        if( !base.st状態[ i ].ct進行.b停止中 )\r
                                        {\r
@@ -119,6 +120,7 @@ namespace DTXMania
                                                }\r
                                        }\r
                                }\r
+                               #endregion\r
                                for( int j = 0; j < 12; j++ )\r
                                {\r
                                        if( !base.st状態[ j ].ct進行.b停止中 )\r
@@ -126,7 +128,8 @@ namespace DTXMania
                                                int index = base.st判定文字列[ (int) base.st状態[ j ].judge ].n画像番号;\r
                                                int baseX = 0;\r
                                                int baseY = 0;\r
-                                               if( j < 8 )                     // Drums\r
+                                               #region [ Drums 判定文字列 baseX/Y生成 ]\r
+                                               if ( j < 8 )                    // Drums\r
                                                {\r
                                                        if ( CDTXMania.ConfigIni.判定文字表示位置.Drums == E判定文字表示位置.表示OFF )\r
                                                        {\r
@@ -136,7 +139,10 @@ namespace DTXMania
                                                        baseY = CDTXMania.ConfigIni.bReverse.Drums ?\r
                                                                ( ( ( (E判定文字表示位置) CDTXMania.ConfigIni.判定文字表示位置.Drums ) == E判定文字表示位置.レーン上 ) ? ( 240 + ( this.n文字の縦表示位置[ j ] * 0x20 ) ) : 50 ) :\r
                                                                ( ( ( (E判定文字表示位置) CDTXMania.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.ConfigIni.判定文字表示位置.Bass ) == E判定文字表示位置.表示OFF )\r
@@ -148,21 +154,35 @@ namespace DTXMania
                                                        {\r
                                                                case E判定文字表示位置.コンボ下:\r
                                                                        baseX = this.stレーンサイズ[ j ].x;\r
-                                                                       baseY = ( CDTXMania.ConfigIni.bReverse.Bass ? 100 : 300 ) + ( this.n文字の縦表示位置[ j ] * 0x20 );\r
+                                                                       baseY = (\r
+                                                                                               CDTXMania.ConfigIni.bReverse.Bass ?\r
+                                                                                                       (int) ( 100 * Scale.Y ) :\r
+                                                                                                       (int) ( 300 * Scale.Y )\r
+                                                                                       )\r
+                                                                                       + (int) ( this.n文字の縦表示位置[ j ] * 0x20 * Scale.Y );\r
                                                                        break;\r
                                                                case E判定文字表示位置.レーン上:\r
                                                                        baseX = this.stレーンサイズ[ j ].x;\r
                                                                        //baseY = ( CDTXMania.ConfigIni.bReverse.Bass ? 240 : 180 ) + ( this.n文字の縦表示位置[ j ] * 0x20 );\r
                                                                        yB = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.BASS, false, CDTXMania.ConfigIni.bReverse.Bass );\r
-                                                                       baseY = ( CDTXMania.ConfigIni.bReverse.Bass ? yB - 134 : yB + 85 ) +( this.n文字の縦表示位置[ j ] * 0x20 );\r
+                                                                       baseY = (\r
+                                                                                               CDTXMania.ConfigIni.bReverse.Bass ?\r
+                                                                                                       yB - (int) ( 134 * Scale.Y ) :\r
+                                                                                                       yB + (int) (  85 * Scale.Y )\r
+                                                                                       )\r
+                                                                                       + (int) ( this.n文字の縦表示位置[ j ] * 0x20 * Scale.Y );\r
                                                                        break;\r
                                                                case E判定文字表示位置.判定ライン上:\r
                                                                        baseX = this.stレーンサイズ[ j ].x;\r
                                                                        yB = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.BASS, false, CDTXMania.ConfigIni.bReverse.Bass );\r
-                                                                       baseY = CDTXMania.ConfigIni.bReverse.Bass ? yB + 30 : yB - 24;\r
+                                                                       baseY = CDTXMania.ConfigIni.bReverse.Bass ?\r
+                                                                               yB + (int) ( 30 * 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.ConfigIni.判定文字表示位置.Guitar ) == E判定文字表示位置.表示OFF )\r
@@ -174,29 +194,51 @@ namespace DTXMania
                                                        {\r
                                                            case E判定文字表示位置.コンボ下:\r
                                                                        baseX = ( CDTXMania.DTX.bチップがある.Bass ) ? this.stレーンサイズ[ j ].x : 0x198;\r
-                                                                       baseY = ( CDTXMania.ConfigIni.bReverse.Guitar ? 100 : 300 ) + ( this.n文字の縦表示位置[ j ] * 0x20 );\r
+                                                                       baseY = (\r
+                                                                                               CDTXMania.ConfigIni.bReverse.Guitar ?\r
+                                                                                                       (int) ( 100 * Scale.Y ) :\r
+                                                                                                       (int) ( 300 * Scale.Y )\r
+                                                                                       )\r
+                                                                                       + (int) ( this.n文字の縦表示位置[ j ] * 0x20 * Scale.Y );\r
                                                                        break;\r
                                                            case E判定文字表示位置.レーン上:\r
                                                                        baseX = ( CDTXMania.DTX.bチップがある.Bass ) ? this.stレーンサイズ[ j ].x : 0x198;\r
                                                                        //baseY = ( CDTXMania.ConfigIni.bReverse.Guitar ? 240 : 180 ) + ( this.n文字の縦表示位置[ j ] * 0x20 );\r
                                                                        yG = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.GUITAR, false, CDTXMania.ConfigIni.bReverse.Guitar );\r
-                                                                       baseY = ( CDTXMania.ConfigIni.bReverse.Guitar ? yG - 134 : yG + 85 ) + ( this.n文字の縦表示位置[ j ] * 0x20 );\r
+                                                                       baseY = (\r
+                                                                                               CDTXMania.ConfigIni.bReverse.Guitar ?\r
+                                                                                                       yG - (int) ( 134 * Scale.Y ):\r
+                                                                                                       yG + (int) (  85 * Scale.Y )\r
+                                                                                       )\r
+                                                                                       + (int) ( this.n文字の縦表示位置[ j ] * 0x20 * Scale.Y );\r
                                                                        break;\r
                                                            case E判定文字表示位置.判定ライン上:\r
                                                                        baseX = ( CDTXMania.DTX.bチップがある.Bass ) ? this.stレーンサイズ[ j ].x : 0x198;\r
                                                                        yG = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.GUITAR, false, CDTXMania.ConfigIni.bReverse.Guitar );\r
-                                                               baseY = CDTXMania.ConfigIni.bReverse.Guitar ? yG + 30 : yG - 24;\r
-                                                               break;\r
+                                                               baseY = CDTXMania.ConfigIni.bReverse.Guitar ?\r
+                                                                               yG + (int) ( 30 * Scale.Y ) :\r
+                                                                               yG - (int) ( 24 * Scale.Y );\r
+                                                                       break;\r
                                                        }\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
+                                               #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描画( CDTXMania.app.Device, x, y, base.st判定文字列[ (int) base.st状態[ j ].judge ].rc );\r
+                                                       base.tx判定文字列[ index ].t2D描画(\r
+                                                               CDTXMania.app.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
@@ -211,12 +253,20 @@ namespace DTXMania
                                                                        {\r
                                                                                minus = true;\r
                                                                        }\r
-                                                                       x = xc - strDispLag.Length * 15 / 2;\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.app.Device, x + offsetX, y + 34, base.stLag数値[ p ].rc );\r
+                                                                               //base.txlag数値.t2D描画( CDTXMania.app.Device, x + offsetX, y + 34, base.stLag数値[ p ].rc );\r
+                                                                               base.txlag数値.t2D描画(\r
+                                                                                       CDTXMania.app.Device,\r
+                                                                                       x + offsetX * Scale.X,\r
+                                                                                       y + 34 * Scale.Y,\r
+                                                                                       base.stLag数値[ p ].rc\r
+                                                                               );\r
+                                                                               offsetX += 12;  // 15 -> 12\r
                                                                                offsetX += 15;\r
                                                                        }\r
                                                                }\r
index ba1751f..f0f0440 100644 (file)
@@ -423,7 +423,9 @@ namespace DTXMania
                {\r
                        int yG = this.演奏判定ライン座標.n判定ラインY座標( E楽器パート.GUITAR, false, bReverse[ (int) E楽器パート.GUITAR ], true );\r
                        int yB = this.演奏判定ライン座標.n判定ラインY座標( E楽器パート.BASS,   false, bReverse[ (int) E楽器パート.BASS   ], true );\r
-                       base.t進行描画・Wailing枠( 587, 478,\r
+                       base.t進行描画・Wailing枠(\r
+                               (int) ( 587 * Scale.X ),\r
+                               (int) ( 478 * Scale.X ),\r
                                yG,\r
                                yB\r
                        //      CDTXMania.ConfigIni.bReverse.Guitar ? ( 400 - this.txWailing枠.sz画像サイズ.Height ) : 69,        // 350:69\r
@@ -436,31 +438,40 @@ namespace DTXMania
                        {\r
                                if( CDTXMania.DTX.bチップがある.Guitar )\r
                                {\r
-                                       for( int i = 0; i < 355; i += 0x80 )\r
+                                       for ( int i = 0; i < 355; i += 0x80 )\r
                                        {\r
-                                               Rectangle rectangle = new Rectangle( 0, 0, 0x6d, 0x80 );\r
-                                               if( ( i + 0x80 ) > 355 )\r
+                                               Rectangle rectangle = new Rectangle( 0, 0, (int) ( 0x6d * Scale.X ), (int) ( 0x80 * Scale.Y ) );\r
+                                               if ( ( i + 0x80 ) > 355 )\r
                                                {\r
-                                                       rectangle.Height -= ( i + 0x80 ) - 355;\r
+                                                       rectangle.Height -= (int) ( ( i + 0x80 - 355 ) * Scale.Y );\r
                                                }\r
-                                               if( this.txレーンフレームGB != null )\r
+                                               if ( this.txレーンフレームGB != null )\r
                                                {\r
-                                                       this.txレーンフレームGB.t2D描画( CDTXMania.app.Device, 0x1fb, 0x39 + i, rectangle );\r
+                                                       this.txレーンフレームGB.t2D描画(\r
+                                                               CDTXMania.app.Device,\r
+                                                               0x1fb * Scale.X,\r
+                                                               ( 0x39 + i ) * Scale.Y,\r
+                                                               rectangle\r
+                                                       );\r
                                                }\r
                                        }\r
                                }\r
                                if( CDTXMania.DTX.bチップがある.Bass )\r
                                {\r
-                                       for( int j = 0; j < 355; j += 0x80 )\r
+                                       for ( int j = 0; j < 355; j += 0x80 )\r
                                        {\r
-                                               Rectangle rectangle2 = new Rectangle( 0, 0, 0x6d, 0x80 );\r
-                                               if( ( j + 0x80 ) > 355 )\r
+                                               Rectangle rectangle2 = new Rectangle( 0, 0, (int) ( 0x6d * Scale.X ), (int) ( 0x80 * Scale.Y ) );\r
+                                               if ( ( j + 0x80 ) > 355 )\r
                                                {\r
-                                                       rectangle2.Height -= ( j + 0x80 ) - 355;\r
+                                                       rectangle2.Height -= (int) ( ( j + 0x80 - 355 ) * Scale.Y );\r
                                                }\r
-                                               if( this.txレーンフレームGB != null )\r
+                                               if ( this.txレーンフレームGB != null )\r
                                                {\r
-                                                       this.txレーンフレームGB.t2D描画( CDTXMania.app.Device, 0x18e, 0x39 + j, rectangle2 );\r
+                                                       this.txレーンフレームGB.t2D描画( CDTXMania.app.Device,\r
+                                                               0x18e * Scale.X,\r
+                                                               ( 0x39 + j ) * Scale.Y,\r
+                                                               rectangle2\r
+                                                       );\r
                                                }\r
                                        }\r
                                }\r
@@ -472,34 +483,45 @@ namespace DTXMania
                        {\r
                                if ( CDTXMania.DTX.bチップがある.Guitar )\r
                                {\r
-                                       int y = this.演奏判定ライン座標.n判定ラインY座標( E楽器パート.GUITAR, false, bReverse[ (int) E楽器パート.GUITAR ] ) - 3;\r
+                                       int y = this.演奏判定ライン座標.n判定ラインY座標( E楽器パート.GUITAR, false, bReverse[ (int) E楽器パート.GUITAR ] ) - (int)(3 * Scale.Y);\r
                                                                                                                                // #31602 2013.6.23 yyagi 描画遅延対策として、判定ラインの表示位置をオフセット調整できるようにする\r
                                        if ( this.txヒットバーGB != null )\r
                                        {\r
                                                for ( int i = 0; i < 3; i++ )\r
                                                {\r
-                                                       this.txヒットバーGB.t2D描画( CDTXMania.app.Device, 509 + ( 26 * i ), y );\r
-                                                       this.txヒットバーGB.t2D描画( CDTXMania.app.Device, ( 509 + ( 26 * i ) ) + 16, y, new Rectangle( 0, 0, 10, 16 ) );\r
+                                                       this.txヒットバーGB.t2D描画( CDTXMania.app.Device,\r
+                                                               ( 509 + ( 26 * i ) ) * Scale.X,\r
+                                                               y\r
+                                                       );\r
+                                                       this.txヒットバーGB.t2D描画( CDTXMania.app.Device,\r
+                                                               ( ( 509 + ( 26 * i ) ) + 16 ) * Scale.X,\r
+                                                               y,\r
+                                                               new Rectangle( 0, 0, (int) ( 10 * Scale.X ), (int) ( 16 * Scale.Y ) ) );\r
                                                }\r
                                        }\r
                                }\r
                                if ( CDTXMania.DTX.bチップがある.Bass )\r
                                {\r
-                                       int y = this.演奏判定ライン座標.n判定ラインY座標( E楽器パート.BASS,   false, bReverse[ (int) E楽器パート.BASS   ] ) - 3;\r
+                                       int y = this.演奏判定ライン座標.n判定ラインY座標( E楽器パート.BASS,   false, bReverse[ (int) E楽器パート.BASS   ] ) - (int)(3 * Scale.Y);\r
                                                                                                                                // #31602 2013.6.23 yyagi 描画遅延対策として、判定ラインの表示位置をオフセット調整できるようにする\r
                                        if ( this.txヒットバーGB != null )\r
                                        {\r
                                                for ( int j = 0; j < 3; j++ )\r
                                                {\r
-                                                       this.txヒットバーGB.t2D描画( CDTXMania.app.Device, 400 + ( 26 * j ), y );\r
-                                                       this.txヒットバーGB.t2D描画( CDTXMania.app.Device, ( 400 + ( 26 * j ) ) + 16, y, new Rectangle( 0, 0, 10, 16 ) );\r
+                                                       this.txヒットバーGB.t2D描画( CDTXMania.app.Device,\r
+                                                               ( 400 + ( 26 * j ) ) * Scale.X,\r
+                                                               y );\r
+                                                       this.txヒットバーGB.t2D描画( CDTXMania.app.Device,\r
+                                                               ( ( 400 + ( 26 * j ) ) + 16 ) * Scale.X,\r
+                                                               y,\r
+                                                               new Rectangle( 0, 0, (int) ( 10 * Scale.X ), (int) ( 16 * Scale.Y ) ) );\r
                                                }\r
                                        }\r
                                }\r
                        }\r
                }\r
 \r
-               private void t進行描画・グラフ()        \r
+               private void t進行描画・グラフ()\r
         {\r
                        if ( !CDTXMania.ConfigIni.bストイックモード && !CDTXMania.ConfigIni.bドラムが全部オートプレイである && CDTXMania.ConfigIni.bGraph.Drums )\r
                        {\r
@@ -521,7 +543,7 @@ namespace DTXMania
                }\r
                protected override void t進行描画・パネル文字列()\r
                {\r
-                       base.t進行描画・パネル文字列( 336, 427 );\r
+                       base.t進行描画・パネル文字列( 336, 427+1 );\r
                }\r
 \r
                protected override void t進行描画・演奏情報()\r
@@ -1812,7 +1834,7 @@ namespace DTXMania
 \r
                protected override void t背景テクスチャの生成()\r
                {\r
-                       Rectangle bgrect = new Rectangle( 338, 57, 278, 355 );\r
+                       Rectangle bgrect = new Rectangle( (int) ( 338 * Scale.X ), (int) ( 57 * Scale.Y ), (int) ( 278 * Scale.X ), (int) ( 355 * Scale.Y ) );\r
                        string DefaultBgFilename = @"Graphics\ScreenPlayDrums background.jpg";\r
                        string BgFilename = "";\r
                        if ( ( ( CDTXMania.DTX.BACKGROUND != null ) && ( CDTXMania.DTX.BACKGROUND.Length > 0 ) ) && !CDTXMania.ConfigIni.bストイックモード )\r
@@ -1877,6 +1899,8 @@ namespace DTXMania
                                        }\r
                                        int x = this.nチャンネルtoX座標[ pChip.nチャンネル番号 - 0x11 ];\r
                                        int y = configIni.bReverse.Drums ? ( 0x38 + pChip.nバーからの距離dot.Drums ) : ( 0x1a6 - pChip.nバーからの距離dot.Drums );\r
+                                       x = (int) ( x * Scale.X );\r
+                                       y = (int) ( y * Scale.Y );\r
                                        if ( this.txチップ != null )\r
                                        {\r
                                                this.txチップ.vc拡大縮小倍率 = new Vector3( (float) pChip.dbチップサイズ倍率, (float) pChip.dbチップサイズ倍率, 1f );\r
@@ -1885,86 +1909,86 @@ namespace DTXMania
                                        switch ( pChip.nチャンネル番号 )\r
                                        {\r
                                                case 0x11:\r
-                                                       x = ( x + 0x10 ) - ( (int) ( ( 32.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\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.app.Device, x, y - 4, new Rectangle( 0x2c, num9 * 7, 0x20, 8 ) );\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, x, y - 4 * Scale.Y, new Rectangle( (int) ( 0x2c * Scale.X ), (int) ( num9 * 7 * Scale.Y ), (int) ( 0x20 * Scale.X ), (int) ( 8 * Scale.Y ) ) );\r
                                                        }\r
                                                        break;\r
 \r
                                                case 0x12:\r
-                                                       x = ( x + 0x10 ) - ( (int) ( ( 32.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\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.app.Device, x, y - 4, new Rectangle( 0x4c, num9 * 7, 0x20, 8 ) );\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, x, y - 4 * Scale.Y, new Rectangle( (int) ( 0x4c * Scale.X ), (int) ( num9 * 7 * Scale.Y ), (int) ( 0x20 * Scale.X ), (int) ( 8 * Scale.Y ) ) );\r
                                                        }\r
                                                        break;\r
 \r
                                                case 0x13:\r
-                                                       x = ( x + 0x16 ) - ( (int) ( ( 44.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\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.app.Device, x, y - 5, new Rectangle( 0, num9 * 9, 0x2c, 10 ) );\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, x, y - 5 * Scale.Y, new Rectangle( (int) ( 0 * Scale.X ), (int) ( num9 * 9 * Scale.Y ), (int) ( 0x2c * Scale.X ), (int) ( 10 * Scale.Y ) ) );\r
                                                        }\r
                                                        break;\r
 \r
                                                case 0x14:\r
-                                                       x = ( x + 0x10 ) - ( (int) ( ( 32.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\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.app.Device, x, y - 4, new Rectangle( 0x6c, num9 * 7, 0x20, 8 ) );\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, x, y - 4 * Scale.Y, new Rectangle( (int) ( 0x6c * Scale.X ), (int) ( num9 * 7 * Scale.Y ), (int) ( 0x20 * Scale.X ), (int) ( 8 * Scale.Y ) ) );\r
                                                        }\r
                                                        break;\r
 \r
                                                case 0x15:\r
-                                                       x = ( x + 0x10 ) - ( (int) ( ( 32.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\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.app.Device, x, y - 4, new Rectangle( 140, num9 * 7, 0x20, 8 ) );\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, x, y - 4 * Scale.Y, new Rectangle( (int) ( 140 * Scale.X ), (int) ( num9 * 7 * Scale.Y ), (int) ( 0x20 * Scale.X ), (int) ( 8 * Scale.Y ) ) );\r
                                                        }\r
                                                        break;\r
 \r
                                                case 0x16:\r
-                                                       x = ( x + 0x13 ) - ( (int) ( ( 38.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\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.app.Device, x, y - 0x15, new Rectangle( 0xcc, 0x158, 0x26, 0x24 ) );\r
-                                                               this.txチップ.t2D描画( CDTXMania.app.Device, x, y - 4, new Rectangle( 0xcc, num9 * 7, 0x26, 8 ) );\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, x, y - 0x15 * Scale.Y, new Rectangle( (int) ( 0xcc * Scale.X ), (int) ( 0x158 * Scale.Y ), (int) ( 0x26 * Scale.X ), (int) ( 0x24 * Scale.Y ) ) );\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, x, y - 4 * Scale.Y, new Rectangle( (int) ( 0xcc * Scale.X ), (int) ( num9 * 7 * Scale.Y ), (int) ( 0x26 * Scale.X ), (int) ( 8 * Scale.Y ) ) );\r
                                                        }\r
                                                        break;\r
 \r
                                                case 0x17:\r
-                                                       x = ( x + 0x10 ) - ( (int) ( ( 32.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\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.app.Device, x, y - 4, new Rectangle( 0xac, num9 * 7, 0x20, 8 ) );\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, x, y - 4 * Scale.Y, new Rectangle( (int) ( 0xac * Scale.X ), (int) ( num9 * 7 * Scale.Y ), (int) ( 0x20 * Scale.X ), (int) ( 8 * Scale.Y ) ) );\r
                                                        }\r
                                                        break;\r
 \r
                                                case 0x18:\r
-                                                       x = ( x + 13 ) - ( (int) ( ( 26.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\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.app.Device, x, y - 4, new Rectangle( 0xf2, num9 * 7, 0x1a, 8 ) );\r
-                                                               this.txチップ.t2D描画( CDTXMania.app.Device, x, y - 9, new Rectangle( 0xf2, 0x158, 0x1a, 0x12 ) );\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, x, y - 4 * Scale.Y, new Rectangle( (int) ( 0xf2 * Scale.X ), (int) ( num9 * 7 * Scale.Y ), (int) ( 0x1a * Scale.X ), (int) ( 8 * Scale.Y ) ) );\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, x, y - 9 * Scale.Y, new Rectangle( (int) ( 0xf2 * Scale.X ), (int) ( 0x158 * Scale.Y ), (int) ( 0x1a * Scale.X ), (int) ( 0x12 * Scale.Y ) ) );\r
                                                        }\r
                                                        break;\r
 \r
                                                case 0x19:\r
-                                                       x = ( x + 13 ) - ( (int) ( ( 26.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\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.app.Device, x, y - 4, new Rectangle( 0xf2, num9 * 7, 0x1a, 8 ) );\r
-                                                               this.txチップ.t2D描画( CDTXMania.app.Device, x, y - 9, new Rectangle( 0xf2, 0x158, 0x1a, 0x12 ) );\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, x, y - 4 * Scale.Y, new Rectangle( (int) ( 0xf2 * Scale.X ), (int) ( num9 * 7 * Scale.Y ), (int) ( 0x1a * Scale.X ), (int) ( 8 * Scale.Y ) ) );\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, x, y - 9 * Scale.Y, new Rectangle( (int) ( 0xf2 * Scale.X ), (int) ( 0x158 * Scale.Y ), (int) ( 0x1a * Scale.X ), (int) ( 0x12 * Scale.Y ) ) );\r
                                                        }\r
                                                        break;\r
 \r
                                                case 0x1a:\r
-                                                       x = ( x + 0x13 ) - ( (int) ( ( 38.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\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.app.Device, x, y - 0x15, new Rectangle( 0xcc, 0x158, 0x26, 0x24 ) );\r
-                                                               this.txチップ.t2D描画( CDTXMania.app.Device, x, y - 4, new Rectangle( 0xcc, num9 * 7, 0x26, 8 ) );\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, x, y - 0x15 * Scale.Y, new Rectangle( (int) ( 0xcc * Scale.X ), (int) ( 0x158 * Scale.Y ), (int) ( 0x26 * Scale.X ), (int) ( 0x24 * Scale.Y ) ) );\r
+                                                               this.txチップ.t2D描画( CDTXMania.app.Device, x, y - 4 * Scale.Y, new Rectangle( (int) ( 0xcc * Scale.X ), (int) ( num9 * 7 * Scale.Y ), (int) ( 0x26 * Scale.X ), (int) ( 8 * Scale.Y ) ) );\r
                                                        }\r
                                                        break;\r
                                        }\r
@@ -2002,13 +2026,14 @@ namespace DTXMania
                protected override void t進行描画・チップ・ギターベース( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip, E楽器パート inst )\r
                {\r
                        base.t進行描画・チップ・ギターベース( configIni, ref dTX, ref pChip, inst,\r
-                               // 95, 374,\r
                                演奏判定ライン座標.n判定ラインY座標( inst, false, false ),              // 95  Normal\r
-                               演奏判定ライン座標.n判定ラインY座標( inst,   false, true ),             // 374 Reverse\r
-                               57, 412,                                // チップのY軸表示範囲\r
-                               509, 400,\r
-                               268, 144, 76, 6,                // オープンチップの x, y, w, h\r
-                               24, 509, 561, 400, 452, 26, 24 );\r
+                               演奏判定ライン座標.n判定ラインY座標( inst, false, true ),               // 374 Reverse\r
+                               (int) ( 57 * Scale.Y ), (int) ( 412 * Scale.Y ),                                // チップのY軸表示範囲\r
+                               509, 400,                                       // openチップのX座標(Gt, Bs)\r
+                               268, 144, 76, 6, 24,            // オープンチップregionの x, y, w, h, 通常チップのw\r
+                               509, 561, 400, 452,                     // GtのX, Gt左利きのX, BsのX, Bs左利きのX,\r
+                               26, 24                                          // 描画のX座標間隔, テクスチャのX座標間隔\r
+                       );\r
                }\r
 #if false\r
                protected override void t進行描画・チップ・ギターベース( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip, E楽器パート inst )\r
@@ -2127,15 +2152,6 @@ namespace DTXMania
                {\r
                        if ( configIni.bGuitar有効 )\r
                        {\r
-                               //if ( configIni.bSudden.Guitar )\r
-                               //{\r
-                               //    pChip.b可視 = pChip.nバーからの距離dot.Guitar < 200;\r
-                               //}\r
-                               //if ( configIni.bHidden.Guitar && ( pChip.nバーからの距離dot.Guitar < 100 ) )\r
-                               //{\r
-                               //    pChip.b可視 = false;\r
-                               //}\r
-\r
                                // 後日、以下の部分を何とかCStage演奏画面共通.csに移したい。\r
                                if ( !pChip.bHit && pChip.b可視 )\r
                                {\r
@@ -2148,54 +2164,49 @@ namespace DTXMania
                                                演奏判定ライン座標.n判定ラインY座標( E楽器パート.GUITAR, false, true )             // 374\r
                                        };                      // ドラム画面かギター画面かで変わる値\r
                                        //int[] y_base = { 0x5f, 0x176 };               // 判定バーのY座標: ドラム画面かギター画面かで変わる値\r
-                                       int offset = 0x39;                                      // ドラム画面かギター画面かで変わる値\r
-\r
-                                       const int WailingWidth = 20;            // ウェイリングチップ画像の幅: 4種全て同じ値\r
-                                       const int WailingHeight = 50;           // ウェイリングチップ画像の高さ: 4種全て同じ値\r
-                                       const int baseTextureOffsetX = 268;     // テクスチャ画像中のウェイリングチップ画像の位置X: ドラム画面かギター画面かで変わる値\r
-                                       const int baseTextureOffsetY = 174;     // テクスチャ画像中のウェイリングチップ画像の位置Y: ドラム画面かギター画面かで変わる値\r
-                                       const int drawX = 588;                          // ウェイリングチップ描画位置X座標: 4種全て異なる値\r
-\r
-                                       const int numA = 25;                            // 4種全て同じ値\r
-                                       int y = configIni.bReverse.Guitar ? ( y_base[1] - pChip.nバーからの距離dot.Guitar ) : ( y_base[0] + pChip.nバーからの距離dot.Guitar );\r
+                                       int offset = (int) ( 0x39 * Scale.Y );  // ドラム画面かギター画面かで変わる値\r
+\r
+                                       const int WailingWidth  = (int) ( 20 * Scale.X );               // ウェイリングチップ画像の幅: 4種全て同じ値\r
+                                       const int WailingHeight = (int) ( 50 * Scale.Y );               // ウェイリングチップ画像の高さ: 4種全て同じ値\r
+                                       const int baseTextureOffsetX = (int) ( 268 * Scale.X ); // テクスチャ画像中のウェイリングチップ画像の位置X: ドラム画面かギター画面かで変わる値\r
+                                       const int baseTextureOffsetY = (int) ( 174 * Scale.Y ); // テクスチャ画像中のウェイリングチップ画像の位置Y: ドラム画面かギター画面かで変わる値\r
+                                       const int drawX = (int) ( 588 * Scale.X );                              // ウェイリングチップ描画位置X座標: 4種全て異なる値\r
+\r
+                                       const int numA = (int) ( 25 * Scale.Y );                                // 4種全て同じ値\r
+                                       int y = configIni.bReverse.Guitar ?\r
+                                               ( y_base[1] - (int) ( pChip.nバーからの距離dot.Guitar * Scale.Y ) ) :\r
+                                               ( y_base[0] + (int) ( pChip.nバーからの距離dot.Guitar * Scale.Y ) );\r
                                        int numB = y - offset;                          // 4種全て同じ定義\r
                                        int numC = 0;                                           // 4種全て同じ初期値\r
-                                       const int numD = 355;                           // ドラム画面かギター画面かで変わる値\r
-                                       if ( ( numB < ( numD + numA ) ) && ( numB > -numA ) )   // 以下のロジックは4種全て同じ\r
+                                       const int showRangeY1 = (int) ( 355 * Scale.Y );                                // ドラム画面かギター画面かで変わる値\r
+                                       if ( ( numB < ( showRangeY1 + numA ) ) && ( numB > -numA ) )    // 以下のロジックは4種全て同じ\r
                                        {\r
                                                int c = this.ctWailingチップ模様アニメ.n現在の値;\r
-                                               Rectangle rect = new Rectangle( baseTextureOffsetX + ( c * WailingWidth ), baseTextureOffsetY, WailingWidth, WailingHeight);\r
+                                               Rectangle rect = new Rectangle(\r
+                                                       baseTextureOffsetX + ( c * WailingWidth ),\r
+                                                       baseTextureOffsetY,\r
+                                                       WailingWidth,\r
+                                                       WailingHeight\r
+                                               );\r
                                                if ( numB < numA )\r
                                                {\r
                                                        rect.Y += numA - numB;\r
                                                        rect.Height -= numA - numB;\r
                                                        numC = numA - numB;\r
                                                }\r
-                                               if ( numB > ( numD - numA ) )\r
+                                               if ( numB > ( showRangeY1 - numA ) )\r
                                                {\r
-                                                       rect.Height -= numB - ( numD - numA );\r
+                                                       rect.Height -= numB - ( showRangeY1 - numA );\r
                                                }\r
-                                               if ( ( rect.Bottom > rect.Top ) && ( this.txチップ != null ) )\r
                                                {\r
-                                                       this.txチップ.t2D描画( CDTXMania.app.Device, drawX, ( y - numA ) + numC, rect );\r
+                                                       this.txチップ.t2D描画( CDTXMania.app.Device,\r
+                                                               drawX,\r
+                                                               ( ( y - numA ) + numC ),\r
+                                                               rect\r
+                                                       );\r
                                                }\r
                                        }\r
                                }\r
-                               //    if ( !pChip.bHit && ( pChip.nバーからの距離dot.Guitar < 0 ) )\r
-                               //    {\r
-                               //        if ( pChip.nバーからの距離dot.Guitar < -234 )  // #25253 2011.5.29 yyagi: Don't set pChip.bHit=true for wailing at once. It need to 1sec-delay (234pix per 1sec). \r
-                               //        {\r
-                               //            pChip.bHit = true;\r
-                               //        }\r
-                               //        if ( configIni.bAutoPlay.Guitar )\r
-                               //        {\r
-                               //            pChip.bHit = true;                                                // #25253 2011.5.29 yyagi: Set pChip.bHit=true if autoplay.\r
-                               //            this.actWailingBonus.Start( E楽器パート.GUITAR, this.r現在の歓声Chip.Guitar );\r
-                               //        }\r
-                               //    }\r
-                               //    return;\r
-                               //}\r
-                               //pChip.bHit = true;\r
                        }\r
                        base.t進行描画・チップ・ギター・ウェイリング( configIni, ref dTX, ref pChip );\r
                }\r
@@ -2345,18 +2356,7 @@ namespace DTXMania
                {\r
                        if ( configIni.bGuitar有効 )\r
                        {\r
-                               //if ( configIni.bSudden.Bass )\r
-                               //{\r
-                               //    pChip.b可視 = pChip.nバーからの距離dot.Bass < 200;\r
-                               //}\r
-                               //if ( configIni.bHidden.Bass && ( pChip.nバーからの距離dot.Bass < 100 ) )\r
-                               //{\r
-                               //    pChip.b可視 = false;\r
-                               //}\r
-\r
-                               //\r
                                // 後日、以下の部分を何とかCStage演奏画面共通.csに移したい。\r
-                               //\r
                                if ( !pChip.bHit && pChip.b可視 )\r
                                {\r
                                        if ( this.txチップ != null )\r
@@ -2370,52 +2370,47 @@ namespace DTXMania
                                        //int[] y_base = { 0x5f, 0x176 };               // 判定バーのY座標: ドラム画面かギター画面かで変わる値\r
                                        int offset = 0x39;                                      // ドラム画面かギター画面かで変わる値\r
 \r
-                                       const int WailingWidth = 20;            // ウェイリングチップ画像の幅: 4種全て同じ値\r
-                                       const int WailingHeight = 50;           // ウェイリングチップ画像の高さ: 4種全て同じ値\r
-                                       const int baseTextureOffsetX = 268;     // テクスチャ画像中のウェイリングチップ画像の位置X: ドラム画面かギター画面かで変わる値\r
-                                       const int baseTextureOffsetY = 174;     // テクスチャ画像中のウェイリングチップ画像の位置Y: ドラム画面かギター画面かで変わる値\r
-                                       const int drawX = 479;                          // ウェイリングチップ描画位置X座標: 4種全て異なる値\r
+                                       const int WailingWidth  = (int) ( 20 * Scale.X );               // ウェイリングチップ画像の幅: 4種全て同じ値\r
+                                       const int WailingHeight = (int) ( 50 * Scale.Y );               // ウェイリングチップ画像の高さ: 4種全て同じ値\r
+                                       const int baseTextureOffsetX = (int) ( 268 * Scale.X ); // テクスチャ画像中のウェイリングチップ画像の位置X: ドラム画面かギター画面かで変わる値\r
+                                       const int baseTextureOffsetY = (int) ( 174 * Scale.Y ); // テクスチャ画像中のウェイリングチップ画像の位置Y: ドラム画面かギター画面かで変わる値\r
+                                       const int drawX = (int) ( 479 * Scale.X );                              // ウェイリングチップ描画位置X座標: 4種全て異なる値\r
 \r
-                                       const int numA = 25;                            // 4種全て同じ値\r
-                                       int y = configIni.bReverse.Bass ? ( y_base[ 1 ] - pChip.nバーからの距離dot.Bass ) : ( y_base[ 0 ] + pChip.nバーからの距離dot.Bass );\r
+                                       const int numA = (int) ( 25 * Scale.Y );                                // 4種全て同じ値\r
+                                       int y = configIni.bReverse.Bass ?\r
+                                               ( y_base[ 1 ] - (int) ( pChip.nバーからの距離dot.Bass * Scale.Y ) ) :\r
+                                               ( y_base[ 0 ] + (int) ( pChip.nバーからの距離dot.Bass * Scale.Y ) );\r
                                        int numB = y - offset;                          // 4種全て同じ定義\r
                                        int numC = 0;                                           // 4種全て同じ初期値\r
-                                       const int numD = 355;                           // ドラム画面かギター画面かで変わる値\r
-                                       if ( ( numB < ( numD + numA ) ) && ( numB > -numA ) )   // 以下のロジックは4種全て同じ\r
+                                       const int showRangeY1 = (int) ( 355 * Scale.Y );                                // ドラム画面かギター画面かで変わる値\r
+                                       if ( ( numB < ( showRangeY1 + numA ) ) && ( numB > -numA ) )    // 以下のロジックは4種全て同じ\r
                                        {\r
                                                int c = this.ctWailingチップ模様アニメ.n現在の値;\r
-                                               Rectangle rect = new Rectangle( baseTextureOffsetX + ( c * WailingWidth ), baseTextureOffsetY, WailingWidth, WailingHeight );\r
+                                               Rectangle rect = new Rectangle(\r
+                                                       baseTextureOffsetX + ( c * WailingWidth ),\r
+                                                       baseTextureOffsetY,\r
+                                                       WailingWidth,\r
+                                                       WailingHeight\r
+                                               );\r
                                                if ( numB < numA )\r
                                                {\r
                                                        rect.Y += numA - numB;\r
                                                        rect.Height -= numA - numB;\r
                                                        numC = numA - numB;\r
                                                }\r
-                                               if ( numB > ( numD - numA ) )\r
+                                               if ( numB > ( showRangeY1 - numA ) )\r
                                                {\r
-                                                       rect.Height -= numB - ( numD - numA );\r
+                                                       rect.Height -= numB - ( showRangeY1 - numA );\r
                                                }\r
                                                if ( ( rect.Bottom > rect.Top ) && ( this.txチップ != null ) )\r
                                                {\r
-                                                       this.txチップ.t2D描画( CDTXMania.app.Device, drawX, ( y - numA ) + numC, rect );\r
+                                                       this.txチップ.t2D描画( CDTXMania.app.Device,\r
+                                                               drawX,\r
+                                                               ( ( y - numA ) + numC ),\r
+                                                               rect );\r
                                                }\r
                                        }\r
                                }\r
-                               //    if ( !pChip.bHit && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
-                               //    {\r
-                               //        if ( pChip.nバーからの距離dot.Bass < -234 )    // #25253 2011.5.29 yyagi: Don't set pChip.bHit=true for wailing at once. It need to 1sec-delay (234pix per 1sec).\r
-                               //        {\r
-                               //            pChip.bHit = true;\r
-                               //        }\r
-                               //        if ( configIni.bAutoPlay.Bass )\r
-                               //        {\r
-                               //            this.actWailingBonus.Start( E楽器パート.BASS, this.r現在の歓声Chip.Bass );\r
-                               //            pChip.bHit = true;                                                // #25253 2011.5.29 yyagi: Set pChip.bHit=true if autoplay.\r
-                               //        }\r
-                               //    }\r
-                               //    return;\r
-                               //}\r
-                               //pChip.bHit = true;\r
                        }\r
                                base.t進行描画・チップ・ベース・ウェイリング( configIni, ref dTX, ref pChip);\r
                }\r
@@ -2440,60 +2435,105 @@ namespace DTXMania
                                        dTX.tWave再生位置自動補正();\r
                                }\r
                        }\r
+                       #region [ Drumsの小節線と、小節番号 ]\r
                        if ( configIni.bDrums有効 )\r
                        {\r
                                if ( configIni.b演奏情報を表示する && ( configIni.eDark == Eダークモード.OFF ) )\r
                                {\r
                                        int n小節番号 = n小節番号plus1 - 1;\r
-                                       CDTXMania.act文字コンソール.tPrint( 0x14d, configIni.bReverse.Drums ? ( ( 0x38 + pChip.nバーからの距離dot.Drums ) - 0x11 ) : ( ( 0x1a6 - pChip.nバーからの距離dot.Drums ) - 0x11 ), C文字コンソール.Eフォント種別.白, n小節番号.ToString() );\r
+                                       CDTXMania.act文字コンソール.tPrint(\r
+                                               (int) ( 0x14d * Scale.X ),\r
+                                               configIni.bReverse.Drums ?\r
+                                                       (int) ( ( ( 0x38 + pChip.nバーからの距離dot.Drums ) - 0x11 ) * Scale.X ) :\r
+                                                       (int) ( ( ( 0x1a6 - pChip.nバーからの距離dot.Drums ) - 0x11 ) * Scale.Y ),\r
+                                               C文字コンソール.Eフォント種別.白,\r
+                                               n小節番号.ToString()\r
+                                       );\r
                                }\r
                                if ( ( ( configIni.eDark != Eダークモード.FULL ) && pChip.b可視 ) && ( this.txチップ != null ) )\r
                                {\r
                                        this.txチップ.n透明度 = 255;\r
-                                       this.txチップ.t2D描画( CDTXMania.app.Device, 0x23, configIni.bReverse.Drums ? ( ( 0x38 + pChip.nバーからの距離dot.Drums ) - 1 ) : ( ( 0x1a6 - pChip.nバーからの距離dot.Drums ) - 1 ), new Rectangle( 0, 0x1bc, 0x128, 2 ) );\r
+                                       this.txチップ.t2D描画( CDTXMania.app.Device,\r
+                                               0x23 * Scale.X,\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
+                                               new Rectangle( 0, (int) ( 0x1bc * Scale.Y ), (int) ( 0x128 * Scale.X ), (int) ( 2 * Scale.Y ) ) );\r
                                }\r
                        }\r
+                       #endregion\r
                        if ( ( pChip.b可視 && configIni.bGuitar有効 ) && ( configIni.eDark != Eダークモード.FULL ) && ( this.txチップ != null ) )\r
                        {\r
                                this.txチップ.n透明度 = 255;\r
+                               #region [ Guitarの小節線 ]\r
                                //int y = configIni.bReverse.Guitar ? ( ( 0x176 - pChip.nバーからの距離dot.Guitar ) - 1 ) : ( ( 0x5f + pChip.nバーからの距離dot.Guitar ) - 1 );\r
                                int y = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.GUITAR, false, configIni.bReverse.Guitar );\r
                                if ( configIni.bReverse.Guitar )\r
                                {\r
-                                       y = y - pChip.nバーからの距離dot.Guitar - 1;\r
+                                       y = y - (int) ( pChip.nバーからの距離dot.Guitar * Scale.Y ) - 1;\r
                                }\r
                                else\r
                                {\r
-                                       y = y + pChip.nバーからの距離dot.Guitar - 1;\r
+                                       y = y + (int) ( pChip.nバーからの距離dot.Guitar * Scale.Y ) - 1;\r
                                }\r
                                int n小節線消失距離dot;\r
                                // Reverse時の小節線消失位置を、RGBボタンの真ん中程度に。\r
                                // 非Reverse時の消失処理は、従来通りt進行描画・チップ()にお任せ。\r
-                               n小節線消失距離dot = configIni.bReverse.Guitar ? -100 : ( configIni.e判定位置.Guitar == E判定位置.標準 ) ? -50 : -25;\r
+                               n小節線消失距離dot = configIni.bReverse.Guitar ?\r
+                                       (int) ( -100 * Scale.Y ):\r
+                                       ( configIni.e判定位置.Guitar == E判定位置.標準 ) ? (int) ( -50 * Scale.Y ) : (int) ( -25 * Scale.Y );\r
 \r
-                               if ( ( dTX.bチップがある.Guitar && ( y > 0x39 ) ) && ( ( y < 0x19c ) ) &&\r
+                               if ( ( dTX.bチップがある.Guitar ) &&\r
+                                       ( 0x39 * Scale.Y < y ) && ( ( y < 0x19c * Scale.Y ) ) &&\r
                                        ( pChip.nバーからの距離dot.Guitar >= n小節線消失距離dot )\r
                                        )\r
                                {\r
-                                       this.txチップ.t2D描画( CDTXMania.app.Device, 0x1fb, y, new Rectangle( 0, 450, 0x4e, 1 ) );\r
+                                       this.txチップ.t2D描画(\r
+                                               CDTXMania.app.Device,\r
+                                               0x1fb * Scale.X,\r
+                                               y,\r
+                                               new Rectangle(\r
+                                                       0,\r
+                                                       (int) ( 450 * Scale.Y ),\r
+                                                       (int) ( 0x4e * Scale.X ),\r
+                                                       (int) ( 1 * Scale.Y )\r
+                                               )\r
+                                       );\r
                                }\r
+                               #endregion\r
+                               #region [ Bassの小節線 ]\r
                                //y = configIni.bReverse.Bass ? ( ( 0x176 - pChip.nバーからの距離dot.Bass ) - 1 ) : ( ( 0x5f + pChip.nバーからの距離dot.Bass ) - 1 );\r
                                y = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.BASS, false, configIni.bReverse.Bass );\r
                                if ( configIni.bReverse.Bass )\r
                                {\r
-                                       y = y - pChip.nバーからの距離dot.Bass - 1;\r
+                                       y = y - (int) ( pChip.nバーからの距離dot.Bass * Scale.Y ) - 1;\r
                                }\r
                                else\r
                                {\r
-                                       y = y + pChip.nバーからの距離dot.Bass - 1;\r
+                                       y = y + (int) ( pChip.nバーからの距離dot.Bass * Scale.Y ) - 1;\r
                                }\r
-                               n小節線消失距離dot = configIni.bReverse.Bass ? -100 : ( configIni.e判定位置.Bass == E判定位置.標準 ) ? -50 : -25;\r
-                               if ( ( dTX.bチップがある.Bass && ( y > 0x39 ) ) && ( ( y < 0x19c ) ) &&\r
+                               n小節線消失距離dot = configIni.bReverse.Bass ?\r
+                                       (int) ( -100 * Scale.Y ) :\r
+                                       ( configIni.e判定位置.Bass == E判定位置.標準 ) ? (int) ( -50 * Scale.Y ) : (int) ( -25 * Scale.Y );\r
+\r
+                               if ( ( dTX.bチップがある.Bass ) &&\r
+                                       ( 0x39 * Scale.Y < y ) && ( y < 0x19c * Scale.Y ) &&\r
                                        ( pChip.nバーからの距離dot.Bass >= n小節線消失距離dot )\r
                                        )\r
                                {\r
-                                       this.txチップ.t2D描画( CDTXMania.app.Device, 0x18e, y, new Rectangle( 0, 450, 0x4e, 1 ) );\r
+                                       this.txチップ.t2D描画(\r
+                                               CDTXMania.app.Device,\r
+                                               0x18e * Scale.X,\r
+                                               y,\r
+                                               new Rectangle(\r
+                                                       0,\r
+                                                       (int) ( 450 * Scale.Y ),\r
+                                                       (int) ( 0x4e * Scale.X ),\r
+                                                       (int) ( 1 * Scale.Y )\r
+                                               )\r
+                                       );\r
                                }\r
+                               #endregion\r
                        }\r
                }\r
                #endregion\r
index 2f7f135..7eb4250 100644 (file)
@@ -5,6 +5,270 @@ using System.Runtime.InteropServices;
 \r
 namespace DTXMania\r
 {\r
+       #region [ Ech定義 ]\r
+       public enum Ech定義\r
+       {\r
+               BGM                                     = 0x01,\r
+               BarLength                       = 0x02,\r
+               BPM                                     = 0x03,\r
+               BGALayer1                       = 0x04,\r
+               //ExObj_nouse                   = 0x05,\r
+               //MissAnimation_nouse   = 0x06,\r
+               BGALayer2                       = 0x07,\r
+               BPMEx                           = 0x08,\r
+               //BMS_reserved_09               = 0x09,\r
+               //BMS_reserved_0A               = 0x0A,\r
+               //BMS_reserved_0B               = 0x0B,\r
+               //BMS_reserved_0C               = 0x0C,\r
+               //BMS_reserved_0D               = 0x0D,\r
+               //BMS_reserved_0E               = 0x0E,\r
+               //BMS_reserved_0F               = 0x0F,\r
+               //BMS_reserved_10               = 0x10,\r
+               HiHatClose                      = 0x11,\r
+               Snare                           = 0x12,\r
+               BassDrum                        = 0x13,\r
+               HighTom                         = 0x14,\r
+               LowTom                          = 0x15,\r
+               Cymbal                          = 0x16,\r
+               FloorTom                        = 0x17,\r
+               HiHatOpen                       = 0x18,\r
+               RideCymbal                      = 0x19,\r
+               LeftCymbal                      = 0x1A,\r
+               //nouse_1b                      = 0x1B,\r
+               //nouse_1c                      = 0x1C,\r
+               //nouse_1d                      = 0x1D,\r
+               //nouse_1e                      = 0x1E,\r
+               //nouse_1f                      = 0x1F,\r
+               Guitar_Open                     = 0x20,\r
+               Guitar_xxB                      = 0x21,\r
+               Guitar_xGx                      = 0x22,\r
+               Guitar_xGB                      = 0x23,\r
+               Guitar_Rxx                      = 0x24,\r
+               Guitar_RxB                      = 0x25,\r
+               Guitar_RGx                      = 0x26,\r
+               Guitar_RGB                      = 0x27,\r
+               Guitar_Wailing          = 0x28,\r
+               //flowspeed_gt_nouse    = 0x29,\r
+               //nouse_2a                      = 0x2A,\r
+               //nouse_2b                      = 0x2B,\r
+               //nouse_2c                      = 0x2C,\r
+               //nouse_2d                      = 0x2D,\r
+               //nouse_2e                      = 0x2E,\r
+               Guitar_WailingSound     = 0x2F,\r
+               //flowspeed_dr_nouse    = 0x30,\r
+               HiHatClose_Hidden       = 0x31,\r
+               Snare_Hidden            = 0x32,\r
+               BassDrum_Hidden         = 0x33,\r
+               HighTom_Hidden          = 0x34,\r
+               LowTom_Hidden           = 0x35,\r
+               Cymbal_Hidden           = 0x36,\r
+               FloorTom_Hidden         = 0x37,\r
+               HiHatOpen_Hidden        = 0x38,\r
+               RideCymbal_Hidden       = 0x39,\r
+               LeftCymbal_Hidden       = 0x3A,\r
+               //nouse_3b                      = 0x3B,\r
+               //nouse_3c                      = 0x3C,\r
+               //nouse_3d                      = 0x3D,\r
+               //nouse_3e                      = 0x3E,\r
+               //nouse_3f                      = 0x3F,\r
+               //BMS_reserved_40               = 0x40,\r
+               //HiddenObject_2P_41    = 0x41,\r
+               //HiddenObject_2P_42    = 0x42,\r
+               //HiddenObject_2P_43    = 0x43,\r
+               //HiddenObject_2P_44    = 0x44,\r
+               //HiddenObject_2P_45    = 0x45,\r
+               //HiddenObject_2P_46    = 0x46,\r
+               //BMS_reserved_47               = 0x47,\r
+               //BMS_reserved_48               = 0x48,\r
+               //BMS_reserved_49               = 0x49,\r
+               //nouse_4a                      = 0x4A,\r
+               //nouse_4b                      = 0x4B,\r
+               //nouse_4c                      = 0x4C,\r
+               //nouse_4d                      = 0x4D,\r
+               //nouse_4e                      = 0x4E,\r
+               //nouse_4f                      = 0x4F,\r
+               BarLine                         = 0x50,\r
+               BeatLine                        = 0x51,\r
+               MIDIChorus                      = 0x52,\r
+               FillIn                          = 0x53,\r
+               Movie                           = 0x54,\r
+               BGALayer3                       = 0x55,\r
+               BGALayer4                       = 0x56,\r
+               BGALayer5                       = 0x57,\r
+               BGALayer6                       = 0x58,\r
+               BGALayer7                       = 0x59,\r
+               //nouse_5a                      = 0x5A,\r
+               //nouse_5b                      = 0x5B,\r
+               //nouse_5c                      = 0x5C,\r
+               //nouse_5d                      = 0x5D,\r
+               //nouse_5e                      = 0x5E,\r
+               //nouse_5f                      = 0x5F,\r
+               BGALayer8                       = 0x60,\r
+               SE01                            = 0x61,\r
+               SE02                            = 0x62,\r
+               SE03                            = 0x63,\r
+               SE04                            = 0x64,\r
+               SE05                            = 0x65,\r
+               SE06                            = 0x66,\r
+               SE07                            = 0x67,\r
+               SE08                            = 0x68,\r
+               SE09                            = 0x69,\r
+               //nouse_6a                      = 0x6A,\r
+               //nouse_6b                      = 0x6B,\r
+               //nouse_6c                      = 0x6C,\r
+               //nouse_6d                      = 0x6D,\r
+               //nouse_6e                      = 0x6E,\r
+               //nouse_6f                      = 0x6F,\r
+               SE10                            = 0x70,\r
+               SE11                            = 0x71,\r
+               SE12                            = 0x72,\r
+               SE13                            = 0x73,\r
+               SE14                            = 0x74,\r
+               SE15                            = 0x75,\r
+               SE16                            = 0x76,\r
+               SE17                            = 0x77,\r
+               SE18                            = 0x78,\r
+               SE19                            = 0x79,\r
+               //nouse_7a                      = 0x7A,\r
+               //nouse_7b                      = 0x7B,\r
+               //nouse_7c                      = 0x7C,\r
+               //nouse_7d                      = 0x7D,\r
+               //nouse_7e                      = 0x7E,\r
+               //nouse_7f                      = 0x7F,\r
+               SE20                            = 0x80,\r
+               SE21                            = 0x81,\r
+               SE22                            = 0x82,\r
+               SE23                            = 0x83,\r
+               SE24                            = 0x84,\r
+               SE25                            = 0x85,\r
+               SE26                            = 0x86,\r
+               SE27                            = 0x87,\r
+               SE28                            = 0x88,\r
+               SE29                            = 0x89,\r
+               //nouse_8a                      = 0x8A,\r
+               //nouse_8b                      = 0x8B,\r
+               //nouse_8c                      = 0x8C,\r
+               //nouse_8d                      = 0x8D,\r
+               //nouse_8e                      = 0x8E,\r
+               //nouse_8f                      = 0x8F,\r
+               SE30                            = 0x90,\r
+               SE31                            = 0x91,\r
+               SE32                            = 0x92,\r
+               //nouse_90                      = 0x90,\r
+               //nouse_91                      = 0x91,\r
+               //nouse_92                      = 0x92,\r
+               //nouse_93                      = 0x93,\r
+               //nouse_94                      = 0x94,\r
+               //nouse_95                      = 0x95,\r
+               //nouse_96                      = 0x96,\r
+               //nouse_97                      = 0x97,\r
+               //nouse_98                      = 0x98,\r
+               //nouse_99                      = 0x99,\r
+               //nouse_9a                      = 0x9A,\r
+               //nouse_9b                      = 0x9B,\r
+               //nouse_9c                      = 0x9C,\r
+               //nouse_9d                      = 0x9D,\r
+               //nouse_9e                      = 0x9E,\r
+               //nouse_9f                      = 0x9F,\r
+               Bass_Open                       = 0xA0,\r
+               Bass_xxB                        = 0xA1,\r
+               Bass_xGx                        = 0xA2,\r
+               Bass_xGB                        = 0xA3,\r
+               Bass_Rxx                        = 0xA4,\r
+               Bass_RxB                        = 0xA5,\r
+               Bass_RGx                        = 0xA6,\r
+               Bass_RGB                        = 0xA7,\r
+               Bass_Wailing            = 0xA8,\r
+               //nouse_a9                      = 0xA9,\r
+               //nouse_aa                      = 0xAA,\r
+               //nouse_ab                      = 0xAB,\r
+               //nouse_ac                      = 0xAC,\r
+               //nouse_ad                      = 0xAD,\r
+               //nouse_ae                      = 0xAE,\r
+               Bass_WailingSound       = 0xAF,\r
+               //nouse_b0                      = 0xB0,\r
+               HiHatClose_NoChip       = 0xB1,\r
+               Snare_NoChip            = 0xB2,\r
+               BassDrum_NoChip         = 0xB3,\r
+               HighTom_NoChip          = 0xB4,\r
+               LowTom_NoChip           = 0xB5,\r
+               Cymbal_NoChip           = 0xB6,\r
+               FloorTom_NoChip         = 0xB7,\r
+               HiHatOpen_NoChip        = 0xB8,\r
+               RideCymbal_NoChip       = 0xB9,\r
+               Guitar_NoChip           = 0xBA,\r
+               Bass_NoChip                     = 0xBB,\r
+               LeftCymbal_NoChip       = 0xBC,\r
+               //nouse_bd                      = 0xBD,\r
+               //nouse_be                      = 0xBE,\r
+               //nouse_bf                      = 0xBF,\r
+               //nouse_c0                      = 0xC0,\r
+               BeatLineShift           = 0xC1,\r
+               BeatLineDisplay         = 0xC2,\r
+               //nouse_c3                      = 0xC3,\r
+               BGALayer1_Swap          = 0xC4,\r
+               //nouse_c5                      = 0xC5,\r
+               //nouse_c6                      = 0xC6,\r
+               BGALayer2_Swap          = 0xC7,\r
+               //nouse_c8                      = 0xC8,\r
+               //nouse_c9                      = 0xC9,\r
+               //nouse_ca                      = 0xCA,\r
+               //nouse_cb                      = 0xCB,\r
+               //nouse_cc                      = 0xCC,\r
+               //nouse_cd                      = 0xCD,\r
+               //nouse_ce                      = 0xCE,\r
+               //nouse_cf                      = 0xCF,\r
+               //nouse_d0                      = 0xD0,\r
+               //nouse_d1                      = 0xD1,\r
+               //nouse_d2                      = 0xD2,\r
+               //nouse_d3                      = 0xD3,\r
+               //nouse_d4                      = 0xD4,\r
+               BGALayer3_Swap          = 0xD5,\r
+               BGALayer4_Swap          = 0xD6,\r
+               BGALayer5_Swap          = 0xD7,\r
+               BGALayer6_Swap          = 0xD8,\r
+               BGALayer7_Swap          = 0xD9,\r
+               MixerAdd                        = 0xDA,\r
+               MixerRemove                     = 0xDB,\r
+               //nouse_dc                      = 0xDC,\r
+               //nouse_dd                      = 0xDD,\r
+               //nouse_de                      = 0xDE,\r
+               //nouse_df                      = 0xDF,\r
+               BGALayer8_Swap          = 0xE0,\r
+               //nouse_e1                      = 0xE1,\r
+               //nouse_e2                      = 0xE2,\r
+               //nouse_e3                      = 0xE3,\r
+               //nouse_e4                      = 0xE4,\r
+               //nouse_e5                      = 0xE5,\r
+               //nouse_e6                      = 0xE6,\r
+               //nouse_e7                      = 0xE7,\r
+               //nouse_e8                      = 0xE8,\r
+               //nouse_e9                      = 0xE9,\r
+               //nouse_ea                      = 0xEA,\r
+               //nouse_eb                      = 0xEB,\r
+               //nouse_ec                      = 0xEC,\r
+               //nouse_ed                      = 0xED,\r
+               //nouse_ee                      = 0xEE,\r
+               //nouse_ef                      = 0xEF,\r
+               //nouse_f0                      = 0xF0,\r
+               //nouse_f1                      = 0xF1,\r
+               //nouse_f2                      = 0xF2,\r
+               //nouse_f3                      = 0xF3,\r
+               //nouse_f4                      = 0xF4,\r
+               //nouse_f5                      = 0xF5,\r
+               //nouse_f6                      = 0xF6,\r
+               //nouse_f7                      = 0xF7,\r
+               //nouse_f8                      = 0xF8,\r
+               //nouse_f9                      = 0xF9,\r
+               //nouse_fa                      = 0xFA,\r
+               //nouse_fb                      = 0xFB,\r
+               //nouse_fc                      = 0xFC,\r
+               //nouse_fd                      = 0xFD,\r
+               //nouse_fe                      = 0xFE,\r
+               //nouse_ff                      = 0xFF,\r
+       }\r
+       #endregion\r
+\r
        public enum ECYGroup\r
        {\r
                打ち分ける,\r
@@ -116,6 +380,16 @@ namespace DTXMania
                SUPERRANDOM,\r
                HYPERRANDOM\r
        }\r
+       public enum ESoundChipType\r
+       {\r
+               Drums,\r
+               Guitar,\r
+               Bass,\r
+               SE,\r
+               BGM,\r
+               UNKNOWN = 99\r
+       }\r
+\r
        public enum E楽器パート            // ここを修正するときは、セットで次の EKeyConfigPart も修正すること。\r
        {\r
                DRUMS   = 0,\r
index 16ae0e6..df4dbed 100644 (file)
Binary files a/実行時フォルダ(DTXCreator)/dll/FDK.dll and b/実行時フォルダ(DTXCreator)/dll/FDK.dll differ
index 4d0c015..07b6640 100644 (file)
Binary files a/実行時フォルダ/DTXManiaGR.exe and b/実行時フォルダ/DTXManiaGR.exe differ
index 16ae0e6..df4dbed 100644 (file)
Binary files a/実行時フォルダ/dll/FDK.dll and b/実行時フォルダ/dll/FDK.dll differ