OSDN Git Service

#xxxxx songs.dbにBPMの情報を含めるよう修正。
[dtxmania/dtxmania.git] / DTXManiaプロジェクト / コード / ステージ / 04.コンフィグ / CActConfigList.cs
index 091c9b4..c26fa60 100644 (file)
@@ -3,6 +3,7 @@ using System.Collections.Generic;
 using System.Diagnostics;\r
 using System.Text;\r
 using System.Drawing;\r
+using SlimDX;\r
 using FDK;\r
 \r
 namespace DTXMania\r
@@ -16,7 +17,8 @@ namespace DTXMania
                        get\r
                        {\r
                                Eメニュー種別 e = this.eメニュー種別;\r
-                               if ( e == Eメニュー種別.KeyAssignBass || e == Eメニュー種別.KeyAssignDrums || e == Eメニュー種別.KeyAssignGuitar )\r
+                               if ( e == Eメニュー種別.KeyAssignBass || e == Eメニュー種別.KeyAssignDrums ||\r
+                                       e == Eメニュー種別.KeyAssignGuitar || e == Eメニュー種別.KeyAssignSystem )\r
                                {\r
                                        return true;\r
                                }\r
@@ -40,12 +42,6 @@ namespace DTXMania
                                {\r
                                        return false;\r
                                }\r
-//                             CItemBase base2 = this.list項目リスト[ this.n現在の選択項目 ];\r
-//                             if( ( ( base2 != this.iSystemReturnToMenu ) && ( base2 != this.iKeyAssignDrumsReturnToMenu ) ) && ( base2 != this.iKeyAssignGuitarReturnToMenu ) )\r
-//                             {\r
-//                                     return ( base2 == this.iKeyAssignBassReturnToMenu );\r
-//                             }\r
-//                             return true;\r
                        }\r
                }\r
                public CItemBase ib現在の選択項目\r
@@ -63,38 +59,37 @@ namespace DTXMania
                {\r
                        this.tConfigIniへ記録する();\r
                        this.list項目リスト.Clear();\r
+\r
+                       // #27029 2012.1.5 from: 説明文は最大9行→13行に変更。\r
+\r
                        this.iSystemReturnToMenu = new CItemBase( "<< ReturnTo Menu", CItemBase.Eパネル種別.その他,\r
                                "左側のメニューに戻ります。",\r
                                "Return to left menu." );\r
                        this.list項目リスト.Add( this.iSystemReturnToMenu );\r
-                       this.iCommonDark = new CItemList( "DARK", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eDark,\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
                                new string[] { "OFF", "HALF", "FULL" } );\r
                        this.list項目リスト.Add( this.iCommonDark );\r
-                       this.iCommonPlaySpeed = new CItemInteger( "PlaySpeed", 5, 40, CDTXMania.ConfigIni.n演奏速度,\r
-                               "曲の演奏速度を、速くしたり遅くした\nりすることができます。\n(※一部のサウンドカードでは正しく\n 再生できない可能性があります。)",\r
-                               "It changes the song speed.\nFor example, you can play in half\n speed by setting PlaySpeed = x0.5\n for your practice.\nNote: It also changes the songs' pitch." );\r
-                       this.list項目リスト.Add( this.iCommonPlaySpeed );\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
+                       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( "DrGrMode", CItemBase.Eパネル種別.通常, nDGmode,\r
-                               "DrOnly: ドラムのみ有効にします。\nGROnly: ギター/ベースのみの\n専用画面を用います。\nDr&GR: ドラムとギター/ベースの\n両方を有効にします。\n",\r
-                               "DrOnly: Only Drums is available.\nGROnly: Only Guitar/Bass are available.\n You can play them in GR screen.\nDr&GR: Both Drums and Guitar/bass\n are available.",\r
-                               new string[] { "DrOnly", "GROnly", "Dr&GR"} );\r
-                       this.list項目リスト.Add( this.iSystemGRmode );\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.iSystemGuitar = new CItemToggle( "Guitar", CDTXMania.ConfigIni.bGuitar有効,\r
-//                             "ギター有効:\nこれを OFF にすると、ギターとベース\nに関するすべてが無効になります。\nつまりは DTXMania がドラム専用の\nゲームとなります。",\r
-//                             "To show guitar/bass lanes.\nIf Guitar=ON and Drums=OFF,\n the playing screen becomes\n guitar-only mode." );\r
-//                     this.list項目リスト.Add( this.iSystemGuitar );\r
-//                     this.iSystemDrums = new CItemToggle( "Drums", CDTXMania.ConfigIni.bDrums有効,\r
-//                             "ドラム有効:\nこれを OFF にすると、ドラムに関する\nすべてが無効になります。\nつまりは DTXMania がギター専用の\nゲームとなります。",\r
-//                             "To use drums lanes.\nIf Guitar=ON and Drums=OFF,\n the playing screen becomes\n guitar-only mode." );\r
-//                     this.list項目リスト.Add( this.iSystemDrums );\r
 \r
+                       this.iCommonPlaySpeed = new CItemInteger("PlaySpeed", 5, 40, CDTXMania.ConfigIni.n演奏速度,\r
+                               "曲の演奏速度を、速くしたり遅くした\nりすることができます。\n(※一部のサウンドカードでは正しく\n 再生できない可能性があります。)",\r
+                               "It changes the song speed.\nFor example, you can play in half\n speed by setting PlaySpeed = 0.500\n for your practice.\nNote: It also changes the songs' pitch." );\r
+                       this.list項目リスト.Add( this.iCommonPlaySpeed );\r
 \r
 \r
                        this.iSystemFullscreen = new CItemToggle( "Fullscreen", CDTXMania.ConfigIni.b全画面モード,\r
@@ -109,36 +104,9 @@ namespace DTXMania
                                "子BOXをRANDOMの対象とする:\nON にすると、RANDOM SELECT 時\nに子BOXも選択対象とします。",\r
                                "Turn ON to use child BOX (subfolders)\n at RANDOM SELECT." );\r
                        this.list項目リスト.Add( this.iSystemRandomFromSubBox );\r
-                       this.iSystemHHGroup = new CItemList( "HH Group", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eHHGroup,\r
-                               "ハイハットレーン打ち分け設定:\n左シンバル、ハイハットオープン、ハ\nイハットクローズの打ち分け方法を指\n定します。\n  HH-0 ... LC | HHC | HHO\n  HH-1 ... LC & ( HHC | HHO )\n  HH-2 ... LC | ( HHC & HHO )\n  HH-3 ... LC & HHC & HHO\n",\r
-                               "HH-0: LC|HC|HO; all are separated.\nHH-1: LC&(HC|HO);\n HC and HO are separted.\n LC is grouped with HC and HHO.\nHH-2: LC|(HC&HO);\n LC and HHs are separated.\n HC and HO are grouped.\nHH-3: LC&HC&HO; all are grouped.",\r
-                               new string[] { "HH-0", "HH-1", "HH-2", "HH-3" } );\r
-                       this.list項目リスト.Add( this.iSystemHHGroup );\r
-                       this.iSystemFTGroup = new CItemList( "FT Group", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eFTGroup,\r
-                               "フロアタム打ち分け設定:\nロータムとフロアタムの打ち分け方法\nを指定します。\n  FT-0 ... LT | FT\n  FT-1 ... LT & FT\n",\r
-                               "FT-0: LT|FT\n LT and FT are separated.\nFT-1: LT&FT\n LT and FT are grouped.",\r
-                               new string[] { "FT-0", "FT-1" } );\r
-                       this.list項目リスト.Add( this.iSystemFTGroup );\r
-                       this.iSystemCYGroup = new CItemList( "CY Group", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eCYGroup,\r
-                               "シンバルレーン打ち分け設定:\n右シンバルとライドシンバルの打ち分\nけ方法を指定します。\n  CY-0 ... CY | RD\n  CY-1 ... CY & RD\n",\r
-                               "CY-0: CY|RD\n CY and RD are separated.\nCY-1: CY&RD\n CY and RD are grouped.",\r
-                               new string[] { "CY-0", "CY-1" } );\r
-                       this.list項目リスト.Add( this.iSystemCYGroup );\r
-                       this.iSystemHitSoundPriorityHH = new CItemList( "HH Priority", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eHitSoundPriorityHH,\r
-                               "発声音決定の優先順位:\nハイハットレーン打ち分け有効時に、\nチップの発声音をどのように決定する\nかを指定します。\n  C > P ... チップの音が優先\n  P > C ... 叩いたパッドの音が優先",\r
-                               "To specify playing sound in case you're\n using HH-0,1 and 2.\n\nC>P:\n Chip sound is prior to the pad sound.\nP>C:\n Pad sound is prior to the chip sound.",\r
-                               new string[] { "C>P", "P>C" } );\r
-                       this.list項目リスト.Add( this.iSystemHitSoundPriorityHH );\r
-                       this.iSystemHitSoundPriorityFT = new CItemList( "FT Priority", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eHitSoundPriorityFT,\r
-                               "発声音決定の優先順位:\nフロアタム打ち分け有効時に、チップ\nの発声音をどのように決定するかを\n指定します。\n  C > P ... チップの音が優先\n  P > C ... 叩いたパッドの音が優先",\r
-                               "To specify playing sound in case you're\n using FT-0.\n\nC>P:\n Chip sound is prior to the pad sound.\nP>C:\n Pad sound is prior to the chip sound.",\r
-                               new string[] { "C>P", "P>C" } );\r
-                       this.list項目リスト.Add( this.iSystemHitSoundPriorityFT );\r
-                       this.iSystemHitSoundPriorityCY = new CItemList( "CY Priority", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eHitSoundPriorityCY,\r
-                               "発声音決定の優先順位\nシンバルレーン打ち分け有効時に、\nチップの発声音をどのように決定する\nかを指定します。\n  C > P ... チップの音が優先\n  P > C ... 叩いたパッドの音が優先",\r
-                               "To specify playing sound in case you're\n using CY-0.\n\nC>P:\n Chip sound is prior to the pad sound.\nP>C:\n Pad sound is prior to the chip sound.",\r
-                               new string[] { "C>P", "P>C" } );\r
-                       this.list項目リスト.Add( this.iSystemHitSoundPriorityCY );\r
+\r
+\r
+       \r
                        this.iSystemAdjustWaves = new CItemToggle( "AdjustWaves", CDTXMania.ConfigIni.bWave再生位置自動調整機能有効,\r
                                "サウンド再生位置自動補正:\nハードウェアやOSに起因するサウン\nドのずれを強制的に補正します。\nBGM のように再生時間の長い音声\nデータが使用されている曲で効果が\nあります。",\r
                                "Automatic wave playing position\n adjustment feature. If you turn it ON,\n it decrease the lag which comes from\n the difference of hardware/OS.\nUsually, you should turn it ON." );\r
@@ -155,27 +123,6 @@ namespace DTXMania
                                "BGAの使用:\n画像(BGA)を表示可能にする場合に\nON にします。BGA の再生には、それ\nなりのマシンパワーが必要とされます。",\r
                                "To draw BGA (back ground animations)\n or not." );\r
                        this.list項目リスト.Add( this.iSystemBGA );\r
-                       // #24074 2011.01.23 comment-out ikanick オプション(Drums)へ移行\r
-                       //                      this.iSystemGraph = new CItemToggle( "Graph", CDTXMania.ConfigIni.bGraph有効,\r
-                       //                              "達成率グラフの使用:\n最高スキル達成率と比較できるグラフ\nを表示する場合にON にします。\nオートプレイだと表示されません。\n現バージョンではドラムのみとなって\nいます。",\r
-                       //                              "To draw Graph \n or not.");\r
-                       //                      this.list項目リスト.Add( this.iSystemGraph );\r
-                       this.iSystemFillIn = new CItemToggle( "FillIn", CDTXMania.ConfigIni.bフィルイン有効,\r
-                               "フィルインエフェクトの使用:\nフィルイン区間の爆発パターンに特別\nのエフェクトを使用します。\nフィルインエフェクトの描画にはそれな\nりのマシンパワーが必要とされます。",\r
-                               "To show bursting effects at the fill-in\n zone or not." );\r
-                       this.list項目リスト.Add( this.iSystemFillIn );\r
-                       this.iSystemSoundMonitorDrums = new CItemToggle( "DrumsMonitor", CDTXMania.ConfigIni.b演奏音を強調する.Drums,\r
-                               "ドラム音モニタ:\nドラム音を他の音より大きめの音量で\n発声します。\nただし、オートプレイの場合は通常音\n量で発声されます。",\r
-                               "To enhance the drums chip sound\n(except autoplay)." );\r
-                       this.list項目リスト.Add( this.iSystemSoundMonitorDrums );\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
-                       this.list項目リスト.Add( this.iSystemSoundMonitorGuitar );\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
-                       this.list項目リスト.Add( this.iSystemSoundMonitorBass );\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
@@ -196,35 +143,21 @@ namespace DTXMania
                                "BGMの再生:\nこれをOFFにすると、BGM を再生しな\nくなります。",\r
                                "Turn OFF if you don't want to play\n BGM." );\r
                        this.list項目リスト.Add( this.iSystemBGMSound );\r
