OSDN Git Service

#34026 CONFIGURATION画面をFullHDに対応させた。これでまずは一通りFullHD化できたはず。
authoryyagi <yyagi@16f42ceb-6dc6-49c8-ba94-f2d53467949d>
Tue, 22 Jul 2014 15:29:40 +0000 (15:29 +0000)
committeryyagi <yyagi@16f42ceb-6dc6-49c8-ba94-f2d53467949d>
Tue, 22 Jul 2014 15:29:40 +0000 (15:29 +0000)
git-svn-id: http://svn.osdn.jp/svnroot/dtxmania/trunk@745 16f42ceb-6dc6-49c8-ba94-f2d53467949d

DTXManiaプロジェクト/コード/ステージ/04.コンフィグ/CActConfigKeyAssign.cs
DTXManiaプロジェクト/コード/ステージ/04.コンフィグ/CActConfigList.cs
DTXManiaプロジェクト/コード/ステージ/04.コンフィグ/CStageコンフィグ.cs
実行時フォルダ/DTXManiaGR.exe

index 91aa69b..dad75e7 100644 (file)
@@ -4,6 +4,7 @@ using System.Text;
 using System.Runtime.InteropServices;\r
 using System.Drawing;\r
 using FDK;\r
+using SlimDX;\r
 \r
 namespace DTXMania\r
 {\r
@@ -104,11 +105,16 @@ namespace DTXMania
                {\r
                        if( !base.b活性化してない )\r
                        {\r
+                               this.prvFont = new CPrivateFastFont( CSkin.Path( @"Graphics\fonts\mplus-1p-heavy.ttf" ), (int) ( 18 * Scale.Y ) );      // t項目リストの設定 の前に必要\r
                                this.txカーソル = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenConfig menu cursor.png" ), false );\r
                                this.txHitKeyダイアログ = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenConfig hit key to assign dialog.png" ), false );\r
                                base.OnManagedリソースの作成();\r
                        }\r
                }\r
+               public override void OnManagedリソースの解放()\r
+               {\r
+                       CDTXMania.t安全にDisposeする( ref prvFont );\r
+               }\r
                public override int On進行描画()\r
                {\r
                        if( !base.b活性化してない )\r
@@ -134,28 +140,39 @@ namespace DTXMania
                                        CDTXMania.ConfigIni.KeyAssign[ (int) this.part ][ (int) this.pad ][ this.n現在の選択行 ].ID = 0;\r
                                        CDTXMania.ConfigIni.KeyAssign[ (int) this.part ][ (int) this.pad ][ this.n現在の選択行 ].コード = 0;\r
                                }\r
-                               if( this.txカーソル != null )\r
+                               if ( this.txカーソル != null )\r
                                {\r
                                        int num = 20;\r
                                        int num2 = 0x144;\r
                                        int num3 = 0x3e + ( num * ( this.n現在の選択行 + 1 ) );\r
-                                       this.txカーソル.t2D描画( CDTXMania.app.Device, num2, num3, new Rectangle( 0, 0, 0x10, 0x20 ) );\r
+                                       this.txカーソル.vc拡大縮小倍率 = new Vector3( 1f, 0.75f, 1f );\r
+                                       this.txカーソル.t2D描画( CDTXMania.app.Device, num2 * Scale.X, num3 * Scale.Y - 6, new Rectangle( 0, 0, (int) ( 0x10 * Scale.X ), (int) ( 0x20 * Scale.Y ) ) );\r
                                        num2 += 0x10;\r
-                                       Rectangle rectangle = new Rectangle( 8, 0, 0x10, 0x20 );\r
-                                       for( int j = 0; j < 14; j++ )\r
+                                       Rectangle rectangle = new Rectangle( (int) ( 8 * Scale.X ), 0, (int) ( 0x10 * Scale.X ), (int) ( 0x20 * Scale.Y ) );\r
+                                       for ( int j = 0; j < 14; j++ )\r
                                        {\r
-                                               this.txカーソル.t2D描画( CDTXMania.app.Device, num2, num3, rectangle );\r
+                                               this.txカーソル.t2D描画( CDTXMania.app.Device, num2 * Scale.X, num3 * Scale.Y - 6, rectangle );\r
                                                num2 += 0x10;\r
                                        }\r
-                                       this.txカーソル.t2D描画( CDTXMania.app.Device, num2, num3, new Rectangle( 0x10, 0, 0x10, 0x20 ) );\r
+                                       this.txカーソル.t2D描画( CDTXMania.app.Device, num2 * Scale.X, num3 * Scale.Y - 6, new Rectangle( (int) ( 0x10 * Scale.X ), 0, (int) ( 0x10 * Scale.X ), (int) ( 0x20 * Scale.Y ) ) );\r
                                }\r
                                int num5 = 20;\r
                                int x = 0x134;\r
                                int y = 0x40;\r
-                               CDTXMania.stageコンフィグ.actFont.t文字列描画( x, y, this.strパッド名, false, 0.75f );\r
+                               //CDTXMania.stageコンフィグ.actFont.t文字列描画( x, y, this.strパッド名, false, 0.75f );\r
+                               Bitmap bmpStr = prvFont.DrawPrivateFont( this.strパッド名, Color.White, Color.Black );\r
+                               CTexture txStr = CDTXMania.tテクスチャの生成( bmpStr );\r
+                               txStr.vc拡大縮小倍率 = new Vector3( 0.75f, 0.75f, 1f );\r
+                               txStr.t2D描画( CDTXMania.app.Device, x * Scale.X, y * Scale.Y - 20 );\r
+                               CDTXMania.tテクスチャの解放( ref txStr );\r
+                               CDTXMania.t安全にDisposeする( ref txStr );\r
+                               CDTXMania.t安全にDisposeする( ref bmpStr );\r
+\r
                                y += num5;\r
                                CConfigIni.CKeyAssign.STKEYASSIGN[] stkeyassignArray = CDTXMania.ConfigIni.KeyAssign[ (int) this.part ][ (int) this.pad ];\r
-                               for( int i = 0; i < 0x10; i++ )\r
+                               string strParam;\r
+                               bool b強調;\r
+                               for ( int i = 0; i < 0x10; i++ )\r
                                {\r
                                        switch( stkeyassignArray[ i ].入力デバイス )\r
                                        {\r
@@ -176,18 +193,53 @@ namespace DTXMania
                                                        break;\r
 \r
                                                default:\r
-                                                       CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 20, y, string.Format( "{0,2}.", i + 1 ), this.n現在の選択行 == i, 0.75f );\r
+                                                       strParam = string.Format( "{0,2}.", i + 1 );\r
+                                                       b強調 = ( this.n現在の選択行 == i );\r
+                                                       bmpStr = b強調 ?\r
+                                                               prvFont.DrawPrivateFont( strParam, Color.White, Color.Black, Color.Yellow, Color.OrangeRed ) :\r
+                                                               prvFont.DrawPrivateFont( strParam, Color.White, Color.Black );\r
+                                                       txStr = CDTXMania.tテクスチャの生成( bmpStr, false );\r
+                                                       txStr.vc拡大縮小倍率 = new Vector3( 0.75f, 0.75f, 1f );\r
+                                                       txStr.t2D描画( CDTXMania.app.Device, ( x + 20 ) * Scale.X, y * Scale.Y - 20 );\r
+                                                       CDTXMania.tテクスチャの解放( ref txStr );\r
+                                                       CDTXMania.t安全にDisposeする( ref txStr );\r
+                                                       CDTXMania.t安全にDisposeする( ref bmpStr );\r
+                                                       //CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 20, y, string.Format( "{0,2}.", i + 1 ), this.n現在の選択行 == i, 0.75f );\r
                                                        break;\r
                                        }\r
                                        y += num5;\r
                                }\r
-                               CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 20, y, "Reset", this.n現在の選択行 == 0x10, 0.75f );\r
-                               y += num5;\r
-                               CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 20, y, "<< Returnto List", this.n現在の選択行 == 0x11, 0.75f );\r
+                               strParam = "Reset";\r
+                               b強調 = ( this.n現在の選択行 == 0x10 );\r
+                               bmpStr = b強調 ?\r
+                                       prvFont.DrawPrivateFont( strParam, Color.White, Color.Black, Color.Yellow, Color.OrangeRed ) :\r
+                                       prvFont.DrawPrivateFont( strParam, Color.White, Color.Black );\r
+                               txStr = CDTXMania.tテクスチャの生成( bmpStr, false );\r
+                               txStr.vc拡大縮小倍率 = new Vector3( 0.75f, 0.75f, 1f );\r
+                               txStr.t2D描画( CDTXMania.app.Device, ( x + 20 ) * Scale.X, y * Scale.Y - 20 );\r
+                               CDTXMania.tテクスチャの解放( ref txStr );\r
+                               CDTXMania.t安全にDisposeする( ref txStr );\r
+                               CDTXMania.t安全にDisposeする( ref bmpStr );\r
                                y += num5;\r
+                               strParam = "<< Returnto List";\r
+                               b強調 = ( this.n現在の選択行 == 0x11 );\r
+                               bmpStr = b強調 ?\r
+                                       prvFont.DrawPrivateFont( strParam, Color.White, Color.Black, Color.Yellow, Color.OrangeRed ) :\r
+                                       prvFont.DrawPrivateFont( strParam, Color.White, Color.Black );\r
+                               txStr = CDTXMania.tテクスチャの生成( bmpStr, false );\r
+                               txStr.vc拡大縮小倍率 = new Vector3( 0.75f, 0.75f, 1f );\r
+                               txStr.t2D描画( CDTXMania.app.Device, ( x + 20 ) * Scale.X, y * Scale.Y - 20 );\r
+                               CDTXMania.tテクスチャの解放( ref txStr );\r
+                               CDTXMania.t安全にDisposeする( ref txStr );\r
+                               CDTXMania.t安全にDisposeする( ref bmpStr );\r
+\r
+                               //CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 20, y, "Reset", this.n現在の選択行 == 0x10, 0.75f );\r
+                               //y += num5;\r
+                               //CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 20, y, "<< Returnto List", this.n現在の選択行 == 0x11, 0.75f );\r
+                               //y += num5;\r
                                if( this.bキー入力待ち && ( this.txHitKeyダイアログ != null ) )\r
                                {\r
-                                       this.txHitKeyダイアログ.t2D描画( CDTXMania.app.Device, 0x185, 0xd7 );\r
+                                       this.txHitKeyダイアログ.t2D描画( CDTXMania.app.Device, 0x185 * Scale.X, 0xd7 * Scale.Y );\r
                                }\r
                        }\r
                        return 0;\r
@@ -229,6 +281,7 @@ namespace DTXMania
                private string strパッド名;\r
                private CTexture txHitKeyダイアログ;\r
                private CTexture txカーソル;\r
+               private CPrivateFastFont prvFont;\r
 \r
                private void tアサインコードの描画・Joypad( int line, int x, int y, int nID, int nCode, bool b強調 )\r
                {\r
@@ -274,7 +327,16 @@ namespace DTXMania
                                        }\r
                                        break;\r
                        }\r
-                       CDTXMania.stageコンフィグ.actFont.t文字列描画( x, y, string.Format( "{0,2}. Joypad #{1} ", line, nID ) + str, b強調, 0.75f );\r
+                       Bitmap bmpStr = b強調 ?\r
+                               prvFont.DrawPrivateFont( str, Color.White, Color.Black, Color.Yellow, Color.OrangeRed ) :\r
+                               prvFont.DrawPrivateFont( str, Color.White, Color.Black );\r
+                       CTexture txStr = CDTXMania.tテクスチャの生成( bmpStr, false );\r
+                       txStr.vc拡大縮小倍率 = new Vector3( 0.75f, 0.75f, 1f );\r
+                       txStr.t2D描画( CDTXMania.app.Device, x * Scale.X, y * Scale.Y - 20 );\r
+                       CDTXMania.tテクスチャの解放( ref txStr );\r
+                       CDTXMania.t安全にDisposeする( ref txStr );\r
+                       CDTXMania.t安全にDisposeする( ref bmpStr );\r
+                       //                      CDTXMania.stageコンフィグ.actFont.t文字列描画( x, y, string.Format( "{0,2}. Joypad #{1} ", line, nID ) + str, b強調, 0.75f );\r
                }\r
                private void tアサインコードの描画・Keyboard( int line, int x, int y, int nID, int nCode, bool b強調 )\r
                {\r
@@ -291,15 +353,45 @@ namespace DTXMania
                        {\r
                                str = string.Format( "{0,2}. Key 0x{1:X2}", line, nCode );\r
                        }\r
-                       CDTXMania.stageコンフィグ.actFont.t文字列描画( x, y, str, b強調, 0.75f );\r
+\r
+                       Bitmap bmpStr = b強調 ?\r
+                               prvFont.DrawPrivateFont( str, Color.White, Color.Black, Color.Yellow, Color.OrangeRed ) :\r
+                               prvFont.DrawPrivateFont( str, Color.White, Color.Black );\r
+                       CTexture txStr = CDTXMania.tテクスチャの生成( bmpStr, false );\r
+                       txStr.vc拡大縮小倍率 = new Vector3( 0.75f, 0.75f, 1f );\r
+                       txStr.t2D描画( CDTXMania.app.Device, x * Scale.X, y * Scale.Y - 20 );\r
+                       CDTXMania.tテクスチャの解放( ref txStr );\r
+                       CDTXMania.t安全にDisposeする( ref txStr );\r
+                       CDTXMania.t安全にDisposeする( ref bmpStr );\r
+                       //CDTXMania.stageコンフィグ.actFont.t文字列描画( x, y, str, b強調, 0.75f );\r
                }\r
                private void tアサインコードの描画・MidiIn( int line, int x, int y, int nID, int nCode, bool b強調 )\r
                {\r
-                       CDTXMania.stageコンフィグ.actFont.t文字列描画( x, y, string.Format( "{0,2}. MidiIn #{1} code.{2}", line, nID, nCode ), b強調, 0.75f );\r
+                       string str = string.Format( "{0,2}. MidiIn #{1} code.{2}", line, nID, nCode );\r
+                       Bitmap bmpStr = b強調 ?\r
+                               prvFont.DrawPrivateFont( str, Color.White, Color.Black, Color.Yellow, Color.OrangeRed ) :\r
+                               prvFont.DrawPrivateFont( str, Color.White, Color.Black );\r
+                       CTexture txStr = CDTXMania.tテクスチャの生成( bmpStr, false );\r
+                       txStr.vc拡大縮小倍率 = new Vector3( 0.75f, 0.75f, 1f );\r
+                       txStr.t2D描画( CDTXMania.app.Device, x * Scale.X, y * Scale.Y - 20 );\r
+                       CDTXMania.tテクスチャの解放( ref txStr );\r
+                       CDTXMania.t安全にDisposeする( ref txStr );\r
+                       CDTXMania.t安全にDisposeする( ref bmpStr );\r
+                       //CDTXMania.stageコンフィグ.actFont.t文字列描画( x, y, string.Format( "{0,2}. MidiIn #{1} code.{2}", line, nID, nCode ), b強調, 0.75f );\r
                }\r
                private void tアサインコードの描画・Mouse( int line, int x, int y, int nID, int nCode, bool b強調 )\r
                {\r
-                       CDTXMania.stageコンフィグ.actFont.t文字列描画( x, y, string.Format( "{0,2}. Mouse Button{1}", line, nCode ), b強調, 0.75f );\r
+                       string str = string.Format( "{0,2}. Mouse Button{1}", line, nCode );\r
+                       Bitmap bmpStr = b強調 ?\r
+                               prvFont.DrawPrivateFont( str, Color.White, Color.Black, Color.Yellow, Color.OrangeRed ) :\r
+                               prvFont.DrawPrivateFont( str, Color.White, Color.Black );\r
+                       CTexture txStr = CDTXMania.tテクスチャの生成( bmpStr, false );\r
+                       txStr.vc拡大縮小倍率 = new Vector3( 0.75f, 0.75f, 1f );\r
+                       txStr.t2D描画( CDTXMania.app.Device, x * Scale.X, y * Scale.Y - 20 );\r
+                       CDTXMania.tテクスチャの解放( ref txStr );\r
+                       CDTXMania.t安全にDisposeする( ref txStr );\r
+                       CDTXMania.t安全にDisposeする( ref bmpStr );\r
+                       //CDTXMania.stageコンフィグ.actFont.t文字列描画( x, y, string.Format( "{0,2}. Mouse Button{1}", line, nCode ), b強調, 0.75f );\r
                }\r
                private bool tキーチェックとアサイン・Joypad()\r
                {\r
index 22d6965..5eaffc9 100644 (file)
@@ -71,7 +71,7 @@ namespace DTXMania
 \r
                        // #27029 2012.1.5 from: 説明文は最大9行→13行に変更。\r
 \r
-                       this.iSystemReturnToMenu = new CItemBase( "<< ReturnTo Menu", CItemBase.Eパネル種別.その他,\r
+                       this.iSystemReturnToMenu = new CItemBase( "<< Return To Menu", CItemBase.Eパネル種別.その他,\r
                                "左側のメニューに戻ります。",\r
                                "Return to left menu." );\r
                        this.list項目リスト.Add( this.iSystemReturnToMenu );\r
@@ -82,216 +82,269 @@ namespace DTXMania
                        this.list項目リスト.Add( this.iSystemReloadDTX );\r
 \r
                        this.iCommonDark = new CItemList( "Dark", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eDark,\r
-                               "HALF: 背景、レーン、ゲージが表示\nされなくなります。\nFULL: さらに小節線、拍線、判定ラ\nイン、パッドも表示されなくなります。",\r
-                               "OFF: all display parts are shown.\nHALF: wallpaper, lanes and gauge are\n disappeared.\nFULL: additionaly to HALF, bar/beat\n lines, hit bar, pads are disappeared.",\r
+                               "HALF: 背景、レーン、ゲージが表示されなくなります。\n" +\r
+                               "FULL: さらに小節線、拍線、判定ライン、パッドも表示されなくなります。",\r
+                               "OFF: all display parts are shown.\n" +\r
+                               "HALF: wallpaper, lanes and gauge are disappeared.\n" +\r
+                               "FULL: additionaly to HALF, bar/beat lines, hit bar, pads are disappeared.",\r
                                new string[] { "OFF", "HALF", "FULL" } );\r
                        this.list項目リスト.Add( this.iCommonDark );\r
 \r
                        this.iSystemRisky = new CItemInteger( "Risky", 0, 10, CDTXMania.ConfigIni.nRisky,\r
-                               "Riskyモードの設定:\n1以上の値にすると、その回数分の\nPoor/MissでFAILEDとなります。\n0にすると無効になり、\nDamageLevelに従ったゲージ増減と\nなります。\nStageFailedの設定と併用できます。",\r
-                               "Risky mode:\nSet over 1, in case you'd like to specify\n the number of Poor/Miss times to be\n FAILED.\nSet 0 to disable Risky mode." );\r
+                               "Riskyモードの設定:\n" +\r
+                               "1以上の値にすると、その回数分のPoor/MissでFAILEDとなります。\n" +\r
+                               "0にすると無効になり、DamageLevelに従ったゲージ増減となります。\n" +\r
+                               "\n" +\r
+                               "なお、この設定は、StageFailedの設定と併用できます。",\r
+                               "Risky mode:\n" +\r
+                               "It means the Poor/Miss times to be FAILED.\n" +\r
+                               "Set 0 to disable Risky mode." );\r
                        this.list項目リスト.Add( this.iSystemRisky );\r
 \r
-                       int nDGmode = (CDTXMania.ConfigIni.bGuitar有効 ? 2 : 0) + (CDTXMania.ConfigIni.bDrums有効 ? 1 : 0) - 1;\r
-                       this.iSystemGRmode = new CItemList("Drums & GR", CItemBase.Eパネル種別.通常, nDGmode,\r
-                               "使用楽器の選択:\nDrOnly: ドラムのみ有効にします。\nGROnly: ギター/ベースのみの\n専用画面を用います。\nBoth: ドラムとギター/ベースの\n両方を有効にします。\n",\r
-                               "DrOnly: Only Drums is available.\nGROnly: Only Guitar/Bass are available.\n You can play them in GR screen.\nBoth: Both Drums and Guitar/Bass\n are available.",\r
-                               new string[] { "DrOnly", "GROnly", "Both" });\r
-                       this.list項目リスト.Add(this.iSystemGRmode);\r
-\r
-\r
-                       this.iCommonPlaySpeed = new CItemInteger("PlaySpeed", 5, 40, CDTXMania.ConfigIni.n演奏速度,\r
-                               "曲の演奏速度を、速くしたり遅くした\n" +\r
-                               "りすることができます。\n" +\r
-                               "(※一部のサウンドカードでは正しく\n" +\r
-                               " 再生できない可能性があります。)\n" +\r
+                       int nDGmode = ( CDTXMania.ConfigIni.bGuitar有効 ? 2 : 0 ) + ( CDTXMania.ConfigIni.bDrums有効 ? 1 : 0 ) - 1;\r
+                       this.iSystemGRmode = new CItemList( "Drums & GR ", CItemBase.Eパネル種別.通常, nDGmode,\r
+                               "使用楽器の選択:\n" +\r
+                               "DrOnly: ドラムのみ有効にします。\n" +\r
+                               "GROnly: ギター/ベースのみの専用画面を用います。\n" +\r
+                               "Both: ドラムとギター/ベースの両方を有効にします。\n",\r
+                               "DrOnly: Only Drums is available.\n" +\r
+                               "GROnly: Only Guitar/Bass are available. You can play them in GR screen.\n" +\r
+                               "Both: Both Drums and Guitar/Bass are available.",\r
+                               new string[] { "DrOnly", "GROnly", "Both" } );\r
+                       this.list項目リスト.Add( this.iSystemGRmode );\r
+\r
+                       this.iCommonPlaySpeed = new CItemInteger( "PlaySpeed", 5, 40, CDTXMania.ConfigIni.n演奏速度,\r
+                               "曲の演奏速度を、速くしたり遅くしたりすることができます。\n" +\r
+                               "(※一部のサウンドカードでは正しく再生できない可能性があります。)\n" +\r
                                "\n" +\r
-                               "TimeStretchがONのときに、演奏\n" +\r
-                               "速度をx0.850以下にすると、チップの\n" +\r
-                               "ズレが大きくなります。",\r
+                               "TimeStretchがONのときに、演奏速度をx0.850以下にすると、チップのズレが大きくなります。",\r
                                "It changes the song speed.\n" +\r
-                               "For example, you can play in half\n" +\r
-                               " speed by setting PlaySpeed = 0.500\n" +\r
-                               " for your practice.\n" +\r
+                               "For example, you can play in half speed by setting PlaySpeed = 0.500 for your practice.\n" +\r
                                "\n" +\r
-                               "Note: It also changes the songs' pitch.\n" +\r
-                               "In case TimeStretch=ON, some sound\n" +\r
-                               "lag occurs slower than x0.900.");\r
+                               "Note: It also changes the songs' pitch. In case TimeStretch=ON and slower than x0.900, some sound lag occurs." );\r
                        this.list項目リスト.Add( this.iCommonPlaySpeed );\r
 \r
                        this.iSystemTimeStretch = new CItemToggle( "TimeStretch", CDTXMania.ConfigIni.bTimeStretch,\r
-                               "演奏速度の変更方式:\n" + \r
-                               "ONにすると、演奏速度の変更を、\n" +\r
-                               "周波数変更ではなく\n" +\r
-                               "タイムストレッチで行います。" +\r
+                               "演奏速度の変更方式:\n" +\r
+                               "ONにすると、演奏速度の変更を、周波数変更ではなくタイムストレッチで行います。\n" +\r
                                "\n" +\r
-                               "これをONにすると、サウンド処理に\n" +\r
-                               "より多くのCPU性能を使用します。\n" +\r
-                               "また、演奏速度をx0.850以下にすると、\n" +\r
-                               "チップのズレが大きくなります。",\r
-                               "How to change the playing speed:\n" +\r
-                               "Turn ON to use time stretch\n" +\r
-                               "to change the play speed." +\r
+                               "タイムストレッチ使用時は、サウンド処理により多くのCPU性能を使用します。\n" +\r
+                               "また、演奏速度をx0.850以下にすると、チップのズレが大きくなります。",\r
+                               "The way to change the playing speed:\n" +\r
+                               "Turn ON to use time stretch to change the play speed." +\r
                                "\n" +\r
-                               "If you set TimeStretch=ON, it usese\n" +\r
-                               "more CPU power. And some sound\n" +\r
-                               "lag occurs slower than x0.900.");\r
+                               "TimeStretch uses more CPU power. And some sound lag occurs if PlaySpeed is slower than x0.900." );\r
                        this.list項目リスト.Add( this.iSystemTimeStretch );\r
 \r