-                       this.iSystemHitSound = new CItemToggle( "HitSound", CDTXMania.ConfigIni.bドラム打音を発声する,\r
-                               "打撃音の再生:\nこれをOFFにすると、パッドを叩いた\nときの音を再生しなくなります(ドラム\nのみ)。\nDTX の音色で演奏したい場合などに\nOFF にします。",\r
-                               "Turn OFF if you don't want to play\n hitting chip sound.\nIt is useful to play with real/electric\n drums kit." );\r
-                       this.list項目リスト.Add( this.iSystemHitSound );\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
                        this.list項目リスト.Add( this.iSystemAudienceSound );\r
                        this.iSystemDamageLevel = new CItemList( "DamageLevel", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eダメージレベル,\r
-                               "ゲージ減少割合:\nMiss ヒット時のゲージの減少度合い\nを指定します。\n",\r
-                               "Damage level at missing (and\n recovering level) at playing.",\r
+                               "ゲージ減少割合:\nMiss ヒット時のゲージの減少度合い\nを指定します。\nRiskyが1以上の場合は無効となります",\r
+                               "Damage level at missing (and\n recovering level) at playing.\nThis 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
                        this.list項目リスト.Add( this.iSystemSaveScore );\r
-                       this.iSystemMinComboDrums = new CItemInteger( "D-MinCombo", 1, 0x1869f, CDTXMania.ConfigIni.n表示可能な最小コンボ数.Drums,\r
-                               "表示可能な最小コンボ数(ドラム):\n画面に表示されるコンボの最小の数\nを指定します。\n1 ~ 99999 の値が指定可能です。",\r
-                               "Initial number to show the combo\n for the drums.\nYou can specify from 1 to 99999." );\r
-                       this.list項目リスト.Add( this.iSystemMinComboDrums );\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
-                       this.list項目リスト.Add( this.iSystemMinComboGuitar );\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
-                       this.list項目リスト.Add( this.iSystemMinComboBass );\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
@@ -237,120 +170,448 @@ namespace DTXMania
                                "ストイック(禁欲)モード:\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
                        this.list項目リスト.Add( this.iSystemStoicMode );\r
-                       this.iSystemCymbalFree = new CItemToggle( "CymbalFree", CDTXMania.ConfigIni.bシンバルフリー,\r
-                               "シンバルフリーモード:\n左シンバル・右シンバルの区別をなく\nします。ライドシンバルまで区別をな\nくすか否かは、CYGroup に従います。\n",\r
-                               "Turn ON to group LC (left cymbal) and\n CY (right cymbal).\nWhether RD (ride cymbal) is also\n grouped or not depends on the\n'CY Group' setting." );\r
-                       this.list項目リスト.Add( this.iSystemCymbalFree );\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
+                               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
+                       this.list項目リスト.Add( this.iSystemAutoResultCapture );\r
+\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
+                               "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
                        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
                        this.list項目リスト.Add( this.iLogOutputLog );\r
+\r
+                       this.iSystemSkinSubfolder = new CItemList( "Skin (General)", CItemBase.Eパネル種別.通常, nSkinIndex,\r
+                               "スキン切替:\n" +\r
+                               "スキンを切り替えます。\n",\r
+                               //"CONFIGURATIONを抜けると、設定した\n" +\r
+                               //"スキンに変更されます。",\r
+                               "Skin:\n" +\r
+                               "Change skin.",\r
+                               skinNames );\r
+                       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
+                               //"\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
+                       this.list項目リスト.Add( this.iSystemUseBoxDefSkin );\r
+\r
+       \r
+                       this.iSystemGoToKeyAssign = new CItemBase( "System Keys", CItemBase.Eパネル種別.通常,\r
+                       "システムのキー入力に関する項目を設\n定します。",\r
+                       "Settings for the system key/pad inputs." );\r
+                       this.list項目リスト.Add( this.iSystemGoToKeyAssign );\r
+\r
+                       \r
                        this.n現在の選択項目 = 0;\r
                        this.eメニュー種別 = Eメニュー種別.System;\r
                }\r
-\r
                public void t項目リストの設定・Drums()\r
                {\r
                        this.tConfigIniへ記録する();\r
                        this.list項目リスト.Clear();\r
+\r
+                       // #27029 2012.1.5 from: 説明文は最大9行→13行に変更。\r
+\r
                        this.iDrumsReturnToMenu = new CItemBase( "<< Return To Menu", CItemBase.Eパネル種別.その他,\r
                                "左側のメニューに戻ります。",\r
                                "Return to left menu." );\r
                        this.list項目リスト.Add( this.iDrumsReturnToMenu );\r
+\r
                        this.iDrumsAutoPlayAll = new CItemThreeState( "AutoPlay (All)", CItemThreeState.E状態.不定,\r
-                               "全パッドの自動演奏の ON/OFF を\nまとめて切り替えます。",\r
-                               "You can change whether Auto or not\n for all drums lanes at once." );\r
+                               "全パッドの自動演奏の ON/OFF を\n" +\r
+                               "まとめて切り替えます。",\r
+                               "You can change whether Auto or not\n" +\r
+                               " for all drums lanes at once." );\r
                        this.list項目リスト.Add( this.iDrumsAutoPlayAll );\r
+\r
                        this.iDrumsLeftCymbal = new CItemToggle( "    LeftCymbal", CDTXMania.ConfigIni.bAutoPlay.LC,\r
                                "左シンバルを自動で演奏します。",\r
                                "To play LeftCymbal automatically." );\r
                        this.list項目リスト.Add( this.iDrumsLeftCymbal );\r
+\r
                        this.iDrumsHiHat = new CItemToggle( "    HiHat", CDTXMania.ConfigIni.bAutoPlay.HH,\r
-                               "ハイハットを自動で演奏します。\n(クローズ、オープンとも)",\r
-                               "To play HiHat automatically.\n(It effects to both HH-close and\n HH-open)" );\r
+                               "ハイハットを自動で演奏します。\n" +\r
+                               "(クローズ、オープンとも)",\r
+                               "To play HiHat automatically.\n" +\r
+                               "(It effects to both HH-close and\n HH-open)" );\r
                        this.list項目リスト.Add( this.iDrumsHiHat );\r
+\r
                        this.iDrumsSnare = new CItemToggle( "    Snare", CDTXMania.ConfigIni.bAutoPlay.SD,\r
                                "スネアを自動で演奏します。",\r
                                "To play Snare automatically." );\r
                        this.list項目リスト.Add( this.iDrumsSnare );\r
+\r
                        this.iDrumsBass = new CItemToggle( "    BassDrum", CDTXMania.ConfigIni.bAutoPlay.BD,\r
                                "バスドラムを自動で演奏します。",\r
                                "To play Bass Drum automatically." );\r
                        this.list項目リスト.Add( this.iDrumsBass );\r
+\r
                        this.iDrumsHighTom = new CItemToggle( "    HighTom", CDTXMania.ConfigIni.bAutoPlay.HT,\r
                                "ハイタムを自動で演奏します。",\r
                                "To play High Tom automatically." );\r
                        this.list項目リスト.Add( this.iDrumsHighTom );\r
+\r
                        this.iDrumsLowTom = new CItemToggle( "    LowTom", CDTXMania.ConfigIni.bAutoPlay.LT,\r
                                "ロータムを自動で演奏します。",\r
                                "To play Low Tom automatically." );\r
                        this.list項目リスト.Add( this.iDrumsLowTom );\r
+\r
                        this.iDrumsFloorTom = new CItemToggle( "    FloorTom", CDTXMania.ConfigIni.bAutoPlay.FT,\r
                                "フロアタムを自動で演奏します。",\r
                                "To play Floor Tom automatically." );\r
                        this.list項目リスト.Add( this.iDrumsFloorTom );\r
+\r
                        this.iDrumsCymbalRide = new CItemToggle( "    Cym/Ride", CDTXMania.ConfigIni.bAutoPlay.CY,\r
-                               "右シンバルとライドシンバルを自動で\n演奏します。",\r
-                               "To play both right- and Ride-Cymbal\n automatically." );\r
+                               "右シンバルとライドシンバルを自動で\n" +\r
+                               "演奏します。",\r
+                               "To play both right- and Ride-Cymbal\n" +\r
+                               " automatically." );\r
                        this.list項目リスト.Add( this.iDrumsCymbalRide );\r
+\r
                        this.iDrumsScrollSpeed = new CItemInteger( "ScrollSpeed", 0, 0x7cf, CDTXMania.ConfigIni.n譜面スクロール速度.Drums,\r
-                               "演奏時のドラム譜面のスクロールの\n速度を指定します。\nx0.5 ~ x1000.0 を指定可能です。",\r
-                               "To change the scroll speed for the\ndrums lanes.\nYou can set it from x0.5 to x1000.0.\n(ScrollSpeed=x0.5 means half speed)" );\r
+                               "演奏時のドラム譜面のスクロールの\n" +\r
+                               "速度を指定します。\n" +\r
+                               "x0.5 ~ x1000.0 を指定可能です。",\r
+                               "To change the scroll speed for the\n" +\r
+                               "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
-                       this.iDrumsComboPosition = new CItemList( "ComboPosition", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.ドラムコンボ文字の表示位置,\r
-                               "演奏時のドラムコンボ文字列の位置\nを指定します。",\r
-                               "The display position for Drums Combo.\nNote that it doesn't take effect\n at Autoplay ([Left] is forcely used).",\r
-                               new string[] { "Left", "Center", "Right", "OFF" } );\r
-                       this.list項目リスト.Add( this.iDrumsComboPosition );\r
+\r
                        this.iDrumsSudden = new CItemToggle( "Sudden", CDTXMania.ConfigIni.bSudden.Drums,\r
-                               "ドラムチップが譜面の下の方から表\n示されるようになります。",\r
-                               "Drums chips are disappered until they\ncome near the hit bar, and suddenly\nappears." );\r
+                               "ドラムチップが譜面の下の方から表\n" +\r
+                               "示されるようになります。",\r
+                               "Drums chips are disappered until they\n" +\r
+                               "come near the hit bar, and suddenly\n" +\r
+                               "appears." );\r
                        this.list項目リスト.Add( this.iDrumsSudden );\r
+\r
                        this.iDrumsHidden = new CItemToggle( "Hidden", CDTXMania.ConfigIni.bHidden.Drums,\r
-                               "ドラムチップが譜面の下の方で表示\nされなくなります。",\r
-                               "Drums chips are hidden by approaching\nto the hit bar. " );\r
+                               "ドラムチップが譜面の下の方で表示\n" +\r
+                               "されなくなります。",\r
+                               "Drums chips are hidden by approaching\n" +\r
+                               "to the hit bar. " );\r
                        this.list項目リスト.Add( this.iDrumsHidden );\r
+\r
+                       this.iCommonDark = new CItemList( "Dark", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eDark,\r
+                               "HALF: 背景、レーン、ゲージが表示\n" +\r
+                               "されなくなります。\n" +\r
+                               "FULL: さらに小節線、拍線、判定ラ\n" +\r
+                               "イン、パッドも表示されなくなります。",\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
+                               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
-                               "The scroll way is reversed. Drums chips\nflow from the bottom to the top." );\r
+                               "ドラムチップが譜面の下から上に流\n" +\r
+                               "れるようになります。",\r
+                               "The scroll way is reversed. Drums chips\n"\r
+                               + "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
+                               "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
+                               "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
+                       this.list項目リスト.Add( this.iDrumsTight );\r
+\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
+                               new string[] { "Left", "Center", "Right", "OFF" } );\r
+                       this.list項目リスト.Add( this.iDrumsComboPosition );\r
+\r
                        this.iDrumsPosition = new CItemList( "Position", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.判定文字表示位置.Drums,\r
-                               "ドラムの判定文字の表示位置を指定\nします。\n  P-A: レーン上\n  P-B: 判定ライン下\n  OFF: 表示しない",\r
-                               "The position to show judgement mark.\n(Perfect, Great, ...)\n\n P-A: on the lanes.\n P-B: under the hit bar.\n OFF: no judgement mark.",\r
+                               "ドラムの判定文字の表示位置を指定\n" +\r
+                               "します。\n" +\r
+                               "  P-A: レーン上\n" +\r
+                               "  P-B: 判定ライン下\n" +\r
+                               "  OFF: 表示しない",\r
+                               "The position to show judgement mark.\n" +\r
+                               "(Perfect, Great, ...)\n" +\r
+                               "\n" +\r
+                               " P-A: on the lanes.\n" +\r
+                               " P-B: under the hit bar.\n" +\r
+                               " OFF: no judgement mark.",\r
                                new string[] { "P-A", "P-B", "OFF" } );\r
                        this.list項目リスト.Add( this.iDrumsPosition );\r
-                       this.iDrumsTight = new CItemToggle( "Tight", CDTXMania.ConfigIni.bTight,\r
-                               "ドラムチップのないところでパッドを\n叩くとミスになります。",\r
-                               "It becomes MISS to hit pad without\n chip." );\r
-                       this.list項目リスト.Add( this.iDrumsTight );\r
+\r
+\r
+                       this.iSystemHHGroup = new CItemList( "HH Group", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eHHGroup,\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
+                               "HH-1: LC&(HC|HO);\n" +\r
+                               " HC and HO are separted.\n" +\r
+                               " LC is grouped with HC and HHO.\n" +\r
+                               "HH-2: LC|(HC&HO);\n" +\r
+                               " LC and HHs are separated.\n" +\r
+                               " 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
+                               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
+                               "  FT-0 ... LT | FT\n" +\r
+                               "  FT-1 ... LT & FT\n",\r
+                               "FT-0: LT|FT\n" +\r
+                               " LT and FT are separated.\n" +\r
+                               "FT-1: LT&FT\n" +\r
+                               " LT and FT are grouped.",\r
+                               new string[] { "FT-0", "FT-1" } );\r
+                       this.list項目リスト.Add( this.iSystemFTGroup );\r
+\r
+                       this.iSystemCYGroup = new CItemList( "CY Group", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eCYGroup,\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
+                               " CY and RD are separated.\n" +\r
+                               "CY-1: CY&RD\n" +\r
+                               " CY and RD are grouped.",\r
+                               new string[] { "CY-0", "CY-1" } );\r
+                       this.list項目リスト.Add( this.iSystemCYGroup );\r
+\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
+                               "  BD-0 ... HP | BD\n" +\r
+                               "  BD-1 ... FP & BD\n" + \r
+                               "\n" +\r
+                               "注意:HitSound が OFF である場合は\n" + \r
+                               "不具合が生じます。\n" +\r
+                               "また、BD-1 を選択している間はいくつ\n" + \r
+                               "かのオプションが変更できなくなります。",\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
+                               new string[] { "BD-0", "BD-1" } );\r
+                       this.list項目リスト.Add( this.iSystemBDGroup );\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
+                       this.list項目リスト.Add( this.iSystemCymbalFree );\r
+\r
+\r
+                       this.iSystemHitSoundPriorityHH = new CItemList( "HH Priority", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eHitSoundPriorityHH,\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
+                               "\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
+                               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
+                               "  C > P ... チップの音が優先\n" +\r
+                               "  P > C ... 叩いたパッドの音が優先",\r
+                               "To specify playing sound in case you're\n" +\r
+                               " using FT-0.\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.",\r
+                               new string[] { "C>P", "P>C" } );\r
+                       this.list項目リスト.Add( this.iSystemHitSoundPriorityFT );\r
+\r
+                       this.iSystemHitSoundPriorityCY = new CItemList( "CY Priority", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eHitSoundPriorityCY,\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
+                               "\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.",\r
+                               new string[] { "C>P", "P>C" } );\r
+                       this.list項目リスト.Add( this.iSystemHitSoundPriorityCY );\r
+\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
+                       this.list項目リスト.Add( this.iSystemFillIn );\r
+\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
+                               "\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
+                               "\n" +\r
+                               "Warning: You should not use BD Group \n" + \r
+                               "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
+                       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
+                               "1 ~ 99999 の値が指定可能です。",\r
+                               "Initial number to show the combo\n" +\r
+                               " 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, 0, CDTXMania.ConfigIni.nInputAdjustTimeMs.Drums,\r
-                               "ドラムの入力タイミングの微調整を\n行います。\n-99 ~ 0ms まで指定可能です。\n入力ラグを軽減するためには、負の\n値を指定してください。",\r
-                               "To adjust the drums input timing.\nYou can set from -99 to 0ms.\nTo decrease input lag, set minus value." );\r
+                               "ドラムの入力タイミングの微調整を\n" +\r
+                               "行います。\n" +\r
+                               "-99 ~ 0ms まで指定可能です。\n" +\r
+                               "入力ラグを軽減するためには、負の\n" +\r
+                               "値を指定してください。",\r
+                               "To adjust the drums input timing.\n" +\r
+                               "You can set from -99 to 0ms.\n" +\r
+                               "To decrease input lag, set minus value." );\r
                        this.list項目リスト.Add( this.iDrumsInputAdjustTimeMs );\r
+\r
                        // #24074 2011.01.23 add ikanick\r
                        this.iDrumsGraph = new CItemToggle( "Graph", CDTXMania.ConfigIni.bGraph.Drums,\r
-                               "最高スキルと比較できるグラフを\n表示します。\nオートプレイだと表示されません。",\r
-                               "To draw Graph \n or not." );\r
+                               "最高スキルと比較できるグラフを\n" +\r
+                               "表示します。\n" +\r
+                               "オートプレイだと表示されません。",\r
+                               "To draw Graph \n" +\r
+                               " or not." );\r
                        this.list項目リスト.Add( this.iDrumsGraph );\r
 \r
                        this.iDrumsGoToKeyAssign = new CItemBase( "Drums Keys", CItemBase.Eパネル種別.通常,\r
-                               "ドラムのキー入力に関する項目を設\n定します。",\r
+                               "ドラムのキー入力に関する項目を設\n"+\r
+                               "定します。",\r
                                "Settings for the drums key/pad inputs." );\r
                        this.list項目リスト.Add( this.iDrumsGoToKeyAssign );\r
 \r
                        this.n現在の選択項目 = 0;\r
                        this.eメニュー種別 = Eメニュー種別.Drums;\r
                }\r