-\r
                        this.iSystemFullscreen = new CItemToggle( "Fullscreen", CDTXMania.ConfigIni.b全画面モード,\r
-                               "画面モード設定:\nON で全画面モード、OFF でウィンド\nウモードになります。",\r
+                               "画面モード設定:\n" +\r
+                               "ON で全画面モード、OFF でウィンドウモードになります。",\r
                                "Fullscreen mode or window mode." );\r
                        this.list項目リスト.Add( this.iSystemFullscreen );\r
                        this.iSystemStageFailed = new CItemToggle( "StageFailed", CDTXMania.ConfigIni.bSTAGEFAILED有効,\r
-                               "STAGE FAILED 有効:\nON にすると、ゲージがなくなった時\nに STAGE FAILED となり演奏が中断\nされます。OFF の場合は、ゲージが\nなくなっても最後まで演奏できます。",\r
-                               "Turn OFF if you don't want to encount\n GAME OVER." );\r
+                               "STAGE FAILED 有効:\n" +\r
+                               "ON にすると、ゲージがなくなった時に STAGE FAILED となり演奏が中断されます。\n" +\r
+                               "OFF の場合は、ゲージがなくなっても最後まで演奏できます。",\r
+                               "Turn OFF if you don't want to encount GAME OVER." );\r
                        this.list項目リスト.Add( this.iSystemStageFailed );\r
                        this.iSystemRandomFromSubBox = new CItemToggle( "RandSubBox", CDTXMania.ConfigIni.bランダムセレクトで子BOXを検索対象とする,\r
-                               "子BOXをRANDOMの対象とする:\nON にすると、RANDOM SELECT 時\nに子BOXも選択対象とします。",\r
-                               "Turn ON to use child BOX (subfolders)\n at RANDOM SELECT." );\r
+                               "子BOXをRANDOMの対象とする:\n" +\r
+                               "ON にすると、RANDOM SELECT 時に子BOXも選択対象とします。",\r
+                               "Turn ON to use child BOX (subfolders) at RANDOM SELECT." );\r
                        this.list項目リスト.Add( this.iSystemRandomFromSubBox );\r
 \r
 \r
-       \r
                        this.iSystemAdjustWaves = new CItemToggle( "AdjustWaves", CDTXMania.ConfigIni.bWave再生位置自動調整機能有効,\r
-                           "サウンド再生位置自動補正:\n" +\r
-                               "ハードウェアやOSに起因するサウン\n" +\r
-                               "ドのずれを強制的に補正します。\n" +\r
-                               "BGM のように再生時間の長い音声\n" +\r
-                               "データが使用されている曲で効果が\n" +\r
-                               "あります。" +\r
+                               "サウンド再生位置自動補正:\n" +\r
+                               "ハードウェアやOSに起因するサウンドのずれを強制的に補正します。\n" +\r
+                               "BGM のように再生時間の長い音声データが使用されている曲で効果があります。" +\r
+                               "\n" +\r
+                               "※ SoundTypeでDSound(DirectSound)を指定している場合にのみ有効です。WASAPI/ASIO使用時は効果がありません。",\r
+                               "Automatic wave playing position adjustment feature.\n" +\r
                                "\n" +\r
-                               "※ DirectSound使用時のみ有効です。",\r
-                           "Automatic wave playing position\n" +\r
-                               " adjustment feature. If you turn it ON,\n" +\r
-                               " it decrease the lag which comes from\n" +\r
-                               " the difference of hardware/OS.\n" +\r
-                               "Usually, you should turn it ON." +\r
-                               "\n"+\r
-                               "Note: This setting is effetive\n" +\r
-                               " only when DirectSound is used.");\r
+                               "If you turn it ON, it decrease the lag which comes from the difference of hardware/OS.\n" +\r
+                               "Usually, you should turn it ON.\n" +\r
+                               "\n" +\r
+                               "Note: This setting is effetive only when DSound(DirectSound) in SoundType is used." );\r
                        this.list項目リスト.Add( this.iSystemAdjustWaves );\r
+\r
+\r
                        this.iSystemVSyncWait = new CItemToggle( "VSyncWait", CDTXMania.ConfigIni.b垂直帰線待ちを行う,\r
-                               "垂直帰線同期:\n画面の描画をディスプレイの垂直帰\n線中に行なう場合には ON を指定し\nます。ON にすると、ガタつきのない\n滑らかな画面描画が実現されます。",\r
-                               "Turn ON to wait VSync (Vertical\n Synchronizing signal) at every\n drawings. (so FPS becomes 60)\nIf you have enough CPU/GPU power,\n the scroll would become smooth." );\r
+                               "垂直帰線同期:\n" +\r
+                               "画面の描画をディスプレイの垂直帰線中に行なう場合には ON を指定します。\n" +\r
+                               "ON にすると、ガタつきのない滑らかな画面描画が実現されます。",\r
+                               "Turn ON to wait VSync (Vertical Synchronizing signal) at every drawings. (so FPS becomes 60)\n" +\r
+                               "\n" +\r
+                               "If you have enough CPU/GPU power, the scroll would become smooth." );\r
                        this.list項目リスト.Add( this.iSystemVSyncWait );\r
                        this.iSystemAVI = new CItemToggle( "AVI", CDTXMania.ConfigIni.bAVI有効,\r
-                               "AVIの使用:\n動画(AVI)を再生可能にする場合に\nON にします。AVI の再生には、それ\nなりのマシンパワーが必要とされます。",\r
+                               "AVIの使用:\n" +\r
+                               "演奏中に動画(AVI)を再生する場合にON にします。\n" +\r
+                               "AVI の再生には、それなりのマシンパワーが必要とされます。",\r
                                "To use AVI playback or not." );\r
                        this.list項目リスト.Add( this.iSystemAVI );\r
                        this.iSystemBGA = new CItemToggle( "BGA", CDTXMania.ConfigIni.bBGA有効,\r
-                               "BGAの使用:\n画像(BGA)を表示可能にする場合に\nON にします。BGA の再生には、それ\nなりのマシンパワーが必要とされます。",\r
-                               "To draw BGA (back ground animations)\n or not." );\r
+                               "BGAの使用:\n" +\r
+                               "演奏中に画像(BGA)を表示する場合にON にします。\n" +\r
+                               "BGA の再生には、それなりのマシンパワーが必要とされます。",\r
+                               "To draw BGA (back ground animations) or not." );\r
                        this.list項目リスト.Add( this.iSystemBGA );\r
                        this.iSystemPreviewSoundWait = new CItemInteger( "PreSoundWait", 0, 0x2710, CDTXMania.ConfigIni.n曲が選択されてからプレビュー音が鳴るまでのウェイトms,\r
-                               "プレビュー音演奏までの時間:\n曲にカーソルが合わされてからプレ\nビュー音が鳴り始めるまでの時間を\n指定します。\n0 ~ 10000 [ms] が指定可能です。",\r
-                               "Delay time(ms) to start playing preview\n sound in SELECT MUSIC screen.\nYou can specify from 0ms to 10000ms." );\r
+                               "プレビュー音演奏までの時間:\n" +\r
+                               "曲にカーソルが合わされてからプレビュー音が鳴り始めるまでの時間を指定します。\n" +\r
+                               "0 ~ 10000 [ms] が指定可能です。",\r
+                               "Delay time(ms) to start playing preview sound in SELECT MUSIC screen.\n" +\r
+                               "You can specify from 0ms to 10000ms." );\r
                        this.list項目リスト.Add( this.iSystemPreviewSoundWait );\r
                        this.iSystemPreviewImageWait = new CItemInteger( "PreImageWait", 0, 0x2710, CDTXMania.ConfigIni.n曲が選択されてからプレビュー画像が表示開始されるまでのウェイトms,\r
-                               "プレビュー画像表示までの時間:\n曲にカーソルが合わされてからプレ\nビュー画像が表示されるまでの時間\nを指定します。\n0 ~ 10000 [ms] が指定可能です。",\r
-                               "Delay time(ms) to show preview image\n in SELECT MUSIC screen.\nYou can specify from 0ms to 10000ms." );\r
+                               "プレビュー画像表示までの時間:\n" +\r
+                               "曲にカーソルが合わされてからプレビュー画像が表示されるまでの時間を指定します。\n" +\r
+                               "0 ~ 10000 [ms] が指定可能です。",\r
+                               "Delay time(ms) to show preview image in SELECT MUSIC screen.\n" +\r
+                               "You can specify from 0ms to 10000ms." );\r
                        this.list項目リスト.Add( this.iSystemPreviewImageWait );\r
                        this.iSystemDebugInfo = new CItemToggle( "Debug Info", CDTXMania.ConfigIni.b演奏情報を表示する,\r
-                               "演奏情報の表示:\n演奏中、BGA領域の下部に演奏情報\n(FPS、BPM、演奏時間など)を表示し\nます。\nまた、小節線の横に小節番号が表示\nされるようになります。",\r
-                               "To show song informations on playing\n BGA area. (FPS, BPM, total time etc)\nYou can ON/OFF the indications\n by pushing [Del] while playing drums,\n guitar or bass." );\r
+                               "演奏情報の表示:\n" +\r
+                               "演奏中、BGA領域の下部に演奏情報(FPS、BPM、演奏時間など)を表示します。\n" +\r
+                               "また、小節線の横に小節番号が表示されるようになります。",\r
+                               "To show song informations on playing BGA area. (FPS, BPM, total time etc)\n" +\r
+                               "You can ON/OFF the indications by pushing [Del] while playing drums, guitar or bass." );\r
                        this.list項目リスト.Add( this.iSystemDebugInfo );\r
                        this.iSystemBGAlpha = new CItemInteger( "BG Alpha", 0, 0xff, CDTXMania.ConfigIni.n背景の透過度,\r
-                               "背景画像の半透明割合:\n背景画像をDTXManiaのフレーム画像\nと合成する際の、背景画像の透明度\nを指定します。\n0 が完全透明で、255 が完全不透明\nとなります。",\r
-                               "The degree for transparing playing\n screen and wallpaper.\n\n0=completely transparent,\n255=no transparency" );\r
+                               "背景画像の半透明割合:\n" +\r
+                               "背景画像をDTXManiaのフレーム画像と合成する際の、背景画像の透明度を指定します。\n" +\r
+                               "0 が完全透明で、255 が完全不透明となります。",\r
+                               "The degree for transparing playing screen and wallpaper.\n" +\r
+                               "\n" +\r
+                               "0=completely transparent, 255=no transparency." );\r
                        this.list項目リスト.Add( this.iSystemBGAlpha );\r
                        this.iSystemBGMSound = new CItemToggle( "BGM Sound", CDTXMania.ConfigIni.bBGM音を発声する,\r
-                               "BGMの再生:\nこれをOFFにすると、BGM を再生しな\nくなります。",\r
-                               "Turn OFF if you don't want to play\n BGM." );\r
+                               "BGMの再生:\n" +\r
+                               "これをOFFにすると、BGM を再生しなくなります。",\r
+                               "Turn OFF if you don't want to play BGM." );\r
                        this.list項目リスト.Add( this.iSystemBGMSound );\r
                        this.iSystemAudienceSound = new CItemToggle( "Audience", CDTXMania.ConfigIni.b歓声を発声する,\r
-                               "歓声の再生:\nこれをOFFにすると、歓声を再生しな\nくなります。",\r
-                               "Turn ON if you want to be cheered\n at the end of fill-in zone or not." );\r
+                               "歓声の再生:\n" +\r
+                               "これをOFFにすると、歓声を再生しなくなります。",\r
+                               "Turn ON if you want to be cheered at the end of fill-in zone." );\r
                        this.list項目リスト.Add( this.iSystemAudienceSound );\r
                        this.iSystemDamageLevel = new CItemList( "DamageLevel", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eダメージレベル,\r
-                               "ゲージ減少割合:\nMiss ヒット時のゲージの減少度合い\nを指定します。\nRiskyが1以上の場合は無効となります",\r
-                               "Damage level at missing (and\n recovering level) at playing.\nThis setting is ignored when Risky >= 1.",\r
+                               "ゲージ減少割合:\n" +\r
+                               "Miss ヒット時のゲージの減少度合いを指定します。\n" +\r
+                               "Riskyが1以上の場合は無効となります。",\r
+                               "Damage level at missing (and recovering level) at playing.\n" +\r
+                               "This setting is ignored when Risky >= 1.",\r
                                new string[] { "Small", "Normal", "Large" } );\r
                        this.list項目リスト.Add( this.iSystemDamageLevel );\r
                        this.iSystemSaveScore = new CItemToggle( "SaveScore", CDTXMania.ConfigIni.bScoreIniを出力する,\r
-                               "演奏記録の保存:\nON で演奏記録を ~.score.ini ファイ\nルに保存します。\n",\r
-                               "To save high-scores/skills, turn it ON.\nTurn OFF in case your song data are\n in read-only media (CD-ROM etc).\nNote that the score files also contain\n 'BGM Adjust' parameter. So if you\n want to keep adjusting parameter,\n you need to set SaveScore=ON." );\r
+                               "演奏記録の保存:\n" +\r
+                               "これを ON にすると、演奏記録を ~.score.ini ファイルに保存します。",\r
+                               "To save high-scores/skills, turn it ON.\n" +\r
+                               "Turn OFF in case your song data are in read-only media (CD-ROM etc).\n" +\r
+                               "Note that the score files also contain 'BGM Adjust' parameter.\n" +\r
+                               "So if you want to keep adjusting parameter, you need to set SaveScore=ON." );\r
                        this.list項目リスト.Add( this.iSystemSaveScore );\r
 \r
 \r
                        this.iSystemChipVolume = new CItemInteger( "ChipVolume", 0, 100, CDTXMania.ConfigIni.n手動再生音量,\r
-                               "打音の音量:\n入力に反応して再生されるチップの音\n量を指定します。\n0 ~ 100 % の値が指定可能です。\n",\r
-                               "The volumes for chips you hit.\nYou can specify from 0 to 100%." );\r
+                               "打音の音量:\n" +\r
+                               "入力に反応して再生されるチップの音量を指定します。\n" +\r
+                               "0 ~ 100 % の値が指定可能です。",\r
+                               "The volumes for chips you hit.\n" +\r
+                               "You can specify from 0 to 100%." );\r
                        this.list項目リスト.Add( this.iSystemChipVolume );\r
                        this.iSystemAutoChipVolume = new CItemInteger( "AutoVolume", 0, 100, CDTXMania.ConfigIni.n自動再生音量,\r
-                               "自動再生音の音量:\n自動的に再生されるチップの音量を指\n定します。\n0 ~ 100 % の値が指定可能です。\n",\r
-                               "The volumes for AUTO chips.\nYou can specify from 0 to 100%." );\r
+                               "自動再生音の音量:\n" +\r
+                               "自動的に再生されるチップの音量を指定します。\n" +\r
+                               "0 ~ 100 % の値が指定可能です。",\r
+                               "The volumes for AUTO chips.\n" +\r
+                               "You can specify from 0 to 100%." );\r
                        this.list項目リスト.Add( this.iSystemAutoChipVolume );\r
                        this.iSystemStoicMode = new CItemToggle( "StoicMode", CDTXMania.ConfigIni.bストイックモード,\r
-                               "ストイック(禁欲)モード:\n以下をまとめて表示ON/OFFします。\n・プレビュー画像/動画\n・リザルト画像/動画\n・NowLoading画像\n・演奏画面の背景画像\n・BGA 画像 / AVI 動画\n・グラフ画像\n",\r
-                               "Turn ON to disable drawing\n * preview image / movie\n * result image / movie\n * nowloading image\n * wallpaper (in playing screen)\n * BGA / AVI (in playing screen)" );\r
+                               "ストイック(禁欲)モード:\n" +\r
+                               "以下をまとめて表示ON/OFFします。\n" +\r
+                               "・プレビュー画像/動画\n" +\r
+                               "・リザルト画像/動画\n" +\r
+                               "・NowLoading画像\n" +\r
+                               "・演奏画面の背景画像\n" +\r
+                               "・BGA 画像 / AVI 動画\n" +\r
+                               "・グラフ画像",\r
+                               "Turn ON to disable drawing\n" +\r
+                               " * preview image / movie\n" +\r
+                               " * result image / movie\n" +\r
+                               " * nowloading image\n" +\r
+                               " * wallpaper (in playing screen)\n" +\r
+                               " * BGA / AVI (in playing screen)\n" +\r
+                               " * Graph bar" );\r
                        this.list項目リスト.Add( this.iSystemStoicMode );\r
                        this.iSystemShowLag = new CItemList( "ShowLagTime", CItemBase.Eパネル種別.通常, CDTXMania.ConfigIni.nShowLagType,\r
-                               "ズレ時間表示:\nジャストタイミングからのズレ時間(ms)\nを表示します。\n  OFF: ズレ時間を表示しません。\n  ON: ズレ時間を表示します。\n  GREAT-: PERFECT以外の時のみ\n表示します。",\r
-                               "About displaying the lag from\n the \"just timing\".\n  OFF: Don't show it.\n  ON: Show it.\n  GREAT-: Show it except you've\n  gotten PERFECT.",\r
+                               "ズレ時間表示:\n" +\r
+                               "ジャストタイミングからのズレ時間(ms)を表示します。\n" +\r
+                               " OFF: ズレ時間を表示しません。\n" +\r
+                               " ON: ズレ時間を表示します。\n" +\r
+                               " GREAT-: PERFECT以外の時のみ表示します。",\r
+                               "About displaying the lag from the \"just timing\".\n" +\r
+                               " OFF: Don't show it.\n" +\r
+                               " ON: Show it.\n" +\r
+                               " GREAT-: Show it except you've gotten PERFECT.",\r
                                new string[] { "OFF", "ON", "GREAT-" } );\r
                        this.list項目リスト.Add( this.iSystemShowLag );\r
                        this.iSystemAutoResultCapture = new CItemToggle( "Autosaveresult", CDTXMania.ConfigIni.bIsAutoResultCapture,\r
-                               "リザルト画像自動保存機能:\nONにすると、ハイスコア/ハイスキル時に\n自動でリザルト画像を曲データと同じ\nフォルダに保存します。",\r
-                               "AutoSaveResult:\nTurn ON to save your result screen\n image automatically when you get\n hiscore/hiskill." );\r
+                               "リザルト画像自動保存機能:\n" +\r
+                               "ONにすると、ハイスコア/ハイスキル時に、自動的にリザルト画像を曲データと同じフォルダに保存します。",\r
+                               "AutoSaveResult:\n" +\r
+                               "Turn ON to save your result screen image automatically when you get hiscore/hiskill." );\r
                        this.list項目リスト.Add( this.iSystemAutoResultCapture );\r
 \r