-\r
                public void t項目リストの設定・Guitar()\r
                {\r
                        this.tConfigIniへ記録する();\r
                        this.list項目リスト.Clear();\r
+\r
+                       // #27029 2012.1.5 from: 説明文は最大9行→13行に変更。\r
+\r
                        this.iGuitarReturnToMenu = new CItemBase( "<< Return To Menu", CItemBase.Eパネル種別.その他,\r
                                "左側のメニューに戻ります。",\r
                                "Return to left menu." );\r
@@ -393,6 +654,17 @@ namespace DTXMania
                                "ギターの RGB の並びが左右反転し\nます。(左利きモード)",\r
                                "Lane order 'R-G-B' becomes 'B-G-R'\nfor 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
+                       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
+                       this.list項目リスト.Add( this.iSystemMinComboGuitar );\r
+\r
+                       \r
                        // #23580 2011.1.3 yyagi\r
                        this.iGuitarInputAdjustTimeMs = new CItemInteger( "InputAdjust", -99, 0, CDTXMania.ConfigIni.nInputAdjustTimeMs.Guitar,\r
                                "ギターの入力タイミングの微調整を\n行います。\n-99 ~ 0ms まで指定可能です。\n入力ラグを軽減するためには、負の\n値を指定してください。",\r
@@ -407,12 +679,13 @@ namespace DTXMania
                        this.n現在の選択項目 = 0;\r
                        this.eメニュー種別 = Eメニュー種別.Guitar;\r
                }\r
-\r
                public void t項目リストの設定・Bass()\r
                {\r
                        this.tConfigIniへ記録する();\r
                        this.list項目リスト.Clear();\r
 \r
+                       // #27029 2012.1.5 from: 説明文は最大9行→13行に変更。\r
+\r
                        this.iBassReturnToMenu = new CItemBase( "<< Return To Menu", CItemBase.Eパネル種別.その他,\r
                                "左側のメニューに戻ります。",\r
                                "Return to left menu." );\r
@@ -457,6 +730,18 @@ namespace DTXMania
                                "ベースの RGB の並びが左右反転し\nます。(左利きモード)",\r
                                "Lane order 'R-G-B' becomes 'B-G-R'\nfor 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
+                       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
+                       this.list項目リスト.Add( this.iSystemMinComboBass );\r
+\r
+                       \r
                        // #23580 2011.1.3 yyagi\r
                        this.iBassInputAdjustTimeMs = new CItemInteger( "InputAdjust", -99, 0, CDTXMania.ConfigIni.nInputAdjustTimeMs.Bass,\r
                                "ベースの入力タイミングの微調整を\n行います。\n-99 ~ 0ms まで指定可能です。入力ラグを軽減するためには、負の\n値を指定してください。",\r
@@ -478,7 +763,11 @@ namespace DTXMania
                /// </summary>\r
                public void tEsc押下()\r
                {\r
-                       if ( this.eメニュー種別 == Eメニュー種別.KeyAssignDrums )\r
+                       if ( this.eメニュー種別 == Eメニュー種別.KeyAssignSystem )\r
+                       {\r
+                               t項目リストの設定・System();\r
+                       }\r
+                       else if ( this.eメニュー種別 == Eメニュー種別.KeyAssignDrums )\r
                        {\r
                                t項目リストの設定・Drums();\r
                        }\r
@@ -492,7 +781,6 @@ namespace DTXMania
                        }\r
                        // これ以外なら何もしない\r
                }\r
-\r
                public void tEnter押下()\r
                {\r
                        CDTXMania.Skin.sound決定音.t再生する();\r
@@ -506,122 +794,130 @@ namespace DTXMania
                        }\r
                        else if( this.b現在選択されている項目はReturnToMenuである )\r
                        {\r
-                               this.tConfigIniへ記録する();\r
+                               //this.tConfigIniへ記録する();\r
+                               //CONFIG中にスキン変化が発生すると面倒なので、一旦マスクした。\r
                        }\r
-//                     else if( ( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemGuitar ) || ( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemDrums ) )\r
-//                     {\r
-//                             this.list項目リスト[ this.n現在の選択項目 ].tEnter押下();\r
-//                             if( !this.iSystemGuitar.bON && !this.iSystemDrums.bON )\r
-//                             {\r
-//                                     if( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemGuitar )\r
-//                                     {\r
-//                                             this.iSystemDrums.bON = true;\r
-//                                     }\r
-//                                     else\r
-//                                     {\r
-//                                             this.iSystemGuitar.bON = true;\r
-//                                     }\r
-//                             }\r
-//                     }\r
                        else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignDrumsLC )\r
                        {\r
-                               CDTXMania.stageコンフィグ.tパッド選択通知( E楽器パート.DRUMS, Eパッド.LC );\r
+                               CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.DRUMS, EKeyConfigPad.LC );\r
                        }\r
                        else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignDrumsHHC )\r
                        {\r
-                               CDTXMania.stageコンフィグ.tパッド選択通知( E楽器パート.DRUMS, Eパッド.HH );\r
+                               CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.DRUMS, EKeyConfigPad.HH );\r
                        }\r
                        else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignDrumsHHO )\r
                        {\r
-                               CDTXMania.stageコンフィグ.tパッド選択通知( E楽器パート.DRUMS, Eパッド.HHO );\r
+                               CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.DRUMS, EKeyConfigPad.HHO );\r
                        }\r
                        else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignDrumsSD )\r
                        {\r
-                               CDTXMania.stageコンフィグ.tパッド選択通知( E楽器パート.DRUMS, Eパッド.SD );\r
+                               CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.DRUMS, EKeyConfigPad.SD );\r
                        }\r
                        else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignDrumsBD )\r
                        {\r
-                               CDTXMania.stageコンフィグ.tパッド選択通知( E楽器パート.DRUMS, Eパッド.BD );\r
+                               CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.DRUMS, EKeyConfigPad.BD );\r
                        }\r
                        else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignDrumsHT )\r
                        {\r
-                               CDTXMania.stageコンフィグ.tパッド選択通知( E楽器パート.DRUMS, Eパッド.HT );\r
+                               CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.DRUMS, EKeyConfigPad.HT );\r
                        }\r
                        else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignDrumsLT )\r
                        {\r
-                               CDTXMania.stageコンフィグ.tパッド選択通知( E楽器パート.DRUMS, Eパッド.LT );\r
+                               CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.DRUMS, EKeyConfigPad.LT );\r
                        }\r
                        else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignDrumsFT )\r
                        {\r
-                               CDTXMania.stageコンフィグ.tパッド選択通知( E楽器パート.DRUMS, Eパッド.FT );\r
+                               CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.DRUMS, EKeyConfigPad.FT );\r
                        }\r
                        else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignDrumsCY )\r
                        {\r
-                               CDTXMania.stageコンフィグ.tパッド選択通知( E楽器パート.DRUMS, Eパッド.CY );\r
+                               CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.DRUMS, EKeyConfigPad.CY );\r
                        }\r
                        else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignDrumsRD )\r
                        {\r
-                               CDTXMania.stageコンフィグ.tパッド選択通知( E楽器パート.DRUMS, Eパッド.RD );\r
+                               CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.DRUMS, EKeyConfigPad.RD );\r
                        }\r
+                       else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignDrumsHP )                    // #27029 2012.1.4 from\r
+                       {                                                                                                                                                                                       //\r
+                               CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.DRUMS, EKeyConfigPad.HP );        //\r
+                       }                                                                                                                                                                                       //\r
                        else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignGuitarR )\r
                        {\r
-                               CDTXMania.stageコンフィグ.tパッド選択通知( E楽器パート.GUITAR, Eパッド.HH );\r
+                               CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.GUITAR, EKeyConfigPad.R );\r
                        }\r
                        else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignGuitarG )\r
                        {\r
-                               CDTXMania.stageコンフィグ.tパッド選択通知( E楽器パート.GUITAR, Eパッド.SD );\r
+                               CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.GUITAR, EKeyConfigPad.G );\r
                        }\r
                        else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignGuitarB )\r
                        {\r
-                               CDTXMania.stageコンフィグ.tパッド選択通知( E楽器パート.GUITAR, Eパッド.BD );\r
+                               CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.GUITAR, EKeyConfigPad.B );\r
                        }\r
                        else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignGuitarPick )\r
                        {\r
-                               CDTXMania.stageコンフィグ.tパッド選択通知( E楽器パート.GUITAR, Eパッド.HT );\r
+                               CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.GUITAR, EKeyConfigPad.Pick );\r
                        }\r
                        else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignGuitarWail )\r
                        {\r
-                               CDTXMania.stageコンフィグ.tパッド選択通知( E楽器パート.GUITAR, Eパッド.LT );\r
+                               CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.GUITAR, EKeyConfigPad.Wail );\r
                        }\r
                        else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignGuitarDecide )\r
                        {\r
-                               CDTXMania.stageコンフィグ.tパッド選択通知( E楽器パート.GUITAR, Eパッド.CY );\r
+                               CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.GUITAR, EKeyConfigPad.Decide );\r
                        }\r
                        else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignGuitarCancel )\r
                        {\r
-                               CDTXMania.stageコンフィグ.tパッド選択通知( E楽器パート.GUITAR, Eパッド.FT );\r
+                               CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.GUITAR, EKeyConfigPad.Cancel );\r
                        }\r
                        else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignBassR )\r
                        {\r
-                               CDTXMania.stageコンフィグ.tパッド選択通知( E楽器パート.BASS, Eパッド.HH );\r
+                               CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.BASS, EKeyConfigPad.R );\r
                        }\r
                        else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignBassG )\r
                        {\r
-                               CDTXMania.stageコンフィグ.tパッド選択通知( E楽器パート.BASS, Eパッド.SD );\r
+                               CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.BASS, EKeyConfigPad.G );\r
                        }\r
                        else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignBassB )\r
                        {\r
-                               CDTXMania.stageコンフィグ.tパッド選択通知( E楽器パート.BASS, Eパッド.BD );\r
+                               CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.BASS, EKeyConfigPad.B );\r
                        }\r
                        else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignBassPick )\r
                        {\r
-                               CDTXMania.stageコンフィグ.tパッド選択通知( E楽器パート.BASS, Eパッド.HT );\r
+                               CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.BASS, EKeyConfigPad.Pick );\r
                        }\r
                        else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignBassWail )\r
                        {\r
-                               CDTXMania.stageコンフィグ.tパッド選択通知( E楽器パート.BASS, Eパッド.LT );\r
+                               CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.BASS, EKeyConfigPad.Wail );\r
                        }\r
                        else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignBassDecide )\r
                        {\r
-                               CDTXMania.stageコンフィグ.tパッド選択通知( E楽器パート.BASS, Eパッド.CY );\r
+                               CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.BASS, EKeyConfigPad.Decide );\r
+                       }\r
+                       else if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignBassCancel )\r
+                       {\r
+                               CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.BASS, EKeyConfigPad.Cancel );\r
                        }\r
-                       else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignBassCancel )\r
+                       else if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignSystemCapture )\r
                        {\r
-                               CDTXMania.stageコンフィグ.tパッド選択通知( E楽器パート.BASS, Eパッド.FT );\r
+                               CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.SYSTEM, EKeyConfigPad.Capture);\r
                        }\r
                        else\r
                        {\r
-                               this.list項目リスト[ this.n現在の選択項目 ].tEnter押下();\r
+                               // #27029 2012.1.5 from\r
+                               if( ( this.iSystemBDGroup.n現在選択されている項目番号 == (int) EBDGroup.どっちもBD ) &&\r
+                                       ( ( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemHHGroup ) || ( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemHitSoundPriorityHH ) ) )\r
+                               {\r
+                                       // 変更禁止(何もしない)\r
+                               }\r
+                               else\r
+                               {\r
+                                       // 変更許可\r
+                                       this.list項目リスト[ this.n現在の選択項目 ].tEnter押下();\r
+                               }\r
+\r
+\r
+                               // Enter押下後の後処理\r
+\r
                                if( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemFullscreen )\r
                                {\r
                                        CDTXMania.app.b次のタイミングで全画面・ウィンドウ切り替えを行う = true;\r
@@ -635,6 +931,14 @@ namespace DTXMania
                                {\r
                                        this.t全部のドラムパッドのAutoを切り替える( this.iDrumsAutoPlayAll.e現在の状態 == CItemThreeState.E状態.ON );\r
                                }\r
+                               else if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemGoToKeyAssign )                        // #24609 2011.4.12 yyagi\r
+                               {\r
+                                       t項目リストの設定・KeyAssignSystem();\r
+                               }\r
+                               else if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignSystemReturnToMenu )        // #24609 2011.4.12 yyagi\r
+                               {\r
+                                       t項目リストの設定・System();\r
+                               }\r
                                else if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iDrumsGoToKeyAssign )                         // #24525 2011.3.15 yyagi\r
                                {\r
                                        t項目リストの設定・KeyAssignDrums();\r
@@ -659,17 +963,104 @@ namespace DTXMania
                                {\r
                                        t項目リストの設定・Bass();\r
                                }\r
+                               else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemBDGroup )                                       // #27029 2012.1.4 from\r
+                               {\r
+                                       if( this.iSystemBDGroup.n現在選択されている項目番号 == (int) EBDGroup.どっちもBD )\r
+                                       {\r
+                                               // #27029 2012.1.5 from: 変更前の状態をバックアップする。\r
+                                               CDTXMania.ConfigIni.BackupOf1BD = new CConfigIni.CBackupOf1BD() {\r
+                                                       eHHGroup = (EHHGroup) this.iSystemHHGroup.n現在選択されている項目番号,\r
+                                                       eHitSoundPriorityHH = (E打ち分け時の再生の優先順位) this.iSystemHitSoundPriorityHH.n現在選択されている項目番号,\r
+                                               };\r
+\r
+                                               // HH Group ... HH-0 → HH-2 / HH-1 → HH-3 / HH-2 → 変更なし / HH-3 → 変更なし\r
+                                               if( this.iSystemHHGroup.n現在選択されている項目番号 == (int) EHHGroup.全部打ち分ける )\r
+                                                       this.iSystemHHGroup.n現在選択されている項目番号 = (int) EHHGroup.左シンバルのみ打ち分ける;\r
+                                               if( this.iSystemHHGroup.n現在選択されている項目番号 == (int) EHHGroup.ハイハットのみ打ち分ける )\r
+                                                       this.iSystemHHGroup.n現在選択されている項目番号 = (int) EHHGroup.全部共通;\r
+\r
+                                               // HH Priority ... C>P → 変更なし / P>C → C>P\r
+                                               if( this.iSystemHitSoundPriorityHH.n現在選択されている項目番号 == (int) E打ち分け時の再生の優先順位.PadがChipより優先 )\r
+                                                       this.iSystemHitSoundPriorityHH.n現在選択されている項目番号 = (int) E打ち分け時の再生の優先順位.ChipがPadより優先;\r
+                                       }\r
+                                       else\r
+                                       {\r
+                                               // #27029 2012.1.5 from: 変更前の状態に戻す。\r
+                                               this.iSystemHHGroup.n現在選択されている項目番号 = (int) CDTXMania.ConfigIni.BackupOf1BD.eHHGroup;\r
+                                               this.iSystemHitSoundPriorityHH.n現在選択されている項目番号 = (int) CDTXMania.ConfigIni.BackupOf1BD.eHitSoundPriorityHH;\r
+                                               \r
+                                               CDTXMania.ConfigIni.BackupOf1BD = null;\r
+                                       }\r
+                               }\r
+                               else if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemUseBoxDefSkin )                        // #28195 2012.5.6 yyagi\r
+                               {\r
+                                       CSkin.bUseBoxDefSkin = this.iSystemUseBoxDefSkin.bON;\r
+                               }\r
+                               #region [ スキン項目でEnterを押下した場合に限り、スキンの縮小サンプルを生成する。]\r
+                               else if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemSkinSubfolder )                        // #28195 2012.5.2 yyagi\r
+                               {\r
+                                       tGenerateSkinSample();\r
+                               }\r
+                               #endregion\r
+                       }\r
+               }\r
+\r
+               private void tGenerateSkinSample()\r
+               {\r
+                       nSkinIndex = ( ( CItemList ) this.list項目リスト[ this.n現在の選択項目 ] ).n現在選択されている項目番号;\r
+                       if ( nSkinSampleIndex != nSkinIndex )\r
+                       {\r
+                               string path = skinSubFolders[ nSkinIndex ];\r
+                               path = System.IO.Path.Combine( path, @"Graphics\ScreenTitle background.jpg" );\r
+                               Bitmap bmSrc = new Bitmap( path );\r
+                               Bitmap bmDest = new Bitmap( bmSrc.Width / 4, bmSrc.Height / 4 );\r
+                               Graphics g = Graphics.FromImage( bmDest );\r
+                               g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;\r
+                               g.DrawImage( bmSrc, new Rectangle( 0, 0, bmSrc.Width / 4, bmSrc.Height / 4 ),\r
+                                       0, 0, bmSrc.Width, bmSrc.Height, GraphicsUnit.Pixel );\r
+                               if ( txSkinSample1 != null )\r
+                               {\r
+                                       CDTXMania.t安全にDisposeする( ref txSkinSample1 );\r
+                               }\r
+                               txSkinSample1 = CDTXMania.tテクスチャの生成( bmDest, false );\r
+                               g.Dispose();\r
+                               bmDest.Dispose();\r
+                               bmSrc.Dispose();\r
+                               nSkinSampleIndex = nSkinIndex;\r
                        }\r
                }\r
+\r
                public void t項目リストの設定・Exit()\r
                {\r
                        this.tConfigIniへ記録する();\r
                        this.eメニュー種別 = Eメニュー種別.Unknown;\r
                }\r
+               public void t項目リストの設定・KeyAssignSystem()\r
+               {\r
+                       //this.tConfigIniへ記録する();\r
+                       this.list項目リスト.Clear();\r
+\r
+                       // #27029 2012.1.5 from: 説明文は最大9行→13行に変更。\r
+\r
+                       this.iKeyAssignSystemReturnToMenu = new CItemBase( "<< ReturnTo 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
+                       this.list項目リスト.Add( this.iKeyAssignSystemCapture );\r
+\r
+                       this.n現在の選択項目 = 0;\r
+                       this.eメニュー種別 = Eメニュー種別.KeyAssignSystem;\r
+               }\r
                public void t項目リストの設定・KeyAssignDrums()\r
                {\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
                                "左側のメニューに戻ります。",\r
                                "Return to left menu.");\r
@@ -714,6 +1105,10 @@ namespace DTXMania
                                "ドラムのキー設定:\nライドシンバルへのキーの割り当て\nを設定します。",\r
                                "Drums key assign:\nTo assign key/pads for RideCymbal\n 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
+                       this.list項目リスト.Add( this.iKeyAssignDrumsHP );                                                                         //\r
                        this.n現在の選択項目 = 0;\r
                        this.eメニュー種別 = Eメニュー種別.KeyAssignDrums;\r
                }\r
@@ -721,6 +1116,9 @@ namespace DTXMania
                {\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
                                "左側のメニューに戻ります。",\r
                                "Return to left menu.");\r
@@ -760,6 +1158,9 @@ namespace DTXMania
                {\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
                                "左側のメニューに戻ります。",\r
                                "Return to left menu." );\r
@@ -795,6 +1196,7 @@ namespace DTXMania
                        this.n現在の選択項目 = 0;\r
                        this.eメニュー種別 = Eメニュー種別.KeyAssignBass;\r
                }\r
+\r
                public void t次に移動()\r
                {\r
                        CDTXMania.Skin.soundカーソル移動音.t再生する();\r
@@ -825,38 +1227,86 @@ namespace DTXMania
 \r
                public override void On活性化()\r
                {\r
+                       if( this.b活性化してる )\r
+                               return;\r
+\r
                        this.list項目リスト = new List<CItemBase>();\r
                        this.eメニュー種別 = Eメニュー種別.Unknown;\r
-                       this.t項目リストの設定・System();\r
+\r
+                       #region [ スキン選択肢と、現在選択中のスキン(index)の準備 #28195 2012.5.2 yyagi ]\r
+                       int ns = ( CDTXMania.Skin.strSystemSkinSubfolders == null ) ? 0 : CDTXMania.Skin.strSystemSkinSubfolders.Length;\r
+                       int nb = ( CDTXMania.Skin.strBoxDefSkinSubfolders == null ) ? 0 : CDTXMania.Skin.strBoxDefSkinSubfolders.Length;\r
+                       skinSubFolders = new string[ ns + nb ];\r
+                       for ( int i = 0; i < ns; i++ )\r
+                       {\r
+                               skinSubFolders[ i ] = CDTXMania.Skin.strSystemSkinSubfolders[ i ];\r
+                       }\r
+                       for ( int i = 0; i < nb; i++ )\r
+                       {\r
+                               skinSubFolders[ ns + i ] = CDTXMania.Skin.strBoxDefSkinSubfolders[ i ];\r
+                       }\r
+                       skinSubFolder_org = CDTXMania.Skin.GetCurrentSkinSubfolderFullName( true );\r
+                       Array.Sort( skinSubFolders );\r
+                       skinNames = CSkin.GetSkinName( skinSubFolders );\r
+                       nSkinIndex = Array.BinarySearch( skinSubFolders, skinSubFolder_org );\r
+                       if ( nSkinIndex < 0 )   // 念のため\r
+                       {\r
+                               nSkinIndex = 0;\r
+                       }\r
+                       nSkinSampleIndex = -1;\r
+                       #endregion\r
+\r
+                       this.t項目リストの設定・Bass();                // #27795 2012.3.11 yyagi; System設定の中でDrumsの設定を参照しているため、\r
+                       this.t項目リストの設定・Guitar();      // 活性化の時点でDrumsの設定も入れ込んでおかないと、System設定中に例外発生することがある。\r
+                       this.t項目リストの設定・Drums();       // \r
+                       this.t項目リストの設定・System();      // 順番として、最後にSystemを持ってくること。設定一覧の初期位置がSystemのため。\r
                        this.b要素値にフォーカス中 = false;\r
                        this.n目標のスクロールカウンタ = 0;\r
                        this.n現在のスクロールカウンタ = 0;\r
                        this.nスクロール用タイマ値 = -1;\r
                        this.ct三角矢印アニメ = new CCounter();\r
+                       \r
                        base.On活性化();\r
                }\r
                public override void On非活性化()\r
                {\r
+                       if( this.b活性化してない )\r
+                               return;\r
+\r
                        this.tConfigIniへ記録する();\r
                        this.list項目リスト.Clear();\r
                        this.ct三角矢印アニメ = null;\r
+                       \r
                        base.On非活性化();\r
+\r
+                       if ( CDTXMania.Skin.GetCurrentSkinSubfolderFullName( true ) != this.skinSubFolder_org )\r
+                       {\r
+                               CDTXMania.Skin.PrepareReloadSkin();             // #28195 2012.5.2 yyagi CONFIG脱出時にSkin更新\r
+                               CDTXMania.Skin.ReloadSkin();                    //\r
+                       }\r
+\r
                }\r
                public override void OnManagedリソースの作成()\r
                {\r
-                       if( !base.b活性化してない )\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テクスチャの生成( CSkin.Path( @"Graphics\ScreenConfig triangle arrow.png" ), false );\r
-                               base.OnManagedリソースの作成();\r
-                       }\r
+                       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テクスチャの生成( CSkin.Path( @"Graphics\ScreenConfig triangle arrow.png" ), false );\r
+                       this.txSkinSample1 = null;              // スキン選択時に動的に設定するため、ここでは初期化しない\r
+                       base.OnManagedリソースの作成();\r
                }\r
                public override void OnManagedリソースの解放()\r
                {\r
+                       if( this.b活性化してない )\r
+                               return;\r
+\r
+                       CDTXMania.tテクスチャの解放( ref this.txSkinSample1 );\r
                        CDTXMania.tテクスチャの解放( ref this.tx通常項目行パネル );\r
                        CDTXMania.tテクスチャの解放( ref this.txその他項目行パネル );\r
                        CDTXMania.tテクスチャの解放( ref this.tx三角矢印 );\r
+               \r
                        base.OnManagedリソースの解放();\r
                }\r
                public override int On進行描画()\r