+\r
                        this.iSystemJudgeDispPriority = new CItemList( "JudgePriority", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.e判定表示優先度,\r
-                               "判定文字列とコンボ表示の優先順位を\n" +\r
-                               "指定します。\n" +\r
+                               "判定文字列とコンボ表示の優先順位を指定します。\n" +\r
                                "\n" +\r
                                " Under: チップの下に表示します。\n" +\r
                                " Over:  チップの上に表示します。",\r
-                               "The display prioity between chips\n" +\r
-                               " and judge mark/combo.\n" +\r
+                               "The display prioity between chips and judge mark/combo.\n" +\r
                                "\n" +\r
                                " Under: Show them under the chips.\n" +\r
                                " Over:  Show them over the chips.",\r
                                new string[] { "Under", "Over" } );\r
-                       this.list項目リスト.Add( this.iSystemJudgeDispPriority );  \r
+                       this.list項目リスト.Add( this.iSystemJudgeDispPriority );\r
 \r
                        this.iSystemBufferedInput = new CItemToggle( "BufferedInput", CDTXMania.ConfigIni.bバッファ入力を行う,\r
-                               "バッファ入力モード:\nON にすると、FPS を超える入力解像\n度を実現します。\nOFF にすると、入力解像度は FPS に\n等しくなります。",\r
-                               "To select joystick input method.\n\nON to use buffer input. No lost/lags.\nOFF to use realtime input. It may\n causes lost/lags for input.\n Moreover, input frequency is\n synchronized with FPS." );\r
+                               "バッファ入力モード:\n" +\r
+                               "ON にすると、FPS を超える入力解像度を実現します。\n" +\r
+                               "OFF にすると、入力解像度は FPS に等しくなります。",\r
+                               "To select joystick input method.\n" +\r
+                               "\n" +\r
+                               "ON to use buffer input. No lost/lags.\n" +\r
+                               "OFF to use realtime input. It may causes lost/lags for input.\n" +\r
+                               "Moreover, input frequency is synchronized with FPS." );\r
                        this.list項目リスト.Add( this.iSystemBufferedInput );\r
                        this.iLogOutputLog = new CItemToggle( "TraceLog", CDTXMania.ConfigIni.bログ出力,\r
-                               "Traceログ出力:\nDTXManiaLog.txt にログを出力します。\n変更した場合は、DTXMania の再起動\n後に有効となります。",\r
-                               "Turn ON to put debug log to\n DTXManiaLog.txt\nTo take it effective, you need to\n re-open DTXMania." );\r
+                               "Traceログ出力:\n" +\r
+                               "DTXManiaLog.txt にログを出力します。\n" +\r
+                               "この設定の変更は、DTXMania の再起動後に有効となります。",\r
+                               "Turn ON to put debug log to DTXManiaLog.txt.\n" +\r
+                               "To take it effective, you need to re-open DTXMania." );\r
                        this.list項目リスト.Add( this.iLogOutputLog );\r
 \r
                        // #24820 2013.1.3 yyagi\r
-                       this.iSystemSoundType = new CItemList("SoundType", CItemList.Eパネル種別.通常, CDTXMania.ConfigIni.nSoundDeviceType,\r
+                       this.iSystemSoundType = new CItemList( "SoundType", CItemList.Eパネル種別.通常, CDTXMania.ConfigIni.nSoundDeviceType,\r
                                "サウンドの出力方式:\n" +\r
-                               "WASAPI, ASIO, DSound(DirectSound)\n" +\r
-                               "の中からサウンド出力方式を選択\n" +\r
-                               "します。\n" +\r
-                               "WASAPIはVista以降でのみ使用可能\n" +\r
-                               "です。ASIOは対応機器でのみ使用\n" +\r
-                               "可能です。\n" +\r
-                               "WASAPIかASIOを指定することで、\n" +\r
-                               "遅延の少ない演奏を楽しむことが\n" +\r
-                               "できます。\n" +\r
+                               "WASAPI, ASIO, DSound(DirectSound)の中からサウンド出力方式を選択します。\n" +\r
+                               "WASAPIはVista以降でのみ使用可能です。ASIOはXPでも使用可能ですが、対応機器でのみ使用できます。\n" +\r
+                               "WASAPIかASIOを指定することで、遅延の少ない演奏を楽しむことができます。\n" +\r
                                "\n" +\r
-                               "※ 設定はCONFIGURATION画面の\n" +\r
-                               " 終了時に有効になります。",\r
+                               "※ 設定はCONFIGURATION画面の終了時に有効になります。",\r
                                "Sound output type:\n" +\r
-                               "You can choose WASAPI, ASIO or\n" +\r
-                               "DShow(DirectShow).\n" +\r
+                               "You can choose WASAPI, ASIO or DShow(DirectShow).\n" +\r
                                "WASAPI can use only after Vista.\n" +\r
-                               "ASIO can use on the\n" +\r
-                               "\"ASIO-supported\" sound device.\n" +\r
-                               "You should use WASAPI or ASIO\n" +\r
-                               "to decrease the sound lag.\n" +\r
+                               "ASIO can use on XP or later OSs, but you need \"ASIO-supported\" sound device.\n" +\r
+                               "\n" +\r
+                               "You should use WASAPI or ASIO to decrease the sound lag.\n" +\r
                                "\n" +\r
-                               "Note: Exit CONFIGURATION to make\n" +\r
-                               "     the setting take effect.",\r
-                               new string[] { "DSound", "ASIO", "WASAPI" });\r
-                       this.list項目リスト.Add(this.iSystemSoundType);\r
+                               "Note: Exit CONFIGURATION to make the setting take effect.",\r
+                               new string[] { "DSound", "ASIO", "WASAPI" } );\r
+                       this.list項目リスト.Add( this.iSystemSoundType );\r
 \r
                        // #24820 2013.1.15 yyagi\r
                        //this.iSystemWASAPIBufferSizeMs = new CItemInteger( "WASAPIBufSize", 0, 99999, CDTXMania.ConfigIni.nWASAPIBufferSizeMs,\r
@@ -319,17 +372,13 @@ namespace DTXMania
                        string[] asiodevs = CEnumerateAllAsioDevices.GetAllASIODevices();\r
                        this.iSystemASIODevice = new CItemList( "ASIO device", CItemList.Eパネル種別.通常, CDTXMania.ConfigIni.nASIODevice,\r
                                "ASIOデバイス:\n" +\r
-                               "ASIO使用時のサウンドデバイスを\n" +\r
-                               "選択します。\n" +\r
+                               "ASIO使用時のサウンドデバイスを選択します。\n" +\r
                                "\n" +\r
-                               "※ 設定はCONFIGURATION画面の\n" +\r
-                               " 終了時に有効になります。",\r
+                               "※ 設定はCONFIGURATION画面の終了時に有効になります。",\r
                                "ASIO Sound Device:\n" +\r
-                               "Select the sound device to use\n" +\r
-                               "under ASIO mode.\n" +\r
+                               "Select the sound device to use under ASIO mode.\n" +\r
                                "\n" +\r
-                               "Note: Exit CONFIGURATION to make\n" +\r
-                               "     the setting take effect.",\r
+                               "Note: Exit CONFIGURATION to make the setting take effect.",\r
                                asiodevs );\r
                        this.list項目リスト.Add( this.iSystemASIODevice );\r
 \r
@@ -362,27 +411,17 @@ namespace DTXMania
                        // #33689 2014.6.17 yyagi\r
                        this.iSystemSoundTimerType = new CItemToggle( "UseOSTimer", CDTXMania.ConfigIni.bUseOSTimer,\r
                                "OSタイマーを使用するかどうか:\n" +\r
-                               "演奏タイマーとして、DTXMania独自の\n" +\r
-                               "タイマーを使うか、OS標準のタイマー\n" +\r
-                               "を使うかを選択します。\n" +\r
-                               "OS標準タイマーを使うとスクロールが\n" +\r
-                               "滑らかになりますが、演奏で音ズレが\n" +\r
-                               "発生することがあります。(そのため\n" +\r
-                               "AdjustWavesの効果が適用されます。)\n" +\r
+                               "演奏タイマーとして、DTXMania独自のタイマーを使うか、OS標準のタイマーを使うかを選択します。\n" +\r
+                               "OS標準タイマーを使うとスクロールが滑らかになりますが、演奏で音ズレが発生することがあります。(そのためAdjustWavesの効果が適用されます。)\n" +\r
                                "\n" +\r
-                               "この指定はWASAPI/ASIO使用時のみ有効\n" +\r
-                               "です。\n",\r
+                               "この指定はWASAPI/ASIO使用時のみ有効です。\n",\r
                                "Use OS Timer or not:\n" +\r
-                               "If this settings is ON, DTXMania uses\n" +\r
-                               "OS Standard timer. It brings smooth\n" +\r
-                               "scroll, but may cause some sound lag.\n" +\r
+                               "If this settings is ON, DTXMania uses OS Standard timer. It brings smooth scroll, but may cause some sound lag.\n" +\r
                                "(so AdjustWaves is also avilable)\n" +\r
                                "\n" +\r
-                               "If OFF, DTXMania uses its original\n" +\r
-                               "timer and the effect is vice versa.\n" +\r
+                               "If OFF, DTXMania uses its original timer and the effect is vice versa.\n" +\r
                                "\n" +\r
-                               "This settings is avilable only when\n" +\r
-                               "you uses WASAPI/ASIO.\n"\r
+                               "This settings is avilable only when you use WASAPI/ASIO.\n"\r
                        );\r
                        this.list項目リスト.Add( this.iSystemSoundTimerType );\r
 \r
@@ -410,27 +449,25 @@ namespace DTXMania
                        this.list項目リスト.Add( this.iSystemSkinSubfolder );\r
                        this.iSystemUseBoxDefSkin = new CItemToggle( "Skin (Box)", CDTXMania.ConfigIni.bUseBoxDefSkin,\r
                                "Music boxスキンの利用:\n" +\r
-                               "特別なスキンが設定されたMusic box\n" +\r
-                               "に出入りしたときに、自動でスキンを\n" +\r
-                               "切り替えるかどうかを設定します。\n",\r
+                               "特別なスキンが設定されたMusic boxに出入りしたときに、自動でスキンを切り替えるかどうかを設定します。\n",\r
                                //"\n" +\r
                                //"(Music Boxスキンは、box.defファイル\n" +\r
                                //" で指定できます)\n",\r
                                "Box skin:\n" +\r
-                               "Automatically change skin\n" +\r
-                               "specified in box.def file." );\r
+                               "Automatically change skin specified in box.def file." );\r
                        this.list項目リスト.Add( this.iSystemUseBoxDefSkin );\r
 \r
-       \r
+\r
                        this.iSystemGoToKeyAssign = new CItemBase( "System Keys", CItemBase.Eパネル種別.通常,\r
-                       "システムのキー入力に関する項目を設\n定します。",\r
+                       "システムのキー入力に関する項目を設定します。",\r
                        "Settings for the system key/pad inputs." );\r
                        this.list項目リスト.Add( this.iSystemGoToKeyAssign );\r
 \r
-                       \r
+                       OnListMenuの初期化();\r
                        this.n現在の選択項目 = 0;\r
                        this.eメニュー種別 = Eメニュー種別.System;\r
                }\r
+\r
                #endregion\r
                #region [ t項目リストの設定・Drums() ]\r
                public void t項目リストの設定・Drums()\r
@@ -447,10 +484,8 @@ namespace DTXMania
 \r
                        #region [ AutoPlay ]\r
                        this.iDrumsAutoPlayAll = new CItemThreeState( "AutoPlay (All)", CItemThreeState.E状態.不定,\r
-                               "全パッドの自動演奏の ON/OFF を\n" +\r
-                               "まとめて切り替えます。",\r
-                               "You can change whether Auto or not\n" +\r
-                               " for all drums lanes at once." );\r
+                               "全パッドの自動演奏の ON/OFF をまとめて切り替えます。",\r
+                               "You can change whether Auto or not for all drums lanes at once." );\r
                        this.list項目リスト.Add( this.iDrumsAutoPlayAll );\r
 \r
                        this.iDrumsLeftCymbal = new CItemToggle( "    LeftCymbal", CDTXMania.ConfigIni.bAutoPlay.LC,\r
@@ -462,7 +497,7 @@ namespace DTXMania
                                "ハイハットを自動で演奏します。\n" +\r
                                "(クローズ、オープンとも)",\r
                                "To play HiHat automatically.\n" +\r
-                               "(It effects to both HH-close and\n HH-open)" );\r
+                               "(It effects to both HH-close and HH-open)" );\r
                        this.list項目リスト.Add( this.iDrumsHiHat );\r
 \r
                        this.iDrumsSnare = new CItemToggle( "    Snare", CDTXMania.ConfigIni.bAutoPlay.SD,\r
@@ -491,50 +526,47 @@ namespace DTXMania
                        this.list項目リスト.Add( this.iDrumsFloorTom );\r
 \r
                        this.iDrumsCymbalRide = new CItemToggle( "    Cym/Ride", CDTXMania.ConfigIni.bAutoPlay.CY,\r
-                               "右シンバルとライドシンバルを自動で\n" +\r
-                               "演奏します。",\r
-                               "To play both right- and Ride-Cymbal\n" +\r
-                               " automatically." );\r
+                               "右シンバルとライドシンバルを自動で演奏します。",\r
+                               "To play both right- and Ride-Cymbal automatically." );\r
                        this.list項目リスト.Add( this.iDrumsCymbalRide );\r
                        #endregion\r
 \r
+\r
                        this.iDrumsScrollSpeed = new CItemInteger( "ScrollSpeed", 0, 0x7cf, CDTXMania.ConfigIni.n譜面スクロール速度.Drums,\r
-                               "演奏時のドラム譜面のスクロールの\n" +\r
-                               "速度を指定します。\n" +\r
+                               "演奏時のドラム譜面のスクロールの速度を指定します。\n" +\r
                                "x0.5 ~ x1000.0 を指定可能です。",\r
-                               "To change the scroll speed for the\n" +\r
-                               "drums lanes.\n" +\r
+                               "To change the scroll speed for the drums lanes.\n" +\r
                                "You can set it from x0.5 to x1000.0.\n" +\r
                                "(ScrollSpeed=x0.5 means half speed)" );\r
                        this.list項目リスト.Add( this.iDrumsScrollSpeed );\r
 \r
-                       this.iDrumsSudHid = new CItemList( "Sud+Hid", CItemBase.Eパネル種別.通常, getDefaultSudHidValue(E楽器パート.DRUMS ),\r
+                       this.iDrumsSudHid = new CItemList( "Sud+Hid", CItemBase.Eパネル種別.通常, getDefaultSudHidValue( E楽器パート.DRUMS ),\r
                                "ドラムチップの表示方式:\n" +\r
                                "OFF:  チップを常に表示します。\n" +\r
-                               "Sudden: チップが譜面の下の方から\n" +\r
-                               "    表示されるようになります。\n" +\r
-                               "Hidden: チップが譜面の下の方で表示\n" +\r
+                               "Sudden: チップがヒットバー付近に来るまで表示\n" +\r
                                "    されなくなります。\n" +\r
-                               "Sud+Hid: SuddenとHiddenの効果を\n" +\r
-                               "    同時にかけます。\n" +\r
+                               "Hidden: チップがヒットバー付近で表示されなく\n" +\r
+                               "    なります。\n" +\r
+                               "Sud+Hid: SuddenとHiddenの効果を同時にかけ\n" +\r
+                               "    ます。\n" +\r
                                "S(emi)-Invisible:\n" +\r
-                               "    通常はチップを透明にしますが、\n" +\r
-                               "    Poor/Miss時しばらく表示します。\n" +\r
+                               "    通常はチップを透明にしますが、Poor /\n" +\r
+                               "    Miss時にはしばらく表示します。\n" +\r
                                "F(ull)-Invisible:\n" +\r
-                               "    チップを常に透明にします。\n" +\r
-                               "    暗譜での練習にお使いください。",\r
-\r
+                               "    チップを常に透明にします。暗譜での練習\n" +\r
+                               "    にお使いください。",\r
                                "Drums chips display type:\n" +\r
+                               "\n" +\r
                                "OFF:    Always show chips.\n" +\r
-                               "Sudden: The chips are disappered\n" +\r
-                               "        until they come near the hit\n" +\r
-                               "        bar, and suddenly appears.\n" +\r
-                               "Hidden: The chips are hidden by\n" +\r
-                               "        approaching to the hit bar.\n" +\r
+                               "Sudden: The chips are disappered until they\n" +\r
+                               "        come near the hit bar, and suddenly\n" +\r
+                               "        appears.\n" +\r
+                               "Hidden: The chips are hidden by approaching to\n" +\r
+                               "        the hit bar.\n" +\r
                                "Sud+Hid: Both Sudden and Hidden.\n" +\r
                                "S(emi)-Invisible:\n" +\r
-                               "        Usually you can't see the chips\n" +\r
-                               "        except you've gotten Poor/Miss.\n" +\r
+                               "        Usually you can't see the chips except\n" +\r
+                               "        you've gotten Poor/Miss.\n" +\r
                                "F(ull)-Invisible:\n" +\r
                                "        You can't see the chips at all.",\r
                                new string[] { "OFF", "Sudden", "Hidden", "Sud+Hid", "S-Invisible", "F-Invisible" } );\r
@@ -571,55 +603,41 @@ namespace DTXMania
                        //this.list項目リスト.Add( this.iDrumsInvisible );\r
 \r
                        this.iCommonDark = new CItemList( "Dark", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eDark,\r
-                               "HALF: 背景、レーン、ゲージが表示\n" +\r
-                               "されなくなります。\n" +\r
-                               "FULL: さらに小節線、拍線、判定ラ\n" +\r
-                               "イン、パッドも表示されなくなります。",\r
+                               "HALF: 背景、レーン、ゲージが表示されなくなります。\n" +\r
+                               "FULL: さらに小節線、拍線、判定ライン、パッドも表示されなくなります。",\r
                                "OFF: all display parts are shown.\n" +\r
-                               "HALF: wallpaper, lanes and gauge are\n" +\r
-                               " disappeared.\n" +\r
-                               "FULL: additionaly to HALF, bar/beat\n" +\r
-                               " lines, hit bar, pads are disappeared.",\r
+                               "HALF: wallpaper, lanes and gauge are disappeared.\n" +\r
+                               "FULL: additionaly to HALF, bar/beat lines, hit bar, pads are disappeared.",\r
                                new string[] { "OFF", "HALF", "FULL" } );\r
                        this.list項目リスト.Add( this.iCommonDark );\r
 \r
 \r
                        this.iDrumsReverse = new CItemToggle( "Reverse", CDTXMania.ConfigIni.bReverse.Drums,\r
-                               "ドラムチップが譜面の下から上に流\n" +\r
-                               "れるようになります。",\r
-                               "The scroll way is reversed. Drums chips\n"\r
-                               + "flow from the bottom to the top." );\r
+                               "ドラムチップが譜面の下から上に流れるようになります。",\r
+                               "The scroll way is reversed. Drums chips flow from the bottom to the top." );\r
                        this.list項目リスト.Add( this.iDrumsReverse );\r
 \r
                        this.iSystemRisky = new CItemInteger( "Risky", 0, 10, CDTXMania.ConfigIni.nRisky,\r
                                "Riskyモードの設定:\n" +\r
-                               "1以上の値にすると、その回数分の\n" +\r
-                               "Poor/MissでFAILEDとなります。\n" +\r
-                               "0にすると無効になり、\n" +\r
-                               "DamageLevelに従ったゲージ増減と\n" +\r
-                               "なります。\n" +\r
-                               "StageFailedの設定と併用できます。",\r
+                               "1以上の値にすると、その回数分のPoor/MissでFAILEDとなります。\n" +\r
+                               "0にすると無効になり、DamageLevelに従ったゲージ増減となります。\n" +\r
+                               "\n" +\r
+                               "なお、この設定は、StageFailedの設定と併用できます。",\r
                                "Risky mode:\n" +\r
-                               "Set over 1, in case you'd like to specify\n" +\r
-                               " the number of Poor/Miss times to be\n" +\r
-                               " FAILED.\n" +\r
+                               "It means the Poor/Miss times to be FAILED.\n" +\r
                                "Set 0 to disable Risky mode." );\r
                        this.list項目リスト.Add( this.iSystemRisky );\r
 \r
                        this.iDrumsTight = new CItemToggle( "Tight", CDTXMania.ConfigIni.bTight,\r
-                               "ドラムチップのないところでパッドを\n" +\r
-                               "叩くとミスになります。",\r
-                               "It becomes MISS to hit pad without\n" +\r
-                               " chip." );\r
+                               "ドラムチップのないところでパッドを叩くとミスになります。",\r
+                               "It becomes MISS to hit pad without chip." );\r
                        this.list項目リスト.Add( this.iDrumsTight );\r
 \r
                        #region [ Position ]\r
                        this.iDrumsComboPosition = new CItemList( "ComboPosition", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.ドラムコンボ文字の表示位置,\r
-                               "演奏時のドラムコンボ文字列の位置\n" +\r
-                               "を指定します。",\r
-                               "The display position for Drums Combo.\n" +\r
-                               "Note that it doesn't take effect\n" +\r
-                               " at Autoplay ([Left] is forcely used).",\r
+                               "演奏時のドラムコンボ文字列の位置を指定します。",\r
+                               "The display position for Drums Combo.",\r
+                               //"Note that it doesn't take effect at Autoplay ([Left] is forcely used).",\r
                                new string[] { "Left", "Center", "Right", "OFF" } );\r
                        this.list項目リスト.Add( this.iDrumsComboPosition );\r
 \r