@@ -865,183 +1315,285 @@ namespace DTXMania
                }\r
                public int t進行描画( bool b項目リスト側にフォーカスがある )\r
                {\r
-                       if( !base.b活性化してない )\r
+                       if( this.b活性化してない )\r
+                               return 0;\r
+\r
+                       // 進行\r
+\r
+                       #region [ 初めての進行描画 ]\r
+                       //-----------------\r
+                       if( base.b初めての進行描画 )\r
+                       {\r
+                               this.nスクロール用タイマ値 = CDTXMania.Timer.n現在時刻;\r
+                               this.ct三角矢印アニメ.t開始( 0, 9, 50, CDTXMania.Timer );\r
+                       \r
+                               base.b初めての進行描画 = false;\r
+                       }\r
+                       //-----------------\r
+                       #endregion\r
+\r
+                       this.b項目リスト側にフォーカスがある = b項目リスト側にフォーカスがある;           // 記憶\r
+\r
+                       #region [ 項目スクロールの進行 ]\r
+                       //-----------------\r
+                       long n現在時刻 = CDTXMania.Timer.n現在時刻;\r
+                       if( n現在時刻 < this.nスクロール用タイマ値 ) this.nスクロール用タイマ値 = n現在時刻;\r
+\r
+                       const int INTERVAL = 2; // [ms]\r
+                       while( ( n現在時刻 - this.nスクロール用タイマ値 ) >= INTERVAL )\r
                        {\r
-                               #region [初めての進行描画]\r
-                               if ( base.b初めての進行描画 )\r
+                               int n目標項目までのスクロール量 = Math.Abs( (int) ( this.n目標のスクロールカウンタ - this.n現在のスクロールカウンタ ) );\r
+                               int n加速度 = 0;\r
+\r
+                               #region [ n加速度の決定;目標まで遠いほど加速する。]\r
+                               //-----------------\r
+                               if( n目標項目までのスクロール量 <= 100 )\r
                                {\r
-                                       this.nスクロール用タイマ値 = CDTXMania.Timer.n現在時刻;\r
-                                       this.ct三角矢印アニメ.t開始( 0, 9, 50, CDTXMania.Timer );\r
-                                       base.b初めての進行描画 = false;\r
+                                       n加速度 = 2;\r
                                }\r
-                               #endregion\r
-                               this.b項目リスト側にフォーカスがある = b項目リスト側にフォーカスがある;\r
-                               long num = CDTXMania.Timer.n現在時刻;\r
-                               if( num < this.nスクロール用タイマ値 )\r
+                               else if( n目標項目までのスクロール量 <= 300 )\r
                                {\r
-                                       this.nスクロール用タイマ値 = num;\r
+                                       n加速度 = 3;\r
                                }\r
-                               while( ( num - this.nスクロール用タイマ値 ) >= 2 )\r
+                               else if( n目標項目までのスクロール量 <= 500 )\r
                                {\r
-                                       int num2 = Math.Abs( (int) ( this.n目標のスクロールカウンタ - this.n現在のスクロールカウンタ ) );\r
-                                       int num3 = 0;\r
-                                       if( num2 <= 100 )\r
-                                       {\r
-                                               num3 = 2;\r
-                                       }\r
-                                       else if( num2 <= 300 )\r
-                                       {\r
-                                               num3 = 3;\r
-                                       }\r
-                                       else if( num2 <= 500 )\r
-                                       {\r
-                                               num3 = 4;\r
-                                       }\r
-                                       else\r
+                                       n加速度 = 4;\r
+                               }\r
+                               else\r
+                               {\r
+                                       n加速度 = 8;\r
+                               }\r
+                               //-----------------\r
+                               #endregion\r
+                               #region [ this.n現在のスクロールカウンタに n加速度 を加減算。]\r
+                               //-----------------\r
+                               if( this.n現在のスクロールカウンタ < this.n目標のスクロールカウンタ )\r
+                               {\r
+                                       this.n現在のスクロールカウンタ += n加速度;\r
+                                       if( this.n現在のスクロールカウンタ > this.n目標のスクロールカウンタ )\r
                                        {\r
-                                               num3 = 8;\r
+                                               // 目標を超えたら目標値で停止。\r
+                                               this.n現在のスクロールカウンタ = this.n目標のスクロールカウンタ;\r
                                        }\r
+                               }\r
+                               else if( this.n現在のスクロールカウンタ > this.n目標のスクロールカウンタ )\r
+                               {\r
+                                       this.n現在のスクロールカウンタ -= n加速度;\r
                                        if( this.n現在のスクロールカウンタ < this.n目標のスクロールカウンタ )\r
                                        {\r
-                                               this.n現在のスクロールカウンタ += num3;\r
-                                               if( this.n現在のスクロールカウンタ > this.n目標のスクロールカウンタ )\r
-                                               {\r
-                                                       this.n現在のスクロールカウンタ = this.n目標のスクロールカウンタ;\r
-                                               }\r
+                                               // 目標を超えたら目標値で停止。\r
+                                               this.n現在のスクロールカウンタ = this.n目標のスクロールカウンタ;\r
                                        }\r
-                                       else if( this.n現在のスクロールカウンタ > this.n目標のスクロールカウンタ )\r
+                               }\r
+                               //-----------------\r
+                               #endregion\r
+                               #region [ 行超え処理、ならびに目標位置に到達したらスクロールを停止して項目変更通知を発行。]\r
+                               //-----------------\r
+                               if( this.n現在のスクロールカウンタ >= 100 )\r
+                               {\r
+                                       this.n現在の選択項目 = this.t次の項目( this.n現在の選択項目 );\r
+                                       this.n現在のスクロールカウンタ -= 100;\r
+                                       this.n目標のスクロールカウンタ -= 100;\r
+                                       if( this.n目標のスクロールカウンタ == 0 )\r
                                        {\r
-                                               this.n現在のスクロールカウンタ -= num3;\r
-                                               if( this.n現在のスクロールカウンタ < this.n目標のスクロールカウンタ )\r
-                                               {\r
-                                                       this.n現在のスクロールカウンタ = this.n目標のスクロールカウンタ;\r
-                                               }\r
+                                               CDTXMania.stageコンフィグ.t項目変更通知();\r
                                        }\r
-                                       if( this.n現在のスクロールカウンタ >= 100 )\r
-                                       {\r
-                                               this.n現在の選択項目 = this.t次の項目( this.n現在の選択項目 );\r
-                                               this.n現在のスクロールカウンタ -= 100;\r
-                                               this.n目標のスクロールカウンタ -= 100;\r
-                                               if( this.n目標のスクロールカウンタ == 0 )\r
-                                               {\r
-                                                       CDTXMania.stageコンフィグ.t項目変更通知();\r
-                                               }\r
-                                       }\r
-                                       else if( this.n現在のスクロールカウンタ <= -100 )\r
+                               }\r
+                               else if( this.n現在のスクロールカウンタ <= -100 )\r
+                               {\r
+                                       this.n現在の選択項目 = this.t前の項目( this.n現在の選択項目 );\r
+                                       this.n現在のスクロールカウンタ += 100;\r
+                                       this.n目標のスクロールカウンタ += 100;\r
+                                       if( this.n目標のスクロールカウンタ == 0 )\r
                                        {\r
-                                               this.n現在の選択項目 = this.t前の項目( this.n現在の選択項目 );\r
-                                               this.n現在のスクロールカウンタ += 100;\r
-                                               this.n目標のスクロールカウンタ += 100;\r
-                                               if( this.n目標のスクロールカウンタ == 0 )\r
-                                               {\r
-                                                       CDTXMania.stageコンフィグ.t項目変更通知();\r
-                                               }\r
+                                               CDTXMania.stageコンフィグ.t項目変更通知();\r
                                        }\r
-                                       this.nスクロール用タイマ値 += 2;\r
                                }\r
-                               if( this.b項目リスト側にフォーカスがある && ( this.n目標のスクロールカウンタ == 0 ) )\r
+                               //-----------------\r
+                               #endregion\r
+\r
+                               this.nスクロール用タイマ値 += INTERVAL;\r
+                       }\r
+                       //-----------------\r
+                       #endregion\r
+                       \r
+                       #region [ ▲印アニメの進行 ]\r
+                       //-----------------\r
+                       if( this.b項目リスト側にフォーカスがある && ( this.n目標のスクロールカウンタ == 0 ) )\r
+                               this.ct三角矢印アニメ.t進行Loop();\r
+                       //-----------------\r
+                       #endregion\r
+\r
+\r
+                       // 描画\r
+\r
+                       this.ptパネルの基本座標[ 4 ].X = this.b項目リスト側にフォーカスがある ? 276 : 301;               // メニューにフォーカスがあるなら、項目リストの中央は頭を出さない。\r
+\r
+                       #region [ 計11個の項目パネルを描画する。]\r
+                       //-----------------\r
+                       int nItem = this.n現在の選択項目;\r
+                       for( int i = 0; i < 4; i++ )\r
+                               nItem = this.t前の項目( nItem );\r
+\r
+                       for( int n行番号 = -4; n行番号 < 6; n行番号++ )                // n行番号 == 0 がフォーカスされている項目パネル。\r
+                       {\r
+                               #region [ 今まさに画面外に飛びだそうとしている項目パネルは描画しない。]\r
+                               //-----------------\r
+                               if( ( ( n行番号 == -4 ) && ( this.n現在のスクロールカウンタ > 0 ) ) ||           // 上に飛び出そうとしている\r
+                                       ( ( n行番号 == +5 ) && ( this.n現在のスクロールカウンタ < 0 ) ) )                // 下に飛び出そうとしている\r
                                {\r
-                                       this.ct三角矢印アニメ.t進行Loop();\r
+                                       nItem = this.t次の項目( nItem );\r
+                                       continue;\r
                                }\r
-                               this.ptパネルの基本座標[ 4 ].X = this.b項目リスト側にフォーカスがある ? 0x114 : 0x12d;\r
-                               int nItem = this.n現在の選択項目;\r
-                               for( int i = 0; i < 4; i++ )\r
+                               //-----------------\r
+                               #endregion\r
+\r
+                               int n移動元の行の基本位置 = n行番号 + 4;\r
+                               int n移動先の行の基本位置 = ( this.n現在のスクロールカウンタ <= 0 ) ? ( ( n移動元の行の基本位置 + 1 ) % 10 ) : ( ( ( n移動元の行の基本位置 - 1 ) + 10 ) % 10 );\r
+                               int x = this.ptパネルの基本座標[ n移動元の行の基本位置 ].X + ( (int) ( ( this.ptパネルの基本座標[ n移動先の行の基本位置 ].X - this.ptパネルの基本座標[ n移動元の行の基本位置 ].X ) * ( ( (double) Math.Abs( this.n現在のスクロールカウンタ ) ) / 100.0 ) ) );\r
+                               int y = this.ptパネルの基本座標[ n移動元の行の基本位置 ].Y + ( (int) ( ( this.ptパネルの基本座標[ n移動先の行の基本位置 ].Y - this.ptパネルの基本座標[ n移動元の行の基本位置 ].Y ) * ( ( (double) Math.Abs( this.n現在のスクロールカウンタ ) ) / 100.0 ) ) );\r
+\r
+                               #region [ 現在の行の項目パネル枠を描画。]\r
+                               //-----------------\r
+                               switch( this.list項目リスト[ nItem ].eパネル種別 )\r
                                {\r
-                                       nItem = this.t前の項目( nItem );\r
+                                       case CItemBase.Eパネル種別.通常:\r
+                                               if( this.tx通常項目行パネル != null )\r
+                                                       this.tx通常項目行パネル.t2D描画( CDTXMania.app.Device, x, y );\r
+                                               break;\r
+\r
+                                       case CItemBase.Eパネル種別.その他:\r
+                                               if( this.txその他項目行パネル != null )\r
+                                                       this.txその他項目行パネル.t2D描画( CDTXMania.app.Device, x, y );\r
+                                               break;\r
                                }\r
-                               for( int j = -4; j < 6; j++ )\r
+                               //-----------------\r
+                               #endregion\r
+                               #region [ 現在の行の項目名を描画。]\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
                                {\r
-                                       if( ( ( j == -4 ) && ( this.n現在のスクロールカウンタ > 0 ) ) || ( ( j == 5 ) && ( this.n現在のスクロールカウンタ < 0 ) ) )\r
-                                       {\r
-                                               nItem = this.t次の項目( nItem );\r
-                                               continue;\r
-                                       }\r
-                                       int index = j + 4;\r
-                                       int num8 = ( this.n現在のスクロールカウンタ <= 0 ) ? ( ( ( j + 4 ) + 1 ) % 10 ) : ( ( ( ( j + 4 ) - 1 ) + 10 ) % 10 );\r
-                                       int x = this.ptパネルの基本座標[ index ].X + ( (int) ( ( this.ptパネルの基本座標[ num8 ].X - this.ptパネルの基本座標[ index ].X ) * ( ( (double) Math.Abs( this.n現在のスクロールカウンタ ) ) / 100.0 ) ) );\r
-                                       int y = this.ptパネルの基本座標[ index ].Y + ( (int) ( ( this.ptパネルの基本座標[ num8 ].Y - this.ptパネルの基本座標[ index ].Y ) * ( ( (double) Math.Abs( this.n現在のスクロールカウンタ ) ) / 100.0 ) ) );\r
-                                       switch( this.list項目リスト[ nItem ].eパネル種別 )\r
-                                       {\r
-                                               case CItemBase.Eパネル種別.通常:\r
-                                                       if( this.tx通常項目行パネル != null )\r
-                                                       {\r
-                                                               this.tx通常項目行パネル.t2D描画( CDTXMania.app.Device, x, y );\r
-                                                       }\r
-                                                       break;\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
+                                               break;\r
+                                               //-----------------\r
+                                               #endregion\r
 \r
-                                               case CItemBase.Eパネル種別.その他:\r
-                                                       if( this.txその他項目行パネル != null )\r
-                                                       {\r
-                                                               this.txその他項目行パネル.t2D描画( CDTXMania.app.Device, x, y );\r
-                                                       }\r
-                                                       break;\r
-                                       }\r
-                                       CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 0x12, y + 12, this.list項目リスト[ nItem ].str項目名 );\r
-                                       switch( this.list項目リスト[ nItem ].e種別 )\r
-                                       {\r
-                                               case CItemBase.E種別.ONorOFFトグル:\r
-                                                       CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, ( (CItemToggle) this.list項目リスト[ nItem ] ).bON ? "ON" : "OFF" );\r
-                                                       break;\r
+                                       case CItemBase.E種別.ONorOFFor不定スリーステート:\r
+                                               #region [ *** ]\r
+                                               //-----------------\r
+                                               switch( ( (CItemThreeState) this.list項目リスト[ nItem ] ).e現在の状態 )\r
+                                               {\r
+                                                       case CItemThreeState.E状態.ON:\r
+                                                               CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, "ON" );\r
+                                                               break;\r
 \r
-                                               case CItemBase.E種別.ONorOFFor不定スリーステート:\r
-                                                       switch( ( (CItemThreeState) this.list項目リスト[ nItem ] ).e現在の状態 )\r
-                                                       {\r
-                                                               case CItemThreeState.E状態.ON:\r
-                                                                       CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, "ON" );\r
-                                                                       break;\r
+                                                       case CItemThreeState.E状態.不定:\r
+                                                               CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, "- -" );\r
+                                                               break;\r
 \r
-                                                               case CItemThreeState.E状態.不定:\r
-                                                                       CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, "- -" );\r
-                                                                       break;\r
+                                                       default:\r
+                                                               CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, "OFF" );\r
+                                                               break;\r
+                                               }\r
+                                               break;\r
+                                               //-----------------\r
+                                               #endregion\r
 \r