@@ -656,17 +674,15 @@ namespace DTXMania
                        #region [ Group ]\r
                        this.iSystemHHGroup = new CItemList( "HH Group", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eHHGroup,\r
                                "ハイハットレーン打ち分け設定:\n" +\r
-                               "左シンバル、ハイハットオープン、ハ\n" +\r
-                               "イハットクローズの打ち分け方法を指\n" +\r
-                               "定します。\n" +\r
+                               "左シンバル、ハイハットオープン、ハイハットクローズの打ち分け方法を指定します。\n" +\r
                                "  HH-0 ... LC | HHC | HHO\n" +\r
                                "  HH-1 ... LC & ( HHC | HHO )\n" +\r
                                "  HH-2 ... LC | ( HHC & HHO )\n" +\r
                                "  HH-3 ... LC & HHC & HHO\n" +\r
                                "\n" +\r
-                               "※BD Group が BD-1 である場合、\n" +\r
-                               " この項目は変更できません。\n",\r
-                               "HH-0: LC|HC|HO; all are separated.\n" +\r
+                               "※BD Group が BD-1 である場合、この項目は変更できません。\n",\r
+                               "HH-0: LC|HC|HO;\n" +\r
+                               " all are separated.\n" +\r
                                "HH-1: LC&(HC|HO);\n" +\r
                                " HC and HO are separted.\n" +\r
                                " LC is grouped with HC and HHO.\n" +\r
@@ -675,15 +691,13 @@ namespace DTXMania
                                " HC and HO are grouped.\n" +\r
                                "HH-3: LC&HC&HO; all are grouped.\n" +\r
                                "\n" +\r
-                               "* This value cannot be changed while \n" +\r
-                               "  BD Group is set as BD-1.",\r
+                               "* This value cannot be changed while BD Group is set as BD-1.",\r
                                new string[] { "HH-0", "HH-1", "HH-2", "HH-3" } );\r
                        this.list項目リスト.Add( this.iSystemHHGroup );\r
 \r
                        this.iSystemFTGroup = new CItemList( "FT Group", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eFTGroup,\r
                                "フロアタム打ち分け設定:\n" +\r
-                               "ロータムとフロアタムの打ち分け方法\n" +\r
-                               "を指定します。\n" +\r
+                               "ロータムとフロアタムの打ち分け方法を指定します。\n" +\r
                                "  FT-0 ... LT | FT\n" +\r
                                "  FT-1 ... LT & FT\n",\r
                                "FT-0: LT|FT\n" +\r
@@ -695,8 +709,7 @@ namespace DTXMania
 \r
                        this.iSystemCYGroup = new CItemList( "CY Group", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eCYGroup,\r
                                "シンバルレーン打ち分け設定:\n" +\r
-                               "右シンバルとライドシンバルの打ち分\n" +\r
-                               "け方法を指定します。\n" +\r
+                               "右シンバルとライドシンバルの打ち分け方法を指定します。\n" +\r
                                "  CY-0 ... CY | RD\n" +\r
                                "  CY-1 ... CY & RD\n",\r
                                "CY-0: CY|RD\n" +\r
@@ -708,73 +721,55 @@ namespace DTXMania
 \r
                        this.iSystemBDGroup = new CItemList( "BD Group", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eBDGroup,         // #27029 2012.1.4 from\r
                                "バス数設定:\n" +\r
-                               "ハイハットペダルをバスとして利用する\n" +\r
-                               "方法を指定します。\n" +\r
+                               "ハイハットペダルをバスとして利用する方法を指定します。\n" +\r
                                "  BD-0 ... HP | BD\n" +\r
-                               "  BD-1 ... FP & BD\n" + \r
+                               "  BD-1 ... FP & BD\n" +\r
                                "\n" +\r
-                               "注意:HitSound が OFF である場合は\n" + \r
-                               "不具合が生じます。\n" +\r
-                               "また、BD-1 を選択している間はいくつ\n" + \r
-                               "かのオプションが変更できなくなります。",\r
+                               "注意:HitSound が OFF である場合は不具合が生じます。\n" +\r
+                               "また、BD-1 を選択している間はいくつかのオプションが変更できなくなります。",\r
                                "BD-0: HP|BD\n" +\r
                                " HiHatPedal is HiHat.\n" +\r
                                "BD-1: HP&BD\n" +\r
                                " HiHatPedal is Bass.\n" +\r
                                "\n" +\r
-                               "Warning: You should not use BD-1 with \n" +\r
-                               "HitSound OFF.\n" +\r
-                               "And you cannot change some options \n" +\r
-                               "while using BD-1.",\r
+                               "Warning: You should not use BD-1 with HitSound OFF.\n" +\r
+                               "And you cannot change some options while using BD-1.",\r
                                new string[] { "BD-0", "BD-1" } );\r
                        this.list項目リスト.Add( this.iSystemBDGroup );\r
                        #endregion\r
 \r
                        this.iSystemCymbalFree = new CItemToggle( "CymbalFree", CDTXMania.ConfigIni.bシンバルフリー,\r
                                "シンバルフリーモード:\n" +\r
-                               "左シンバル・右シンバルの区別をなく\n" +\r
-                               "します。ライドシンバルまで区別をな\n" +\r
-                               "くすか否かは、CYGroup に従います。\n",\r
-                               "Turn ON to group LC (left cymbal) and\n" +\r
-                               " CY (right cymbal).\n" +\r
-                               "Whether RD (ride cymbal) is also\n" +\r
-                               " grouped or not depends on the\n" +\r
-                               "'CY Group' setting." );\r
+                               "左シンバル・右シンバルの区別をなくします。ライドシンバルまで区別をなくすか否かは、CYGroup に従います。\n",\r
+                               "Turn ON to group LC (left cymbal) and CY (right cymbal).\n" +\r
+                               "Whether RD (ride cymbal) is also grouped or not depends on the 'CY Group' setting." );\r
                        this.list項目リスト.Add( this.iSystemCymbalFree );\r
 \r
                        #region [ SoundPriority ]\r
                        this.iSystemHitSoundPriorityHH = new CItemList( "HH Priority", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eHitSoundPriorityHH,\r
                                "発声音決定の優先順位:\n" +\r
-                               "ハイハットレーン打ち分け有効時に、\n" +\r
-                               "チップの発声音をどのように決定する\n" +\r
-                               "かを指定します。\n" +\r
+                               "ハイハットレーン打ち分け有効時に、チップの発声音をどのように決定するかを指定します。\n" +\r
                                "  C > P ... チップの音が優先\n" +\r
                                "  P > C ... 叩いたパッドの音が優先\n" +\r
                                "\n" +\r
-                               "※BD Group が BD-1 である場合、\n" +\r
-                               " この項目は変更できません。\n",\r
-                               "To specify playing sound in case you're\n" +\r
-                               " using HH-0,1 and 2.\n" +\r
+                               "※BD Group が BD-1 である場合、この項目は変更できません。\n",\r
+                               "To specify playing sound in case you're using HH-0,1 and 2.\n" +\r
                                "\n" +\r
                                "C>P:\n" +\r
                                " Chip sound is prior to the pad sound.\n" +\r
                                "P>C:\n" +\r
                                " Pad sound is prior to the chip sound.\n" +\r
                                "\n" +\r
-                               "* This value cannot be changed while \n" +\r
-                               "  BD Group is set as BD-1.",\r
+                               "* This value cannot be changed while BD Group is set as BD-1.",\r
                                new string[] { "C>P", "P>C" } );\r
                        this.list項目リスト.Add( this.iSystemHitSoundPriorityHH );\r
 \r
                        this.iSystemHitSoundPriorityFT = new CItemList( "FT Priority", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eHitSoundPriorityFT,\r
                                "発声音決定の優先順位:\n" +\r
-                               "フロアタム打ち分け有効時に、チップ\n" +\r
-                               "の発声音をどのように決定するかを\n" +\r
-                               "指定します。\n" +\r
+                               "フロアタム打ち分け有効時に、チップの発声音をどのように決定するかを指定します。\n" +\r
                                "  C > P ... チップの音が優先\n" +\r
                                "  P > C ... 叩いたパッドの音が優先",\r
-                               "To specify playing sound in case you're\n" +\r
-                               " using FT-0.\n" +\r
+                               "To specify playing sound in case you're using FT-0.\n" +\r
                                "\n" +\r
                                "C>P:\n" +\r
                                " Chip sound is prior to the pad sound.\n" +\r
@@ -785,13 +780,10 @@ namespace DTXMania
 \r
                        this.iSystemHitSoundPriorityCY = new CItemList( "CY Priority", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eHitSoundPriorityCY,\r
                                "発声音決定の優先順位:\n" +\r
-                               "シンバルレーン打ち分け有効時に、\n" +\r
-                               "チップの発声音をどのように決定する\n" +\r
-                               "かを指定します。\n" +\r
+                               "シンバルレーン打ち分け有効時に、チップの発声音をどのように決定するかを指定します。\n" +\r
                                "  C > P ... チップの音が優先\n" +\r
                                "  P > C ... 叩いたパッドの音が優先",\r
-                               "To specify playing sound in case you're\n" +\r
-                               " using CY-0.\n" +\r
+                               "To specify playing sound in case you're using CY-0.\n" +\r
                                "\n" +\r
                                "C>P:\n" +\r
                                " Chip sound is prior to the pad sound.\n" +\r
@@ -802,63 +794,46 @@ namespace DTXMania
 \r
                        this.iSystemFillIn = new CItemToggle( "FillIn", CDTXMania.ConfigIni.bフィルイン有効,\r
                                "フィルインエフェクトの使用:\n" +\r
-                               "フィルイン区間の爆発パターンに特別\n" +\r
-                               "のエフェクトを使用します。\n" +\r
-                               "フィルインエフェクトの描画にはそれな\n" +\r
-                               "りのマシンパワーが必要とされます。",\r
-                               "To show bursting effects at the fill-in\n" +\r
-                               " zone or not." );\r
+                               "フィルイン区間の爆発パターンに特別のエフェクトを使用します。\n" +\r
+                               "フィルインエフェクトの描画にはそれなりのマシンパワーが必要とされます。",\r
+                               "To show bursting effects at the fill-in zone." );\r
                        this.list項目リスト.Add( this.iSystemFillIn );\r
                        #endregion\r
 \r
 \r
                        this.iSystemHitSound = new CItemToggle( "HitSound", CDTXMania.ConfigIni.bドラム打音を発声する,\r
                                "打撃音の再生:\n" +\r
-                               "これをOFFにすると、パッドを叩いた\n" +\r
-                               "ときの音を再生しなくなります(ドラム\n" +\r
-                               "のみ)。\n" +\r
-                               "DTX の音色で演奏したい場合などに\n" +\r
-                               "OFF にします。\n" + \r
+                               "これをOFFにすると、パッドを叩いたときの音を再生しなくなります(ドラムのみ)。\n" +\r
+                               "DTX本来の音色で演奏したい場合などにOFF にします。\n" +\r
                                "\n" +\r
-                               "注意:BD Group が BD-1 である場合\n" +\r
-                               "は不具合が生じます。\n",\r
-                               "Turn OFF if you don't want to play\n" +\r
-                               " hitting chip sound.\n" +\r
-                               "It is useful to play with real/electric\n" +\r
-                               " drums kit.\n" + \r
+                               "注意:BD Group が BD-1 である場合は不具合が生じます。\n",\r
+                               "Turn OFF if you don't want to play hitting chip sound.\n" +\r
+                               "It is useful to play with real/electric drums kit.\n" +\r
                                "\n" +\r
-                               "Warning: You should not use BD Group \n" + \r
-                               "BD-1 with HitSound OFF.\n" );\r
+                               "Warning: You should not use BD Group BD-1 with HitSound OFF.\n" );\r
                        this.list項目リスト.Add( this.iSystemHitSound );\r
 \r
                        this.iSystemSoundMonitorDrums = new CItemToggle( "DrumsMonitor", CDTXMania.ConfigIni.b演奏音を強調する.Drums,\r
                                "ドラム音モニタ:\n" +\r
-                               "ドラム音を他の音より大きめの音量で\n" +\r
-                               "発声します。\n" +\r
-                               "ただし、オートプレイの場合は通常音\n" +\r
-                               "量で発声されます。",\r
-                               "To enhance the drums chip sound\n" +\r
-                               "(except autoplay)." );\r
+                               "ドラム音を他の音より大きめの音量で発声します。\n" +\r
+                               "ただし、オートプレイの場合は通常音量で発声されます。",\r
+                               "To enhance the drums chip sound (except autoplay)." );\r
                        this.list項目リスト.Add( this.iSystemSoundMonitorDrums );\r
 \r
                        this.iSystemMinComboDrums = new CItemInteger( "D-MinCombo", 1, 0x1869f, CDTXMania.ConfigIni.n表示可能な最小コンボ数.Drums,\r
                                "表示可能な最小コンボ数(ドラム):\n" +\r
-                               "画面に表示されるコンボの最小の数\n" +\r
-                               "を指定します。\n" +\r
+                               "画面に表示されるコンボの最小の数を指定します。\n" +\r
                                "1 ~ 99999 の値が指定可能です。",\r
-                               "Initial number to show the combo\n" +\r
-                               " for the drums.\n" +\r
+                               "Initial number to show the combo for the drums.\n" +\r
                                "You can specify from 1 to 99999." );\r
                        this.list項目リスト.Add( this.iSystemMinComboDrums );\r
 \r
 \r
                        // #23580 2011.1.3 yyagi\r
                        this.iDrumsInputAdjustTimeMs = new CItemInteger( "InputAdjust", -99, 99, CDTXMania.ConfigIni.nInputAdjustTimeMs.Drums,\r
-                               "ドラムの入力タイミングの微調整を\n" +\r
-                               "行います。\n" +\r
+                               "ドラムの入力タイミングの微調整を行います。\n" +\r
                                "-99 ~ 99ms まで指定可能です。\n" +\r
-                               "入力ラグを軽減するためには、負の\n" +\r
-                               "値を指定してください。\n",\r
+                               "入力ラグを軽減するためには、負の値を指定してください。",\r
                                "To adjust the drums input timing.\n" +\r
                                "You can set from -99 to 99ms.\n" +\r
                                "To decrease input lag, set minus value." );\r
@@ -866,19 +841,17 @@ namespace DTXMania
 \r
                        // #24074 2011.01.23 add ikanick\r
                        this.iDrumsGraph = new CItemToggle( "Graph", CDTXMania.ConfigIni.bGraph.Drums,\r
-                               "最高スキルと比較できるグラフを\n" +\r
-                               "表示します。\n" +\r
+                               "最高スキルと比較できるグラフを表示します。\n" +\r
                                "オートプレイだと表示されません。",\r
-                               "To draw Graph \n" +\r
-                               " or not." );\r
+                               "To draw Graph or not." );\r
                        this.list項目リスト.Add( this.iDrumsGraph );\r
 \r
                        this.iDrumsGoToKeyAssign = new CItemBase( "Drums Keys", CItemBase.Eパネル種別.通常,\r
-                               "ドラムのキー入力に関する項目を設\n"+\r
-                               "定します。",\r
+                               "ドラムのキー入力に関する項目を設定します。",\r
                                "Settings for the drums key/pad inputs." );\r
                        this.list項目リスト.Add( this.iDrumsGoToKeyAssign );\r
 \r
+                       OnListMenuの初期化();\r
                        this.n現在の選択項目 = 0;\r
                        this.eメニュー種別 = Eメニュー種別.Drums;\r
                }\r
@@ -897,16 +870,9 @@ namespace DTXMania
                        this.list項目リスト.Add( this.iGuitarReturnToMenu );\r
 \r
                        #region [ AutoPlay ]\r