-                                                               default:\r
-                                                                       CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, "OFF" );\r
-                                                                       break;\r
-                                                       }\r
-                                                       break;\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
+                                               {\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
+                                               }\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
+                                               }\r
+                                               else\r
+                                               {\r
+                                                       CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, ( (CItemInteger) this.list項目リスト[ nItem ] ).n現在の値.ToString(), ( n行番号 == 0 ) && this.b要素値にフォーカス中 );\r
+                                               }\r
+                                               break;\r
+                                               //-----------------\r
+                                               #endregion\r
 \r
-                                               case CItemBase.E種別.整数:\r
-                                                       CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, ( (CItemInteger) this.list項目リスト[ nItem ] ).n現在の値.ToString(), ( j == 0 ) && this.b要素値にフォーカス中 );\r
-                                                       break;\r
+                                       case CItemBase.E種別.リスト:       // #28195 2012.5.2 yyagi: add Skin supports\r
+                                               #region [ *** ]\r
+                                               //-----------------\r
+                                               {\r
+                                                       CItemList list = (CItemList) this.list項目リスト[ nItem ];\r
+                                                       CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, list.list項目値[ list.n現在選択されている項目番号 ] );\r
 \r
-                                               case CItemBase.E種別.リスト:\r
+                                                       #region [ 必要な場合に、Skinのサンプルを生成・描画する。#28195 2012.5.2 yyagi ]\r
+                                                       if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemSkinSubfolder )\r
                                                        {\r
-                                                               CItemList list = (CItemList) this.list項目リスト[ nItem ];\r
-                                                               CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, list.list項目値[ list.n現在選択されている項目番号 ] );\r
-                                                               break;\r
+                                                               tGenerateSkinSample();          // 最初にSkinの選択肢にきたとき(Enterを押す前)に限り、サンプル生成が発生する。\r
+                                                               if ( txSkinSample1 != null )\r
+                                                               {\r
+                                                                       txSkinSample1.t2D描画( CDTXMania.app.Device, 56, 300 );\r
+                                                               }\r
                                                        }\r
-                                       }\r
-\r
+                                                       #endregion\r
+                                                       break;\r
+                                               }\r
+                                               //-----------------\r
+                                               #endregion\r
+                               }\r
+                               //-----------------\r
+                               #endregion\r
+                               \r
+                               nItem = this.t次の項目( nItem );\r
+                       }\r
+                       //-----------------\r
+                       #endregion\r
+                       \r
+                       #region [ 項目リストにフォーカスがあって、かつスクロールが停止しているなら、パネルの上下に▲印を描画する。]\r
+                       //-----------------\r
+                       if( this.b項目リスト側にフォーカスがある && ( this.n目標のスクロールカウンタ == 0 ) )\r
+                       {\r
+                               int x;\r
+                               int y_upper;\r
+                               int y_lower;\r
+                       \r
+                               // 位置決定。\r
 \r
-                                       nItem = this.t次の項目( nItem );\r
+                               if( this.b要素値にフォーカス中 )\r
+                               {\r
+                                       x = 528;        // 要素値の上下あたり。\r
+                                       y_upper = 198 - this.ct三角矢印アニメ.n現在の値;\r
+                                       y_lower = 242 + this.ct三角矢印アニメ.n現在の値;\r
                                }\r
-                               if( this.b項目リスト側にフォーカスがある && ( this.n目標のスクロールカウンタ == 0 ) )\r
+                               else\r
                                {\r
-                                       int num11;\r
-                                       int num12;\r
-                                       int num13;\r
-                                       if( !this.b要素値にフォーカス中 )\r
-                                       {\r
-                                               num11 = 0x114;\r
-                                               num12 = 0xba - this.ct三角矢印アニメ.n現在の値;\r
-                                               num13 = 0xfe + this.ct三角矢印アニメ.n現在の値;\r
-                                       }\r
-                                       else\r
-                                       {\r
-                                               num11 = 0x210;\r
-                                               num12 = 0xc6 - this.ct三角矢印アニメ.n現在の値;\r
-                                               num13 = 0xf2 + this.ct三角矢印アニメ.n現在の値;\r
-                                       }\r
-                                       if( this.tx三角矢印 != null )\r
-                                       {\r
-                                               this.tx三角矢印.t2D描画( CDTXMania.app.Device, num11, num12, new Rectangle( 0, 0, 0x20, 0x10 ) );\r
-                                               this.tx三角矢印.t2D描画( CDTXMania.app.Device, num11, num13, new Rectangle( 0, 0x10, 0x20, 0x10 ) );\r
-                                       }\r
+                                       x = 276;        // 項目名の上下あたり。\r
+                                       y_upper = 186 - this.ct三角矢印アニメ.n現在の値;\r
+                                       y_lower = 254 + this.ct三角矢印アニメ.n現在の値;\r
+                               }\r
+\r
+                               // 描画。\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
                                }\r
                        }\r
+                       //-----------------\r
+                       #endregion\r
                        return 0;\r
                }\r
-\r
+       \r
 \r
                // その他\r
 \r
@@ -1053,6 +1605,7 @@ namespace DTXMania
                        Drums,\r
                        Guitar,\r
                        Bass,\r
+                       KeyAssignSystem,                // #24609 2011.4.12 yyagi: 画面キャプチャキーのアサイン\r
                        KeyAssignDrums,\r
                        KeyAssignGuitar,\r
                        KeyAssignBass,\r
@@ -1064,6 +1617,8 @@ namespace DTXMania
                private bool b要素値にフォーカス中;\r
                private CCounter ct三角矢印アニメ;\r
                private Eメニュー種別 eメニュー種別;\r
+               private CItemBase iKeyAssignSystemCapture;                      // #24609\r
+               private CItemBase iKeyAssignSystemReturnToMenu;         // #24609\r
                private CItemBase iKeyAssignBassB;\r
                private CItemBase iKeyAssignBassCancel;\r
                private CItemBase iKeyAssignBassDecide;\r
@@ -1083,6 +1638,7 @@ namespace DTXMania
                private CItemBase iKeyAssignDrumsRD;\r
                private CItemBase iKeyAssignDrumsReturnToMenu;\r
                private CItemBase iKeyAssignDrumsSD;\r
+               private CItemBase iKeyAssignDrumsHP;    // #27029 2012.1.4 from\r
                private CItemBase iKeyAssignGuitarB;\r
                private CItemBase iKeyAssignGuitarCancel;\r
                private CItemBase iKeyAssignGuitarDecide;\r
@@ -1111,6 +1667,7 @@ namespace DTXMania
                private CItemToggle iSystemFullscreen;\r
 //             private CItemToggle iSystemGuitar;\r
                private CItemList iSystemHHGroup;\r
+               private CItemList iSystemBDGroup;               // #27029 2012.1.4 from\r
                private CItemToggle iSystemHitSound;\r
                private CItemList iSystemHitSoundPriorityCY;\r
                private CItemList iSystemHitSoundPriorityFT;\r
@@ -1129,7 +1686,11 @@ namespace DTXMania
                private CItemToggle iSystemStageFailed;\r
                private CItemToggle iSystemStoicMode;\r
                private CItemToggle iSystemVSyncWait;\r
+               private CItemList       iSystemShowLag;                                 // #25370 2011.6.3 yyagi\r
+               private CItemToggle iSystemAutoResultCapture;           // #25399 2011.6.9 yyagi\r
                private CItemToggle iSystemBufferedInput;\r
+               private CItemInteger iSystemRisky;                                      // #23559 2011.7.27 yyagi\r
+\r
                private List<CItemBase> list項目リスト;\r
                private long nスクロール用タイマ値;\r
                private int n現在のスクロールカウンタ;\r
@@ -1139,9 +1700,17 @@ namespace DTXMania
                private CTexture tx三角矢印;\r
                private CTexture tx通常項目行パネル;\r
 \r
+               private CTexture txSkinSample1;                         // #28195 2012.5.2 yyagi\r
+               private string[] skinSubFolders;                        //\r
+               private string[] skinNames;                                     //\r
+               private string skinSubFolder_org;                       //\r
+               private int nSkinSampleIndex;                           //\r
+               private int nSkinIndex;                                         //\r
+\r
                private CItemBase iDrumsGoToKeyAssign;\r
                private CItemBase iGuitarGoToKeyAssign;\r
                private CItemBase iBassGoToKeyAssign;\r
+               private CItemBase iSystemGoToKeyAssign;         // #24609\r
 \r
                private CItemList iSystemGRmode;\r
 \r
@@ -1189,7 +1758,8 @@ namespace DTXMania
                private CItemInteger iDrumsInputAdjustTimeMs;           // #23580 2011.1.3 yyagi\r
                private CItemInteger iGuitarInputAdjustTimeMs;          //\r
                private CItemInteger iBassInputAdjustTimeMs;            //\r