-                       //this.iGuitarAutoPlay = new CItemToggle( "AutoPlay", CDTXMania.ConfigIni.bAutoPlay.Guitar,\r
-                       //    "ギターパートを自動で演奏します。",\r
-                       //    "To play the guitar part automatically." );\r
-                       //this.list項目リスト.Add( this.iGuitarAutoPlay );\r
-\r
                        this.iGuitarAutoPlayAll = new CItemThreeState( "AutoPlay (All)", CItemThreeState.E状態.不定,\r
-                               "全ネック/ピックの自動演奏の ON/OFF を\n" +\r
-                               "まとめて切り替えます。",\r
-                               "You can change whether Auto or not\n" +\r
-                               " for all guitar neck/pick at once." );\r
+                               "全ネック/ピックの自動演奏の ON/OFF をまとめて切り替えます。",\r
+                               "You can change whether Auto or not for all guitar neck/pick at once." );\r
                        this.list項目リスト.Add( this.iGuitarAutoPlayAll );\r
                        this.iGuitarR = new CItemToggle( "    R", CDTXMania.ConfigIni.bAutoPlay.GtR,\r
                                "Rネックを自動で演奏します。",\r
@@ -930,37 +896,40 @@ namespace DTXMania
                        this.list項目リスト.Add( this.iGuitarW );\r
                        #endregion\r
                        this.iGuitarScrollSpeed = new CItemInteger( "ScrollSpeed", 0, 0x7cf, CDTXMania.ConfigIni.n譜面スクロール速度.Guitar,\r
-                               "演奏時のギター譜面のスクロールの\n速度を指定します。\nx0.5 ~ x1000.0 までを指定可能です。",\r
-                               "To change the scroll speed for the\nguitar lanes.\nYou can set it from x0.5 to x1000.0.\n(ScrollSpeed=x0.5 means half speed)" );\r
+                               "演奏時のギター譜面のスクロールの速度を指定します。\n" +\r
+                               "x0.5 ~ x1000.0 までを指定可能です。",\r
+                               "To change the scroll speed for the guitar lanes.\n" +\r
+                               "You can set it from x0.5 to x1000.0.\n" +\r
+                               "(ScrollSpeed=x0.5 means half speed)" );\r
                        this.list項目リスト.Add( this.iGuitarScrollSpeed );\r
 \r
                        this.iGuitarSudHid = new CItemList( "Sud+Hid", CItemBase.Eパネル種別.通常, getDefaultSudHidValue( E楽器パート.GUITAR ),\r
                                "ギターチップの表示方式:\n" +\r
                                "OFF:  チップを常に表示します。\n" +\r
-                               "Sudden: チップが譜面の下の方から\n" +\r
-                               "    表示されるようになります。\n" +\r
-                               "Hidden: チップが譜面の下の方で表示\n" +\r
+                               "Sudden: チップがヒットバー付近に来るまで表示\n" +\r
                                "    されなくなります。\n" +\r
-                               "Sud+Hid: SuddenとHiddenの効果を\n" +\r
-                               "    同時にかけます。\n" +\r
+                               "Hidden: チップがヒットバー付近で表示されなく\n" +\r
+                               "    なります。\n" +\r
+                               "Sud+Hid: SuddenとHiddenの効果を同時にかけ\n" +\r
+                               "    ます。\n" +\r
                                "S(emi)-Invisible:\n" +\r
-                               "    通常はチップを透明にしますが、\n" +\r
-                               "    Bad時しばらく表示します。\n" +\r
+                               "    通常はチップを透明にしますが、Bad時\n" +\r
+                               "    にはしばらく表示します。\n" +\r
                                "F(ull)-Invisible:\n" +\r
-                               "    チップを常に透明にします。\n" +\r
-                               "    暗譜での練習にお使いください。",\r
-\r
+                               "    チップを常に透明にします。暗譜での練習\n" +\r
+                               "    にお使いください。",\r
                                "Guitar chips display type:\n" +\r
+                               "\n" +\r
                                "OFF:    Always show chips.\n" +\r
-                               "Sudden: The chips are disappered\n" +\r
-                               "        until they come near the hit\n" +\r
-                               "        bar, and suddenly appears.\n" +\r
-                               "Hidden: The chips are hidden by\n" +\r
-                               "        approaching to the hit bar.\n" +\r
+                               "Sudden: The chips are disappered until they\n" +\r
+                               "        come near the hit bar, and suddenly\n" +\r
+                               "        appears.\n" +\r
+                               "Hidden: The chips are hidden by approaching to\n" +\r
+                               "        the hit bar.\n" +\r
                                "Sud+Hid: Both Sudden and Hidden.\n" +\r
                                "S(emi)-Invisible:\n" +\r
-                               "        Usually you can't see the chips\n" +\r
-                               "        except you've gotten Bad.\n" +\r
+                               "        Usually you can't see the chips except\n" +\r
+                               "        you've gotten Bad.\n" +\r
                                "F(ull)-Invisible:\n" +\r
                                "        You can't see the chips at all.",\r
                                new string[] { "OFF", "Sudden", "Hidden", "Sud+Hid", "S-Invisible", "F-Invisible" } );\r
@@ -986,26 +955,20 @@ namespace DTXMania
                        //this.list項目リスト.Add( this.iGuitarInvisible );\r
 \r
                        this.iGuitarReverse = new CItemToggle( "Reverse", CDTXMania.ConfigIni.bReverse.Guitar,\r
-                               "ギターチップが譜面の上から下に\n" +\r
-                               "流れるようになります。",\r
-                               "The scroll way is reversed\n" +\r
-                               "Guitar chips flow from the top\n" +\r
-                               "to the bottom." );\r
+                               "ギターチップが譜面の上から下に流れるようになります。",\r
+                               "The scroll way is reversed. Guitar chips flow from the top to the bottom." );\r
                        this.list項目リスト.Add( this.iGuitarReverse );\r
 \r
                        this.iSystemJudgePosGuitar = new CItemList( "JudgePos", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.e判定位置.Guitar,\r
                                "判定ライン表示位置:\n" +\r
-                               "判定ラインとRGBボタンが、少し下側に\n" +\r
-                               "表示されるようになります。",\r
+                               "判定ラインとRGBボタンが、少し下側に表示されるようになります。",\r
                                "Judge Line position:\n" +\r
-                               "The judge line and RGB buttons will\n" +\r
-                               "be displayed lower position.",\r
+                               "The judge line and RGB buttons will be displayed lower position.",\r
                                new string[] { "Normal", "Lower" } );\r
                        this.list項目リスト.Add( this.iSystemJudgePosGuitar );\r
 \r
                        this.iGuitarPosition = new CItemList( "Position", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.判定文字表示位置.Guitar,\r
-                               "ギターの判定文字の表示位置を指定\n" +\r
-                               "します。\n" +\r
+                               "ギターの判定文字の表示位置を指定します。\n" +\r
                                " P-A: レーン上\n" +\r
                                " P-B: 判定ラインの上\n" +\r
                                " P-C: COMBO の下\n" +\r
@@ -1035,46 +998,57 @@ namespace DTXMania
                        //this.list項目リスト.Add( this.iGuitarJudgeDispPriority );\r
 \r
                        this.iGuitarRandom = new CItemList( "Random", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eRandom.Guitar,\r
-                               "ギターのチップがランダムに降ってき\nます。\n  Part: 小節・レーン単位で交換\n  Super: チップ単位で交換\n  Hyper: 全部完全に変更",\r
-                               "Guitar chips come randomly.\n\n Part: swapping lanes randomly for each\n  measures.\n Super: swapping chip randomly\n Hyper: swapping randomly\n  (number of lanes also changes)",\r
+                               "ギターのチップがランダムに降ってきます。\n" +\r
+                               "  Part: 小節・レーン単位で交換\n" +\r
+                               "  Super: チップ単位で交換\n" +\r
+                               "  Hyper: 全部完全に変更",\r
+                               "Guitar chips come randomly.\n" +\r
+                               "\n" +\r
+                               "  Part: swapping lanes randomly for each measures.\n" +\r
+                               "  Super: swapping chip randomly\n" +\r
+                               "  Hyper: swapping randomly (number of lanes also changes)",\r
                                new string[] { "OFF", "Part", "Super", "Hyper" } );\r
                        this.list項目リスト.Add( this.iGuitarRandom );\r
                        this.iGuitarLight = new CItemToggle( "Light", CDTXMania.ConfigIni.bLight.Guitar,\r
-                               "ギターチップのないところでピッキン\nグしても BAD になりません。",\r
-                               "Even if you pick without any chips,\nit doesn't become BAD." );\r
+                               "ギターチップのないところでピッキングしても BAD になりません。",\r
+                               "Even if you pick without any chips, it doesn't become BAD." );\r
                        this.list項目リスト.Add( this.iGuitarLight );\r
                        this.iGuitarLeft = new CItemToggle( "Left", CDTXMania.ConfigIni.bLeft.Guitar,\r
-                               "ギターの RGB の並びが左右反転し\nます。(左利きモード)",\r
-                               "Lane order 'R-G-B' becomes 'B-G-R'\nfor lefty." );\r
+                               "ギターの RGB の並びが左右反転します。(左利きモード)",\r
+                               "Lane order 'R-G-B' becomes 'B-G-R' for lefty." );\r
                        this.list項目リスト.Add( this.iGuitarLeft );\r
 \r
                        this.iSystemSoundMonitorGuitar = new CItemToggle( "GuitarMonitor", CDTXMania.ConfigIni.b演奏音を強調する.Guitar,\r
-                       "ギター音モニタ:\nギター音を他の音より大きめの音量\nで発声します。\nただし、オートプレイの場合は通常音\n量で発声されます。",\r
-                       "To enhance the guitar chip sound\n(except autoplay)." );\r
+                       "ギター音モニタ:\n" +\r
+                       "ギター音を他の音より大きめの音量で発声します。\n" +\r
+                       "ただし、オートプレイの場合は通常音量で発声されます。",\r
+                       "To enhance the guitar chip sound (except autoplay)." );\r
                        this.list項目リスト.Add( this.iSystemSoundMonitorGuitar );\r
                        this.iSystemMinComboGuitar = new CItemInteger( "G-MinCombo", 1, 0x1869f, CDTXMania.ConfigIni.n表示可能な最小コンボ数.Guitar,\r
-                               "表示可能な最小コンボ数(ギター):\n画面に表示されるコンボの最小の数\nを指定します。\n1 ~ 99999 の値が指定可能です。",\r
-                               "Initial number to show the combo\n for the guitar.\nYou can specify from 1 to 99999." );\r
+                               "表示可能な最小コンボ数(ギター):\n" +\r
+                               "画面に表示されるコンボの最小の数を指定します。\n" +\r
+                               "1 ~ 99999 の値が指定可能です。",\r
+                               "Initial number to show the combo for the guitar.\n" +\r
+                               "You can specify from 1 to 99999." );\r
                        this.list項目リスト.Add( this.iSystemMinComboGuitar );\r
 \r
-                       \r
+\r
                        // #23580 2011.1.3 yyagi\r
                        this.iGuitarInputAdjustTimeMs = new CItemInteger( "InputAdjust", -99, 99, CDTXMania.ConfigIni.nInputAdjustTimeMs.Guitar,\r
-                               "ギターの入力タイミングの微調整を\n" +\r
-                               "行います。\n" +\r
+                               "ギターの入力タイミングの微調整を行います。\n" +\r
                                "-99 ~ 99ms まで指定可能です。\n" +\r
-                               "入力ラグを軽減するためには、負の\n" +\r
-                               "値を指定してください。",\r
+                               "入力ラグを軽減するためには、負の値を指定してください。",\r
                                "To adjust the guitar input timing.\n" +\r
                                "You can set from -99 to 99ms.\n" +\r
                                "To decrease input lag, set minus value." );\r
                        this.list項目リスト.Add( this.iGuitarInputAdjustTimeMs );\r
 \r
                        this.iGuitarGoToKeyAssign = new CItemBase( "Guitar Keys", CItemBase.Eパネル種別.通常,\r
-                               "ギターのキー入力に関する項目を設\n定します。",\r
+                               "ギターのキー入力に関する項目を設定します。",\r
                                "Settings for the guitar key/pad inputs." );\r
                        this.list項目リスト.Add( this.iGuitarGoToKeyAssign );\r
 \r
+                       OnListMenuの初期化();\r
                        this.n現在の選択項目 = 0;\r
                        this.eメニュー種別 = Eメニュー種別.Guitar;\r
                }\r
@@ -1093,16 +1067,9 @@ namespace DTXMania
                        this.list項目リスト.Add( this.iBassReturnToMenu );\r
 \r
                        #region [ AutoPlay ]\r
-                       //this.iBassAutoPlay = new CItemToggle( "AutoPlay", CDTXMania.ConfigIni.bAutoPlay.Bass,\r
-                       //    "ベースパートを自動で演奏します。",\r
-                       //    "To play the bass part automatically." );\r
-                       //this.list項目リスト.Add( this.iBassAutoPlay );\r
-\r
                        this.iBassAutoPlayAll = new CItemThreeState( "AutoPlay (All)", CItemThreeState.E状態.不定,\r
-                               "全ネック/ピックの自動演奏の ON/OFF を\n" +\r
-                               "まとめて切り替えます。",\r
-                               "You can change whether Auto or not\n" +\r
-                               " for all bass neck/pick at once." );\r
+                               "全ネック/ピックの自動演奏の ON/OFF をまとめて切り替えます。",\r
+                               "You can change whether Auto or not for all bass neck/pick at once." );\r
                        this.list項目リスト.Add( this.iBassAutoPlayAll );\r
                        this.iBassR = new CItemToggle( "    R", CDTXMania.ConfigIni.bAutoPlay.BsR,\r
                                "Rネックを自動で演奏します。",\r
@@ -1127,37 +1094,40 @@ namespace DTXMania
                        #endregion\r
 \r
                        this.iBassScrollSpeed = new CItemInteger( "ScrollSpeed", 0, 0x7cf, CDTXMania.ConfigIni.n譜面スクロール速度.Bass,\r
-                               "演奏時のベース譜面のスクロールの\n速度を指定します。\nx0.5 ~ x1000.0 までを指定可能です。",\r
-                               "To change the scroll speed for the\nbass lanes.\nYou can set it from x0.5 to x1000.0.\n(ScrollSpeed=x0.5 means half speed)" );\r
+                               "演奏時のベース譜面のスクロールの速度を指定します。\n" +\r
+                               "x0.5 ~ x1000.0 までを指定可能です。",\r
+                               "To change the scroll speed for the bass lanes.\n" +\r
+                               "You can set it from x0.5 to x1000.0.\n" +\r
+                               "(ScrollSpeed=x0.5 means half speed)" );\r
                        this.list項目リスト.Add( this.iBassScrollSpeed );\r
 \r
                        this.iBassSudHid = new CItemList( "Sud+Hid", CItemBase.Eパネル種別.通常, getDefaultSudHidValue( E楽器パート.BASS ),\r
                                "ベースチップの表示方式:\n" +\r
                                "OFF:  チップを常に表示します。\n" +\r
-                               "Sudden: チップが譜面の下の方から\n" +\r
-                               "    表示されるようになります。\n" +\r
-                               "Hidden: チップが譜面の下の方で表示\n" +\r
+                               "Sudden: チップがヒットバー付近に来るまで表示\n" +\r
                                "    されなくなります。\n" +\r
-                               "Sud+Hid: SuddenとHiddenの効果を\n" +\r
-                               "    同時にかけます。\n" +\r
+                               "Hidden: チップがヒットバー付近で表示されなく\n" +\r
+                               "    なります。\n" +\r
+                               "Sud+Hid: SuddenとHiddenの効果を同時にかけ\n" +\r
+                               "    ます。\n" +\r
                                "S(emi)-Invisible:\n" +\r
-                               "    通常はチップを透明にしますが、\n" +\r
-                               "    Bad時しばらく表示します。\n" +\r
+                               "    通常はチップを透明にしますが、Bad時\n" +\r
+                               "    にはしばらく表示します。\n" +\r
                                "F(ull)-Invisible:\n" +\r
-                               "    チップを常に透明にします。\n" +\r
-                               "    暗譜での練習にお使いください。",\r
-\r
+                               "    チップを常に透明にします。暗譜での練習\n" +\r
+                               "    にお使いください。",\r
                                "Bass chips display type:\n" +\r
+                               "\n" +\r
                                "OFF:    Always show chips.\n" +\r
-                               "Sudden: The chips are disappered\n" +\r
-                               "        until they come near the hit\n" +\r
-                               "        bar, and suddenly appears.\n" +\r
-                               "Hidden: The chips are hidden by\n" +\r
-                               "        approaching to the hit bar.\n" +\r
+                               "Sudden: The chips are disappered until they\n" +\r
+                               "        come near the hit bar, and suddenly\n" +\r
+                               "        appears.\n" +\r
+                               "Hidden: The chips are hidden by approaching to\n" +\r
+                               "        the hit bar.\n" +\r
                                "Sud+Hid: Both Sudden and Hidden.\n" +\r
                                "S(emi)-Invisible:\n" +\r
-                               "        Usually you can't see the chips\n" +\r
-                               "        except you've gotten Bad.\n" +\r
+                               "        Usually you can't see the chips except\n" +\r
+                               "        you've gotten Bad.\n" +\r
                                "F(ull)-Invisible:\n" +\r
                                "        You can't see the chips at all.",\r
                                new string[] { "OFF", "Sudden", "Hidden", "Sud+Hid", "S-Invisible", "F-Invisible" } );\r
@@ -1181,29 +1151,23 @@ namespace DTXMania
                        //    "see the chips at all.",\r
                        //    new string[] { "OFF", "HALF", "ON"} );\r
                        //this.list項目リスト.Add( this.iBassInvisible );\r
-                       \r
+\r
                        this.iBassReverse = new CItemToggle( "Reverse", CDTXMania.ConfigIni.bReverse.Bass,\r
-                               "ベースチップが譜面の上から下に\n" + \r
-                               "流れるようになります。",\r
-                               "The scroll way is reversed.\n" +\r
-                               "Bass chips flow from the top\n" +\r
-                               "to the bottom." );\r
+                               "ベースチップが譜面の上から下に流れるようになります。",\r
+                               "The scroll way is reversed. Bass chips flow from the top to the bottom." );\r
                        this.list項目リスト.Add( this.iBassReverse );\r
 \r
                        this.iSystemJudgePosBass = new CItemList( "JudgePos", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.e判定位置.Bass,\r
                                "判定ライン表示位置:\n" +\r
-                               "判定ラインとRGBボタンが、少し下側に\n" +\r
-                               "表示されるようになります。",\r
+                               "判定ラインとRGBボタンが、少し下側に表示されるようになります。",\r
                                "Judge Line position:\n" +\r
-                               "The judge line and RGB buttons will\n" +\r
-                               "be displayed lower position.",\r
+                               "The judge line and RGB buttons will be displayed lower position.",\r
                                new string[] { "Normal", "Lower" } );\r
                        this.list項目リスト.Add( this.iSystemJudgePosBass );\r
                        \r
                        this.iBassPosition = new CItemList( "Position", CItemBase.Eパネル種別.通常,\r
                                (int) CDTXMania.ConfigIni.判定文字表示位置.Bass,\r
-                               "ベースの判定文字の表示位置を指定\n" +\r
-                               "します。\n" +\r
+                               "ベースの判定文字の表示位置を指定します。\n" +\r
                                " P-A: レーン上\n" +\r
                                " P-B: 判定ラインの上\n" +\r
                                " P-C: COMBO の下\n" +\r
@@ -1234,47 +1198,58 @@ namespace DTXMania
 \r
                        this.iBassRandom = new CItemList( "Random", CItemBase.Eパネル種別.通常,\r
                                (int) CDTXMania.ConfigIni.eRandom.Bass,\r
-                               "ベースのチップがランダムに降ってき\nます。\n  Part: 小節・レーン単位で交換\n  Super: チップ単位で交換\n  Hyper: 全部完全に変更",\r
-                               "Bass chips come randomly.\n\n Part: swapping lanes randomly for each\n  measures.\n Super: swapping chip randomly\n Hyper: swapping randomly\n  (number of lanes also changes)",\r
+                               "ベースのチップがランダムに降ってきます。\n" +\r
+                               "  Part: 小節・レーン単位で交換\n" +\r
+                               "  Super: チップ単位で交換\n" +\r
+                               "  Hyper: 全部完全に変更",\r
+                               "Bass chips come randomly.\n" +\r
+                               "\n" +\r
+                               "  Part: swapping lanes randomly for each measures.\n" +\r
+                               "  Super: swapping chip randomly\n" +\r
+                               "  Hyper: swapping randomly (number of lanes also changes)",\r
                                new string[] { "OFF", "Part", "Super", "Hyper" } );\r
                        this.list項目リスト.Add( this.iBassRandom );\r
                        this.iBassLight = new CItemToggle( "Light", CDTXMania.ConfigIni.bLight.Bass,\r
-                               "ベースチップのないところでピッキン\nグしても BAD になりません。",\r
-                               "Even if you pick without any chips,\nit doesn't become BAD." );\r
+                               "ベースチップのないところでピッキングしても BAD になりません。",\r
+                               "Even if you pick without any chips, it doesn't become BAD." );\r
                        this.list項目リスト.Add( this.iBassLight );\r
                        this.iBassLeft = new CItemToggle( "Left", CDTXMania.ConfigIni.bLeft.Bass,\r
-                               "ベースの RGB の並びが左右反転し\nます。(左利きモード)",\r
-                               "Lane order 'R-G-B' becomes 'B-G-R'\nfor lefty." );\r
+                               "ベースの RGB の並びが左右反転します。(左利きモード)",\r
+                               "Lane order 'R-G-B' becomes 'B-G-R' for lefty." );\r
                        this.list項目リスト.Add( this.iBassLeft );\r
 \r
                        this.iSystemSoundMonitorBass = new CItemToggle( "BassMonitor", CDTXMania.ConfigIni.b演奏音を強調する.Bass,\r
-                       "ベース音モニタ:\nベース音を他の音より大きめの音量\nで発声します。\nただし、オートプレイの場合は通常音\n量で発声されます。",\r
-                       "To enhance the bass chip sound\n(except autoplay)." );\r
+                       "ベース音モニタ:\n" +\r
+                       "ベース音を他の音より大きめの音量で発声します。\n" +\r
+                       "ただし、オートプレイの場合は通常音量で発声されます。",\r
+                       "To enhance the bass chip sound (except autoplay)." );\r
                        this.list項目リスト.Add( this.iSystemSoundMonitorBass );\r
 \r
                        this.iSystemMinComboBass = new CItemInteger( "B-MinCombo", 1, 0x1869f, CDTXMania.ConfigIni.n表示可能な最小コンボ数.Bass,\r
-                               "表示可能な最小コンボ数(ベース):\n画面に表示されるコンボの最小の数\nを指定します。\n1 ~ 99999 の値が指定可能です。",\r
-                               "Initial number to show the combo\n for the bass.\nYou can specify from 1 to 99999." );\r
+                               "表示可能な最小コンボ数(ベース):\n" +\r
+                               "画面に表示されるコンボの最小の数を指定します。\n" +\r
+                               "1 ~ 99999 の値が指定可能です。",\r
+                               "Initial number to show the combo for the bass.\n" +\r
+                               "You can specify from 1 to 99999." );\r
                        this.list項目リスト.Add( this.iSystemMinComboBass );\r
 \r
-                       \r
+\r
                        // #23580 2011.1.3 yyagi\r
                        this.iBassInputAdjustTimeMs = new CItemInteger( "InputAdjust", -99, 99, CDTXMania.ConfigIni.nInputAdjustTimeMs.Bass,\r
-                               "ベースの入力タイミングの微調整を\n" +\r
-                               "行います。\n" +\r
+                               "ベースの入力タイミングの微調整を行います。\n" +\r
                                "-99 ~ 99ms まで指定可能です。\n" +\r
-                               "入力ラグを軽減するためには、負の\n" +\r
-                               "値を指定してください。",\r
+                               "入力ラグを軽減するためには、負の値を指定してください。",\r
                                "To adjust the bass input timing.\n" +\r
                                "You can set from -99 to 99ms.\n" +\r
                                "To decrease input lag, set minus value." );\r
                        this.list項目リスト.Add( this.iBassInputAdjustTimeMs );\r
 \r
                        this.iBassGoToKeyAssign = new CItemBase( "Bass Keys", CItemBase.Eパネル種別.通常,\r
-                               "ベースのキー入力に関する項目を設\n定します。",\r
-                               "Settings for the bass key/pad inputs.");\r
+                               "ベースのキー入力に関する項目を設定します。",\r
+                               "Settings for the bass key/pad inputs." );\r
                        this.list項目リスト.Add( this.iBassGoToKeyAssign );\r
 \r
+                       OnListMenuの初期化();\r
                        this.n現在の選択項目 = 0;\r
                        this.eメニュー種別 = Eメニュー種別.Bass;\r
                }\r
@@ -1628,157 +1603,215 @@ namespace DTXMania
 \r
                        // #27029 2012.1.5 from: 説明文は最大9行→13行に変更。\r
 \r
-                       this.iKeyAssignSystemReturnToMenu = new CItemBase( "<< ReturnTo Menu", CItemBase.Eパネル種別.その他,\r
+                       this.iKeyAssignSystemReturnToMenu = new CItemBase( "<< Return To Menu", CItemBase.Eパネル種別.その他,\r
                                "左側のメニューに戻ります。",\r
                                "Return to left menu." );\r
                        this.list項目リスト.Add( this.iKeyAssignSystemReturnToMenu );\r
                        this.iKeyAssignSystemCapture = new CItemBase( "Capture",\r
-                               "キャプチャキー設定:\n画面キャプチャのキーの割り当てを設\n定します。",\r
-                               "Capture key assign:\nTo assign key for screen capture.\n (You can use keyboard only. You can't\nuse pads to capture screenshot." );\r
+                               "キャプチャキー設定:\n" +\r
+                               "画面キャプチャのキーの割り当てを設定します。",\r
+                               "Capture key assign:\n" +\r
+                               "To assign key for screen capture.\n" +\r
+                               "(You can assign keyboard only. You can't use pads to capture screenshot.)" );\r
                        this.list項目リスト.Add( this.iKeyAssignSystemCapture );\r
 \r
+                       OnListMenuの初期化();\r
                        this.n現在の選択項目 = 0;\r
                        this.eメニュー種別 = Eメニュー種別.KeyAssignSystem;\r
                }\r
                public void t項目リストの設定・KeyAssignDrums()\r
                {\r
-//                     this.tConfigIniへ記録する();\r
+                       //                      this.tConfigIniへ記録する();\r
                        this.list項目リスト.Clear();\r
 \r
                        // #27029 2012.1.5 from: 説明文は最大9行→13行に変更。\r
 \r
-                       this.iKeyAssignDrumsReturnToMenu = new CItemBase( "<< ReturnTo Menu", CItemBase.Eパネル種別.その他,\r
+                       this.iKeyAssignDrumsReturnToMenu = new CItemBase( "<< Return To Menu", CItemBase.Eパネル種別.その他,\r
                                "左側のメニューに戻ります。",\r
-                               "Return to left menu.");\r
-                       this.list項目リスト.Add(this.iKeyAssignDrumsReturnToMenu);\r
+                               "Return to left menu." );\r
+                       this.list項目リスト.Add( this.iKeyAssignDrumsReturnToMenu );\r
                        this.iKeyAssignDrumsLC = new CItemBase( "LeftCymbal",\r
-                               "ドラムのキー設定:\n左シンバルへのキーの割り当てを設\n定します。",\r
-                               "Drums key assign:\nTo assign key/pads for LeftCymbal\n button.");\r
-                       this.list項目リスト.Add(this.iKeyAssignDrumsLC);\r
+                               "ドラムのキー設定:\n" +\r
+                               "左シンバルへのキーの割り当てを設定します。",\r
+                               "Drums key assign:\n" +\r
+                               "To assign key/pads for LeftCymbal button." );\r
+                       this.list項目リスト.Add( this.iKeyAssignDrumsLC );\r
                        this.iKeyAssignDrumsHHC = new CItemBase( "HiHat(Close)",\r
-                               "ドラムのキー設定:\nハイハット(クローズ)へのキーの割り\n当てを設定します。",\r
-                               "Drums key assign:\nTo assign key/pads for HiHat(Close)\n button.");\r
+                               "ドラムのキー設定:\n" +\r
+                               "ハイハット(クローズ)へのキーの割り当てを設定します。",\r
+                               "Drums key assign:\n" +\r
+                               "To assign key/pads for HiHat(Close) button." );\r
                        this.list項目リスト.Add( this.iKeyAssignDrumsHHC );\r
                        this.iKeyAssignDrumsHHO = new CItemBase( "HiHat(Open)",\r
-                               "ドラムのキー設定:\nハイハット(オープン)へのキーの割り\n当てを設定します。",\r
-                               "Drums key assign:\nTo assign key/pads for HiHat(Open)\n button.");\r
-                       this.list項目リスト.Add(this.iKeyAssignDrumsHHO);\r
+                               "ドラムのキー設定:\n" +\r
+                               "ハイハット(オープン)へのキーの割り当てを設定します。",\r
+                               "Drums key assign:\n" +\r
+                               "To assign key/pads for HiHat(Open) button." );\r
+                       this.list項目リスト.Add( this.iKeyAssignDrumsHHO );\r
                        this.iKeyAssignDrumsSD = new CItemBase( "Snare",\r
-                               "ドラムのキー設定:\nスネアへのキーの割り当てを設定し\nます。",\r
-                               "Drums key assign:\nTo assign key/pads for Snare button.");\r
-                       this.list項目リスト.Add(this.iKeyAssignDrumsSD);\r
+                               "ドラムのキー設定:\n" +\r
+                               "スネアへのキーの割り当てを設定します。",\r
+                               "Drums key assign:\n" +\r
+                               "To assign key/pads for Snare button." );\r
+                       this.list項目リスト.Add( this.iKeyAssignDrumsSD );\r
                        this.iKeyAssignDrumsBD = new CItemBase( "Bass",\r
-                               "ドラムのキー設定:\nバスドラムへのキーの割り当てを設定\nします。",\r
-                               "Drums key assign:\nTo assign key/pads for Bass button.");\r
-                       this.list項目リスト.Add(this.iKeyAssignDrumsBD);\r
+                               "ドラムのキー設定:\n" +\r
+                               "バスドラムへのキーの割り当てを設定します。",\r
+                               "Drums key assign:\n" +\r
+                               "To assign key/pads for Bass button." );\r
+                       this.list項目リスト.Add( this.iKeyAssignDrumsBD );\r
                        this.iKeyAssignDrumsHT = new CItemBase( "HighTom",\r
-                               "ドラムのキー設定:\nハイタムへのキーの割り当てを設定\nします。",\r
-                               "Drums key assign:\nTo assign key/pads for HighTom\n button.");\r
-                       this.list項目リスト.Add(this.iKeyAssignDrumsHT);\r
+                               "ドラムのキー設定:\n" +\r
+                               "ハイタムへのキーの割り当てを設定します。",\r
+                               "Drums key assign:\n" +\r
+                               "To assign key/pads for HighTom button." );\r
+                       this.list項目リスト.Add( this.iKeyAssignDrumsHT );\r
                        this.iKeyAssignDrumsLT = new CItemBase( "LowTom",\r
-                               "ドラムのキー設定:\nロータムへのキーの割り当てを設定\nします。",\r
-                               "Drums key assign:\nTo assign key/pads for LowTom button.");\r
-                       this.list項目リスト.Add(this.iKeyAssignDrumsLT);\r
+                               "ドラムのキー設定:\n" +\r
+                               "ロータムへのキーの割り当てを設定します。",\r
+                               "Drums key assign:\n" +\r
+                               "To assign key/pads for LowTom button." );\r
+                       this.list項目リスト.Add( this.iKeyAssignDrumsLT );\r
                        this.iKeyAssignDrumsFT = new CItemBase( "FloorTom",\r
-                               "ドラムのキー設定:\nフロアタムへのキーの割り当てを設\n定します。",\r
-                               "Drums key assign:\nTo assign key/pads for FloorTom\n button.");\r
-                       this.list項目リスト.Add(this.iKeyAssignDrumsFT);\r
+                               "ドラムのキー設定:\n" +\r
+                               "フロアタムへのキーの割り当てを設定します。",\r
+                               "Drums key assign:\n" +\r
+                               "To assign key/pads for FloorTom button." );\r
+                       this.list項目リスト.Add( this.iKeyAssignDrumsFT );\r
                        this.iKeyAssignDrumsCY = new CItemBase( "RightCymbal",\r
-                               "ドラムのキー設定:\n右シンバルへのキーの割り当てを設\n定します。",\r
-                               "Drums key assign:\nTo assign key/pads for RightCymbal\n button.");\r
-                       this.list項目リスト.Add(this.iKeyAssignDrumsCY);\r
+                               "ドラムのキー設定:\n" +\r
+                               "右シンバルへのキーの割り当てを設定します。",\r
+                               "Drums key assign:\n" +\r
+                               "To assign key/pads for RightCymbal button." );\r
+                       this.list項目リスト.Add( this.iKeyAssignDrumsCY );\r
                        this.iKeyAssignDrumsRD = new CItemBase( "RideCymbal",\r
-                               "ドラムのキー設定:\nライドシンバルへのキーの割り当て\nを設定します。",\r
-                               "Drums key assign:\nTo assign key/pads for RideCymbal\n button.");\r
-                       this.list項目リスト.Add(this.iKeyAssignDrumsRD);\r
+                               "ドラムのキー設定:\n" +\r
+                               "ライドシンバルへのキーの割り当てを設定します。",\r
+                               "Drums key assign:\n" +\r
+                               "To assign key/pads for RideCymbal button." );\r
+                       this.list項目リスト.Add( this.iKeyAssignDrumsRD );\r
                        this.iKeyAssignDrumsHP = new CItemBase( "HiHatPedal",                                                                   // #27029 2012.1.4 from\r
-                               "ドラムのキー設定:\nハイハットのフットペダルへのキーの\n割り当てを設定します。",  //\r
-                               "Drums key assign:\nTo assign key/pads for HiHatPedal\n button." );                                     //\r
+                               "ドラムのキー設定:\n" +                                                                                                                       //\r
+                               "ハイハットのフットペダルへのキーの割り当てを設定します。",                                                 //\r
+                               "Drums key assign:\n" +                                                                                                                         //\r
+                               "To assign key/pads for HiHatPedal button." );                                                                          //\r
                        this.list項目リスト.Add( this.iKeyAssignDrumsHP );                                                                         //\r
+\r
+                       OnListMenuの初期化();\r
                        this.n現在の選択項目 = 0;\r
                        this.eメニュー種別 = Eメニュー種別.KeyAssignDrums;\r
                }\r
                public void t項目リストの設定・KeyAssignGuitar()\r
                {\r
-//                     this.tConfigIniへ記録する();\r
+                       //                      this.tConfigIniへ記録する();\r
                        this.list項目リスト.Clear();\r
 \r
                        // #27029 2012.1.5 from: 説明文は最大9行→13行に変更。\r
 \r
-                       this.iKeyAssignGuitarReturnToMenu = new CItemBase( "<< ReturnTo Menu", CItemBase.Eパネル種別.その他,\r
+                       this.iKeyAssignGuitarReturnToMenu = new CItemBase( "<< Return To Menu", CItemBase.Eパネル種別.その他,\r
                                "左側のメニューに戻ります。",\r
-                               "Return to left menu.");\r
-                       this.list項目リスト.Add(this.iKeyAssignGuitarReturnToMenu);\r
+                               "Return to left menu." );\r
+                       this.list項目リスト.Add( this.iKeyAssignGuitarReturnToMenu );\r
                        this.iKeyAssignGuitarR = new CItemBase( "R",\r
-                               "ギターのキー設定:\nRボタンへのキーの割り当てを設定し\nます。",\r
-                               "Guitar key assign:\nTo assign key/pads for R button.");\r
-                       this.list項目リスト.Add(this.iKeyAssignGuitarR);\r
+                               "ギターのキー設定:\n" +\r
+                               "Rボタンへのキーの割り当てを設定します。",\r
+                               "Guitar key assign:\n" +\r
+                               "To assign key/pads for R button." );\r
+                       this.list項目リスト.Add( this.iKeyAssignGuitarR );\r
                        this.iKeyAssignGuitarG = new CItemBase( "G",\r
-                               "ギターのキー設定:\nGボタンへのキーの割り当てを設定し\nます。",\r
-                               "Guitar key assign:\nTo assign key/pads for G button.");\r
-                       this.list項目リスト.Add(this.iKeyAssignGuitarG);\r
+                               "ギターのキー設定:\n" +\r
+                               "Gボタンへのキーの割り当てを設定します。",\r
+                               "Guitar key assign:\n" +\r
+                               "To assign key/pads for G button." );\r
+                       this.list項目リスト.Add( this.iKeyAssignGuitarG );\r
                        this.iKeyAssignGuitarB = new CItemBase( "B",\r
-                               "ギターのキー設定:\nBボタンへのキーの割り当てを設定し\nます。",\r
-                               "Guitar key assign:\nTo assign key/pads for B button.");\r
-                       this.list項目リスト.Add(this.iKeyAssignGuitarB);\r
+                               "ギターのキー設定:\n" +\r
+                               "Bボタンへのキーの割り当てを設定します。",\r
+                               "Guitar key assign:\n" +\r
+                               "To assign key/pads for B button." );\r
+                       this.list項目リスト.Add( this.iKeyAssignGuitarB );\r
                        this.iKeyAssignGuitarPick = new CItemBase( "Pick",\r
-                               "ギターのキー設定:\nピックボタンへのキーの割り当てを設\n定します。",\r
-                               "Guitar key assign:\nTo assign key/pads for Pick button.");\r
-                       this.list項目リスト.Add(this.iKeyAssignGuitarPick);\r
+                               "ギターのキー設定:\n" +\r
+                               "ピックボタンへのキーの割り当てを設定します。",\r
+                               "Guitar key assign:\n" +\r
+                               "To assign key/pads for Pick button." );\r
+                       this.list項目リスト.Add( this.iKeyAssignGuitarPick );\r
                        this.iKeyAssignGuitarWail = new CItemBase( "Wailing",\r
-                               "ギターのキー設定:\nWailingボタンへのキーの割り当てを\n設定します。",\r
-                               "Guitar key assign:\nTo assign key/pads for Wailing button.");\r
-                       this.list項目リスト.Add(this.iKeyAssignGuitarWail);\r
+                               "ギターのキー設定:\n" +\r
+                               "Wailingボタンへのキーの割り当てを設定します。",\r
+                               "Guitar key assign:\nTo assign key/pads for Wailing button." );\r
+                       this.list項目リスト.Add( this.iKeyAssignGuitarWail );\r
                        this.iKeyAssignGuitarDecide = new CItemBase( "Decide",\r
-                               "ギターのキー設定:\n決定ボタンへのキーの割り当てを設\n定します。",\r
-                               "Guitar key assign:\nTo assign key/pads for Decide button.");\r
-                       this.list項目リスト.Add(this.iKeyAssignGuitarDecide);\r
+                               "ギターのキー設定:\n" +\r
+                               "決定ボタンへのキーの割り当てを設定します。",\r
+                               "Guitar key assign:\nTo assign key/pads for Decide button." );\r
+                       this.list項目リスト.Add( this.iKeyAssignGuitarDecide );\r
                        this.iKeyAssignGuitarCancel = new CItemBase( "Cancel",\r
-                               "ギターのキー設定:\nキャンセルボタンへのキーの割り当\nてを設定します。",\r
-                               "Guitar key assign:\nTo assign key/pads for Cancel button.");\r
-                       this.list項目リスト.Add(this.iKeyAssignGuitarCancel);\r
+                               "ギターのキー設定:\n" +\r
+                               "キャンセルボタンへのキーの割り当てを設定します。",\r
+                               "Guitar key assign:\n" +\r
+                               "To assign key/pads for Cancel button." );\r
+                       this.list項目リスト.Add( this.iKeyAssignGuitarCancel );\r
+\r
+                       OnListMenuの初期化();\r
                        this.n現在の選択項目 = 0;\r
                        this.eメニュー種別 = Eメニュー種別.KeyAssignGuitar;\r
                }\r
                public void t項目リストの設定・KeyAssignBass()\r
                {\r
-//                     this.tConfigIniへ記録する();\r
+                       //                      this.tConfigIniへ記録する();\r
                        this.list項目リスト.Clear();\r
 \r
                        // #27029 2012.1.5 from: 説明文は最大9行→13行に変更。\r
 \r
-                       this.iKeyAssignBassReturnToMenu = new CItemBase( "<< ReturnTo Menu", CItemBase.Eパネル種別.その他,\r
+                       this.iKeyAssignBassReturnToMenu = new CItemBase( "<< Return To Menu", CItemBase.Eパネル種別.その他,\r
                                "左側のメニューに戻ります。",\r
                                "Return to left menu." );\r
                        this.list項目リスト.Add( this.iKeyAssignBassReturnToMenu );\r
                        this.iKeyAssignBassR = new CItemBase( "R",\r
-                               "ベースのキー設定:\nRボタンへのキーの割り当てを設定し\nます。",\r
-                               "Bass key assign:\nTo assign key/pads for R button." );\r
+                               "ベースのキー設定:\n" +\r
+                               "Rボタンへのキーの割り当てを設定します。",\r
+                               "Bass key assign:\n" +\r
+                               "To assign key/pads for R button." );\r
                        this.list項目リスト.Add( this.iKeyAssignBassR );\r
                        this.iKeyAssignBassG = new CItemBase( "G",\r
-                               "ベースのキー設定:\nGボタンへのキーの割り当てを設定し\nます。",\r
-                               "Bass key assign:\nTo assign key/pads for G button." );\r
+                               "ベースのキー設定:\n" +\r
+                               "Gボタンへのキーの割り当てを設定します。",\r
+                               "Bass key assign:\n" +\r
+                               "To assign key/pads for G button." );\r
                        this.list項目リスト.Add( this.iKeyAssignBassG );\r
                        this.iKeyAssignBassB = new CItemBase( "B",\r
-                               "ベースのキー設定:\nBボタンへのキーの割り当てを設定し\nます。",\r
-                               "Bass key assign:\nTo assign key/pads for B button." );\r
+                               "ベースのキー設定:\n" +\r
+                               "Bボタンへのキーの割り当てを設定します。",\r
+                               "Bass key assign:\n" +\r
+                               "To assign key/pads for B button." );\r
                        this.list項目リスト.Add( this.iKeyAssignBassB );\r
                        this.iKeyAssignBassPick = new CItemBase( "Pick",\r
-                               "ベースのキー設定:\nピックボタンへのキーの割り当てを設\n定します。",\r
-                               "Bass key assign:\nTo assign key/pads for Pick button." );\r
+                               "ベースのキー設定:\n" +\r
+                               "ピックボタンへのキーの割り当てを設定します。",\r
+                               "Bass key assign:\n" +\r
+                               "To assign key/pads for Pick button." );\r
                        this.list項目リスト.Add( this.iKeyAssignBassPick );\r
                        this.iKeyAssignBassWail = new CItemBase( "Wailing",\r
-                               "ベースのキー設定:\nWailingボタンへのキーの割り当てを設\n定します。",\r
-                               "Bass key assign:\nTo assign key/pads for Wailing button." );\r
+                               "ベースのキー設定:\n" +\r
+                               "Wailingボタンへのキーの割り当てを設定します。",\r
+                               "Bass key assign:\n" +\r
+                               "To assign key/pads for Wailing button." );\r
                        this.list項目リスト.Add( this.iKeyAssignBassWail );\r
                        this.iKeyAssignBassDecide = new CItemBase( "Decide",\r
-                               "ベースのキー設定:\n決定ボタンへのキーの割り当てを設\n定します。",\r
-                               "Bass key assign:\nTo assign key/pads for Decide button." );\r
+                               "ベースのキー設定:\n" +\r
+                               "決定ボタンへのキーの割り当てを設定します。",\r
+                               "Bass key assign:\n" +\r
+                               "To assign key/pads for Decide button." );\r
                        this.list項目リスト.Add( this.iKeyAssignBassDecide );\r
                        this.iKeyAssignBassCancel = new CItemBase( "Cancel",\r
-                               "ベースのキー設定:\nキャンセルボタンへのキーの割り当\nてを設定します。",\r
-                               "Bass key assign:\nTo assign key/pads for Cancel button." );\r
+                               "ベースのキー設定:\n" +\r
+                               "キャンセルボタンへのキーの割り当てを設定します。",\r
+                               "Bass key assign:\n" +\r
+                               "To assign key/pads for Cancel button." );\r
                        this.list項目リスト.Add( this.iKeyAssignBassCancel );\r