-\r
+               private CItemList iSystemSkinSubfolder;                         // #28195 2012.5.2 yyagi\r
+               private CItemToggle iSystemUseBoxDefSkin;                       // #28195 2012.5.6 yyagi\r
 \r
                private int t前の項目( int nItem )\r
                {\r
@@ -1217,6 +1787,7 @@ namespace DTXMania
                        {\r
                                case Eメニュー種別.System:\r
                                        this.tConfigIniへ記録する・System();\r
+                                       this.tConfigIniへ記録する・KeyAssignSystem();\r
                                        return;\r
 \r
                                case Eメニュー種別.Drums:\r
@@ -1244,6 +1815,9 @@ namespace DTXMania
                private void tConfigIniへ記録する・KeyAssignGuitar()\r
                {\r
                }\r
+               private void tConfigIniへ記録する・KeyAssignSystem()\r
+               {\r
+               }\r
                private void tConfigIniへ記録する・System()\r
                {\r
                        CDTXMania.ConfigIni.eDark = (Eダークモード) this.iCommonDark.n現在選択されている項目番号;\r
@@ -1257,39 +1831,41 @@ namespace DTXMania
                        CDTXMania.ConfigIni.b全画面モード = this.iSystemFullscreen.bON;\r
                        CDTXMania.ConfigIni.bSTAGEFAILED有効 = this.iSystemStageFailed.bON;\r
                        CDTXMania.ConfigIni.bランダムセレクトで子BOXを検索対象とする = this.iSystemRandomFromSubBox.bON;\r
-                       CDTXMania.ConfigIni.eHHGroup = (EHHGroup) this.iSystemHHGroup.n現在選択されている項目番号;\r
-                       CDTXMania.ConfigIni.eFTGroup = (EFTGroup) this.iSystemFTGroup.n現在選択されている項目番号;\r
-                       CDTXMania.ConfigIni.eCYGroup = (ECYGroup) this.iSystemCYGroup.n現在選択されている項目番号;\r
-                       CDTXMania.ConfigIni.eHitSoundPriorityHH = (E打ち分け時の再生の優先順位) this.iSystemHitSoundPriorityHH.n現在選択されている項目番号;\r
-                       CDTXMania.ConfigIni.eHitSoundPriorityFT = (E打ち分け時の再生の優先順位) this.iSystemHitSoundPriorityFT.n現在選択されている項目番号;\r
-                       CDTXMania.ConfigIni.eHitSoundPriorityCY = (E打ち分け時の再生の優先順位) this.iSystemHitSoundPriorityCY.n現在選択されている項目番号;\r
+\r
                        CDTXMania.ConfigIni.bWave再生位置自動調整機能有効 = this.iSystemAdjustWaves.bON;\r
                        CDTXMania.ConfigIni.b垂直帰線待ちを行う = this.iSystemVSyncWait.bON;\r
                        CDTXMania.ConfigIni.bバッファ入力を行う = this.iSystemBufferedInput.bON;\r
                        CDTXMania.ConfigIni.bAVI有効 = this.iSystemAVI.bON;\r
                        CDTXMania.ConfigIni.bBGA有効 = this.iSystemBGA.bON;\r
 //                     CDTXMania.ConfigIni.bGraph有効 = this.iSystemGraph.bON;#24074 2011.01.23 comment-out ikanick オプション(Drums)へ移行\r
-                       CDTXMania.ConfigIni.bフィルイン有効 = this.iSystemFillIn.bON;\r
-                       CDTXMania.ConfigIni.b演奏音を強調する.Drums = this.iSystemSoundMonitorDrums.bON;\r
-                       CDTXMania.ConfigIni.b演奏音を強調する.Guitar = this.iSystemSoundMonitorGuitar.bON;\r
-                       CDTXMania.ConfigIni.b演奏音を強調する.Bass = this.iSystemSoundMonitorBass.bON;\r
                        CDTXMania.ConfigIni.n曲が選択されてからプレビュー音が鳴るまでのウェイトms = this.iSystemPreviewSoundWait.n現在の値;\r
                        CDTXMania.ConfigIni.n曲が選択されてからプレビュー画像が表示開始されるまでのウェイトms = this.iSystemPreviewImageWait.n現在の値;\r
                        CDTXMania.ConfigIni.b演奏情報を表示する = this.iSystemDebugInfo.bON;\r
                        CDTXMania.ConfigIni.n背景の透過度 = this.iSystemBGAlpha.n現在の値;\r
                        CDTXMania.ConfigIni.bBGM音を発声する = this.iSystemBGMSound.bON;\r
-                       CDTXMania.ConfigIni.bドラム打音を発声する = this.iSystemHitSound.bON;\r
                        CDTXMania.ConfigIni.b歓声を発声する = this.iSystemAudienceSound.bON;\r
                        CDTXMania.ConfigIni.eダメージレベル = (Eダメージレベル) this.iSystemDamageLevel.n現在選択されている項目番号;\r
                        CDTXMania.ConfigIni.bScoreIniを出力する = this.iSystemSaveScore.bON;\r
-                       CDTXMania.ConfigIni.n表示可能な最小コンボ数.Drums = this.iSystemMinComboDrums.n現在の値;\r
-                       CDTXMania.ConfigIni.n表示可能な最小コンボ数.Guitar = this.iSystemMinComboGuitar.n現在の値;\r
-                       CDTXMania.ConfigIni.n表示可能な最小コンボ数.Bass = this.iSystemMinComboBass.n現在の値;\r
+\r
                        CDTXMania.ConfigIni.bログ出力 = this.iLogOutputLog.bON;\r
                        CDTXMania.ConfigIni.n手動再生音量 = this.iSystemChipVolume.n現在の値;\r
                        CDTXMania.ConfigIni.n自動再生音量 = this.iSystemAutoChipVolume.n現在の値;\r
                        CDTXMania.ConfigIni.bストイックモード = this.iSystemStoicMode.bON;\r
-                       CDTXMania.ConfigIni.bシンバルフリー = this.iSystemCymbalFree.bON;\r
+\r
+                       CDTXMania.ConfigIni.nShowLagType = this.iSystemShowLag.n現在選択されている項目番号;                                // #25370 2011.6.3 yyagi\r
+                       CDTXMania.ConfigIni.bIsAutoResultCapture = this.iSystemAutoResultCapture.bON;                                   // #25399 2011.6.9 yyagi\r
+\r
+                       CDTXMania.ConfigIni.nRisky = this.iSystemRisky.n現在の値;                                                                           // #23559 2911.7.27 yyagi\r
+\r
+                       CDTXMania.ConfigIni.strSystemSkinSubfolderFullName = skinSubFolders[ nSkinIndex ];                              // #28195 2012.5.2 yyagi\r
+                       CDTXMania.Skin.SetCurrentSkinSubfolderFullName( CDTXMania.ConfigIni.strSystemSkinSubfolderFullName, true );\r
+                       CDTXMania.ConfigIni.bUseBoxDefSkin = this.iSystemUseBoxDefSkin.bON;                                                             // #28195 2012.5.6 yyagi\r
+\r
+//Trace.TraceInformation( "saved" );\r
+//Trace.TraceInformation( "Skin現在Current : " + CDTXMania.Skin.GetCurrentSkinSubfolderFullName(true) );\r
+//Trace.TraceInformation( "Skin現在System  : " + CSkin.strSystemSkinSubfolderFullName );\r
+//Trace.TraceInformation( "Skin現在BoxDef  : " + CSkin.strBoxDefSkinSubfolderFullName );\r
+               \r
                }\r
                private void tConfigIniへ記録する・Bass()\r
                {\r
@@ -1303,9 +1879,9 @@ namespace DTXMania
                        CDTXMania.ConfigIni.bLight.Bass = this.iBassLight.bON;\r
                        CDTXMania.ConfigIni.bLeft.Bass = this.iBassLeft.bON;\r
                        CDTXMania.ConfigIni.nInputAdjustTimeMs.Bass = this.iBassInputAdjustTimeMs.n現在の値;                // #23580 2011.1.3 yyagi\r
-               }\r
-               private void tConfigIniへ記録する・Common()\r
-               {\r
+\r
+                       CDTXMania.ConfigIni.b演奏音を強調する.Bass = this.iSystemSoundMonitorBass.bON;\r
+                       CDTXMania.ConfigIni.n表示可能な最小コンボ数.Bass = this.iSystemMinComboBass.n現在の値;\r
                }\r
                private void tConfigIniへ記録する・Drums()\r
                {\r
@@ -1326,6 +1902,22 @@ namespace DTXMania
                        CDTXMania.ConfigIni.bTight = this.iDrumsTight.bON;\r
                        CDTXMania.ConfigIni.nInputAdjustTimeMs.Drums = this.iDrumsInputAdjustTimeMs.n現在の値;              // #23580 2011.1.3 yyagi\r
                        CDTXMania.ConfigIni.bGraph.Drums = this.iDrumsGraph.bON;// #24074 2011.01.23 add ikanick\r
+\r
+                       CDTXMania.ConfigIni.eHHGroup = (EHHGroup) this.iSystemHHGroup.n現在選択されている項目番号;\r
+                       CDTXMania.ConfigIni.eFTGroup = (EFTGroup) this.iSystemFTGroup.n現在選択されている項目番号;\r
+                       CDTXMania.ConfigIni.eCYGroup = (ECYGroup) this.iSystemCYGroup.n現在選択されている項目番号;\r
+                       CDTXMania.ConfigIni.eBDGroup = (EBDGroup) this.iSystemBDGroup.n現在選択されている項目番号;\r
+                       CDTXMania.ConfigIni.eHitSoundPriorityHH = (E打ち分け時の再生の優先順位) this.iSystemHitSoundPriorityHH.n現在選択されている項目番号;\r
+                       CDTXMania.ConfigIni.eHitSoundPriorityFT = (E打ち分け時の再生の優先順位) this.iSystemHitSoundPriorityFT.n現在選択されている項目番号;\r
+                       CDTXMania.ConfigIni.eHitSoundPriorityCY = (E打ち分け時の再生の優先順位) this.iSystemHitSoundPriorityCY.n現在選択されている項目番号;\r
+                       CDTXMania.ConfigIni.bフィルイン有効 = this.iSystemFillIn.bON;\r
+                       CDTXMania.ConfigIni.b演奏音を強調する.Drums = this.iSystemSoundMonitorDrums.bON;\r
+                       CDTXMania.ConfigIni.bドラム打音を発声する = this.iSystemHitSound.bON;\r
+                       CDTXMania.ConfigIni.n表示可能な最小コンボ数.Drums = this.iSystemMinComboDrums.n現在の値;\r
+                       CDTXMania.ConfigIni.bシンバルフリー = this.iSystemCymbalFree.bON;\r
+\r
+                       CDTXMania.ConfigIni.eDark = (Eダークモード)this.iCommonDark.n現在選択されている項目番号;\r
+                       CDTXMania.ConfigIni.nRisky = this.iSystemRisky.n現在の値;                                           // #23559 2911.7.27 yyagi\r
                }\r
                private void tConfigIniへ記録する・Guitar()\r
                {\r
@@ -1339,6 +1931,9 @@ namespace DTXMania
                        CDTXMania.ConfigIni.bLight.Guitar = this.iGuitarLight.bON;\r
                        CDTXMania.ConfigIni.bLeft.Guitar = this.iGuitarLeft.bON;\r
                        CDTXMania.ConfigIni.nInputAdjustTimeMs.Guitar = this.iGuitarInputAdjustTimeMs.n現在の値;    // #23580 2011.1.3 yyagi\r
+\r
+                       CDTXMania.ConfigIni.n表示可能な最小コンボ数.Guitar = this.iSystemMinComboGuitar.n現在の値;\r
+                       CDTXMania.ConfigIni.b演奏音を強調する.Guitar = this.iSystemSoundMonitorGuitar.bON;\r
                }\r
                //-----------------\r
                #endregion\r