+\r
+                       OnListMenuの初期化();\r
                        this.n現在の選択項目 = 0;\r
                        this.eメニュー種別 = Eメニュー種別.KeyAssignBass;\r
                }\r
@@ -1851,6 +1884,10 @@ namespace DTXMania
                        nSkinSampleIndex = -1;\r
                        #endregion\r
 \r
+                       this.prvFont = new CPrivateFastFont( CSkin.Path( @"Graphics\fonts\mplus-1p-heavy.ttf" ), (int) ( 18 * Scale.Y ) );      // t項目リストの設定 の前に必要\r
+//                     this.listMenu = new List<stMenuItemRight>();\r
+\r
+\r
                        this.t項目リストの設定・Bass();                // #27795 2012.3.11 yyagi; System設定の中でDrumsの設定を参照しているため、\r
                        this.t項目リストの設定・Guitar();      // 活性化の時点でDrumsの設定も入れ込んでおかないと、System設定中に例外発生することがある。\r
                        this.t項目リストの設定・Drums();       // \r
@@ -1876,7 +1913,10 @@ namespace DTXMania
                        this.tConfigIniへ記録する();\r
                        this.list項目リスト.Clear();\r
                        this.ct三角矢印アニメ = null;\r
-                       \r
+\r
+                       OnListMenuの解放();\r
+                       prvFont.Dispose();\r
+\r
                        base.On非活性化();\r
                        #region [ Skin変更 ]\r
                        if ( CDTXMania.Skin.GetCurrentSkinSubfolderFullName( true ) != this.skinSubFolder_org )\r
@@ -1930,8 +1970,8 @@ namespace DTXMania
                        if( this.b活性化してない )\r
                                return;\r
 \r
-                       this.tx通常項目行パネル = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenConfig itembox.png" ), false );\r
-                       this.txその他項目行パネル = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenConfig itembox other.png" ), false );\r
+                       this.tx通常項目行パネル = CDTXMania.tテクスチャの生成Af( CSkin.Path( @"Graphics\ScreenConfig itembox.png" ), false );\r
+                       this.txその他項目行パネル = CDTXMania.tテクスチャの生成Af( CSkin.Path( @"Graphics\ScreenConfig itembox other.png" ), false );\r
                        this.tx三角矢印 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenConfig triangle arrow.png" ), false );\r
                        this.txSkinSample1 = null;              // スキン選択時に動的に設定するため、ここでは初期化しない\r
                        base.OnManagedリソースの作成();\r
@@ -1948,6 +1988,34 @@ namespace DTXMania
                \r
                        base.OnManagedリソースの解放();\r
                }\r
+\r
+               private void OnListMenuの初期化()\r
+               {\r
+                       OnListMenuの解放();\r
+                       this.listMenu = new stMenuItemRight[ this.list項目リスト.Count ];\r
+               }\r
+\r
+               /// <summary>\r
+               /// 事前にレンダリングしておいたテクスチャを解放する。\r
+               /// </summary>\r
+               private void OnListMenuの解放()\r
+               {\r
+                       if ( listMenu != null )\r
+                       {\r
+                               for ( int i = 0; i < listMenu.Length; i++ )\r
+                               {\r
+                                       if ( listMenu[ i ].txParam != null )\r
+                                       {\r
+                                               listMenu[ i ].txParam.Dispose();\r
+                                       }\r
+                                       if ( listMenu[ i ].txMenuItemRight != null )\r
+                                       {\r
+                                               listMenu[ i ].txMenuItemRight.Dispose();\r
+                                       }\r
+                               }\r
+                               this.listMenu = null;\r
+                       }\r
+               }\r
                public override int On進行描画()\r
                {\r
                        throw new InvalidOperationException( "t進行描画(bool)のほうを使用してください。" );\r
@@ -2094,77 +2162,97 @@ namespace DTXMania
 \r
                                #region [ 現在の行の項目パネル枠を描画。]\r
                                //-----------------\r
-                               switch( this.list項目リスト[ nItem ].eパネル種別 )\r
+                               switch ( this.list項目リスト[ nItem ].eパネル種別 )\r
                                {\r
                                        case CItemBase.Eパネル種別.通常:\r
-                                               if( this.tx通常項目行パネル != null )\r
-                                                       this.tx通常項目行パネル.t2D描画( CDTXMania.app.Device, x, y );\r
+                                               if ( this.tx通常項目行パネル != null )\r
+                                                       this.tx通常項目行パネル.t2D描画( CDTXMania.app.Device, x * Scale.X, y * Scale.Y );\r
                                                break;\r
 \r
                                        case CItemBase.Eパネル種別.その他:\r
-                                               if( this.txその他項目行パネル != null )\r
-                                                       this.txその他項目行パネル.t2D描画( CDTXMania.app.Device, x, y );\r
+                                               if ( this.txその他項目行パネル != null )\r
+                                                       this.txその他項目行パネル.t2D描画( CDTXMania.app.Device, x * Scale.X, y * Scale.Y );\r
                                                break;\r
                                }\r
                                //-----------------\r
                                #endregion\r
                                #region [ 現在の行の項目名を描画。]\r
                                //-----------------\r
-                               CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 0x12, y + 12, this.list項目リスト[ nItem ].str項目名 );\r
+                               if ( listMenu[ nItem ].txMenuItemRight != null )        // 自前のキャッシュに含まれているようなら、再レンダリングせずキャッシュを使用\r
+                               {\r
+                                       listMenu[ nItem ].txMenuItemRight.t2D描画( CDTXMania.app.Device, ( x + 0x12 ) * Scale.X, ( y + 12 ) * Scale.Y - 20 );\r
+                               }\r
+                               else\r
+                               {\r
+                                       Bitmap bmpItem = prvFont.DrawPrivateFont( this.list項目リスト[ nItem ].str項目名, Color.White, Color.Black );\r
+                                       listMenu[ nItem ].txMenuItemRight = CDTXMania.tテクスチャの生成( bmpItem );\r
+                                       //                                      ctItem.t2D描画( CDTXMania.app.Device, ( x + 0x12 ) * Scale.X, ( y + 12 ) * Scale.Y - 20 );\r
+                                       //                                      CDTXMania.tテクスチャの解放( ref ctItem );\r
+                                       CDTXMania.t安全にDisposeする( ref bmpItem );\r
+                               }\r
+                               //CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 0x12, y + 12, this.list項目リスト[ nItem ].str項目名 );\r
                                //-----------------\r
                                #endregion\r
                                #region [ 現在の行の項目の要素を描画。]\r
                                //-----------------\r
-                               switch( this.list項目リスト[ nItem ].e種別 )\r
+                               string strParam = null;\r
+                               bool b強調 = false;\r
+                               switch ( this.list項目リスト[ nItem ].e種別 )\r
                                {\r
                                        case CItemBase.E種別.ONorOFFトグル:\r
                                                #region [ *** ]\r
                                                //-----------------\r
-                                               CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, ( (CItemToggle) this.list項目リスト[ nItem ] ).bON ? "ON" : "OFF" );\r
+                                               //CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, ( (CItemToggle) this.list項目リスト[ nItem ] ).bON ? "ON" : "OFF" );\r
+                                               strParam = ( (CItemToggle) this.list項目リスト[ nItem ] ).bON ? "ON" : "OFF";\r
                                                break;\r
-                                               //-----------------\r
+                                       //-----------------\r
                                                #endregion\r
 \r
                                        case CItemBase.E種別.ONorOFFor不定スリーステート:\r
                                                #region [ *** ]\r
                                                //-----------------\r
-                                               switch( ( (CItemThreeState) this.list項目リスト[ nItem ] ).e現在の状態 )\r
+                                               switch ( ( (CItemThreeState) this.list項目リスト[ nItem ] ).e現在の状態 )\r
                                                {\r
                                                        case CItemThreeState.E状態.ON:\r
-                                                               CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, "ON" );\r
+                                                               strParam = "ON";\r
                                                                break;\r
 \r
                                                        case CItemThreeState.E状態.不定:\r
-                                                               CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, "- -" );\r
+                                                               strParam = "- -";\r
                                                                break;\r
 \r
                                                        default:\r
-                                                               CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, "OFF" );\r
+                                                               strParam = "OFF";\r
                                                                break;\r
                                                }\r
+                                               //CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, "ON" );\r
                                                break;\r
-                                               //-----------------\r
+                                       //-----------------\r
                                                #endregion\r
 \r
                                        case CItemBase.E種別.整数:          // #24789 2011.4.8 yyagi: add PlaySpeed supports (copied them from OPTION)\r
                                                #region [ *** ]\r
                                                //-----------------\r
-                                               if( this.list項目リスト[ nItem ] == this.iCommonPlaySpeed )\r
+                                               if ( this.list項目リスト[ nItem ] == this.iCommonPlaySpeed )\r
                                                {\r
                                                        double d = ( (double) ( (CItemInteger) this.list項目リスト[ nItem ] ).n現在の値 ) / 20.0;\r
-                                                       CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, d.ToString( "0.000" ), ( n行番号 == 0 ) && this.b要素値にフォーカス中 );\r
+                                                       //CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, d.ToString( "0.000" ), ( n行番号 == 0 ) && this.b要素値にフォーカス中 );\r
+                                                       strParam = d.ToString( "0.000" );\r
                                                }\r
-                                               else if( this.list項目リスト[ nItem ] == this.iDrumsScrollSpeed || this.list項目リスト[ nItem ] == this.iGuitarScrollSpeed || this.list項目リスト[ nItem ] == this.iBassScrollSpeed )\r
+                                               else if ( this.list項目リスト[ nItem ] == this.iDrumsScrollSpeed || this.list項目リスト[ nItem ] == this.iGuitarScrollSpeed || this.list項目リスト[ nItem ] == this.iBassScrollSpeed )\r
                                                {\r
                                                        float f = ( ( (CItemInteger) this.list項目リスト[ nItem ] ).n現在の値 + 1 ) * 0.5f;\r
-                                                       CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, f.ToString( "x0.0" ), ( n行番号 == 0 ) && this.b要素値にフォーカス中 );\r
+                                                       //CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, f.ToString( "x0.0" ), ( n行番号 == 0 ) && this.b要素値にフォーカス中 );\r
+                                                       strParam = f.ToString( "x0.0" );\r
                                                }\r
                                                else\r
                                                {\r
-                                                       CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, ( (CItemInteger) this.list項目リスト[ nItem ] ).n現在の値.ToString(), ( n行番号 == 0 ) && this.b要素値にフォーカス中 );\r
+                                                       //CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, ( (CItemInteger) this.list項目リスト[ nItem ] ).n現在の値.ToString(), ( n行番号 == 0 ) && this.b要素値にフォーカス中 );\r
+                                                       strParam = ( (CItemInteger) this.list項目リスト[ nItem ] ).n現在の値.ToString();\r
                                                }\r
+                                               b強調 = ( n行番号 == 0 ) && this.b要素値にフォーカス中;\r
                                                break;\r
-                                               //-----------------\r
+                                       //-----------------\r
                                                #endregion\r
 \r
                                        case CItemBase.E種別.リスト:       // #28195 2012.5.2 yyagi: add Skin supports\r
@@ -2172,7 +2260,8 @@ namespace DTXMania
                                                //-----------------\r
                                                {\r
                                                        CItemList list = (CItemList) this.list項目リスト[ nItem ];\r
-                                                       CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, list.list項目値[ list.n現在選択されている項目番号 ] );\r
+                                                       //CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, list.list項目値[ list.n現在選択されている項目番号 ] );\r
+                                                       strParam = list.list項目値[ list.n現在選択されている項目番号 ];\r
 \r
                                                        #region [ 必要な場合に、Skinのサンプルを生成・描画する。#28195 2012.5.2 yyagi ]\r
                                                        if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemSkinSubfolder )\r
@@ -2180,15 +2269,44 @@ namespace DTXMania
                                                                tGenerateSkinSample();          // 最初にSkinの選択肢にきたとき(Enterを押す前)に限り、サンプル生成が発生する。\r
                                                                if ( txSkinSample1 != null )\r
                                                                {\r
-                                                                       txSkinSample1.t2D描画( CDTXMania.app.Device, 56, 300 );\r
+                                                                       txSkinSample1.t2D描画( CDTXMania.app.Device, 56 * Scale.X, 300 * Scale.Y );\r
                                                                }\r
                                                        }\r
                                                        #endregion\r
                                                        break;\r
                                                }\r
-                                               //-----------------\r
+                                       //-----------------\r
                                                #endregion\r
                                }\r
+                               if ( b強調 )\r
+                               {\r
+                                       Bitmap bmpStr = b強調 ?\r
+                                               prvFont.DrawPrivateFont( strParam, Color.White, Color.Black, Color.Yellow, Color.OrangeRed ) :\r
+                                               prvFont.DrawPrivateFont( strParam, Color.White, Color.Black );\r
+                                       CTexture txStr = CDTXMania.tテクスチャの生成( bmpStr, false );\r
+                                       txStr.t2D描画( CDTXMania.app.Device, ( x + 210 ) * Scale.X, ( y + 12 ) * Scale.Y - 20 );\r
+                                       CDTXMania.tテクスチャの解放( ref txStr );\r
+                                       CDTXMania.t安全にDisposeする( ref bmpStr );\r
+                               }\r
+                               else\r
+                               {\r
+                                       int nIndex = this.list項目リスト[ nItem ].GetIndex();\r
+                                       if ( listMenu[ nItem ].nParam != nIndex || listMenu[ nItem ].txParam == null )\r
+                                       {\r
+                                               stMenuItemRight stm = listMenu[ nItem ];\r
+                                               stm.nParam = nIndex;\r
+                                               object o = this.list項目リスト[ nItem ].obj現在値();\r
+                                               stm.strParam = ( o == null ) ? "" : o.ToString();\r
+\r
+                                               Bitmap bmpStr =\r
+                                                       prvFont.DrawPrivateFont( strParam, Color.White, Color.Black );\r
+                                               stm.txParam = CDTXMania.tテクスチャの生成( bmpStr, false );\r
+                                               CDTXMania.t安全にDisposeする( ref bmpStr );\r
+\r
+                                               listMenu[ nItem ] = stm;\r
+                                       }\r
+                                       listMenu[ nItem ].txParam.t2D描画( CDTXMania.app.Device, ( x + 210 ) * Scale.X, ( y + 12 ) * Scale.Y - 20 );\r
+                               }\r
                                //-----------------\r
                                #endregion\r
                                \r
@@ -2221,11 +2339,11 @@ namespace DTXMania
                                }\r
 \r
                                // 描画。\r
-                               \r
-                               if( this.tx三角矢印 != null )\r
+\r
+                               if ( this.tx三角矢印 != null )\r
                                {\r
-                                       this.tx三角矢印.t2D描画( CDTXMania.app.Device, x, y_upper, new Rectangle( 0, 0, 32, 16 ) );\r
-                                       this.tx三角矢印.t2D描画( CDTXMania.app.Device, x, y_lower, new Rectangle( 0, 16, 32, 16 ) );\r
+                                       this.tx三角矢印.t2D描画( CDTXMania.app.Device, x * Scale.X, y_upper * Scale.Y, new Rectangle( 0, 0, (int) ( 32 * Scale.X ), (int) ( 16 * Scale.Y ) ) );\r
+                                       this.tx三角矢印.t2D描画( CDTXMania.app.Device, x * Scale.X, y_lower * Scale.Y, new Rectangle( 0, (int) ( 16 * Scale.Y ), (int) ( 32 * Scale.X ), (int) ( 16 * Scale.Y ) ) );\r
                                }\r
                        }\r
                        //-----------------\r
@@ -2357,9 +2475,21 @@ namespace DTXMania
                private int n現在のスクロールカウンタ;\r
                private int n目標のスクロールカウンタ;\r
                private Point[] ptパネルの基本座標 = new Point[] { new Point( 0x12d, 3 ), new Point( 0x12d, 0x35 ), new Point( 0x12d, 0x67 ), new Point( 0x12d, 0x99 ), new Point( 0x114, 0xcb ), new Point( 0x12d, 0xfd ), new Point( 0x12d, 0x12f ), new Point( 0x12d, 0x161 ), new Point( 0x12d, 0x193 ), new Point( 0x12d, 0x1c5 ) };\r
-               private CTexture txその他項目行パネル;\r
+               private CTextureAf txその他項目行パネル;\r
                private CTexture tx三角矢印;\r
-               private CTexture tx通常項目行パネル;\r
+               private CTextureAf tx通常項目行パネル;\r
+\r
+               private CPrivateFastFont prvFont;\r
+               //private List<string> list項目リスト_str最終描画名;\r
+               private struct stMenuItemRight\r
+               {\r
+                       //      public string strMenuItem;\r
+                       public CTexture txMenuItemRight;\r
+                       public int nParam;\r
+                       public string strParam;\r
+                       public CTexture txParam;\r
+               }\r
+               private stMenuItemRight[] listMenu;\r
 \r
                private CTexture txSkinSample1;                         // #28195 2012.5.2 yyagi\r
                private string[] skinSubFolders;                        //\r
index b272678..e526661 100644 (file)
@@ -13,18 +13,18 @@ namespace DTXMania
        {\r
                // プロパティ\r
 \r
-               public CActDFPFont actFont { get; private set; }\r
+               //public CActDFPFont actFont { get; private set; }\r
 \r
 \r
                // コンストラクタ\r
 \r
                public CStageコンフィグ()\r
                {\r
-                       CActDFPFont font;\r
+                       //CActDFPFont font;\r
                        base.eステージID = CStage.Eステージ.コンフィグ;\r
                        base.eフェーズID = CStage.Eフェーズ.共通_通常状態;\r
-                       this.actFont = font = new CActDFPFont();\r
-                       base.list子Activities.Add( font );\r
+                       //this.actFont = font = new CActDFPFont();\r
+                       //base.list子Activities.Add( font );\r
                        base.list子Activities.Add( this.actFIFO = new CActFIFOWhite() );\r
                        base.list子Activities.Add( this.actList = new CActConfigList() );\r
                        base.list子Activities.Add( this.actKeyAssign = new CActConfigKeyAssign() );\r
@@ -59,8 +59,8 @@ namespace DTXMania
                        try\r
                        {\r
                                this.n現在のメニュー番号 = 0;                                                                                                  //\r
-                               this.ftフォント = new Font( "MS PGothic", 26f, FontStyle.Bold, GraphicsUnit.Pixel );                        //\r
-                               for( int i = 0; i < 4; i++ )                                                                                                    //\r
+                               this.ftフォント = new Font( "MS PGothic", 26f / 2 * Scale.Y, FontStyle.Bold, GraphicsUnit.Pixel );                  //\r
+                               for ( int i = 0; i < 4; i++ )                                                                                                   //\r
                                {                                                                                                                                                               //\r
                                        this.ctキー反復用[ i ] = new CCounter( 0, 0, 0, CDTXMania.Timer );                 //\r
                                }                                                                                                                                                               //\r
@@ -111,9 +111,23 @@ namespace DTXMania
                        if( !base.b活性化してない )\r
                        {\r
                                this.tx背景 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenConfig background.jpg" ), false );\r
-                               this.tx上部パネル = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenConfig header panel.png" ), true );\r
-                               this.tx下部パネル = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenConfig footer panel.png" ), true );\r
+                               this.tx上部パネル = CDTXMania.tテクスチャの生成Af( CSkin.Path( @"Graphics\ScreenConfig header panel.png" ), true );\r
+                               this.tx下部パネル = CDTXMania.tテクスチャの生成Af( CSkin.Path( @"Graphics\ScreenConfig footer panel.png" ), true );\r
                                this.txMenuカーソル = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenConfig menu cursor.png" ), false );\r
+\r
+                               prvFont = new CPrivateFastFont( CSkin.Path( @"Graphics\fonts\mplus-1p-heavy.ttf" ), (int) ( 18 * Scale.Y ) );\r
+                               string[] strMenuItem = { "System", "Drums", "Guitar", "Bass", "Exit" };\r
+                               txMenuItemLeft = new CTexture[ strMenuItem.Length, 2 ];\r
+                               for ( int i = 0; i < strMenuItem.Length; i++ )\r
+                               {\r
+                                       Bitmap bmpStr;\r
+                                       bmpStr = prvFont.DrawPrivateFont( strMenuItem[ i ], Color.White, Color.Black );\r
+                                       txMenuItemLeft[ i, 0 ] = CDTXMania.tテクスチャの生成( bmpStr, false );\r
+                                       bmpStr.Dispose();\r
+                                       bmpStr = prvFont.DrawPrivateFont( strMenuItem[ i ], Color.White, Color.Black, Color.Yellow, Color.OrangeRed );\r
+                                       txMenuItemLeft[ i, 1 ] = CDTXMania.tテクスチャの生成( bmpStr, false );\r
+                                       bmpStr.Dispose();\r
+                               }\r
                                if( this.bメニューにフォーカス中 )\r
                                {\r
                                        this.t説明文パネルに現在選択されているメニューの説明を描画する();\r
@@ -134,6 +148,15 @@ namespace DTXMania
                                CDTXMania.tテクスチャの解放( ref this.tx下部パネル );\r
                                CDTXMania.tテクスチャの解放( ref this.txMenuカーソル );\r
                                CDTXMania.tテクスチャの解放( ref this.tx説明文パネル );\r
+                               prvFont.Dispose();\r
+                               for ( int i = 0; i < txMenuItemLeft.GetLength( 0 ); i++ )\r
+                               {\r
+                                       txMenuItemLeft[ i, 0 ].Dispose();\r
+                                       txMenuItemLeft[ i, 0 ] = null;\r
+                                       txMenuItemLeft[ i, 1 ].Dispose();\r
+                                       txMenuItemLeft[ i, 1 ] = null;\r
+                               }\r
+                               txMenuItemLeft = null;\r
                                base.OnManagedリソースの解放();\r
                        }\r
                }\r
@@ -159,22 +182,22 @@ namespace DTXMania
                        #endregion\r
                        #region [ メニューカーソル ]\r
                        //---------------------\r
-                       if( this.txMenuカーソル != null )\r
+                       if ( this.txMenuカーソル != null )\r
                        {\r
                                Rectangle rectangle;\r
                                this.txMenuカーソル.n透明度 = this.bメニューにフォーカス中 ? 0xff : 0x80;\r
-                               int x = 0x37;\r
-                               int y = 0x61 + ( this.n現在のメニュー番号 * 0x19 );\r
-                               int num3 = 170;\r
-                               this.txMenuカーソル.t2D描画( CDTXMania.app.Device, x, y, new Rectangle( 0, 0, 0x10, 0x20 ) );\r
-                               this.txMenuカーソル.t2D描画( CDTXMania.app.Device, ( x + num3 ) - 0x10, y, new Rectangle( 10, 0, 0x10, 0x20 ) );\r
-                               x += 0x10;\r
-                               for( num3 -= 0x20; num3 > 0; num3 -= rectangle.Width )\r
+                               int x = (int) ( 0x37 * Scale.X );\r
+                               int y = (int) ( ( 0x61 + ( this.n現在のメニュー番号 * 0x19 ) ) * Scale.Y );\r
+                               int num3 = (int) ( 170 * Scale.X );\r
+                               this.txMenuカーソル.t2D描画( CDTXMania.app.Device, x, y, new Rectangle( 0, 0, (int) ( 0x10 * Scale.X ), (int) ( 0x20 * Scale.Y ) ) );\r
+                               this.txMenuカーソル.t2D描画( CDTXMania.app.Device, ( x + num3 ) - 0x10 * Scale.X, y, new Rectangle( (int) ( 0x10 * Scale.X ), 0, (int) ( 0x10 * Scale.X ), (int) ( 0x20 * Scale.Y ) ) );\r
+                               x += (int) ( 0x10 * Scale.X );\r
+                               for ( num3 -= (int) ( 0x20 * Scale.X ); num3 > 0; num3 -= rectangle.Width )\r
                                {\r
-                                       rectangle = new Rectangle( 8, 0, 0x10, 0x20 );\r
-                                       if( num3 < 0x10 )\r
+                                       rectangle = new Rectangle( (int) ( 8 * Scale.X ), 0, (int) ( 0x10 * Scale.X ), (int) ( 0x20 * Scale.Y ) );\r
+                                       if ( num3 < (int) ( 0x10 * Scale.X ) )\r
                                        {\r
-                                               rectangle.Width -= 0x10 - num3;\r
+                                               rectangle.Width -= (int) ( 0x10 * Scale.X ) - num3;\r
                                        }\r
                                        this.txMenuカーソル.t2D描画( CDTXMania.app.Device, x, y, rectangle );\r
                                        x += rectangle.Width;\r
@@ -184,49 +207,26 @@ namespace DTXMania
                        #endregion\r
                        #region [ メニュー ]\r
                        //---------------------\r
-                       string str = "System";\r
-                       int num4 = this.actFont.n文字列長dot( str );\r
-                       bool flag = this.n現在のメニュー番号 == 0;\r
-                       this.actFont.t文字列描画( 0x8a - ( num4 / 2 ), 100, str, flag );\r
-                       //str = "Drums Keys";\r
-                       //num4 = this.actFont.n文字列長dot( str );\r
-                       //flag = this.n現在のメニュー番号 == 1;\r
-                       //this.actFont.t文字列描画( 0x8a - ( num4 / 2 ), 0x7d, str, flag );\r
-                       //str = "Guitar Keys";\r
-                       //num4 = this.actFont.n文字列長dot( str );\r
-                       //flag = this.n現在のメニュー番号 == 2;\r
-                       //this.actFont.t文字列描画( 0x8a - ( num4 / 2 ), 150, str, flag );\r
-                       //str = "Bass Keys";\r
-                       //num4 = this.actFont.n文字列長dot( str );\r
-                       //flag = this.n現在のメニュー番号 == 3;\r
-                       //this.actFont.t文字列描画( 0x8a - ( num4 / 2 ), 0xaf, str, flag );\r
-                       //str = "Exit";\r
-                       //num4 = this.actFont.n文字列長dot( str );\r
-                       //flag = this.n現在のメニュー番号 == 4;\r
-                       //this.actFont.t文字列描画( 0x8a - ( num4 / 2 ), 200, str, flag );\r
-                       str = "Drums";\r
-                       num4 = this.actFont.n文字列長dot( str );\r
-                       flag = this.n現在のメニュー番号 == 1;\r
-                       this.actFont.t文字列描画( 0x8a - ( num4 / 2 ), 0x7d, str, flag );\r
-                       str = "Guitar";\r
-                       num4 = this.actFont.n文字列長dot( str );\r
-                       flag = this.n現在のメニュー番号 == 2;\r
-                       this.actFont.t文字列描画( 0x8a - ( num4 / 2 ), 150, str, flag );\r
-                       str = "Bass";\r
-                       num4 = this.actFont.n文字列長dot( str );\r
-                       flag = this.n現在のメニュー番号 == 3;\r
-                       this.actFont.t文字列描画( 0x8a - ( num4 / 2 ), 0xaf, str, flag );\r
-                       str = "Exit";\r
-                       num4 = this.actFont.n文字列長dot( str );\r
-                       flag = this.n現在のメニュー番号 == 4;\r
-                       this.actFont.t文字列描画( 0x8a - ( num4 / 2 ), 200, str, flag );\r
-\r
+                       int menuY = (int) ( 100 * Scale.Y ) - 20;\r
+                       int stepY = (int) ( 25 * Scale.Y );\r
+                       for ( int i = 0; i < txMenuItemLeft.GetLength( 0 ); i++ )\r
+                       {\r
+                               //Bitmap bmpStr = (this.n現在のメニュー番号 == i) ?\r
+                               //      prvFont.DrawPrivateFont( strMenuItem[ i ], Color.White, Color.Black, Color.Yellow, Color.OrangeRed ) :\r
+                               //      prvFont.DrawPrivateFont( strMenuItem[ i ], Color.White, Color.Black );\r
+                               //txMenuItemLeft = CDTXMania.tテクスチャの生成( bmpStr, false );\r
+                               int flag = ( this.n現在のメニュー番号 == i ) ? 1 : 0;\r
+                               int num4 = txMenuItemLeft[ i, flag ].sz画像サイズ.Width;\r
+                               txMenuItemLeft[ i, flag ].t2D描画( CDTXMania.app.Device, 0x8a * Scale.X - ( num4 / 2 ), menuY ); //55\r
+                               //txMenuItem.Dispose();\r
+                               menuY += stepY;\r
+                       }\r
                        //---------------------\r
                        #endregion\r
                        #region [ 説明文パネル ]\r
                        //---------------------\r
-                       if( this.tx説明文パネル != null )\r
-                               this.tx説明文パネル.t2D描画( CDTXMania.app.Device, 0x1d, 0xf8 );\r
+                       if ( this.tx説明文パネル != null )\r
+                               this.tx説明文パネル.t2D描画( CDTXMania.app.Device, 0x1d * Scale.X, 0xf8 * Scale.Y );\r
                        //---------------------\r
                        #endregion\r
                        #region [ アイテム ]\r
@@ -252,7 +252,7 @@ namespace DTXMania
                        #region [ 下部パネル ]\r
                        //---------------------\r
                        if( this.tx下部パネル != null )\r
-                               this.tx下部パネル.t2D描画( CDTXMania.app.Device, 0, 480 - this.tx下部パネル.szテクスチャサイズ.Height );\r
+                               this.tx下部パネル.t2D描画( CDTXMania.app.Device, 0, SampleFramework.GameWindowSize.Height - this.tx下部パネル.sz画像サイズ.Height );\r
                        //---------------------\r
                        #endregion\r
                        #region [ オプションパネル ]\r
@@ -287,8 +287,8 @@ namespace DTXMania
                        #endregion\r
 \r
                        // キー入力\r
-\r
-                       if( ( base.eフェーズID != CStage.Eフェーズ.共通_通常状態 )\r
+                       #region [ キー入力 ]\r
+                       if ( ( base.eフェーズID != CStage.Eフェーズ.共通_通常状態 )\r
                                || this.actKeyAssign.bキー入力待ちの最中である\r
                                || CDTXMania.act現在入力を占有中のプラグイン != null )\r
                                return 0;\r
@@ -321,12 +321,14 @@ namespace DTXMania
                                }\r
                                else if ( ( CDTXMania.Pad.b押されたDGB( Eパッド.CY ) || CDTXMania.Pad.b押された( E楽器パート.DRUMS, Eパッド.RD ) ) || ( CDTXMania.Pad.b押された( E楽器パート.DRUMS, Eパッド.LC ) || ( CDTXMania.ConfigIni.bEnterがキー割り当てのどこにも使用されていない && CDTXMania.Input管理.Keyboard.bキーが押された( (int) SlimDX.DirectInput.Key.Return ) ) ) )\r
                                {\r
+                                       #region [ EXIT ]\r
                                        if ( this.n現在のメニュー番号 == 4 )\r
                                        {\r
                                                CDTXMania.Skin.sound決定音.t再生する();\r
                                                this.actFIFO.tフェードアウト開始();\r
                                                base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト;\r
                                        }\r
+                                       #endregion\r
                                        else if ( this.bメニューにフォーカス中 )\r
                                        {\r
                                                CDTXMania.Skin.sound決定音.t再生する();\r
@@ -369,6 +371,7 @@ namespace DTXMania
                                        this.tカーソルを下へ移動する();\r
                                }\r
                        }\r
+                       #endregion\r
                        return 0;\r
                }\r
 \r
@@ -447,10 +450,12 @@ namespace DTXMania
                private Font ftフォント;\r
                private int n現在のメニュー番号;\r
                private CTexture txMenuカーソル;\r
-               private CTexture tx下部パネル;\r
-               private CTexture tx上部パネル;\r
+               private CTextureAf tx下部パネル;\r
+               private CTextureAf tx上部パネル;\r
                private CTexture tx説明文パネル;\r
                private CTexture tx背景;\r
+               private CPrivateFastFont prvFont;\r
+               private CTexture[ , ] txMenuItemLeft;\r
 \r
                private void tカーソルを下へ移動する()\r
                {\r
@@ -567,7 +572,7 @@ namespace DTXMania
                {\r
                        try\r
                        {\r
-                               var image = new Bitmap( 220 * 2, 192 * 2 );             // 説明文領域サイズの縦横 2 倍。(描画時に 0.5 倍で表示する。)\r
+                               var image = new Bitmap( (int) ( 220 * 2 * Scale.X ), (int) ( 192 * 2 * Scale.Y ) );             // 説明文領域サイズの縦横 2 倍。(描画時に 0.5 倍で表示する。)\r
                                var graphics = Graphics.FromImage( image );\r
                                graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;\r
                                \r
@@ -575,8 +580,8 @@ namespace DTXMania
                                switch( this.n現在のメニュー番号 )\r
                                {\r
                                        case 0:\r
-                                               str[ 0, 0 ] = "システムに関係する項目を設定しま";\r
-                                               str[ 0, 1 ] = "す。";\r
+                                               str[ 0, 0 ] = "システムに関係する項目を設定します。";\r
+                                               str[ 0, 1 ] = "";\r
                                                str[ 1, 0 ] = "Settings for an overall systems.";\r
                                                break;\r
 \r
@@ -601,50 +606,50 @@ namespace DTXMania
                                        //    str[1, 1] = "";\r
                                        //    break;\r
                                        case 1:\r
-                                               str[ 0, 0 ] = "ドラムの演奏に関する項目を設定し";\r
-                                               str[ 0, 1 ] = "ます。";\r
+                                               str[ 0, 0 ] = "ドラムの演奏に関する項目を設定します。";\r
+                                               str[ 0, 1 ] = "";\r
                                                str[ 1, 0 ] = "Settings to play the drums.";\r
                                                str[ 1, 1 ] = "";\r
                                                break;\r
 \r
                                        case 2:\r
-                                               str[ 0, 0 ] = "ギターの演奏に関する項目を設定し";\r
-                                               str[ 0, 1 ] = "ます。";\r
+                                               str[ 0, 0 ] = "ギターの演奏に関する項目を設定します。";\r
+                                               str[ 0, 1 ] = "";\r
                                                str[ 1, 0 ] = "Settings to play the guitar.";\r
                                                str[ 1, 1 ] = "";\r
                                                break;\r
 \r
                                        case 3:\r
-                                               str[ 0, 0 ] = "ベースの演奏に関する項目を設定し";\r
-                                               str[ 0, 1 ] = "ます。";\r
+                                               str[ 0, 0 ] = "ベースの演奏に関する項目を設定します。";\r
+                                               str[ 0, 1 ] = "";\r
                                                str[ 1, 0 ] = "Settings to play the bass.";\r
                                                str[ 1, 1 ] = "";\r
                                                break;\r
 \r
                                        case 4:\r
-                                               str[ 0, 0 ] = "設定を保存し、コンフィグ画面を終了";\r
-                                               str[ 0, 1 ] = "します。";\r
-                                               str[ 1, 0 ] = "Save the settings and exit from";\r
-                                               str[ 1, 1 ] = "CONFIGURATION menu.";\r
+                                               str[ 0, 0 ] = "設定を保存し、コンフィグ画面を終了します。";\r
+                                               str[ 0, 1 ] = "";\r
+                                               str[ 1, 0 ] = "Save the settings and exit from\nCONFIGURATION menu.";\r
+                                               str[ 1, 1 ] = "";\r
                                                break;\r
                                }\r
-                               \r
-                               int c = (CultureInfo.CurrentCulture.TwoLetterISOLanguageName == "ja") ? 0 : 1;\r
-                               for (int i = 0; i < 2; i++)\r
+\r
+                               int c = ( CultureInfo.CurrentCulture.TwoLetterISOLanguageName == "ja" ) ? 0 : 1;\r
+                               for ( int i = 0; i < 2; i++ )\r
                                {\r
-                                       graphics.DrawString( str[ c, i ], this.ftフォント, Brushes.White, new PointF( 4f, ( i * 30 ) ) );\r
+                                       graphics.DrawString( str[ c, i ], this.ftフォント, Brushes.White, new PointF( 4f * Scale.X, ( i * 30 ) * Scale.Y ) );\r
                                }\r
                                graphics.Dispose();\r
-                               if( this.tx説明文パネル != null )\r
+                               if ( this.tx説明文パネル != null )\r
                                {\r
                                        this.tx説明文パネル.Dispose();\r
                                }\r
                                this.tx説明文パネル = new CTexture( CDTXMania.app.Device, image, CDTXMania.TextureFormat );\r
-                               this.tx説明文パネル.vc拡大縮小倍率.X = 0.5f;\r
-                               this.tx説明文パネル.vc拡大縮小倍率.Y = 0.5f;\r
+                               // this.tx説明文パネル.vc拡大縮小倍率.X = 0.5f;\r
+                               // this.tx説明文パネル.vc拡大縮小倍率.Y = 0.5f;\r
                                image.Dispose();\r
                        }\r
-                       catch( CTextureCreateFailedException )\r
+                       catch ( CTextureCreateFailedException )\r
                        {\r
                                Trace.TraceError( "説明文テクスチャの作成に失敗しました。" );\r
                                this.tx説明文パネル = null;\r
@@ -654,19 +659,20 @@ namespace DTXMania
                {\r
                        try\r
                        {\r
-                               var image = new Bitmap( 220 * 2, 192 * 2 );             // 説明文領域サイズの縦横 2 倍。(描画時に 0.5 倍で表示する。)\r
+                               var image = new Bitmap( (int) ( 220 * Scale.X ), (int) ( 192 * Scale.Y ) );             // 説明文領域サイズの縦横 2 倍。(描画時に 0.5 倍で表示する・・・のは中止。処理速度向上のため。)\r
                                var graphics = Graphics.FromImage( image );\r
                                graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;\r
 \r
                                CItemBase item = this.actList.ib現在の選択項目;\r
-                               if( ( item.str説明文 != null ) && ( item.str説明文.Length > 0 ) )\r
+                               if ( ( item.str説明文 != null ) && ( item.str説明文.Length > 0 ) )\r
                                {\r
-                                       int num = 0;\r
-                                       foreach( string str in item.str説明文.Split( new char[] { '\n' } ) )\r
-                                       {\r
-                                               graphics.DrawString( str, this.ftフォント, Brushes.White, new PointF( 4f, (float) num ) );\r
-                                               num += 30;\r
-                                       }\r
+                                       //int num = 0;\r
+                                       //foreach( string str in item.str説明文.Split( new char[] { '\n' } ) )\r
+                                       //{\r
+                                       //    graphics.DrawString( str, this.ftフォント, Brushes.White, new PointF( 4f * Scale.X, (float) num * Scale.Y ) );\r
+                                       //    num += 30;\r
+                                       //}\r
+                                       graphics.DrawString( item.str説明文, this.ftフォント, Brushes.White, new RectangleF( 4f * Scale.X, (float) 0 * Scale.Y, 630, 430 ) );\r
                                }\r
                                graphics.Dispose();\r
                                if( this.tx説明文パネル != null )\r
@@ -674,8 +680,8 @@ namespace DTXMania
                                        this.tx説明文パネル.Dispose();\r
                                }\r
                                this.tx説明文パネル = new CTexture( CDTXMania.app.Device, image, CDTXMania.TextureFormat );\r
-                               this.tx説明文パネル.vc拡大縮小倍率.X = 0.5f;\r
-                               this.tx説明文パネル.vc拡大縮小倍率.Y = 0.5f;\r
+                               //this.tx説明文パネル.vc拡大縮小倍率.X = 0.5f;\r
+                               //this.tx説明文パネル.vc拡大縮小倍率.Y = 0.5f;\r
                                image.Dispose();\r
                        }\r
                        catch( CTextureCreateFailedException )\r
index 07b6640..264b9fa 100644 (file)
Binary files a/実行時フォルダ/DTXManiaGR.exe and b/実行時フォルダ/DTXManiaGR.exe differ