OSDN Git Service

#31601 ASIOのバッファサイズ変更機能を削除。常にサウンドデバイス側で設定されているバッファサイズを使用する。
[dtxmania/dtxmania.git] / DTXManiaプロジェクト / コード / ステージ / 04.コンフィグ / CActConfigList.cs
1 using System;\r
2 using System.Collections.Generic;\r
3 using System.Diagnostics;\r
4 using System.Text;\r
5 using System.Drawing;\r
6 using SlimDX;\r
7 using FDK;\r
8 \r
9 namespace DTXMania\r
10 {\r
11         internal class CActConfigList : CActivity\r
12         {\r
13                 // プロパティ\r
14 \r
15                 public bool bIsKeyAssignSelected                // #24525 2011.3.15 yyagi\r
16                 {\r
17                         get\r
18                         {\r
19                                 Eメニュー種別 e = this.eメニュー種別;\r
20                                 if ( e == Eメニュー種別.KeyAssignBass || e == Eメニュー種別.KeyAssignDrums ||\r
21                                         e == Eメニュー種別.KeyAssignGuitar || e == Eメニュー種別.KeyAssignSystem )\r
22                                 {\r
23                                         return true;\r
24                                 }\r
25                                 else\r
26                                 {\r
27                                         return false;\r
28                                 }\r
29                         }\r
30                 }\r
31                 public bool b現在選択されている項目はReturnToMenuである\r
32                 {\r
33                         get\r
34                         {\r
35                                 CItemBase currentItem = this.list項目リスト[ this.n現在の選択項目 ];\r
36                                 if ( currentItem == this.iSystemReturnToMenu || currentItem == this.iDrumsReturnToMenu ||\r
37                                         currentItem == this.iGuitarReturnToMenu || currentItem == this.iBassReturnToMenu )\r
38                                 {\r
39                                         return true;\r
40                                 }\r
41                                 else\r
42                                 {\r
43                                         return false;\r
44                                 }\r
45                         }\r
46                 }\r
47                 public CItemBase ib現在の選択項目\r
48                 {\r
49                         get\r
50                         {\r
51                                 return this.list項目リスト[ this.n現在の選択項目 ];\r
52                         }\r
53                 }\r
54                 public int n現在の選択項目;\r
55 \r
56 \r
57                 // メソッド\r
58                 #region [ t項目リストの設定・System() ]\r
59                 public void t項目リストの設定・System()\r
60                 {\r
61                         this.tConfigIniへ記録する();\r
62                         this.list項目リスト.Clear();\r
63 \r
64                         // #27029 2012.1.5 from: 説明文は最大9行→13行に変更。\r
65 \r
66                         this.iSystemReturnToMenu = new CItemBase( "<< ReturnTo Menu", CItemBase.Eパネル種別.その他,\r
67                                 "左側のメニューに戻ります。",\r
68                                 "Return to left menu." );\r
69                         this.list項目リスト.Add( this.iSystemReturnToMenu );\r
70 \r
71                         this.iCommonDark = new CItemList( "Dark", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eDark,\r
72                                 "HALF: 背景、レーン、ゲージが表示\nされなくなります。\nFULL: さらに小節線、拍線、判定ラ\nイン、パッドも表示されなくなります。",\r
73                                 "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
74                                 new string[] { "OFF", "HALF", "FULL" } );\r
75                         this.list項目リスト.Add( this.iCommonDark );\r
76 \r
77                         this.iSystemRisky = new CItemInteger( "Risky", 0, 10, CDTXMania.ConfigIni.nRisky,\r
78                                 "Riskyモードの設定:\n1以上の値にすると、その回数分の\nPoor/MissでFAILEDとなります。\n0にすると無効になり、\nDamageLevelに従ったゲージ増減と\nなります。\nStageFailedの設定と併用できます。",\r
79                                 "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
80                         this.list項目リスト.Add( this.iSystemRisky );\r
81 \r
82                         int nDGmode = (CDTXMania.ConfigIni.bGuitar有効 ? 2 : 0) + (CDTXMania.ConfigIni.bDrums有効 ? 1 : 0) - 1;\r
83                         this.iSystemGRmode = new CItemList("Drums & GR", CItemBase.Eパネル種別.通常, nDGmode,\r
84                                 "使用楽器の選択:\nDrOnly: ドラムのみ有効にします。\nGROnly: ギター/ベースのみの\n専用画面を用います。\nBoth: ドラムとギター/ベースの\n両方を有効にします。\n",\r
85                                 "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
86                                 new string[] { "DrOnly", "GROnly", "Both" });\r
87                         this.list項目リスト.Add(this.iSystemGRmode);\r
88 \r
89 \r
90                         this.iCommonPlaySpeed = new CItemInteger("PlaySpeed", 5, 40, CDTXMania.ConfigIni.n演奏速度,\r
91                                 "曲の演奏速度を、速くしたり遅くした\n" +\r
92                                 "りすることができます。\n" +\r
93                                 "(※一部のサウンドカードでは正しく\n" +\r
94                                 " 再生できない可能性があります。)\n" +\r
95                                 "\n" +\r
96                                 "TimeStretchがONのときに、演奏\n" +\r
97                                 "速度をx0.850以下にすると、チップの\n" +\r
98                                 "ズレが大きくなります。",\r
99                                 "It changes the song speed.\n" +\r
100                                 "For example, you can play in half\n" +\r
101                                 " speed by setting PlaySpeed = 0.500\n" +\r
102                                 " for your practice.\n" +\r
103                                 "\n" +\r
104                                 "Note: It also changes the songs' pitch.\n" +\r
105                                 "In case TimeStretch=ON, some sound\n" +\r
106                                 "lag occurs slower than x0.900.");\r
107                         this.list項目リスト.Add( this.iCommonPlaySpeed );\r
108 \r
109                         this.iSystemTimeStretch = new CItemToggle( "TimeStretch", CDTXMania.ConfigIni.bTimeStretch,\r
110                                 "演奏速度の変更方式:\n" + \r
111                                 "ONにすると、演奏速度の変更を、\n" +\r
112                                 "周波数変更ではなく\n" +\r
113                                 "タイムストレッチで行います。" +\r
114                                 "\n" +\r
115                                 "これをONにすると、サウンド処理に\n" +\r
116                                 "より多くのCPU性能を使用します。\n" +\r
117                                 "また、演奏速度をx0.850以下にすると、\n" +\r
118                                 "チップのズレが大きくなります。",\r
119                                 "How to change the playing speed:\n" +\r
120                                 "Turn ON to use time stretch\n" +\r
121                                 "to change the play speed." +\r
122                                 "\n" +\r
123                                 "If you set TimeStretch=ON, it usese\n" +\r
124                                 "more CPU power. And some sound\n" +\r
125                                 "lag occurs slower than x0.900.");\r
126                         this.list項目リスト.Add( this.iSystemTimeStretch );\r
127 \r
128 \r
129                         this.iSystemFullscreen = new CItemToggle( "Fullscreen", CDTXMania.ConfigIni.b全画面モード,\r
130                                 "画面モード設定:\nON で全画面モード、OFF でウィンド\nウモードになります。",\r
131                                 "Fullscreen mode or window mode." );\r
132                         this.list項目リスト.Add( this.iSystemFullscreen );\r
133                         this.iSystemStageFailed = new CItemToggle( "StageFailed", CDTXMania.ConfigIni.bSTAGEFAILED有効,\r
134                                 "STAGE FAILED 有効:\nON にすると、ゲージがなくなった時\nに STAGE FAILED となり演奏が中断\nされます。OFF の場合は、ゲージが\nなくなっても最後まで演奏できます。",\r
135                                 "Turn OFF if you don't want to encount\n GAME OVER." );\r
136                         this.list項目リスト.Add( this.iSystemStageFailed );\r
137                         this.iSystemRandomFromSubBox = new CItemToggle( "RandSubBox", CDTXMania.ConfigIni.bランダムセレクトで子BOXを検索対象とする,\r
138                                 "子BOXをRANDOMの対象とする:\nON にすると、RANDOM SELECT 時\nに子BOXも選択対象とします。",\r
139                                 "Turn ON to use child BOX (subfolders)\n at RANDOM SELECT." );\r
140                         this.list項目リスト.Add( this.iSystemRandomFromSubBox );\r
141 \r
142 \r
143         \r
144                         this.iSystemAdjustWaves = new CItemToggle( "AdjustWaves", CDTXMania.ConfigIni.bWave再生位置自動調整機能有効,\r
145                             "サウンド再生位置自動補正:\n" +\r
146                                 "ハードウェアやOSに起因するサウン\n" +\r
147                                 "ドのずれを強制的に補正します。\n" +\r
148                                 "BGM のように再生時間の長い音声\n" +\r
149                                 "データが使用されている曲で効果が\n" +\r
150                                 "あります。" +\r
151                                 "\n" +\r
152                                 "※ DirectSound使用時のみ有効です。",\r
153                             "Automatic wave playing position\n" +\r
154                                 " adjustment feature. If you turn it ON,\n" +\r
155                                 " it decrease the lag which comes from\n" +\r
156                                 " the difference of hardware/OS.\n" +\r
157                                 "Usually, you should turn it ON." +\r
158                                 "\n"+\r
159                                 "Note: This setting is effetive\n" +\r
160                                 " only when DirectSound is used.");\r
161                         this.list項目リスト.Add( this.iSystemAdjustWaves );\r
162                         this.iSystemVSyncWait = new CItemToggle( "VSyncWait", CDTXMania.ConfigIni.b垂直帰線待ちを行う,\r
163                                 "垂直帰線同期:\n画面の描画をディスプレイの垂直帰\n線中に行なう場合には ON を指定し\nます。ON にすると、ガタつきのない\n滑らかな画面描画が実現されます。",\r
164                                 "Turn ON to wait VSync (Vertical\n Synchronizing signal) at every\n drawings. (so FPS becomes 60)\nIf you have enough CPU/GPU power,\n the scroll would become smooth." );\r
165                         this.list項目リスト.Add( this.iSystemVSyncWait );\r
166                         this.iSystemAVI = new CItemToggle( "AVI", CDTXMania.ConfigIni.bAVI有効,\r
167                                 "AVIの使用:\n動画(AVI)を再生可能にする場合に\nON にします。AVI の再生には、それ\nなりのマシンパワーが必要とされます。",\r
168                                 "To use AVI playback or not." );\r
169                         this.list項目リスト.Add( this.iSystemAVI );\r
170                         this.iSystemBGA = new CItemToggle( "BGA", CDTXMania.ConfigIni.bBGA有効,\r
171                                 "BGAの使用:\n画像(BGA)を表示可能にする場合に\nON にします。BGA の再生には、それ\nなりのマシンパワーが必要とされます。",\r
172                                 "To draw BGA (back ground animations)\n or not." );\r
173                         this.list項目リスト.Add( this.iSystemBGA );\r
174                         this.iSystemPreviewSoundWait = new CItemInteger( "PreSoundWait", 0, 0x2710, CDTXMania.ConfigIni.n曲が選択されてからプレビュー音が鳴るまでのウェイトms,\r
175                                 "プレビュー音演奏までの時間:\n曲にカーソルが合わされてからプレ\nビュー音が鳴り始めるまでの時間を\n指定します。\n0 ~ 10000 [ms] が指定可能です。",\r
176                                 "Delay time(ms) to start playing preview\n sound in SELECT MUSIC screen.\nYou can specify from 0ms to 10000ms." );\r
177                         this.list項目リスト.Add( this.iSystemPreviewSoundWait );\r
178                         this.iSystemPreviewImageWait = new CItemInteger( "PreImageWait", 0, 0x2710, CDTXMania.ConfigIni.n曲が選択されてからプレビュー画像が表示開始されるまでのウェイトms,\r
179                                 "プレビュー画像表示までの時間:\n曲にカーソルが合わされてからプレ\nビュー画像が表示されるまでの時間\nを指定します。\n0 ~ 10000 [ms] が指定可能です。",\r
180                                 "Delay time(ms) to show preview image\n in SELECT MUSIC screen.\nYou can specify from 0ms to 10000ms." );\r
181                         this.list項目リスト.Add( this.iSystemPreviewImageWait );\r
182                         this.iSystemDebugInfo = new CItemToggle( "Debug Info", CDTXMania.ConfigIni.b演奏情報を表示する,\r
183                                 "演奏情報の表示:\n演奏中、BGA領域の下部に演奏情報\n(FPS、BPM、演奏時間など)を表示し\nます。\nまた、小節線の横に小節番号が表示\nされるようになります。",\r
184                                 "To show song informations on playing\n BGA area. (FPS, BPM, total time etc)\nYou can ON/OFF the indications\n by pushing [Del] while playing drums,\n guitar or bass." );\r
185                         this.list項目リスト.Add( this.iSystemDebugInfo );\r
186                         this.iSystemBGAlpha = new CItemInteger( "BG Alpha", 0, 0xff, CDTXMania.ConfigIni.n背景の透過度,\r
187                                 "背景画像の半透明割合:\n背景画像をDTXManiaのフレーム画像\nと合成する際の、背景画像の透明度\nを指定します。\n0 が完全透明で、255 が完全不透明\nとなります。",\r
188                                 "The degree for transparing playing\n screen and wallpaper.\n\n0=completely transparent,\n255=no transparency" );\r
189                         this.list項目リスト.Add( this.iSystemBGAlpha );\r
190                         this.iSystemBGMSound = new CItemToggle( "BGM Sound", CDTXMania.ConfigIni.bBGM音を発声する,\r
191                                 "BGMの再生:\nこれをOFFにすると、BGM を再生しな\nくなります。",\r
192                                 "Turn OFF if you don't want to play\n BGM." );\r
193                         this.list項目リスト.Add( this.iSystemBGMSound );\r
194                         this.iSystemAudienceSound = new CItemToggle( "Audience", CDTXMania.ConfigIni.b歓声を発声する,\r
195                                 "歓声の再生:\nこれをOFFにすると、歓声を再生しな\nくなります。",\r
196                                 "Turn ON if you want to be cheered\n at the end of fill-in zone or not." );\r
197                         this.list項目リスト.Add( this.iSystemAudienceSound );\r
198                         this.iSystemDamageLevel = new CItemList( "DamageLevel", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eダメージレベル,\r
199                                 "ゲージ減少割合:\nMiss ヒット時のゲージの減少度合い\nを指定します。\nRiskyが1以上の場合は無効となります",\r
200                                 "Damage level at missing (and\n recovering level) at playing.\nThis setting is ignored when Risky >= 1.",\r
201                                 new string[] { "Small", "Normal", "Large" } );\r
202                         this.list項目リスト.Add( this.iSystemDamageLevel );\r
203                         this.iSystemSaveScore = new CItemToggle( "SaveScore", CDTXMania.ConfigIni.bScoreIniを出力する,\r
204                                 "演奏記録の保存:\nON で演奏記録を ~.score.ini ファイ\nルに保存します。\n",\r
205                                 "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
206                         this.list項目リスト.Add( this.iSystemSaveScore );\r
207 \r
208 \r
209                         this.iSystemChipVolume = new CItemInteger( "ChipVolume", 0, 100, CDTXMania.ConfigIni.n手動再生音量,\r
210                                 "打音の音量:\n入力に反応して再生されるチップの音\n量を指定します。\n0 ~ 100 % の値が指定可能です。\n",\r
211                                 "The volumes for chips you hit.\nYou can specify from 0 to 100%." );\r
212                         this.list項目リスト.Add( this.iSystemChipVolume );\r
213                         this.iSystemAutoChipVolume = new CItemInteger( "AutoVolume", 0, 100, CDTXMania.ConfigIni.n自動再生音量,\r
214                                 "自動再生音の音量:\n自動的に再生されるチップの音量を指\n定します。\n0 ~ 100 % の値が指定可能です。\n",\r
215                                 "The volumes for AUTO chips.\nYou can specify from 0 to 100%." );\r
216                         this.list項目リスト.Add( this.iSystemAutoChipVolume );\r
217                         this.iSystemStoicMode = new CItemToggle( "StoicMode", CDTXMania.ConfigIni.bストイックモード,\r
218                                 "ストイック(禁欲)モード:\n以下をまとめて表示ON/OFFします。\n・プレビュー画像/動画\n・リザルト画像/動画\n・NowLoading画像\n・演奏画面の背景画像\n・BGA 画像 / AVI 動画\n・グラフ画像\n",\r
219                                 "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
220                         this.list項目リスト.Add( this.iSystemStoicMode );\r
221                         this.iSystemShowLag = new CItemList( "ShowLagTime", CItemBase.Eパネル種別.通常, CDTXMania.ConfigIni.nShowLagType,\r
222                                 "ズレ時間表示:\nジャストタイミングからのズレ時間(ms)\nを表示します。\n  OFF: ズレ時間を表示しません。\n  ON: ズレ時間を表示します。\n  GREAT-: PERFECT以外の時のみ\n表示します。",\r
223                                 "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
224                                 new string[] { "OFF", "ON", "GREAT-" } );\r
225                         this.list項目リスト.Add( this.iSystemShowLag );\r
226                         this.iSystemAutoResultCapture = new CItemToggle( "Autosaveresult", CDTXMania.ConfigIni.bIsAutoResultCapture,\r
227                                 "リザルト画像自動保存機能:\nONにすると、ハイスコア/ハイスキル時に\n自動でリザルト画像を曲データと同じ\nフォルダに保存します。",\r
228                                 "AutoSaveResult:\nTurn ON to save your result screen\n image automatically when you get\n hiscore/hiskill." );\r
229                         this.list項目リスト.Add( this.iSystemAutoResultCapture );\r
230 \r
231         \r
232                         this.iSystemBufferedInput = new CItemToggle( "BufferedInput", CDTXMania.ConfigIni.bバッファ入力を行う,\r
233                                 "バッファ入力モード:\nON にすると、FPS を超える入力解像\n度を実現します。\nOFF にすると、入力解像度は FPS に\n等しくなります。",\r
234                                 "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
235                         this.list項目リスト.Add( this.iSystemBufferedInput );\r
236                         this.iLogOutputLog = new CItemToggle( "TraceLog", CDTXMania.ConfigIni.bログ出力,\r
237                                 "Traceログ出力:\nDTXManiaLog.txt にログを出力します。\n変更した場合は、DTXMania の再起動\n後に有効となります。",\r
238                                 "Turn ON to put debug log to\n DTXManiaLog.txt\nTo take it effective, you need to\n re-open DTXMania." );\r
239                         this.list項目リスト.Add( this.iLogOutputLog );\r
240 \r
241                         // #24820 2013.1.3 yyagi\r
242                         this.iSystemSoundType = new CItemList("SoundType", CItemList.Eパネル種別.通常, CDTXMania.ConfigIni.nSoundDeviceType,\r
243                                 "サウンドの出力方式:\n" +\r
244                                 "WASAPI, ASIO, DSound(DirectSound)\n" +\r
245                                 "の中からサウンド出力方式を選択\n" +\r
246                                 "します。\n" +\r
247                                 "WASAPIはVista以降でのみ使用可能\n" +\r
248                                 "です。ASIOは対応機器でのみ使用\n" +\r
249                                 "可能です。\n" +\r
250                                 "WASAPIかASIOを指定することで、\n" +\r
251                                 "遅延の少ない演奏を楽しむことが\n" +\r
252                                 "できます。\n" +\r
253                                 "\n" +\r
254                                 "※ 設定はCONFIGURATION画面の\n" +\r
255                                 " 終了時に有効になります。",\r
256                                 "Sound output type:\n" +\r
257                                 "You can choose WASAPI, ASIO or\n" +\r
258                                 "DShow(DirectShow).\n" +\r
259                                 "WASAPI can use only after Vista.\n" +\r
260                                 "ASIO can use on the\n" +\r
261                                 "\"ASIO-supported\" sound device.\n" +\r
262                                 "You should use WASAPI or ASIO\n" +\r
263                                 "to decrease the sound lag.\n" +\r
264                                 "\n" +\r
265                                 "Note: Exit CONFIGURATION to make\n" +\r
266                                 "     the setting take effect.",\r
267                                 new string[] { "DSound", "ASIO", "WASAPI" });\r
268                         this.list項目リスト.Add(this.iSystemSoundType);\r
269 \r
270                         // #24820 2013.1.15 yyagi\r
271                         //this.iSystemWASAPIBufferSizeMs = new CItemInteger( "WASAPIBufSize", 0, 99999, CDTXMania.ConfigIni.nWASAPIBufferSizeMs,\r
272                         //    "WASAPI使用時のバッファサイズ:\n" +\r
273                         //    "0~99999ms を指定可能です。\n" +\r
274                         //    "0を指定すると、OSがバッファの\n" +\r
275                         //    "サイズを自動設定します。\n" +\r
276                         //    "値を小さくするほど発音ラグが\n" +\r
277                         //    "減少しますが、音割れや異常動作を\n" +\r
278                         //    "引き起こす場合があります。\n" +\r
279                         //    "※ 設定はCONFIGURATION画面の\n" +\r
280                         //    " 終了時に有効になります。",\r
281                         //    "Sound buffer size for WASAPI:\n" +\r
282                         //    "You can set from 0 to 99999ms.\n" +\r
283                         //    "Set 0 to use a default sysytem\n" +\r
284                         //    "buffer size.\n" +\r
285                         //    "Smaller value makes smaller lag,\n" +\r
286                         //    "but it may cause sound troubles.\n" +\r
287                         //    "\n" +\r
288                         //    "Note: Exit CONFIGURATION to make\n" +\r
289                         //    "     the setting take effect." );\r
290                         //this.list項目リスト.Add( this.iSystemWASAPIBufferSizeMs );\r
291 \r
292                         // #24820 2013.1.17 yyagi\r
293                         string[] asiodevs = CEnumerateAllAsioDevices.GetAllASIODevices();\r
294                         this.iSystemASIODevice = new CItemList( "ASIO device", CItemList.Eパネル種別.通常, CDTXMania.ConfigIni.nASIODevice,\r
295                                 "ASIOデバイス:\n" +\r
296                                 "ASIO使用時のサウンドデバイスを\n" +\r
297                                 "選択します。\n" +\r
298                                 "\n" +\r
299                                 "※ 設定はCONFIGURATION画面の\n" +\r
300                                 " 終了時に有効になります。",\r
301                                 "ASIO Sound Device:\n" +\r
302                                 "Select the sound device to use\n" +\r
303                                 "under ASIO mode.\n" +\r
304                                 "\n" +\r
305                                 "Note: Exit CONFIGURATION to make\n" +\r
306                                 "     the setting take effect.",\r
307                                 asiodevs );\r
308                         this.list項目リスト.Add( this.iSystemASIODevice );\r
309 \r
310                         // #24820 2013.1.3 yyagi\r
311                         //this.iSystemASIOBufferSizeMs = new CItemInteger("ASIOBuffSize", 0, 99999, CDTXMania.ConfigIni.nASIOBufferSizeMs,\r
312                         //    "ASIO使用時のバッファサイズ:\n" +\r
313                         //    "0~99999ms を指定可能です。\n" +\r
314                         //    "推奨値は0で、サウンドデバイスでの\n" +\r
315                         //    "設定値をそのまま使用します。\n" +\r
316                         //    "(サウンドデバイスのASIO設定は、\n" +\r
317                         //    " ASIO capsなどで行います)\n" +\r
318                         //    "値を小さくするほど発音ラグが\n" +\r
319                         //    "減少しますが、音割れや異常動作を\n" +\r
320                         //    "引き起こす場合があります。\n" +\r
321                         //    "\n" +\r
322                         //    "※ 設定はCONFIGURATION画面の\n" +\r
323                         //    " 終了時に有効になります。",\r
324                         //    "Sound buffer size for ASIO:\n" +\r
325                         //    "You can set from 0 to 99999ms.\n" +\r
326                         //    "You should set it to 0, to use\n" +\r
327                         //    "a default value specified to\n" +\r
328                         //    "the sound device.\n" +\r
329                         //    "Smaller value makes smaller lag,\n" +\r
330                         //    "but it may cause sound troubles.\n" +\r
331                         //    "\n" +\r
332                         //    "Note: Exit CONFIGURATION to make\n" +\r
333                         //    "     the setting take effect." );\r
334                         //this.list項目リスト.Add( this.iSystemASIOBufferSizeMs );\r
335 \r
336                         this.iSystemSkinSubfolder = new CItemList( "Skin (General)", CItemBase.Eパネル種別.通常, nSkinIndex,\r
337                                 "スキン切替:\n" +\r
338                                 "スキンを切り替えます。\n",\r
339                                 //"CONFIGURATIONを抜けると、設定した\n" +\r
340                                 //"スキンに変更されます。",\r
341                                 "Skin:\n" +\r
342                                 "Change skin.",\r
343                                 skinNames );\r
344                         this.list項目リスト.Add( this.iSystemSkinSubfolder );\r
345                         this.iSystemUseBoxDefSkin = new CItemToggle( "Skin (Box)", CDTXMania.ConfigIni.bUseBoxDefSkin,\r
346                                 "Music boxスキンの利用:\n" +\r
347                                 "特別なスキンが設定されたMusic box\n" +\r
348                                 "に出入りしたときに、自動でスキンを\n" +\r
349                                 "切り替えるかどうかを設定します。\n",\r
350                                 //"\n" +\r
351                                 //"(Music Boxスキンは、box.defファイル\n" +\r
352                                 //" で指定できます)\n",\r
353                                 "Box skin:\n" +\r
354                                 "Automatically change skin\n" +\r
355                                 "specified in box.def file." );\r
356                         this.list項目リスト.Add( this.iSystemUseBoxDefSkin );\r
357 \r
358         \r
359                         this.iSystemGoToKeyAssign = new CItemBase( "System Keys", CItemBase.Eパネル種別.通常,\r
360                         "システムのキー入力に関する項目を設\n定します。",\r
361                         "Settings for the system key/pad inputs." );\r
362                         this.list項目リスト.Add( this.iSystemGoToKeyAssign );\r
363 \r
364                         \r
365                         this.n現在の選択項目 = 0;\r
366                         this.eメニュー種別 = Eメニュー種別.System;\r
367                 }\r
368                 #endregion\r
369                 #region [ t項目リストの設定・Drums() ]\r
370                 public void t項目リストの設定・Drums()\r
371                 {\r
372                         this.tConfigIniへ記録する();\r
373                         this.list項目リスト.Clear();\r
374 \r
375                         // #27029 2012.1.5 from: 説明文は最大9行→13行に変更。\r
376 \r
377                         this.iDrumsReturnToMenu = new CItemBase( "<< Return To Menu", CItemBase.Eパネル種別.その他,\r
378                                 "左側のメニューに戻ります。",\r
379                                 "Return to left menu." );\r
380                         this.list項目リスト.Add( this.iDrumsReturnToMenu );\r
381 \r
382                         this.iDrumsAutoPlayAll = new CItemThreeState( "AutoPlay (All)", CItemThreeState.E状態.不定,\r
383                                 "全パッドの自動演奏の ON/OFF を\n" +\r
384                                 "まとめて切り替えます。",\r
385                                 "You can change whether Auto or not\n" +\r
386                                 " for all drums lanes at once." );\r
387                         this.list項目リスト.Add( this.iDrumsAutoPlayAll );\r
388 \r
389                         this.iDrumsLeftCymbal = new CItemToggle( "    LeftCymbal", CDTXMania.ConfigIni.bAutoPlay.LC,\r
390                                 "左シンバルを自動で演奏します。",\r
391                                 "To play LeftCymbal automatically." );\r
392                         this.list項目リスト.Add( this.iDrumsLeftCymbal );\r
393 \r
394                         this.iDrumsHiHat = new CItemToggle( "    HiHat", CDTXMania.ConfigIni.bAutoPlay.HH,\r
395                                 "ハイハットを自動で演奏します。\n" +\r
396                                 "(クローズ、オープンとも)",\r
397                                 "To play HiHat automatically.\n" +\r
398                                 "(It effects to both HH-close and\n HH-open)" );\r
399                         this.list項目リスト.Add( this.iDrumsHiHat );\r
400 \r
401                         this.iDrumsSnare = new CItemToggle( "    Snare", CDTXMania.ConfigIni.bAutoPlay.SD,\r
402                                 "スネアを自動で演奏します。",\r
403                                 "To play Snare automatically." );\r
404                         this.list項目リスト.Add( this.iDrumsSnare );\r
405 \r
406                         this.iDrumsBass = new CItemToggle( "    BassDrum", CDTXMania.ConfigIni.bAutoPlay.BD,\r
407                                 "バスドラムを自動で演奏します。",\r
408                                 "To play Bass Drum automatically." );\r
409                         this.list項目リスト.Add( this.iDrumsBass );\r
410 \r
411                         this.iDrumsHighTom = new CItemToggle( "    HighTom", CDTXMania.ConfigIni.bAutoPlay.HT,\r
412                                 "ハイタムを自動で演奏します。",\r
413                                 "To play High Tom automatically." );\r
414                         this.list項目リスト.Add( this.iDrumsHighTom );\r
415 \r
416                         this.iDrumsLowTom = new CItemToggle( "    LowTom", CDTXMania.ConfigIni.bAutoPlay.LT,\r
417                                 "ロータムを自動で演奏します。",\r
418                                 "To play Low Tom automatically." );\r
419                         this.list項目リスト.Add( this.iDrumsLowTom );\r
420 \r
421                         this.iDrumsFloorTom = new CItemToggle( "    FloorTom", CDTXMania.ConfigIni.bAutoPlay.FT,\r
422                                 "フロアタムを自動で演奏します。",\r
423                                 "To play Floor Tom automatically." );\r
424                         this.list項目リスト.Add( this.iDrumsFloorTom );\r
425 \r
426                         this.iDrumsCymbalRide = new CItemToggle( "    Cym/Ride", CDTXMania.ConfigIni.bAutoPlay.CY,\r
427                                 "右シンバルとライドシンバルを自動で\n" +\r
428                                 "演奏します。",\r
429                                 "To play both right- and Ride-Cymbal\n" +\r
430                                 " automatically." );\r
431                         this.list項目リスト.Add( this.iDrumsCymbalRide );\r
432 \r
433                         this.iDrumsScrollSpeed = new CItemInteger( "ScrollSpeed", 0, 0x7cf, CDTXMania.ConfigIni.n譜面スクロール速度.Drums,\r
434                                 "演奏時のドラム譜面のスクロールの\n" +\r
435                                 "速度を指定します。\n" +\r
436                                 "x0.5 ~ x1000.0 を指定可能です。",\r
437                                 "To change the scroll speed for the\n" +\r
438                                 "drums lanes.\n" +\r
439                                 "You can set it from x0.5 to x1000.0.\n" +\r
440                                 "(ScrollSpeed=x0.5 means half speed)" );\r
441                         this.list項目リスト.Add( this.iDrumsScrollSpeed );\r
442 \r
443                         this.iDrumsSudden = new CItemToggle( "Sudden", CDTXMania.ConfigIni.bSudden.Drums,\r
444                                 "ドラムチップが譜面の下の方から表\n" +\r
445                                 "示されるようになります。",\r
446                                 "Drums chips are disappered until they\n" +\r
447                                 "come near the hit bar, and suddenly\n" +\r
448                                 "appears." );\r
449                         this.list項目リスト.Add( this.iDrumsSudden );\r
450 \r
451                         this.iDrumsHidden = new CItemToggle( "Hidden", CDTXMania.ConfigIni.bHidden.Drums,\r
452                                 "ドラムチップが譜面の下の方で表示\n" +\r
453                                 "されなくなります。",\r
454                                 "Drums chips are hidden by approaching\n" +\r
455                                 "to the hit bar. " );\r
456                         this.list項目リスト.Add( this.iDrumsHidden );\r
457 \r
458                         this.iCommonDark = new CItemList( "Dark", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eDark,\r
459                                 "HALF: 背景、レーン、ゲージが表示\n" +\r
460                                 "されなくなります。\n" +\r
461                                 "FULL: さらに小節線、拍線、判定ラ\n" +\r
462                                 "イン、パッドも表示されなくなります。",\r
463                                 "OFF: all display parts are shown.\n" +\r
464                                 "HALF: wallpaper, lanes and gauge are\n" +\r
465                                 " disappeared.\n" +\r
466                                 "FULL: additionaly to HALF, bar/beat\n" +\r
467                                 " lines, hit bar, pads are disappeared.",\r
468                                 new string[] { "OFF", "HALF", "FULL" } );\r
469                         this.list項目リスト.Add( this.iCommonDark );\r
470 \r
471 \r
472                         this.iDrumsReverse = new CItemToggle( "Reverse", CDTXMania.ConfigIni.bReverse.Drums,\r
473                                 "ドラムチップが譜面の下から上に流\n" +\r
474                                 "れるようになります。",\r
475                                 "The scroll way is reversed. Drums chips\n"\r
476                                 + "flow from the bottom to the top." );\r
477                         this.list項目リスト.Add( this.iDrumsReverse );\r
478 \r
479                         this.iSystemRisky = new CItemInteger( "Risky", 0, 10, CDTXMania.ConfigIni.nRisky,\r
480                                 "Riskyモードの設定:\n" +\r
481                                 "1以上の値にすると、その回数分の\n" +\r
482                                 "Poor/MissでFAILEDとなります。\n" +\r
483                                 "0にすると無効になり、\n" +\r
484                                 "DamageLevelに従ったゲージ増減と\n" +\r
485                                 "なります。\n" +\r
486                                 "StageFailedの設定と併用できます。",\r
487                                 "Risky mode:\n" +\r
488                                 "Set over 1, in case you'd like to specify\n" +\r
489                                 " the number of Poor/Miss times to be\n" +\r
490                                 " FAILED.\n" +\r
491                                 "Set 0 to disable Risky mode." );\r
492                         this.list項目リスト.Add( this.iSystemRisky );\r
493 \r
494                         this.iDrumsTight = new CItemToggle( "Tight", CDTXMania.ConfigIni.bTight,\r
495                                 "ドラムチップのないところでパッドを\n" +\r
496                                 "叩くとミスになります。",\r
497                                 "It becomes MISS to hit pad without\n" +\r
498                                 " chip." );\r
499                         this.list項目リスト.Add( this.iDrumsTight );\r
500 \r
501                         this.iDrumsComboPosition = new CItemList( "ComboPosition", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.ドラムコンボ文字の表示位置,\r
502                                 "演奏時のドラムコンボ文字列の位置\n" +\r
503                                 "を指定します。",\r
504                                 "The display position for Drums Combo.\n" +\r
505                                 "Note that it doesn't take effect\n" +\r
506                                 " at Autoplay ([Left] is forcely used).",\r
507                                 new string[] { "Left", "Center", "Right", "OFF" } );\r
508                         this.list項目リスト.Add( this.iDrumsComboPosition );\r
509 \r
510                         this.iDrumsPosition = new CItemList( "Position", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.判定文字表示位置.Drums,\r
511                                 "ドラムの判定文字の表示位置を指定\n" +\r
512                                 "します。\n" +\r
513                                 "  P-A: レーン上\n" +\r
514                                 "  P-B: 判定ライン下\n" +\r
515                                 "  OFF: 表示しない",\r
516                                 "The position to show judgement mark.\n" +\r
517                                 "(Perfect, Great, ...)\n" +\r
518                                 "\n" +\r
519                                 " P-A: on the lanes.\n" +\r
520                                 " P-B: under the hit bar.\n" +\r
521                                 " OFF: no judgement mark.",\r
522                                 new string[] { "P-A", "P-B", "OFF" } );\r
523                         this.list項目リスト.Add( this.iDrumsPosition );\r
524 \r
525 \r
526                         this.iSystemHHGroup = new CItemList( "HH Group", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eHHGroup,\r
527                                 "ハイハットレーン打ち分け設定:\n" +\r
528                                 "左シンバル、ハイハットオープン、ハ\n" +\r
529                                 "イハットクローズの打ち分け方法を指\n" +\r
530                                 "定します。\n" +\r
531                                 "  HH-0 ... LC | HHC | HHO\n" +\r
532                                 "  HH-1 ... LC & ( HHC | HHO )\n" +\r
533                                 "  HH-2 ... LC | ( HHC & HHO )\n" +\r
534                                 "  HH-3 ... LC & HHC & HHO\n" +\r
535                                 "\n" +\r
536                                 "※BD Group が BD-1 である場合、\n" +\r
537                                 " この項目は変更できません。\n",\r
538                                 "HH-0: LC|HC|HO; all are separated.\n" +\r
539                                 "HH-1: LC&(HC|HO);\n" +\r
540                                 " HC and HO are separted.\n" +\r
541                                 " LC is grouped with HC and HHO.\n" +\r
542                                 "HH-2: LC|(HC&HO);\n" +\r
543                                 " LC and HHs are separated.\n" +\r
544                                 " HC and HO are grouped.\n" +\r
545                                 "HH-3: LC&HC&HO; all are grouped.\n" +\r
546                                 "\n" +\r
547                                 "* This value cannot be changed while \n" +\r
548                                 "  BD Group is set as BD-1.",\r
549                                 new string[] { "HH-0", "HH-1", "HH-2", "HH-3" } );\r
550                         this.list項目リスト.Add( this.iSystemHHGroup );\r
551 \r
552                         this.iSystemFTGroup = new CItemList( "FT Group", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eFTGroup,\r
553                                 "フロアタム打ち分け設定:\n" +\r
554                                 "ロータムとフロアタムの打ち分け方法\n" +\r
555                                 "を指定します。\n" +\r
556                                 "  FT-0 ... LT | FT\n" +\r
557                                 "  FT-1 ... LT & FT\n",\r
558                                 "FT-0: LT|FT\n" +\r
559                                 " LT and FT are separated.\n" +\r
560                                 "FT-1: LT&FT\n" +\r
561                                 " LT and FT are grouped.",\r
562                                 new string[] { "FT-0", "FT-1" } );\r
563                         this.list項目リスト.Add( this.iSystemFTGroup );\r
564 \r
565                         this.iSystemCYGroup = new CItemList( "CY Group", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eCYGroup,\r
566                                 "シンバルレーン打ち分け設定:\n" +\r
567                                 "右シンバルとライドシンバルの打ち分\n" +\r
568                                 "け方法を指定します。\n" +\r
569                                 "  CY-0 ... CY | RD\n" +\r
570                                 "  CY-1 ... CY & RD\n",\r
571                                 "CY-0: CY|RD\n" +\r
572                                 " CY and RD are separated.\n" +\r
573                                 "CY-1: CY&RD\n" +\r
574                                 " CY and RD are grouped.",\r
575                                 new string[] { "CY-0", "CY-1" } );\r
576                         this.list項目リスト.Add( this.iSystemCYGroup );\r
577 \r
578                         this.iSystemBDGroup = new CItemList( "BD Group", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eBDGroup,         // #27029 2012.1.4 from\r
579                                 "バス数設定:\n" +\r
580                                 "ハイハットペダルをバスとして利用する\n" +\r
581                                 "方法を指定します。\n" +\r
582                                 "  BD-0 ... HP | BD\n" +\r
583                                 "  BD-1 ... FP & BD\n" + \r
584                                 "\n" +\r
585                                 "注意:HitSound が OFF である場合は\n" + \r
586                                 "不具合が生じます。\n" +\r
587                                 "また、BD-1 を選択している間はいくつ\n" + \r
588                                 "かのオプションが変更できなくなります。",\r
589                                 "BD-0: HP|BD\n" +\r
590                                 " HiHatPedal is HiHat.\n" +\r
591                                 "BD-1: HP&BD\n" +\r
592                                 " HiHatPedal is Bass.\n" +\r
593                                 "\n" +\r
594                                 "Warning: You should not use BD-1 with \n" +\r
595                                 "HitSound OFF.\n" +\r
596                                 "And you cannot change some options \n" +\r
597                                 "while using BD-1.",\r
598                                 new string[] { "BD-0", "BD-1" } );\r
599                         this.list項目リスト.Add( this.iSystemBDGroup );\r
600 \r
601                         this.iSystemCymbalFree = new CItemToggle( "CymbalFree", CDTXMania.ConfigIni.bシンバルフリー,\r
602                                 "シンバルフリーモード:\n" +\r
603                                 "左シンバル・右シンバルの区別をなく\n" +\r
604                                 "します。ライドシンバルまで区別をな\n" +\r
605                                 "くすか否かは、CYGroup に従います。\n",\r
606                                 "Turn ON to group LC (left cymbal) and\n" +\r
607                                 " CY (right cymbal).\n" +\r
608                                 "Whether RD (ride cymbal) is also\n" +\r
609                                 " grouped or not depends on the\n" +\r
610                                 "'CY Group' setting." );\r
611                         this.list項目リスト.Add( this.iSystemCymbalFree );\r
612 \r
613 \r
614                         this.iSystemHitSoundPriorityHH = new CItemList( "HH Priority", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eHitSoundPriorityHH,\r
615                                 "発声音決定の優先順位:\n" +\r
616                                 "ハイハットレーン打ち分け有効時に、\n" +\r
617                                 "チップの発声音をどのように決定する\n" +\r
618                                 "かを指定します。\n" +\r
619                                 "  C > P ... チップの音が優先\n" +\r
620                                 "  P > C ... 叩いたパッドの音が優先\n" +\r
621                                 "\n" +\r
622                                 "※BD Group が BD-1 である場合、\n" +\r
623                                 " この項目は変更できません。\n",\r
624                                 "To specify playing sound in case you're\n" +\r
625                                 " using HH-0,1 and 2.\n" +\r
626                                 "\n" +\r
627                                 "C>P:\n" +\r
628                                 " Chip sound is prior to the pad sound.\n" +\r
629                                 "P>C:\n" +\r
630                                 " Pad sound is prior to the chip sound.\n" +\r
631                                 "\n" +\r
632                                 "* This value cannot be changed while \n" +\r
633                                 "  BD Group is set as BD-1.",\r
634                                 new string[] { "C>P", "P>C" } );\r
635                         this.list項目リスト.Add( this.iSystemHitSoundPriorityHH );\r
636 \r
637                         this.iSystemHitSoundPriorityFT = new CItemList( "FT Priority", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eHitSoundPriorityFT,\r
638                                 "発声音決定の優先順位:\n" +\r
639                                 "フロアタム打ち分け有効時に、チップ\n" +\r
640                                 "の発声音をどのように決定するかを\n" +\r
641                                 "指定します。\n" +\r
642                                 "  C > P ... チップの音が優先\n" +\r
643                                 "  P > C ... 叩いたパッドの音が優先",\r
644                                 "To specify playing sound in case you're\n" +\r
645                                 " using FT-0.\n" +\r
646                                 "\n" +\r
647                                 "C>P:\n" +\r
648                                 " Chip sound is prior to the pad sound.\n" +\r
649                                 "P>C:\n" +\r
650                                 " Pad sound is prior to the chip sound.",\r
651                                 new string[] { "C>P", "P>C" } );\r
652                         this.list項目リスト.Add( this.iSystemHitSoundPriorityFT );\r
653 \r
654                         this.iSystemHitSoundPriorityCY = new CItemList( "CY Priority", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eHitSoundPriorityCY,\r
655                                 "発声音決定の優先順位:\n" +\r
656                                 "シンバルレーン打ち分け有効時に、\n" +\r
657                                 "チップの発声音をどのように決定する\n" +\r
658                                 "かを指定します。\n" +\r
659                                 "  C > P ... チップの音が優先\n" +\r
660                                 "  P > C ... 叩いたパッドの音が優先",\r
661                                 "To specify playing sound in case you're\n" +\r
662                                 " using CY-0.\n" +\r
663                                 "\n" +\r
664                                 "C>P:\n" +\r
665                                 " Chip sound is prior to the pad sound.\n" +\r
666                                 "P>C:\n" +\r
667                                 " Pad sound is prior to the chip sound.",\r
668                                 new string[] { "C>P", "P>C" } );\r
669                         this.list項目リスト.Add( this.iSystemHitSoundPriorityCY );\r
670 \r
671                         this.iSystemFillIn = new CItemToggle( "FillIn", CDTXMania.ConfigIni.bフィルイン有効,\r
672                                 "フィルインエフェクトの使用:\n" +\r
673                                 "フィルイン区間の爆発パターンに特別\n" +\r
674                                 "のエフェクトを使用します。\n" +\r
675                                 "フィルインエフェクトの描画にはそれな\n" +\r
676                                 "りのマシンパワーが必要とされます。",\r
677                                 "To show bursting effects at the fill-in\n" +\r
678                                 " zone or not." );\r
679                         this.list項目リスト.Add( this.iSystemFillIn );\r
680 \r
681 \r
682 \r
683                         this.iSystemHitSound = new CItemToggle( "HitSound", CDTXMania.ConfigIni.bドラム打音を発声する,\r
684                                 "打撃音の再生:\n" +\r
685                                 "これをOFFにすると、パッドを叩いた\n" +\r
686                                 "ときの音を再生しなくなります(ドラム\n" +\r
687                                 "のみ)。\n" +\r
688                                 "DTX の音色で演奏したい場合などに\n" +\r
689                                 "OFF にします。\n" + \r
690                                 "\n" +\r
691                                 "注意:BD Group が BD-1 である場合\n" +\r
692                                 "は不具合が生じます。\n",\r
693                                 "Turn OFF if you don't want to play\n" +\r
694                                 " hitting chip sound.\n" +\r
695                                 "It is useful to play with real/electric\n" +\r
696                                 " drums kit.\n" + \r
697                                 "\n" +\r
698                                 "Warning: You should not use BD Group \n" + \r
699                                 "BD-1 with HitSound OFF.\n" );\r
700                         this.list項目リスト.Add( this.iSystemHitSound );\r
701 \r
702                         this.iSystemSoundMonitorDrums = new CItemToggle( "DrumsMonitor", CDTXMania.ConfigIni.b演奏音を強調する.Drums,\r
703                                 "ドラム音モニタ:\n" +\r
704                                 "ドラム音を他の音より大きめの音量で\n" +\r
705                                 "発声します。\n" +\r
706                                 "ただし、オートプレイの場合は通常音\n" +\r
707                                 "量で発声されます。",\r
708                                 "To enhance the drums chip sound\n" +\r
709                                 "(except autoplay)." );\r
710                         this.list項目リスト.Add( this.iSystemSoundMonitorDrums );\r
711 \r
712                         this.iSystemMinComboDrums = new CItemInteger( "D-MinCombo", 1, 0x1869f, CDTXMania.ConfigIni.n表示可能な最小コンボ数.Drums,\r
713                                 "表示可能な最小コンボ数(ドラム):\n" +\r
714                                 "画面に表示されるコンボの最小の数\n" +\r
715                                 "を指定します。\n" +\r
716                                 "1 ~ 99999 の値が指定可能です。",\r
717                                 "Initial number to show the combo\n" +\r
718                                 " for the drums.\n" +\r
719                                 "You can specify from 1 to 99999." );\r
720                         this.list項目リスト.Add( this.iSystemMinComboDrums );\r
721 \r
722 \r
723                         // #23580 2011.1.3 yyagi\r
724                         this.iDrumsInputAdjustTimeMs = new CItemInteger( "InputAdjust", -99, 99, CDTXMania.ConfigIni.nInputAdjustTimeMs.Drums,\r
725                                 "ドラムの入力タイミングの微調整を\n" +\r
726                                 "行います。\n" +\r
727                                 "-99 ~ 99ms まで指定可能です。\n" +\r
728                                 "入力ラグを軽減するためには、負の\n" +\r
729                                 "値を指定してください。\n",\r
730                                 "To adjust the drums input timing.\n" +\r
731                                 "You can set from -99 to 99ms.\n" +\r
732                                 "To decrease input lag, set minus value." );\r
733                         this.list項目リスト.Add( this.iDrumsInputAdjustTimeMs );\r
734 \r
735                         // #24074 2011.01.23 add ikanick\r
736                         this.iDrumsGraph = new CItemToggle( "Graph", CDTXMania.ConfigIni.bGraph.Drums,\r
737                                 "最高スキルと比較できるグラフを\n" +\r
738                                 "表示します。\n" +\r
739                                 "オートプレイだと表示されません。",\r
740                                 "To draw Graph \n" +\r
741                                 " or not." );\r
742                         this.list項目リスト.Add( this.iDrumsGraph );\r
743 \r
744                         this.iDrumsGoToKeyAssign = new CItemBase( "Drums Keys", CItemBase.Eパネル種別.通常,\r
745                                 "ドラムのキー入力に関する項目を設\n"+\r
746                                 "定します。",\r
747                                 "Settings for the drums key/pad inputs." );\r
748                         this.list項目リスト.Add( this.iDrumsGoToKeyAssign );\r
749 \r
750                         this.n現在の選択項目 = 0;\r
751                         this.eメニュー種別 = Eメニュー種別.Drums;\r
752                 }\r
753                 #endregion\r
754                 #region [ t項目リストの設定・Guitar() ]\r
755                 public void t項目リストの設定・Guitar()\r
756                 {\r
757                         this.tConfigIniへ記録する();\r
758                         this.list項目リスト.Clear();\r
759 \r
760                         // #27029 2012.1.5 from: 説明文は最大9行→13行に変更。\r
761 \r
762                         this.iGuitarReturnToMenu = new CItemBase( "<< Return To Menu", CItemBase.Eパネル種別.その他,\r
763                                 "左側のメニューに戻ります。",\r
764                                 "Return to left menu." );\r
765                         this.list項目リスト.Add( this.iGuitarReturnToMenu );\r
766                         //this.iGuitarAutoPlay = new CItemToggle( "AutoPlay", CDTXMania.ConfigIni.bAutoPlay.Guitar,\r
767                         //    "ギターパートを自動で演奏します。",\r
768                         //    "To play the guitar part automatically." );\r
769                         //this.list項目リスト.Add( this.iGuitarAutoPlay );\r
770 \r
771                         this.iGuitarAutoPlayAll = new CItemThreeState( "AutoPlay (All)", CItemThreeState.E状態.不定,\r
772                                 "全ネック/ピックの自動演奏の ON/OFF を\n" +\r
773                                 "まとめて切り替えます。",\r
774                                 "You can change whether Auto or not\n" +\r
775                                 " for all guitar neck/pick at once." );\r
776                         this.list項目リスト.Add( this.iGuitarAutoPlayAll );\r
777                         this.iGuitarR = new CItemToggle( "    R", CDTXMania.ConfigIni.bAutoPlay.GtR,\r
778                                 "Rネックを自動で演奏します。",\r
779                                 "To play R neck automatically." );\r
780                         this.list項目リスト.Add( this.iGuitarR );\r
781                         this.iGuitarG = new CItemToggle( "    G", CDTXMania.ConfigIni.bAutoPlay.GtG,\r
782                                 "Gネックを自動で演奏します。",\r
783                                 "To play G neck automatically." );\r
784                         this.list項目リスト.Add( this.iGuitarG );\r
785                         this.iGuitarB = new CItemToggle( "    B", CDTXMania.ConfigIni.bAutoPlay.GtB,\r
786                                 "Bネックを自動で演奏します。",\r
787                                 "To play B neck automatically." );\r
788                         this.list項目リスト.Add( this.iGuitarB );\r
789                         this.iGuitarPick = new CItemToggle( "    Pick", CDTXMania.ConfigIni.bAutoPlay.GtPick,\r
790                                 "ピックを自動で演奏します。",\r
791                                 "To play Pick automatically." );\r
792                         this.list項目リスト.Add( this.iGuitarPick );\r
793                         this.iGuitarW = new CItemToggle( "    Wailing", CDTXMania.ConfigIni.bAutoPlay.GtW,\r
794                                 "ウェイリングを自動で演奏します。",\r
795                                 "To play wailing automatically." );\r
796                         this.list項目リスト.Add( this.iGuitarW );\r
797 \r
798                         this.iGuitarScrollSpeed = new CItemInteger( "ScrollSpeed", 0, 0x7cf, CDTXMania.ConfigIni.n譜面スクロール速度.Guitar,\r
799                                 "演奏時のギター譜面のスクロールの\n速度を指定します。\nx0.5 ~ x1000.0 までを指定可能です。",\r
800                                 "To change the scroll speed for the\nguitar lanes.\nYou can set it from x0.5 to x1000.0.\n(ScrollSpeed=x0.5 means half speed)" );\r
801                         this.list項目リスト.Add( this.iGuitarScrollSpeed );\r
802                         this.iGuitarSudden = new CItemToggle( "Sudden", CDTXMania.ConfigIni.bSudden.Guitar,\r
803                                 "ギターチップがヒットバー付近にくる\nまで表示されなくなります。",\r
804                                 "Guitar chips are disappered until they\ncome near the hit bar, and suddenly\nappears." );\r
805                         this.list項目リスト.Add( this.iGuitarSudden );\r
806                         this.iGuitarHidden = new CItemToggle( "Hidden", CDTXMania.ConfigIni.bHidden.Guitar,\r
807                                 "ギターチップがヒットバー付近で表示\nされなくなります。",\r
808                                 "Guitar chips are hidden by approaching\nto the hit bar. " );\r
809                         this.list項目リスト.Add( this.iGuitarHidden );\r
810                         this.iGuitarReverse = new CItemToggle( "Reverse", CDTXMania.ConfigIni.bReverse.Guitar,\r
811                                 "ギターチップが譜面の上から下に流\nれるようになります。",\r
812                                 "The scroll way is reversed. Guitar chips\nflow from the top to the bottom." );\r
813                         this.list項目リスト.Add( this.iGuitarReverse );\r
814                         this.iGuitarPosition = new CItemList( "Position", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.判定文字表示位置.Guitar,\r
815                                 "ギターの判定文字の表示位置を指定\nします。\n  P-A: レーン上\n  P-B: COMBO の下\n  OFF: 表示しない",\r
816                                 "The position to show judgement mark.\n(Perfect, Great, ...)\n\n P-A: on the lanes.\n P-B: under the COMBO indication.\n OFF: no judgement mark.",\r
817                                 new string[] { "P-A", "P-B", "OFF" } );\r
818                         this.list項目リスト.Add( this.iGuitarPosition );\r
819                         this.iGuitarRandom = new CItemList( "Random", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eRandom.Guitar,\r
820                                 "ギターのチップがランダムに降ってき\nます。\n  Part: 小節・レーン単位で交換\n  Super: チップ単位で交換\n  Hyper: 全部完全に変更",\r
821                                 "Guitar chips come randomly.\n\n Part: swapping lanes randomly for each\n  measures.\n Super: swapping chip randomly\n Hyper: swapping randomly\n  (number of lanes also changes)",\r
822                                 new string[] { "OFF", "Part", "Super", "Hyper" } );\r
823                         this.list項目リスト.Add( this.iGuitarRandom );\r
824                         this.iGuitarLight = new CItemToggle( "Light", CDTXMania.ConfigIni.bLight.Guitar,\r
825                                 "ギターチップのないところでピッキン\nグしても BAD になりません。",\r
826                                 "Even if you pick without any chips,\nit doesn't become BAD." );\r
827                         this.list項目リスト.Add( this.iGuitarLight );\r
828                         this.iGuitarLeft = new CItemToggle( "Left", CDTXMania.ConfigIni.bLeft.Guitar,\r
829                                 "ギターの RGB の並びが左右反転し\nます。(左利きモード)",\r
830                                 "Lane order 'R-G-B' becomes 'B-G-R'\nfor lefty." );\r
831                         this.list項目リスト.Add( this.iGuitarLeft );\r
832 \r
833                         this.iSystemSoundMonitorGuitar = new CItemToggle( "GuitarMonitor", CDTXMania.ConfigIni.b演奏音を強調する.Guitar,\r
834                         "ギター音モニタ:\nギター音を他の音より大きめの音量\nで発声します。\nただし、オートプレイの場合は通常音\n量で発声されます。",\r
835                         "To enhance the guitar chip sound\n(except autoplay)." );\r
836                         this.list項目リスト.Add( this.iSystemSoundMonitorGuitar );\r
837                         this.iSystemMinComboGuitar = new CItemInteger( "G-MinCombo", 1, 0x1869f, CDTXMania.ConfigIni.n表示可能な最小コンボ数.Guitar,\r
838                                 "表示可能な最小コンボ数(ギター):\n画面に表示されるコンボの最小の数\nを指定します。\n1 ~ 99999 の値が指定可能です。",\r
839                                 "Initial number to show the combo\n for the guitar.\nYou can specify from 1 to 99999." );\r
840                         this.list項目リスト.Add( this.iSystemMinComboGuitar );\r
841 \r
842                         \r
843                         // #23580 2011.1.3 yyagi\r
844                         this.iGuitarInputAdjustTimeMs = new CItemInteger( "InputAdjust", -99, 99, CDTXMania.ConfigIni.nInputAdjustTimeMs.Guitar,\r
845                                 "ギターの入力タイミングの微調整を\n" +\r
846                                 "行います。\n" +\r
847                                 "-99 ~ 99ms まで指定可能です。\n" +\r
848                                 "入力ラグを軽減するためには、負の\n" +\r
849                                 "値を指定してください。",\r
850                                 "To adjust the guitar input timing.\n" +\r
851                                 "You can set from -99 to 99ms.\n" +\r
852                                 "To decrease input lag, set minus value." );\r
853                         this.list項目リスト.Add( this.iGuitarInputAdjustTimeMs );\r
854 \r
855                         this.iGuitarGoToKeyAssign = new CItemBase( "Guitar Keys", CItemBase.Eパネル種別.通常,\r
856                                 "ギターのキー入力に関する項目を設\n定します。",\r
857                                 "Settings for the guitar key/pad inputs." );\r
858                         this.list項目リスト.Add( this.iGuitarGoToKeyAssign );\r
859 \r
860                         this.n現在の選択項目 = 0;\r
861                         this.eメニュー種別 = Eメニュー種別.Guitar;\r
862                 }\r
863                 #endregion\r
864                 #region [ t項目リストの設定・Bass() ]\r
865                 public void t項目リストの設定・Bass()\r
866                 {\r
867                         this.tConfigIniへ記録する();\r
868                         this.list項目リスト.Clear();\r
869 \r
870                         // #27029 2012.1.5 from: 説明文は最大9行→13行に変更。\r
871 \r
872                         this.iBassReturnToMenu = new CItemBase( "<< Return To Menu", CItemBase.Eパネル種別.その他,\r
873                                 "左側のメニューに戻ります。",\r
874                                 "Return to left menu." );\r
875                         this.list項目リスト.Add( this.iBassReturnToMenu );\r
876                         //this.iBassAutoPlay = new CItemToggle( "AutoPlay", CDTXMania.ConfigIni.bAutoPlay.Bass,\r
877                         //    "ベースパートを自動で演奏します。",\r
878                         //    "To play the bass part automatically." );\r
879                         //this.list項目リスト.Add( this.iBassAutoPlay );\r
880 \r
881                         this.iBassAutoPlayAll = new CItemThreeState( "AutoPlay (All)", CItemThreeState.E状態.不定,\r
882                                 "全ネック/ピックの自動演奏の ON/OFF を\n" +\r
883                                 "まとめて切り替えます。",\r
884                                 "You can change whether Auto or not\n" +\r
885                                 " for all bass neck/pick at once." );\r
886                         this.list項目リスト.Add( this.iBassAutoPlayAll );\r
887                         this.iBassR = new CItemToggle( "    R", CDTXMania.ConfigIni.bAutoPlay.BsR,\r
888                                 "Rネックを自動で演奏します。",\r
889                                 "To play R neck automatically." );\r
890                         this.list項目リスト.Add( this.iBassR );\r
891                         this.iBassG = new CItemToggle( "    G", CDTXMania.ConfigIni.bAutoPlay.BsG,\r
892                                 "Gネックを自動で演奏します。",\r
893                                 "To play G neck automatically." );\r
894                         this.list項目リスト.Add( this.iBassG );\r
895                         this.iBassB = new CItemToggle( "    B", CDTXMania.ConfigIni.bAutoPlay.BsB,\r
896                                 "Bネックを自動で演奏します。",\r
897                                 "To play B neck automatically." );\r
898                         this.list項目リスト.Add( this.iBassB );\r
899                         this.iBassPick = new CItemToggle( "    Pick", CDTXMania.ConfigIni.bAutoPlay.BsPick,\r
900                                 "ピックを自動で演奏します。",\r
901                                 "To play Pick automatically." );\r
902                         this.list項目リスト.Add( this.iBassPick );\r
903                         this.iBassW = new CItemToggle( "    Wailing", CDTXMania.ConfigIni.bAutoPlay.BsW,\r
904                                 "ウェイリングを自動で演奏します。",\r
905                                 "To play wailing automatically." );\r
906                         this.list項目リスト.Add( this.iBassW );\r
907 \r
908                         this.iBassScrollSpeed = new CItemInteger( "ScrollSpeed", 0, 0x7cf, CDTXMania.ConfigIni.n譜面スクロール速度.Bass,\r
909                                 "演奏時のベース譜面のスクロールの\n速度を指定します。\nx0.5 ~ x1000.0 までを指定可能です。",\r
910                                 "To change the scroll speed for the\nbass lanes.\nYou can set it from x0.5 to x1000.0.\n(ScrollSpeed=x0.5 means half speed)" );\r
911                         this.list項目リスト.Add( this.iBassScrollSpeed );\r
912                         this.iBassSudden = new CItemToggle( "Sudden", CDTXMania.ConfigIni.bSudden.Bass,\r
913                                 "ベースチップがヒットバー付近にくる\nまで表示されなくなります。",\r
914                                 "Bass chips are disappered until they\ncome near the hit bar, and suddenly\nappears." );\r
915                         this.list項目リスト.Add( this.iBassSudden );\r
916                         this.iBassHidden = new CItemToggle( "Hidden", CDTXMania.ConfigIni.bHidden.Bass,\r
917                                 "ベースチップがヒットバー付近で表示\nされなくなります。",\r
918                                 "Bass chips are hidden by approaching\nto the hit bar." );\r
919                         this.list項目リスト.Add( this.iBassHidden );\r
920                         this.iBassReverse = new CItemToggle( "Reverse", CDTXMania.ConfigIni.bReverse.Bass,\r
921                                 "ベースチップが譜面の上から下に流\nれるようになります。",\r
922                                 "The scroll way is reversed. Bass chips\nflow from the top to the bottom." );\r
923                         this.list項目リスト.Add( this.iBassReverse );\r
924                         this.iBassPosition = new CItemList( "Position", CItemBase.Eパネル種別.通常,\r
925                                 (int) CDTXMania.ConfigIni.判定文字表示位置.Bass,\r
926                                 "ベースの判定文字の表示位置を指定\nします。\n  P-A: レーン上\n  P-B: COMBO の下\n  OFF: 表示しない",\r
927                                 "The position to show judgement mark.\n(Perfect, Great, ...)\n\n P-A: on the lanes.\n P-B: under the COMBO indication.\n OFF: no judgement mark.",\r
928                                 new string[] { "P-A", "P-B", "OFF" } );\r
929                         this.list項目リスト.Add( this.iBassPosition );\r
930                         this.iBassRandom = new CItemList( "Random", CItemBase.Eパネル種別.通常,\r
931                                 (int) CDTXMania.ConfigIni.eRandom.Bass,\r
932                                 "ベースのチップがランダムに降ってき\nます。\n  Part: 小節・レーン単位で交換\n  Super: チップ単位で交換\n  Hyper: 全部完全に変更",\r
933                                 "Bass chips come randomly.\n\n Part: swapping lanes randomly for each\n  measures.\n Super: swapping chip randomly\n Hyper: swapping randomly\n  (number of lanes also changes)",\r
934                                 new string[] { "OFF", "Part", "Super", "Hyper" } );\r
935                         this.list項目リスト.Add( this.iBassRandom );\r
936                         this.iBassLight = new CItemToggle( "Light", CDTXMania.ConfigIni.bLight.Bass,\r
937                                 "ベースチップのないところでピッキン\nグしても BAD になりません。",\r
938                                 "Even if you pick without any chips,\nit doesn't become BAD." );\r
939                         this.list項目リスト.Add( this.iBassLight );\r
940                         this.iBassLeft = new CItemToggle( "Left", CDTXMania.ConfigIni.bLeft.Bass,\r
941                                 "ベースの RGB の並びが左右反転し\nます。(左利きモード)",\r
942                                 "Lane order 'R-G-B' becomes 'B-G-R'\nfor lefty." );\r
943                         this.list項目リスト.Add( this.iBassLeft );\r
944 \r
945                         this.iSystemSoundMonitorBass = new CItemToggle( "BassMonitor", CDTXMania.ConfigIni.b演奏音を強調する.Bass,\r
946                         "ベース音モニタ:\nベース音を他の音より大きめの音量\nで発声します。\nただし、オートプレイの場合は通常音\n量で発声されます。",\r
947                         "To enhance the bass chip sound\n(except autoplay)." );\r
948                         this.list項目リスト.Add( this.iSystemSoundMonitorBass );\r
949 \r
950                         this.iSystemMinComboBass = new CItemInteger( "B-MinCombo", 1, 0x1869f, CDTXMania.ConfigIni.n表示可能な最小コンボ数.Bass,\r
951                                 "表示可能な最小コンボ数(ベース):\n画面に表示されるコンボの最小の数\nを指定します。\n1 ~ 99999 の値が指定可能です。",\r
952                                 "Initial number to show the combo\n for the bass.\nYou can specify from 1 to 99999." );\r
953                         this.list項目リスト.Add( this.iSystemMinComboBass );\r
954 \r
955                         \r
956                         // #23580 2011.1.3 yyagi\r
957                         this.iBassInputAdjustTimeMs = new CItemInteger( "InputAdjust", -99, 99, CDTXMania.ConfigIni.nInputAdjustTimeMs.Bass,\r
958                                 "ベースの入力タイミングの微調整を\n" +\r
959                                 "行います。\n" +\r
960                                 "-99 ~ 99ms まで指定可能です。\n" +\r
961                                 "入力ラグを軽減するためには、負の\n" +\r
962                                 "値を指定してください。",\r
963                                 "To adjust the bass input timing.\n" +\r
964                                 "You can set from -99 to 99ms.\n" +\r
965                                 "To decrease input lag, set minus value." );\r
966                         this.list項目リスト.Add( this.iBassInputAdjustTimeMs );\r
967 \r
968                         this.iBassGoToKeyAssign = new CItemBase( "Bass Keys", CItemBase.Eパネル種別.通常,\r
969                                 "ベースのキー入力に関する項目を設\n定します。",\r
970                                 "Settings for the bass key/pad inputs.");\r
971                         this.list項目リスト.Add( this.iBassGoToKeyAssign );\r
972 \r
973                         this.n現在の選択項目 = 0;\r
974                         this.eメニュー種別 = Eメニュー種別.Bass;\r
975                 }\r
976                 #endregion\r
977 \r
978                 /// <summary>\r
979                 /// ESC押下時の右メニュー描画\r
980                 /// </summary>\r
981                 public void tEsc押下()\r
982                 {\r
983                         if ( this.eメニュー種別 == Eメニュー種別.KeyAssignSystem )\r
984                         {\r
985                                 t項目リストの設定・System();\r
986                         }\r
987                         else if ( this.eメニュー種別 == Eメニュー種別.KeyAssignDrums )\r
988                         {\r
989                                 t項目リストの設定・Drums();\r
990                         }\r
991                         else if ( this.eメニュー種別 == Eメニュー種別.KeyAssignGuitar )\r
992                         {\r
993                                 t項目リストの設定・Guitar();\r
994                         }\r
995                         else if ( this.eメニュー種別 == Eメニュー種別.KeyAssignBass )\r
996                         {\r
997                                 t項目リストの設定・Bass();\r
998                         }\r
999                         // これ以外なら何もしない\r
1000                 }\r
1001                 public void tEnter押下()\r
1002                 {\r
1003                         CDTXMania.Skin.sound決定音.t再生する();\r
1004                         if( this.b要素値にフォーカス中 )\r
1005                         {\r
1006                                 this.b要素値にフォーカス中 = false;\r
1007                         }\r
1008                         else if( this.list項目リスト[ this.n現在の選択項目 ].e種別 == CItemBase.E種別.整数 )\r
1009                         {\r
1010                                 this.b要素値にフォーカス中 = true;\r
1011                         }\r
1012                         else if( this.b現在選択されている項目はReturnToMenuである )\r
1013                         {\r
1014                                 //this.tConfigIniへ記録する();\r
1015                                 //CONFIG中にスキン変化が発生すると面倒なので、一旦マスクした。\r
1016                         }\r
1017                         #region [ 個々のキーアサイン ]\r
1018                         else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignDrumsLC )\r
1019                         {\r
1020                                 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.DRUMS, EKeyConfigPad.LC );\r
1021                         }\r
1022                         else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignDrumsHHC )\r
1023                         {\r
1024                                 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.DRUMS, EKeyConfigPad.HH );\r
1025                         }\r
1026                         else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignDrumsHHO )\r
1027                         {\r
1028                                 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.DRUMS, EKeyConfigPad.HHO );\r
1029                         }\r
1030                         else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignDrumsSD )\r
1031                         {\r
1032                                 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.DRUMS, EKeyConfigPad.SD );\r
1033                         }\r
1034                         else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignDrumsBD )\r
1035                         {\r
1036                                 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.DRUMS, EKeyConfigPad.BD );\r
1037                         }\r
1038                         else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignDrumsHT )\r
1039                         {\r
1040                                 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.DRUMS, EKeyConfigPad.HT );\r
1041                         }\r
1042                         else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignDrumsLT )\r
1043                         {\r
1044                                 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.DRUMS, EKeyConfigPad.LT );\r
1045                         }\r
1046                         else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignDrumsFT )\r
1047                         {\r
1048                                 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.DRUMS, EKeyConfigPad.FT );\r
1049                         }\r
1050                         else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignDrumsCY )\r
1051                         {\r
1052                                 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.DRUMS, EKeyConfigPad.CY );\r
1053                         }\r
1054                         else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignDrumsRD )\r
1055                         {\r
1056                                 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.DRUMS, EKeyConfigPad.RD );\r
1057                         }\r
1058                         else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignDrumsHP )                    // #27029 2012.1.4 from\r
1059                         {                                                                                                                                                                                       //\r
1060                                 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.DRUMS, EKeyConfigPad.HP );        //\r
1061                         }                                                                                                                                                                                       //\r
1062                         else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignGuitarR )\r
1063                         {\r
1064                                 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.GUITAR, EKeyConfigPad.R );\r
1065                         }\r
1066                         else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignGuitarG )\r
1067                         {\r
1068                                 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.GUITAR, EKeyConfigPad.G );\r
1069                         }\r
1070                         else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignGuitarB )\r
1071                         {\r
1072                                 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.GUITAR, EKeyConfigPad.B );\r
1073                         }\r
1074                         else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignGuitarPick )\r
1075                         {\r
1076                                 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.GUITAR, EKeyConfigPad.Pick );\r
1077                         }\r
1078                         else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignGuitarWail )\r
1079                         {\r
1080                                 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.GUITAR, EKeyConfigPad.Wail );\r
1081                         }\r
1082                         else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignGuitarDecide )\r
1083                         {\r
1084                                 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.GUITAR, EKeyConfigPad.Decide );\r
1085                         }\r
1086                         else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignGuitarCancel )\r
1087                         {\r
1088                                 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.GUITAR, EKeyConfigPad.Cancel );\r
1089                         }\r
1090                         else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignBassR )\r
1091                         {\r
1092                                 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.BASS, EKeyConfigPad.R );\r
1093                         }\r
1094                         else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignBassG )\r
1095                         {\r
1096                                 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.BASS, EKeyConfigPad.G );\r
1097                         }\r
1098                         else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignBassB )\r
1099                         {\r
1100                                 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.BASS, EKeyConfigPad.B );\r
1101                         }\r
1102                         else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignBassPick )\r
1103                         {\r
1104                                 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.BASS, EKeyConfigPad.Pick );\r
1105                         }\r
1106                         else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignBassWail )\r
1107                         {\r
1108                                 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.BASS, EKeyConfigPad.Wail );\r
1109                         }\r
1110                         else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignBassDecide )\r
1111                         {\r
1112                                 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.BASS, EKeyConfigPad.Decide );\r
1113                         }\r
1114                         else if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignBassCancel )\r
1115                         {\r
1116                                 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.BASS, EKeyConfigPad.Cancel );\r
1117                         }\r
1118                         else if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignSystemCapture )\r
1119                         {\r
1120                                 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.SYSTEM, EKeyConfigPad.Capture);\r
1121                         }\r
1122                         #endregion\r
1123                         else\r
1124                         {\r
1125                                 // #27029 2012.1.5 from\r
1126                                 if( ( this.iSystemBDGroup.n現在選択されている項目番号 == (int) EBDGroup.どっちもBD ) &&\r
1127                                         ( ( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemHHGroup ) || ( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemHitSoundPriorityHH ) ) )\r
1128                                 {\r
1129                                         // 変更禁止(何もしない)\r
1130                                 }\r
1131                                 else\r
1132                                 {\r
1133                                         // 変更許可\r
1134                                         this.list項目リスト[ this.n現在の選択項目 ].tEnter押下();\r
1135                                 }\r
1136 \r
1137 \r
1138                                 // Enter押下後の後処理\r
1139 \r
1140                                 if( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemFullscreen )\r
1141                                 {\r
1142                                         CDTXMania.app.b次のタイミングで全画面・ウィンドウ切り替えを行う = true;\r
1143                                 }\r
1144                                 else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemVSyncWait )\r
1145                                 {\r
1146                                         CDTXMania.ConfigIni.b垂直帰線待ちを行う = this.iSystemVSyncWait.bON;\r
1147                                         CDTXMania.app.b次のタイミングで垂直帰線同期切り替えを行う = true;\r
1148                                 }\r
1149                                 #region [ AutoPlay #23886 2012.5.8 yyagi ]\r
1150                                 else if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iDrumsAutoPlayAll )\r
1151                                 {\r
1152                                         this.t全部のドラムパッドのAutoを切り替える( this.iDrumsAutoPlayAll.e現在の状態 == CItemThreeState.E状態.ON );\r
1153                                 }\r
1154                                 else if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iGuitarAutoPlayAll )\r
1155                                 {\r
1156                                         this.t全部のギターパッドのAutoを切り替える( this.iGuitarAutoPlayAll.e現在の状態 == CItemThreeState.E状態.ON );\r
1157                                 }\r
1158                                 else if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iBassAutoPlayAll )\r
1159                                 {\r
1160                                         this.t全部のベースパッドのAutoを切り替える( this.iBassAutoPlayAll.e現在の状態 == CItemThreeState.E状態.ON );\r
1161                                 }\r
1162                                 #endregion\r
1163                                 #region [ キーアサインへの遷移と脱出 ]\r
1164                                 else if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemGoToKeyAssign )                        // #24609 2011.4.12 yyagi\r
1165                                 {\r
1166                                         t項目リストの設定・KeyAssignSystem();\r
1167                                 }\r
1168                                 else if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignSystemReturnToMenu )        // #24609 2011.4.12 yyagi\r
1169                                 {\r
1170                                         t項目リストの設定・System();\r
1171                                 }\r
1172                                 else if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iDrumsGoToKeyAssign )                         // #24525 2011.3.15 yyagi\r
1173                                 {\r
1174                                         t項目リストの設定・KeyAssignDrums();\r
1175                                 }\r
1176                                 else if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignDrumsReturnToMenu )         // #24525 2011.3.15 yyagi\r
1177                                 {\r
1178                                         t項目リストの設定・Drums();\r
1179                                 }\r
1180                                 else if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iGuitarGoToKeyAssign )                        // #24525 2011.3.15 yyagi\r
1181                                 {\r
1182                                         t項目リストの設定・KeyAssignGuitar();\r
1183                                 }\r
1184                                 else if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignGuitarReturnToMenu )        // #24525 2011.3.15 yyagi\r
1185                                 {\r
1186                                         t項目リストの設定・Guitar();\r
1187                                 }\r
1188                                 else if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iBassGoToKeyAssign )                          // #24525 2011.3.15 yyagi\r
1189                                 {\r
1190                                         t項目リストの設定・KeyAssignBass();\r
1191                                 }\r
1192                                 else if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignBassReturnToMenu )          // #24525 2011.3.15 yyagi\r
1193                                 {\r
1194                                         t項目リストの設定・Bass();\r
1195                                 }\r
1196                                 #endregion\r
1197                                 #region [ BDGroup #27029 2012.1.4 from ]\r
1198                                 else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemBDGroup )                                       // #27029 2012.1.4 from\r
1199                                 {\r
1200                                         if( this.iSystemBDGroup.n現在選択されている項目番号 == (int) EBDGroup.どっちもBD )\r
1201                                         {\r
1202                                                 // #27029 2012.1.5 from: 変更前の状態をバックアップする。\r
1203                                                 CDTXMania.ConfigIni.BackupOf1BD = new CConfigIni.CBackupOf1BD() {\r
1204                                                         eHHGroup = (EHHGroup) this.iSystemHHGroup.n現在選択されている項目番号,\r
1205                                                         eHitSoundPriorityHH = (E打ち分け時の再生の優先順位) this.iSystemHitSoundPriorityHH.n現在選択されている項目番号,\r
1206                                                 };\r
1207 \r
1208                                                 // HH Group ... HH-0 → HH-2 / HH-1 → HH-3 / HH-2 → 変更なし / HH-3 → 変更なし\r
1209                                                 if( this.iSystemHHGroup.n現在選択されている項目番号 == (int) EHHGroup.全部打ち分ける )\r
1210                                                         this.iSystemHHGroup.n現在選択されている項目番号 = (int) EHHGroup.左シンバルのみ打ち分ける;\r
1211                                                 if( this.iSystemHHGroup.n現在選択されている項目番号 == (int) EHHGroup.ハイハットのみ打ち分ける )\r
1212                                                         this.iSystemHHGroup.n現在選択されている項目番号 = (int) EHHGroup.全部共通;\r
1213 \r
1214                                                 // HH Priority ... C>P → 変更なし / P>C → C>P\r
1215                                                 if( this.iSystemHitSoundPriorityHH.n現在選択されている項目番号 == (int) E打ち分け時の再生の優先順位.PadがChipより優先 )\r
1216                                                         this.iSystemHitSoundPriorityHH.n現在選択されている項目番号 = (int) E打ち分け時の再生の優先順位.ChipがPadより優先;\r
1217                                         }\r
1218                                         else\r
1219                                         {\r
1220                                                 // #27029 2012.1.5 from: 変更前の状態に戻す。\r
1221                                                 this.iSystemHHGroup.n現在選択されている項目番号 = (int) CDTXMania.ConfigIni.BackupOf1BD.eHHGroup;\r
1222                                                 this.iSystemHitSoundPriorityHH.n現在選択されている項目番号 = (int) CDTXMania.ConfigIni.BackupOf1BD.eHitSoundPriorityHH;\r
1223                                                 \r
1224                                                 CDTXMania.ConfigIni.BackupOf1BD = null;\r
1225                                         }\r
1226                                 }\r
1227                                 #endregion\r
1228                                 else if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemUseBoxDefSkin )                        // #28195 2012.5.6 yyagi\r
1229                                 {\r
1230                                         CSkin.bUseBoxDefSkin = this.iSystemUseBoxDefSkin.bON;\r
1231                                 }\r
1232                                 #region [ スキン項目でEnterを押下した場合に限り、スキンの縮小サンプルを生成する。]\r
1233                                 else if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemSkinSubfolder )                        // #28195 2012.5.2 yyagi\r
1234                                 {\r
1235                                         tGenerateSkinSample();\r
1236                                 }\r
1237                                 #endregion\r
1238                         }\r
1239                 }\r
1240 \r
1241                 private void tGenerateSkinSample()\r
1242                 {\r
1243                         nSkinIndex = ( ( CItemList ) this.list項目リスト[ this.n現在の選択項目 ] ).n現在選択されている項目番号;\r
1244                         if ( nSkinSampleIndex != nSkinIndex )\r
1245                         {\r
1246                                 string path = skinSubFolders[ nSkinIndex ];\r
1247                                 path = System.IO.Path.Combine( path, @"Graphics\ScreenTitle background.jpg" );\r
1248                                 Bitmap bmSrc = new Bitmap( path );\r
1249                                 Bitmap bmDest = new Bitmap( bmSrc.Width / 4, bmSrc.Height / 4 );\r
1250                                 Graphics g = Graphics.FromImage( bmDest );\r
1251                                 g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;\r
1252                                 g.DrawImage( bmSrc, new Rectangle( 0, 0, bmSrc.Width / 4, bmSrc.Height / 4 ),\r
1253                                         0, 0, bmSrc.Width, bmSrc.Height, GraphicsUnit.Pixel );\r
1254                                 if ( txSkinSample1 != null )\r
1255                                 {\r
1256                                         CDTXMania.t安全にDisposeする( ref txSkinSample1 );\r
1257                                 }\r
1258                                 txSkinSample1 = CDTXMania.tテクスチャの生成( bmDest, false );\r
1259                                 g.Dispose();\r
1260                                 bmDest.Dispose();\r
1261                                 bmSrc.Dispose();\r
1262                                 nSkinSampleIndex = nSkinIndex;\r
1263                         }\r
1264                 }\r
1265 \r
1266                 #region [ 項目リストの設定 ( Exit, KeyAssignSystem/Drums/Guitar/Bass) ]\r
1267                 public void t項目リストの設定・Exit()\r
1268                 {\r
1269                         this.tConfigIniへ記録する();\r
1270                         this.eメニュー種別 = Eメニュー種別.Unknown;\r
1271                 }\r
1272                 public void t項目リストの設定・KeyAssignSystem()\r
1273                 {\r
1274                         //this.tConfigIniへ記録する();\r
1275                         this.list項目リスト.Clear();\r
1276 \r
1277                         // #27029 2012.1.5 from: 説明文は最大9行→13行に変更。\r
1278 \r
1279                         this.iKeyAssignSystemReturnToMenu = new CItemBase( "<< ReturnTo Menu", CItemBase.Eパネル種別.その他,\r
1280                                 "左側のメニューに戻ります。",\r
1281                                 "Return to left menu." );\r
1282                         this.list項目リスト.Add( this.iKeyAssignSystemReturnToMenu );\r
1283                         this.iKeyAssignSystemCapture = new CItemBase( "Capture",\r
1284                                 "キャプチャキー設定:\n画面キャプチャのキーの割り当てを設\n定します。",\r
1285                                 "Capture key assign:\nTo assign key for screen capture.\n (You can use keyboard only. You can't\nuse pads to capture screenshot." );\r
1286                         this.list項目リスト.Add( this.iKeyAssignSystemCapture );\r
1287 \r
1288                         this.n現在の選択項目 = 0;\r
1289                         this.eメニュー種別 = Eメニュー種別.KeyAssignSystem;\r
1290                 }\r
1291                 public void t項目リストの設定・KeyAssignDrums()\r
1292                 {\r
1293 //                      this.tConfigIniへ記録する();\r
1294                         this.list項目リスト.Clear();\r
1295 \r
1296                         // #27029 2012.1.5 from: 説明文は最大9行→13行に変更。\r
1297 \r
1298                         this.iKeyAssignDrumsReturnToMenu = new CItemBase( "<< ReturnTo Menu", CItemBase.Eパネル種別.その他,\r
1299                                 "左側のメニューに戻ります。",\r
1300                                 "Return to left menu.");\r
1301                         this.list項目リスト.Add(this.iKeyAssignDrumsReturnToMenu);\r
1302                         this.iKeyAssignDrumsLC = new CItemBase( "LeftCymbal",\r
1303                                 "ドラムのキー設定:\n左シンバルへのキーの割り当てを設\n定します。",\r
1304                                 "Drums key assign:\nTo assign key/pads for LeftCymbal\n button.");\r
1305                         this.list項目リスト.Add(this.iKeyAssignDrumsLC);\r
1306                         this.iKeyAssignDrumsHHC = new CItemBase( "HiHat(Close)",\r
1307                                 "ドラムのキー設定:\nハイハット(クローズ)へのキーの割り\n当てを設定します。",\r
1308                                 "Drums key assign:\nTo assign key/pads for HiHat(Close)\n button.");\r
1309                         this.list項目リスト.Add( this.iKeyAssignDrumsHHC );\r
1310                         this.iKeyAssignDrumsHHO = new CItemBase( "HiHat(Open)",\r
1311                                 "ドラムのキー設定:\nハイハット(オープン)へのキーの割り\n当てを設定します。",\r
1312                                 "Drums key assign:\nTo assign key/pads for HiHat(Open)\n button.");\r
1313                         this.list項目リスト.Add(this.iKeyAssignDrumsHHO);\r
1314                         this.iKeyAssignDrumsSD = new CItemBase( "Snare",\r
1315                                 "ドラムのキー設定:\nスネアへのキーの割り当てを設定し\nます。",\r
1316                                 "Drums key assign:\nTo assign key/pads for Snare button.");\r
1317                         this.list項目リスト.Add(this.iKeyAssignDrumsSD);\r
1318                         this.iKeyAssignDrumsBD = new CItemBase( "Bass",\r
1319                                 "ドラムのキー設定:\nバスドラムへのキーの割り当てを設定\nします。",\r
1320                                 "Drums key assign:\nTo assign key/pads for Bass button.");\r
1321                         this.list項目リスト.Add(this.iKeyAssignDrumsBD);\r
1322                         this.iKeyAssignDrumsHT = new CItemBase( "HighTom",\r
1323                                 "ドラムのキー設定:\nハイタムへのキーの割り当てを設定\nします。",\r
1324                                 "Drums key assign:\nTo assign key/pads for HighTom\n button.");\r
1325                         this.list項目リスト.Add(this.iKeyAssignDrumsHT);\r
1326                         this.iKeyAssignDrumsLT = new CItemBase( "LowTom",\r
1327                                 "ドラムのキー設定:\nロータムへのキーの割り当てを設定\nします。",\r
1328                                 "Drums key assign:\nTo assign key/pads for LowTom button.");\r
1329                         this.list項目リスト.Add(this.iKeyAssignDrumsLT);\r
1330                         this.iKeyAssignDrumsFT = new CItemBase( "FloorTom",\r
1331                                 "ドラムのキー設定:\nフロアタムへのキーの割り当てを設\n定します。",\r
1332                                 "Drums key assign:\nTo assign key/pads for FloorTom\n button.");\r
1333                         this.list項目リスト.Add(this.iKeyAssignDrumsFT);\r
1334                         this.iKeyAssignDrumsCY = new CItemBase( "RightCymbal",\r
1335                                 "ドラムのキー設定:\n右シンバルへのキーの割り当てを設\n定します。",\r
1336                                 "Drums key assign:\nTo assign key/pads for RightCymbal\n button.");\r
1337                         this.list項目リスト.Add(this.iKeyAssignDrumsCY);\r
1338                         this.iKeyAssignDrumsRD = new CItemBase( "RideCymbal",\r
1339                                 "ドラムのキー設定:\nライドシンバルへのキーの割り当て\nを設定します。",\r
1340                                 "Drums key assign:\nTo assign key/pads for RideCymbal\n button.");\r
1341                         this.list項目リスト.Add(this.iKeyAssignDrumsRD);\r
1342                         this.iKeyAssignDrumsHP = new CItemBase( "HiHatPedal",                                                                   // #27029 2012.1.4 from\r
1343                                 "ドラムのキー設定:\nハイハットのフットペダルへのキーの\n割り当てを設定します。",  //\r
1344                                 "Drums key assign:\nTo assign key/pads for HiHatPedal\n button." );                                     //\r
1345                         this.list項目リスト.Add( this.iKeyAssignDrumsHP );                                                                         //\r
1346                         this.n現在の選択項目 = 0;\r
1347                         this.eメニュー種別 = Eメニュー種別.KeyAssignDrums;\r
1348                 }\r
1349                 public void t項目リストの設定・KeyAssignGuitar()\r
1350                 {\r
1351 //                      this.tConfigIniへ記録する();\r
1352                         this.list項目リスト.Clear();\r
1353 \r
1354                         // #27029 2012.1.5 from: 説明文は最大9行→13行に変更。\r
1355 \r
1356                         this.iKeyAssignGuitarReturnToMenu = new CItemBase( "<< ReturnTo Menu", CItemBase.Eパネル種別.その他,\r
1357                                 "左側のメニューに戻ります。",\r
1358                                 "Return to left menu.");\r
1359                         this.list項目リスト.Add(this.iKeyAssignGuitarReturnToMenu);\r
1360                         this.iKeyAssignGuitarR = new CItemBase( "R",\r
1361                                 "ギターのキー設定:\nRボタンへのキーの割り当てを設定し\nます。",\r
1362                                 "Guitar key assign:\nTo assign key/pads for R button.");\r
1363                         this.list項目リスト.Add(this.iKeyAssignGuitarR);\r
1364                         this.iKeyAssignGuitarG = new CItemBase( "G",\r
1365                                 "ギターのキー設定:\nGボタンへのキーの割り当てを設定し\nます。",\r
1366                                 "Guitar key assign:\nTo assign key/pads for G button.");\r
1367                         this.list項目リスト.Add(this.iKeyAssignGuitarG);\r
1368                         this.iKeyAssignGuitarB = new CItemBase( "B",\r
1369                                 "ギターのキー設定:\nBボタンへのキーの割り当てを設定し\nます。",\r
1370                                 "Guitar key assign:\nTo assign key/pads for B button.");\r
1371                         this.list項目リスト.Add(this.iKeyAssignGuitarB);\r
1372                         this.iKeyAssignGuitarPick = new CItemBase( "Pick",\r
1373                                 "ギターのキー設定:\nピックボタンへのキーの割り当てを設\n定します。",\r
1374                                 "Guitar key assign:\nTo assign key/pads for Pick button.");\r
1375                         this.list項目リスト.Add(this.iKeyAssignGuitarPick);\r
1376                         this.iKeyAssignGuitarWail = new CItemBase( "Wailing",\r
1377                                 "ギターのキー設定:\nWailingボタンへのキーの割り当てを\n設定します。",\r
1378                                 "Guitar key assign:\nTo assign key/pads for Wailing button.");\r
1379                         this.list項目リスト.Add(this.iKeyAssignGuitarWail);\r
1380                         this.iKeyAssignGuitarDecide = new CItemBase( "Decide",\r
1381                                 "ギターのキー設定:\n決定ボタンへのキーの割り当てを設\n定します。",\r
1382                                 "Guitar key assign:\nTo assign key/pads for Decide button.");\r
1383                         this.list項目リスト.Add(this.iKeyAssignGuitarDecide);\r
1384                         this.iKeyAssignGuitarCancel = new CItemBase( "Cancel",\r
1385                                 "ギターのキー設定:\nキャンセルボタンへのキーの割り当\nてを設定します。",\r
1386                                 "Guitar key assign:\nTo assign key/pads for Cancel button.");\r
1387                         this.list項目リスト.Add(this.iKeyAssignGuitarCancel);\r
1388                         this.n現在の選択項目 = 0;\r
1389                         this.eメニュー種別 = Eメニュー種別.KeyAssignGuitar;\r
1390                 }\r
1391                 public void t項目リストの設定・KeyAssignBass()\r
1392                 {\r
1393 //                      this.tConfigIniへ記録する();\r
1394                         this.list項目リスト.Clear();\r
1395 \r
1396                         // #27029 2012.1.5 from: 説明文は最大9行→13行に変更。\r
1397 \r
1398                         this.iKeyAssignBassReturnToMenu = new CItemBase( "<< ReturnTo Menu", CItemBase.Eパネル種別.その他,\r
1399                                 "左側のメニューに戻ります。",\r
1400                                 "Return to left menu." );\r
1401                         this.list項目リスト.Add( this.iKeyAssignBassReturnToMenu );\r
1402                         this.iKeyAssignBassR = new CItemBase( "R",\r
1403                                 "ベースのキー設定:\nRボタンへのキーの割り当てを設定し\nます。",\r
1404                                 "Bass key assign:\nTo assign key/pads for R button." );\r
1405                         this.list項目リスト.Add( this.iKeyAssignBassR );\r
1406                         this.iKeyAssignBassG = new CItemBase( "G",\r
1407                                 "ベースのキー設定:\nGボタンへのキーの割り当てを設定し\nます。",\r
1408                                 "Bass key assign:\nTo assign key/pads for G button." );\r
1409                         this.list項目リスト.Add( this.iKeyAssignBassG );\r
1410                         this.iKeyAssignBassB = new CItemBase( "B",\r
1411                                 "ベースのキー設定:\nBボタンへのキーの割り当てを設定し\nます。",\r
1412                                 "Bass key assign:\nTo assign key/pads for B button." );\r
1413                         this.list項目リスト.Add( this.iKeyAssignBassB );\r
1414                         this.iKeyAssignBassPick = new CItemBase( "Pick",\r
1415                                 "ベースのキー設定:\nピックボタンへのキーの割り当てを設\n定します。",\r
1416                                 "Bass key assign:\nTo assign key/pads for Pick button." );\r
1417                         this.list項目リスト.Add( this.iKeyAssignBassPick );\r
1418                         this.iKeyAssignBassWail = new CItemBase( "Wailing",\r
1419                                 "ベースのキー設定:\nWailingボタンへのキーの割り当てを設\n定します。",\r
1420                                 "Bass key assign:\nTo assign key/pads for Wailing button." );\r
1421                         this.list項目リスト.Add( this.iKeyAssignBassWail );\r
1422                         this.iKeyAssignBassDecide = new CItemBase( "Decide",\r
1423                                 "ベースのキー設定:\n決定ボタンへのキーの割り当てを設\n定します。",\r
1424                                 "Bass key assign:\nTo assign key/pads for Decide button." );\r
1425                         this.list項目リスト.Add( this.iKeyAssignBassDecide );\r
1426                         this.iKeyAssignBassCancel = new CItemBase( "Cancel",\r
1427                                 "ベースのキー設定:\nキャンセルボタンへのキーの割り当\nてを設定します。",\r
1428                                 "Bass key assign:\nTo assign key/pads for Cancel button." );\r
1429                         this.list項目リスト.Add( this.iKeyAssignBassCancel );\r
1430                         this.n現在の選択項目 = 0;\r
1431                         this.eメニュー種別 = Eメニュー種別.KeyAssignBass;\r
1432                 }\r
1433                 #endregion\r
1434                 public void t次に移動()\r
1435                 {\r
1436                         CDTXMania.Skin.soundカーソル移動音.t再生する();\r
1437                         if( this.b要素値にフォーカス中 )\r
1438                         {\r
1439                                 this.list項目リスト[ this.n現在の選択項目 ].t項目値を前へ移動();\r
1440                         }\r
1441                         else\r
1442                         {\r
1443                                 this.n目標のスクロールカウンタ += 100;\r
1444                         }\r
1445                 }\r
1446                 public void t前に移動()\r
1447                 {\r
1448                         CDTXMania.Skin.soundカーソル移動音.t再生する();\r
1449                         if( this.b要素値にフォーカス中 )\r
1450                         {\r
1451                                 this.list項目リスト[ this.n現在の選択項目 ].t項目値を次へ移動();\r
1452                         }\r
1453                         else\r
1454                         {\r
1455                                 this.n目標のスクロールカウンタ -= 100;\r
1456                         }\r
1457                 }\r
1458 \r
1459 \r
1460                 // CActivity 実装\r
1461 \r
1462                 public override void On活性化()\r
1463                 {\r
1464                         if( this.b活性化してる )\r
1465                                 return;\r
1466 \r
1467                         this.list項目リスト = new List<CItemBase>();\r
1468                         this.eメニュー種別 = Eメニュー種別.Unknown;\r
1469 \r
1470                         #region [ スキン選択肢と、現在選択中のスキン(index)の準備 #28195 2012.5.2 yyagi ]\r
1471                         int ns = ( CDTXMania.Skin.strSystemSkinSubfolders == null ) ? 0 : CDTXMania.Skin.strSystemSkinSubfolders.Length;\r
1472                         int nb = ( CDTXMania.Skin.strBoxDefSkinSubfolders == null ) ? 0 : CDTXMania.Skin.strBoxDefSkinSubfolders.Length;\r
1473                         skinSubFolders = new string[ ns + nb ];\r
1474                         for ( int i = 0; i < ns; i++ )\r
1475                         {\r
1476                                 skinSubFolders[ i ] = CDTXMania.Skin.strSystemSkinSubfolders[ i ];\r
1477                         }\r
1478                         for ( int i = 0; i < nb; i++ )\r
1479                         {\r
1480                                 skinSubFolders[ ns + i ] = CDTXMania.Skin.strBoxDefSkinSubfolders[ i ];\r
1481                         }\r
1482                         skinSubFolder_org = CDTXMania.Skin.GetCurrentSkinSubfolderFullName( true );\r
1483                         Array.Sort( skinSubFolders );\r
1484                         skinNames = CSkin.GetSkinName( skinSubFolders );\r
1485                         nSkinIndex = Array.BinarySearch( skinSubFolders, skinSubFolder_org );\r
1486                         if ( nSkinIndex < 0 )   // 念のため\r
1487                         {\r
1488                                 nSkinIndex = 0;\r
1489                         }\r
1490                         nSkinSampleIndex = -1;\r
1491                         #endregion\r
1492 \r
1493                         this.t項目リストの設定・Bass();                // #27795 2012.3.11 yyagi; System設定の中でDrumsの設定を参照しているため、\r
1494                         this.t項目リストの設定・Guitar();      // 活性化の時点でDrumsの設定も入れ込んでおかないと、System設定中に例外発生することがある。\r
1495                         this.t項目リストの設定・Drums();       // \r
1496                         this.t項目リストの設定・System();      // 順番として、最後にSystemを持ってくること。設定一覧の初期位置がSystemのため。\r
1497                         this.b要素値にフォーカス中 = false;\r
1498                         this.n目標のスクロールカウンタ = 0;\r
1499                         this.n現在のスクロールカウンタ = 0;\r
1500                         this.nスクロール用タイマ値 = -1;\r
1501                         this.ct三角矢印アニメ = new CCounter();\r
1502 \r
1503                         this.iSystemSoundType_initial                   = this.iSystemSoundType.n現在選択されている項目番号;       // CONFIGに入ったときの値を保持しておく\r
1504                         // this.iSystemWASAPIBufferSizeMs_initial       = this.iSystemWASAPIBufferSizeMs.n現在の値;                         // CONFIG脱出時にこの値から変更されているようなら\r
1505                         // this.iSystemASIOBufferSizeMs_initial = this.iSystemASIOBufferSizeMs.n現在の値;                           // サウンドデバイスを再構築する\r
1506                         this.iSystemASIODevice_initial                  = this.iSystemASIODevice.n現在選択されている項目番号;      //\r
1507                         base.On活性化();\r
1508                 }\r
1509                 public override void On非活性化()\r
1510                 {\r
1511                         if( this.b活性化してない )\r
1512                                 return;\r
1513 \r
1514                         this.tConfigIniへ記録する();\r
1515                         this.list項目リスト.Clear();\r
1516                         this.ct三角矢印アニメ = null;\r
1517                         \r
1518                         base.On非活性化();\r
1519                         #region [ Skin変更 ]\r
1520                         if ( CDTXMania.Skin.GetCurrentSkinSubfolderFullName( true ) != this.skinSubFolder_org )\r
1521                         {\r
1522                                 CDTXMania.stageChangeSkin.tChangeSkinMain();    // #28195 2012.6.11 yyagi CONFIG脱出時にSkin更新\r
1523                         }\r
1524                         #endregion\r
1525 \r
1526                         // #24820 2013.1.22 yyagi CONFIGでWASAPI/ASIO/DirectSound関連の設定を変更した場合、サウンドデバイスを再構築する。\r
1527                         #region [ サウンドデバイス変更 ]\r
1528                         if ( this.iSystemSoundType_initial != this.iSystemSoundType.n現在選択されている項目番号 ||\r
1529                                 // this.iSystemWASAPIBufferSizeMs_initial != this.iSystemWASAPIBufferSizeMs.n現在の値 ||\r
1530                                 // this.iSystemASIOBufferSizeMs_initial != this.iSystemASIOBufferSizeMs.n現在の値 ||\r
1531                                 this.iSystemASIODevice_initial != this.iSystemASIODevice.n現在選択されている項目番号 )\r
1532                         {\r
1533                                 ESoundDeviceType soundDeviceType;\r
1534                                 switch ( this.iSystemSoundType.n現在選択されている項目番号 )\r
1535                                 {\r
1536                                         case 0:\r
1537                                                 soundDeviceType = ESoundDeviceType.DirectSound;\r
1538                                                 break;\r
1539                                         case 1:\r
1540                                                 soundDeviceType = ESoundDeviceType.ASIO;\r
1541                                                 break;\r
1542                                         case 2:\r
1543                                                 soundDeviceType = ESoundDeviceType.ExclusiveWASAPI;\r
1544                                                 break;\r
1545                                         default:\r
1546                                                 soundDeviceType = ESoundDeviceType.Unknown;\r
1547                                                 break;\r
1548                                 }\r
1549 \r
1550                                 FDK.CSound管理.t初期化( soundDeviceType,\r
1551                                                                                 0,\r
1552                                                                                 // this.iSystemWASAPIBufferSizeMs.n現在の値,\r
1553                                                                                 0,\r
1554                                                                                 // this.iSystemASIOBufferSizeMs.n現在の値,\r
1555                                                                                 this.iSystemASIODevice.n現在選択されている項目番号 );\r
1556                                 CDTXMania.app.AddSoundTypeToWindowTitle();\r
1557                         }\r
1558                         #endregion\r
1559                         #region [ サウンドのタイムストレッチモード変更 ]\r
1560                         FDK.CSound管理.bIsTimeStretch = this.iSystemTimeStretch.bON;\r
1561                         #endregion\r
1562                 }\r
1563                 public override void OnManagedリソースの作成()\r
1564                 {\r
1565                         if( this.b活性化してない )\r
1566                                 return;\r
1567 \r
1568                         this.tx通常項目行パネル = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenConfig itembox.png" ), false );\r
1569                         this.txその他項目行パネル = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenConfig itembox other.png" ), false );\r
1570                         this.tx三角矢印 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenConfig triangle arrow.png" ), false );\r
1571                         this.txSkinSample1 = null;              // スキン選択時に動的に設定するため、ここでは初期化しない\r
1572                         base.OnManagedリソースの作成();\r
1573                 }\r
1574                 public override void OnManagedリソースの解放()\r
1575                 {\r
1576                         if( this.b活性化してない )\r
1577                                 return;\r
1578 \r
1579                         CDTXMania.tテクスチャの解放( ref this.txSkinSample1 );\r
1580                         CDTXMania.tテクスチャの解放( ref this.tx通常項目行パネル );\r
1581                         CDTXMania.tテクスチャの解放( ref this.txその他項目行パネル );\r
1582                         CDTXMania.tテクスチャの解放( ref this.tx三角矢印 );\r
1583                 \r
1584                         base.OnManagedリソースの解放();\r
1585                 }\r
1586                 public override int On進行描画()\r
1587                 {\r
1588                         throw new InvalidOperationException( "t進行描画(bool)のほうを使用してください。" );\r
1589                 }\r
1590                 public int t進行描画( bool b項目リスト側にフォーカスがある )\r
1591                 {\r
1592                         if( this.b活性化してない )\r
1593                                 return 0;\r
1594 \r
1595                         // 進行\r
1596 \r
1597                         #region [ 初めての進行描画 ]\r
1598                         //-----------------\r
1599                         if( base.b初めての進行描画 )\r
1600                         {\r
1601                 this.nスクロール用タイマ値 = CSound管理.rc演奏用タイマ.n現在時刻;\r
1602                                 this.ct三角矢印アニメ.t開始( 0, 9, 50, CDTXMania.Timer );\r
1603                         \r
1604                                 base.b初めての進行描画 = false;\r
1605                         }\r
1606                         //-----------------\r
1607                         #endregion\r
1608 \r
1609                         this.b項目リスト側にフォーカスがある = b項目リスト側にフォーカスがある;           // 記憶\r
1610 \r
1611                         #region [ 項目スクロールの進行 ]\r
1612                         //-----------------\r
1613                         long n現在時刻 = CDTXMania.Timer.n現在時刻;\r
1614                         if( n現在時刻 < this.nスクロール用タイマ値 ) this.nスクロール用タイマ値 = n現在時刻;\r
1615 \r
1616                         const int INTERVAL = 2; // [ms]\r
1617                         while( ( n現在時刻 - this.nスクロール用タイマ値 ) >= INTERVAL )\r
1618                         {\r
1619                                 int n目標項目までのスクロール量 = Math.Abs( (int) ( this.n目標のスクロールカウンタ - this.n現在のスクロールカウンタ ) );\r
1620                                 int n加速度 = 0;\r
1621 \r
1622                                 #region [ n加速度の決定;目標まで遠いほど加速する。]\r
1623                                 //-----------------\r
1624                                 if( n目標項目までのスクロール量 <= 100 )\r
1625                                 {\r
1626                                         n加速度 = 2;\r
1627                                 }\r
1628                                 else if( n目標項目までのスクロール量 <= 300 )\r
1629                                 {\r
1630                                         n加速度 = 3;\r
1631                                 }\r
1632                                 else if( n目標項目までのスクロール量 <= 500 )\r
1633                                 {\r
1634                                         n加速度 = 4;\r
1635                                 }\r
1636                                 else\r
1637                                 {\r
1638                                         n加速度 = 8;\r
1639                                 }\r
1640                                 //-----------------\r
1641                                 #endregion\r
1642                                 #region [ this.n現在のスクロールカウンタに n加速度 を加減算。]\r
1643                                 //-----------------\r
1644                                 if( this.n現在のスクロールカウンタ < this.n目標のスクロールカウンタ )\r
1645                                 {\r
1646                                         this.n現在のスクロールカウンタ += n加速度;\r
1647                                         if( this.n現在のスクロールカウンタ > this.n目標のスクロールカウンタ )\r
1648                                         {\r
1649                                                 // 目標を超えたら目標値で停止。\r
1650                                                 this.n現在のスクロールカウンタ = this.n目標のスクロールカウンタ;\r
1651                                         }\r
1652                                 }\r
1653                                 else if( this.n現在のスクロールカウンタ > this.n目標のスクロールカウンタ )\r
1654                                 {\r
1655                                         this.n現在のスクロールカウンタ -= n加速度;\r
1656                                         if( this.n現在のスクロールカウンタ < this.n目標のスクロールカウンタ )\r
1657                                         {\r
1658                                                 // 目標を超えたら目標値で停止。\r
1659                                                 this.n現在のスクロールカウンタ = this.n目標のスクロールカウンタ;\r
1660                                         }\r
1661                                 }\r
1662                                 //-----------------\r
1663                                 #endregion\r
1664                                 #region [ 行超え処理、ならびに目標位置に到達したらスクロールを停止して項目変更通知を発行。]\r
1665                                 //-----------------\r
1666                                 if( this.n現在のスクロールカウンタ >= 100 )\r
1667                                 {\r
1668                                         this.n現在の選択項目 = this.t次の項目( this.n現在の選択項目 );\r
1669                                         this.n現在のスクロールカウンタ -= 100;\r
1670                                         this.n目標のスクロールカウンタ -= 100;\r
1671                                         if( this.n目標のスクロールカウンタ == 0 )\r
1672                                         {\r
1673                                                 CDTXMania.stageコンフィグ.t項目変更通知();\r
1674                                         }\r
1675                                 }\r
1676                                 else if( this.n現在のスクロールカウンタ <= -100 )\r
1677                                 {\r
1678                                         this.n現在の選択項目 = this.t前の項目( this.n現在の選択項目 );\r
1679                                         this.n現在のスクロールカウンタ += 100;\r
1680                                         this.n目標のスクロールカウンタ += 100;\r
1681                                         if( this.n目標のスクロールカウンタ == 0 )\r
1682                                         {\r
1683                                                 CDTXMania.stageコンフィグ.t項目変更通知();\r
1684                                         }\r
1685                                 }\r
1686                                 //-----------------\r
1687                                 #endregion\r
1688 \r
1689                                 this.nスクロール用タイマ値 += INTERVAL;\r
1690                         }\r
1691                         //-----------------\r
1692                         #endregion\r
1693                         \r
1694                         #region [ ▲印アニメの進行 ]\r
1695                         //-----------------\r
1696                         if( this.b項目リスト側にフォーカスがある && ( this.n目標のスクロールカウンタ == 0 ) )\r
1697                                 this.ct三角矢印アニメ.t進行Loop();\r
1698                         //-----------------\r
1699                         #endregion\r
1700 \r
1701 \r
1702                         // 描画\r
1703 \r
1704                         this.ptパネルの基本座標[ 4 ].X = this.b項目リスト側にフォーカスがある ? 276 : 301;               // メニューにフォーカスがあるなら、項目リストの中央は頭を出さない。\r
1705 \r
1706                         #region [ 計11個の項目パネルを描画する。]\r
1707                         //-----------------\r
1708                         int nItem = this.n現在の選択項目;\r
1709                         for( int i = 0; i < 4; i++ )\r
1710                                 nItem = this.t前の項目( nItem );\r
1711 \r
1712                         for( int n行番号 = -4; n行番号 < 6; n行番号++ )                // n行番号 == 0 がフォーカスされている項目パネル。\r
1713                         {\r
1714                                 #region [ 今まさに画面外に飛びだそうとしている項目パネルは描画しない。]\r
1715                                 //-----------------\r
1716                                 if( ( ( n行番号 == -4 ) && ( this.n現在のスクロールカウンタ > 0 ) ) ||           // 上に飛び出そうとしている\r
1717                                         ( ( n行番号 == +5 ) && ( this.n現在のスクロールカウンタ < 0 ) ) )                // 下に飛び出そうとしている\r
1718                                 {\r
1719                                         nItem = this.t次の項目( nItem );\r
1720                                         continue;\r
1721                                 }\r
1722                                 //-----------------\r
1723                                 #endregion\r
1724 \r
1725                                 int n移動元の行の基本位置 = n行番号 + 4;\r
1726                                 int n移動先の行の基本位置 = ( this.n現在のスクロールカウンタ <= 0 ) ? ( ( n移動元の行の基本位置 + 1 ) % 10 ) : ( ( ( n移動元の行の基本位置 - 1 ) + 10 ) % 10 );\r
1727                                 int x = this.ptパネルの基本座標[ n移動元の行の基本位置 ].X + ( (int) ( ( this.ptパネルの基本座標[ n移動先の行の基本位置 ].X - this.ptパネルの基本座標[ n移動元の行の基本位置 ].X ) * ( ( (double) Math.Abs( this.n現在のスクロールカウンタ ) ) / 100.0 ) ) );\r
1728                                 int y = this.ptパネルの基本座標[ n移動元の行の基本位置 ].Y + ( (int) ( ( this.ptパネルの基本座標[ n移動先の行の基本位置 ].Y - this.ptパネルの基本座標[ n移動元の行の基本位置 ].Y ) * ( ( (double) Math.Abs( this.n現在のスクロールカウンタ ) ) / 100.0 ) ) );\r
1729 \r
1730                                 #region [ 現在の行の項目パネル枠を描画。]\r
1731                                 //-----------------\r
1732                                 switch( this.list項目リスト[ nItem ].eパネル種別 )\r
1733                                 {\r
1734                                         case CItemBase.Eパネル種別.通常:\r
1735                                                 if( this.tx通常項目行パネル != null )\r
1736                                                         this.tx通常項目行パネル.t2D描画( CDTXMania.app.Device, x, y );\r
1737                                                 break;\r
1738 \r
1739                                         case CItemBase.Eパネル種別.その他:\r
1740                                                 if( this.txその他項目行パネル != null )\r
1741                                                         this.txその他項目行パネル.t2D描画( CDTXMania.app.Device, x, y );\r
1742                                                 break;\r
1743                                 }\r
1744                                 //-----------------\r
1745                                 #endregion\r
1746                                 #region [ 現在の行の項目名を描画。]\r
1747                                 //-----------------\r
1748                                 CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 0x12, y + 12, this.list項目リスト[ nItem ].str項目名 );\r
1749                                 //-----------------\r
1750                                 #endregion\r
1751                                 #region [ 現在の行の項目の要素を描画。]\r
1752                                 //-----------------\r
1753                                 switch( this.list項目リスト[ nItem ].e種別 )\r
1754                                 {\r
1755                                         case CItemBase.E種別.ONorOFFトグル:\r
1756                                                 #region [ *** ]\r
1757                                                 //-----------------\r
1758                                                 CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, ( (CItemToggle) this.list項目リスト[ nItem ] ).bON ? "ON" : "OFF" );\r
1759                                                 break;\r
1760                                                 //-----------------\r
1761                                                 #endregion\r
1762 \r
1763                                         case CItemBase.E種別.ONorOFFor不定スリーステート:\r
1764                                                 #region [ *** ]\r
1765                                                 //-----------------\r
1766                                                 switch( ( (CItemThreeState) this.list項目リスト[ nItem ] ).e現在の状態 )\r
1767                                                 {\r
1768                                                         case CItemThreeState.E状態.ON:\r
1769                                                                 CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, "ON" );\r
1770                                                                 break;\r
1771 \r
1772                                                         case CItemThreeState.E状態.不定:\r
1773                                                                 CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, "- -" );\r
1774                                                                 break;\r
1775 \r
1776                                                         default:\r
1777                                                                 CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, "OFF" );\r
1778                                                                 break;\r
1779                                                 }\r
1780                                                 break;\r
1781                                                 //-----------------\r
1782                                                 #endregion\r
1783 \r
1784                                         case CItemBase.E種別.整数:          // #24789 2011.4.8 yyagi: add PlaySpeed supports (copied them from OPTION)\r
1785                                                 #region [ *** ]\r
1786                                                 //-----------------\r
1787                                                 if( this.list項目リスト[ nItem ] == this.iCommonPlaySpeed )\r
1788                                                 {\r
1789                                                         double d = ( (double) ( (CItemInteger) this.list項目リスト[ nItem ] ).n現在の値 ) / 20.0;\r
1790                                                         CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, d.ToString( "0.000" ), ( n行番号 == 0 ) && this.b要素値にフォーカス中 );\r
1791                                                 }\r
1792                                                 else if( this.list項目リスト[ nItem ] == this.iDrumsScrollSpeed || this.list項目リスト[ nItem ] == this.iGuitarScrollSpeed || this.list項目リスト[ nItem ] == this.iBassScrollSpeed )\r
1793                                                 {\r
1794                                                         float f = ( ( (CItemInteger) this.list項目リスト[ nItem ] ).n現在の値 + 1 ) * 0.5f;\r
1795                                                         CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, f.ToString( "x0.0" ), ( n行番号 == 0 ) && this.b要素値にフォーカス中 );\r
1796                                                 }\r
1797                                                 else\r
1798                                                 {\r
1799                                                         CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, ( (CItemInteger) this.list項目リスト[ nItem ] ).n現在の値.ToString(), ( n行番号 == 0 ) && this.b要素値にフォーカス中 );\r
1800                                                 }\r
1801                                                 break;\r
1802                                                 //-----------------\r
1803                                                 #endregion\r
1804 \r
1805                                         case CItemBase.E種別.リスト:       // #28195 2012.5.2 yyagi: add Skin supports\r
1806                                                 #region [ *** ]\r
1807                                                 //-----------------\r
1808                                                 {\r
1809                                                         CItemList list = (CItemList) this.list項目リスト[ nItem ];\r
1810                                                         CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, list.list項目値[ list.n現在選択されている項目番号 ] );\r
1811 \r
1812                                                         #region [ 必要な場合に、Skinのサンプルを生成・描画する。#28195 2012.5.2 yyagi ]\r
1813                                                         if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemSkinSubfolder )\r
1814                                                         {\r
1815                                                                 tGenerateSkinSample();          // 最初にSkinの選択肢にきたとき(Enterを押す前)に限り、サンプル生成が発生する。\r
1816                                                                 if ( txSkinSample1 != null )\r
1817                                                                 {\r
1818                                                                         txSkinSample1.t2D描画( CDTXMania.app.Device, 56, 300 );\r
1819                                                                 }\r
1820                                                         }\r
1821                                                         #endregion\r
1822                                                         break;\r
1823                                                 }\r
1824                                                 //-----------------\r
1825                                                 #endregion\r
1826                                 }\r
1827                                 //-----------------\r
1828                                 #endregion\r
1829                                 \r
1830                                 nItem = this.t次の項目( nItem );\r
1831                         }\r
1832                         //-----------------\r
1833                         #endregion\r
1834                         \r
1835                         #region [ 項目リストにフォーカスがあって、かつスクロールが停止しているなら、パネルの上下に▲印を描画する。]\r
1836                         //-----------------\r
1837                         if( this.b項目リスト側にフォーカスがある && ( this.n目標のスクロールカウンタ == 0 ) )\r
1838                         {\r
1839                                 int x;\r
1840                                 int y_upper;\r
1841                                 int y_lower;\r
1842                         \r
1843                                 // 位置決定。\r
1844 \r
1845                                 if( this.b要素値にフォーカス中 )\r
1846                                 {\r
1847                                         x = 528;        // 要素値の上下あたり。\r
1848                                         y_upper = 198 - this.ct三角矢印アニメ.n現在の値;\r
1849                                         y_lower = 242 + this.ct三角矢印アニメ.n現在の値;\r
1850                                 }\r
1851                                 else\r
1852                                 {\r
1853                                         x = 276;        // 項目名の上下あたり。\r
1854                                         y_upper = 186 - this.ct三角矢印アニメ.n現在の値;\r
1855                                         y_lower = 254 + this.ct三角矢印アニメ.n現在の値;\r
1856                                 }\r
1857 \r
1858                                 // 描画。\r
1859                                 \r
1860                                 if( this.tx三角矢印 != null )\r
1861                                 {\r
1862                                         this.tx三角矢印.t2D描画( CDTXMania.app.Device, x, y_upper, new Rectangle( 0, 0, 32, 16 ) );\r
1863                                         this.tx三角矢印.t2D描画( CDTXMania.app.Device, x, y_lower, new Rectangle( 0, 16, 32, 16 ) );\r
1864                                 }\r
1865                         }\r
1866                         //-----------------\r
1867                         #endregion\r
1868                         return 0;\r
1869                 }\r
1870         \r
1871 \r
1872                 // その他\r
1873 \r
1874                 #region [ private ]\r
1875                 //-----------------\r
1876                 private enum Eメニュー種別\r
1877                 {\r
1878                         System,\r
1879                         Drums,\r
1880                         Guitar,\r
1881                         Bass,\r
1882                         KeyAssignSystem,                // #24609 2011.4.12 yyagi: 画面キャプチャキーのアサイン\r
1883                         KeyAssignDrums,\r
1884                         KeyAssignGuitar,\r
1885                         KeyAssignBass,\r
1886                         Unknown\r
1887 \r
1888                 }\r
1889 \r
1890                 private bool b項目リスト側にフォーカスがある;\r
1891                 private bool b要素値にフォーカス中;\r
1892                 private CCounter ct三角矢印アニメ;\r
1893                 private Eメニュー種別 eメニュー種別;\r
1894                 private CItemBase iKeyAssignSystemCapture;                      // #24609\r
1895                 private CItemBase iKeyAssignSystemReturnToMenu;         // #24609\r
1896                 private CItemBase iKeyAssignBassB;\r
1897                 private CItemBase iKeyAssignBassCancel;\r
1898                 private CItemBase iKeyAssignBassDecide;\r
1899                 private CItemBase iKeyAssignBassG;\r
1900                 private CItemBase iKeyAssignBassPick;\r
1901                 private CItemBase iKeyAssignBassR;\r
1902                 private CItemBase iKeyAssignBassReturnToMenu;\r
1903                 private CItemBase iKeyAssignBassWail;\r
1904                 private CItemBase iKeyAssignDrumsBD;\r
1905                 private CItemBase iKeyAssignDrumsCY;\r
1906                 private CItemBase iKeyAssignDrumsFT;\r
1907                 private CItemBase iKeyAssignDrumsHHC;\r
1908                 private CItemBase iKeyAssignDrumsHHO;\r
1909                 private CItemBase iKeyAssignDrumsHT;\r
1910                 private CItemBase iKeyAssignDrumsLC;\r
1911                 private CItemBase iKeyAssignDrumsLT;\r
1912                 private CItemBase iKeyAssignDrumsRD;\r
1913                 private CItemBase iKeyAssignDrumsReturnToMenu;\r
1914                 private CItemBase iKeyAssignDrumsSD;\r
1915                 private CItemBase iKeyAssignDrumsHP;    // #27029 2012.1.4 from\r
1916                 private CItemBase iKeyAssignGuitarB;\r
1917                 private CItemBase iKeyAssignGuitarCancel;\r
1918                 private CItemBase iKeyAssignGuitarDecide;\r
1919                 private CItemBase iKeyAssignGuitarG;\r
1920                 private CItemBase iKeyAssignGuitarPick;\r
1921                 private CItemBase iKeyAssignGuitarR;\r
1922                 private CItemBase iKeyAssignGuitarReturnToMenu;\r
1923                 private CItemBase iKeyAssignGuitarWail;\r
1924                 private CItemToggle iLogOutputLog;\r
1925                 private CItemToggle iSystemAdjustWaves;\r
1926                 private CItemToggle iSystemAudienceSound;\r
1927                 private CItemInteger iSystemAutoChipVolume;\r
1928                 private CItemToggle iSystemAVI;\r
1929                 private CItemToggle iSystemBGA;\r
1930 //              private CItemToggle iSystemGraph; #24074 2011.01.23 comment-out ikanick オプション(Drums)へ移行\r
1931                 private CItemInteger iSystemBGAlpha;\r
1932                 private CItemToggle iSystemBGMSound;\r
1933                 private CItemInteger iSystemChipVolume;\r
1934                 private CItemList iSystemCYGroup;\r
1935                 private CItemToggle iSystemCymbalFree;\r
1936                 private CItemList iSystemDamageLevel;\r
1937                 private CItemToggle iSystemDebugInfo;\r
1938 //              private CItemToggle iSystemDrums;\r
1939                 private CItemToggle iSystemFillIn;\r
1940                 private CItemList iSystemFTGroup;\r
1941                 private CItemToggle iSystemFullscreen;\r
1942 //              private CItemToggle iSystemGuitar;\r
1943                 private CItemList iSystemHHGroup;\r
1944                 private CItemList iSystemBDGroup;               // #27029 2012.1.4 from\r
1945                 private CItemToggle iSystemHitSound;\r
1946                 private CItemList iSystemHitSoundPriorityCY;\r
1947                 private CItemList iSystemHitSoundPriorityFT;\r
1948                 private CItemList iSystemHitSoundPriorityHH;\r
1949                 private CItemInteger iSystemMinComboBass;\r
1950                 private CItemInteger iSystemMinComboDrums;\r
1951                 private CItemInteger iSystemMinComboGuitar;\r
1952                 private CItemInteger iSystemPreviewImageWait;\r
1953                 private CItemInteger iSystemPreviewSoundWait;\r
1954                 private CItemToggle iSystemRandomFromSubBox;\r
1955                 private CItemBase iSystemReturnToMenu;\r
1956                 private CItemToggle iSystemSaveScore;\r
1957                 private CItemToggle iSystemSoundMonitorBass;\r
1958                 private CItemToggle iSystemSoundMonitorDrums;\r
1959                 private CItemToggle iSystemSoundMonitorGuitar;\r
1960                 private CItemToggle iSystemStageFailed;\r
1961                 private CItemToggle iSystemStoicMode;\r
1962                 private CItemToggle iSystemVSyncWait;\r
1963                 private CItemList       iSystemShowLag;                                 // #25370 2011.6.3 yyagi\r
1964                 private CItemToggle iSystemAutoResultCapture;           // #25399 2011.6.9 yyagi\r
1965                 private CItemToggle iSystemBufferedInput;\r
1966                 private CItemInteger iSystemRisky;                                      // #23559 2011.7.27 yyagi\r
1967                 private CItemList iSystemSoundType;                                     // #24820 2013.1.3 yyagi\r
1968 //              private CItemInteger iSystemWASAPIBufferSizeMs;         // #24820 2013.1.15 yyagi\r
1969 //              private CItemInteger iSystemASIOBufferSizeMs;           // #24820 2013.1.3 yyagi\r
1970                 private CItemList       iSystemASIODevice;                              // #24820 2013.1.17 yyagi\r
1971 \r
1972                 private int iSystemSoundType_initial;\r
1973 //              private int iSystemWASAPIBufferSizeMs_initial;\r
1974 //              private int iSystemASIOBufferSizeMs_initial;\r
1975                 private int iSystemASIODevice_initial;\r
1976 \r
1977                 private CItemToggle iSystemTimeStretch;                         // #23664 2013.2.24 yyagi\r
1978 \r
1979 \r
1980                 private List<CItemBase> list項目リスト;\r
1981                 private long nスクロール用タイマ値;\r
1982                 private int n現在のスクロールカウンタ;\r
1983                 private int n目標のスクロールカウンタ;\r
1984                 private Point[] ptパネルの基本座標 = new Point[] { new Point( 0x12d, 3 ), new Point( 0x12d, 0x35 ), new Point( 0x12d, 0x67 ), new Point( 0x12d, 0x99 ), new Point( 0x114, 0xcb ), new Point( 0x12d, 0xfd ), new Point( 0x12d, 0x12f ), new Point( 0x12d, 0x161 ), new Point( 0x12d, 0x193 ), new Point( 0x12d, 0x1c5 ) };\r
1985                 private CTexture txその他項目行パネル;\r
1986                 private CTexture tx三角矢印;\r
1987                 private CTexture tx通常項目行パネル;\r
1988 \r
1989                 private CTexture txSkinSample1;                         // #28195 2012.5.2 yyagi\r
1990                 private string[] skinSubFolders;                        //\r
1991                 private string[] skinNames;                                     //\r
1992                 private string skinSubFolder_org;                       //\r
1993                 private int nSkinSampleIndex;                           //\r
1994                 private int nSkinIndex;                                         //\r
1995 \r
1996                 private CItemBase iDrumsGoToKeyAssign;\r
1997                 private CItemBase iGuitarGoToKeyAssign;\r
1998                 private CItemBase iBassGoToKeyAssign;\r
1999                 private CItemBase iSystemGoToKeyAssign;         // #24609\r
2000 \r
2001                 private CItemList iSystemGRmode;\r
2002 \r
2003                 //private CItemToggle iBassAutoPlay;\r
2004                 private CItemThreeState iBassAutoPlayAll;                       // #23886 2012.5.8 yyagi\r
2005                 private CItemToggle iBassR;                                                     //\r
2006                 private CItemToggle iBassG;                                                     //\r
2007                 private CItemToggle iBassB;                                                     //\r
2008                 private CItemToggle iBassPick;                                          //\r
2009                 private CItemToggle iBassW;                                                     //\r
2010         \r
2011                 private CItemToggle iBassHidden;\r
2012                 private CItemToggle iBassLeft;\r
2013                 private CItemToggle iBassLight;\r
2014                 private CItemList iBassPosition;\r
2015                 private CItemList iBassRandom;\r
2016                 private CItemBase iBassReturnToMenu;\r
2017                 private CItemToggle iBassReverse;\r
2018                 private CItemInteger iBassScrollSpeed;\r
2019                 private CItemToggle iBassSudden;\r
2020                 private CItemList iCommonDark;\r
2021                 private CItemInteger iCommonPlaySpeed;\r
2022 //              private CItemBase iCommonReturnToMenu;\r
2023 \r
2024                 private CItemThreeState iDrumsAutoPlayAll;\r
2025                 private CItemToggle iDrumsBass;\r
2026                 private CItemList iDrumsComboPosition;\r
2027                 private CItemToggle iDrumsCymbalRide;\r
2028                 private CItemToggle iDrumsFloorTom;\r
2029                 private CItemToggle iDrumsHidden;\r
2030                 private CItemToggle iDrumsHighTom;\r
2031                 private CItemToggle iDrumsHiHat;\r
2032                 private CItemToggle iDrumsLeftCymbal;\r
2033                 private CItemToggle iDrumsLowTom;\r
2034                 private CItemList iDrumsPosition;\r
2035                 private CItemBase iDrumsReturnToMenu;\r
2036                 private CItemToggle iDrumsReverse;\r
2037                 private CItemInteger iDrumsScrollSpeed;\r
2038                 private CItemToggle iDrumsSnare;\r
2039                 private CItemToggle iDrumsSudden;\r
2040                 private CItemToggle iDrumsTight;\r
2041                 private CItemToggle iDrumsGraph;        // #24074 2011.01.23 add ikanick\r
2042 \r
2043                 //private CItemToggle iGuitarAutoPlay;\r
2044                 private CItemThreeState iGuitarAutoPlayAll;                     // #23886 2012.5.8 yyagi\r
2045                 private CItemToggle iGuitarR;                                           //\r
2046                 private CItemToggle iGuitarG;                                           //\r
2047                 private CItemToggle iGuitarB;                                           //\r
2048                 private CItemToggle iGuitarPick;                                        //\r
2049                 private CItemToggle iGuitarW;                                           //\r
2050 \r
2051                 private CItemToggle iGuitarHidden;\r
2052                 private CItemToggle iGuitarLeft;\r
2053                 private CItemToggle iGuitarLight;\r
2054                 private CItemList iGuitarPosition;\r
2055                 private CItemList iGuitarRandom;\r
2056                 private CItemBase iGuitarReturnToMenu;\r
2057                 private CItemToggle iGuitarReverse;\r
2058                 private CItemInteger iGuitarScrollSpeed;\r
2059                 private CItemToggle iGuitarSudden;\r
2060                 private CItemInteger iDrumsInputAdjustTimeMs;           // #23580 2011.1.3 yyagi\r
2061                 private CItemInteger iGuitarInputAdjustTimeMs;          //\r
2062                 private CItemInteger iBassInputAdjustTimeMs;            //\r
2063                 private CItemList iSystemSkinSubfolder;                         // #28195 2012.5.2 yyagi\r
2064                 private CItemToggle iSystemUseBoxDefSkin;                       // #28195 2012.5.6 yyagi\r
2065 \r
2066                 private int t前の項目( int nItem )\r
2067                 {\r
2068                         if( --nItem < 0 )\r
2069                         {\r
2070                                 nItem = this.list項目リスト.Count - 1;\r
2071                         }\r
2072                         return nItem;\r
2073                 }\r
2074                 private int t次の項目( int nItem )\r
2075                 {\r
2076                         if( ++nItem >= this.list項目リスト.Count )\r
2077                         {\r
2078                                 nItem = 0;\r
2079                         }\r
2080                         return nItem;\r
2081                 }\r
2082                 private void t全部のドラムパッドのAutoを切り替える( bool bAutoON )\r
2083                 {\r
2084                         this.iDrumsLeftCymbal.bON = this.iDrumsHiHat.bON = this.iDrumsSnare.bON = this.iDrumsBass.bON = this.iDrumsHighTom.bON = this.iDrumsLowTom.bON = this.iDrumsFloorTom.bON = this.iDrumsCymbalRide.bON = bAutoON;\r
2085                 }\r
2086                 private void t全部のギターパッドのAutoを切り替える( bool bAutoON )\r
2087                 {\r
2088                         this.iGuitarR.bON = this.iGuitarG.bON = this.iGuitarB.bON = this.iGuitarPick.bON = this.iGuitarW.bON = bAutoON;\r
2089                 }\r
2090                 private void t全部のベースパッドのAutoを切り替える( bool bAutoON )\r
2091                 {\r
2092                         this.iBassR.bON = this.iBassG.bON = this.iBassB.bON = this.iBassPick.bON = this.iBassW.bON = bAutoON;\r
2093                 }\r
2094                 private void tConfigIniへ記録する()\r
2095                 {\r
2096                         switch( this.eメニュー種別 )\r
2097                         {\r
2098                                 case Eメニュー種別.System:\r
2099                                         this.tConfigIniへ記録する・System();\r
2100                                         this.tConfigIniへ記録する・KeyAssignSystem();\r
2101                                         return;\r
2102 \r
2103                                 case Eメニュー種別.Drums:\r
2104                                         this.tConfigIniへ記録する・Drums();\r
2105                                         this.tConfigIniへ記録する・KeyAssignDrums();\r
2106                                         return;\r
2107 \r
2108                                 case Eメニュー種別.Guitar:\r
2109                                         this.tConfigIniへ記録する・Guitar();\r
2110                                         this.tConfigIniへ記録する・KeyAssignGuitar();\r
2111                                         return;\r
2112 \r
2113                                 case Eメニュー種別.Bass:\r
2114                                         this.tConfigIniへ記録する・Bass();\r
2115                                         this.tConfigIniへ記録する・KeyAssignBass();\r
2116                                         return;\r
2117                         }\r
2118                 }\r
2119                 private void tConfigIniへ記録する・KeyAssignBass()\r
2120                 {\r
2121                 }\r
2122                 private void tConfigIniへ記録する・KeyAssignDrums()\r
2123                 {\r
2124                 }\r
2125                 private void tConfigIniへ記録する・KeyAssignGuitar()\r
2126                 {\r
2127                 }\r
2128                 private void tConfigIniへ記録する・KeyAssignSystem()\r
2129                 {\r
2130                 }\r
2131                 private void tConfigIniへ記録する・System()\r
2132                 {\r
2133                         CDTXMania.ConfigIni.eDark = (Eダークモード) this.iCommonDark.n現在選択されている項目番号;\r
2134                         CDTXMania.ConfigIni.n演奏速度 = this.iCommonPlaySpeed.n現在の値;\r
2135 \r
2136                         CDTXMania.ConfigIni.bGuitar有効 = ( ( ( this.iSystemGRmode.n現在選択されている項目番号 + 1 ) / 2 ) == 1 );\r
2137                                 //this.iSystemGuitar.bON;\r
2138                         CDTXMania.ConfigIni.bDrums有効 = ( ( ( this.iSystemGRmode.n現在選択されている項目番号 + 1 ) % 2 ) == 1 );\r
2139                                 //this.iSystemDrums.bON;\r
2140 \r
2141                         CDTXMania.ConfigIni.b全画面モード = this.iSystemFullscreen.bON;\r
2142                         CDTXMania.ConfigIni.bSTAGEFAILED有効 = this.iSystemStageFailed.bON;\r
2143                         CDTXMania.ConfigIni.bランダムセレクトで子BOXを検索対象とする = this.iSystemRandomFromSubBox.bON;\r
2144 \r
2145                         CDTXMania.ConfigIni.bWave再生位置自動調整機能有効 = this.iSystemAdjustWaves.bON;\r
2146                         CDTXMania.ConfigIni.b垂直帰線待ちを行う = this.iSystemVSyncWait.bON;\r
2147                         CDTXMania.ConfigIni.bバッファ入力を行う = this.iSystemBufferedInput.bON;\r
2148                         CDTXMania.ConfigIni.bAVI有効 = this.iSystemAVI.bON;\r
2149                         CDTXMania.ConfigIni.bBGA有効 = this.iSystemBGA.bON;\r
2150 //                      CDTXMania.ConfigIni.bGraph有効 = this.iSystemGraph.bON;#24074 2011.01.23 comment-out ikanick オプション(Drums)へ移行\r
2151                         CDTXMania.ConfigIni.n曲が選択されてからプレビュー音が鳴るまでのウェイトms = this.iSystemPreviewSoundWait.n現在の値;\r
2152                         CDTXMania.ConfigIni.n曲が選択されてからプレビュー画像が表示開始されるまでのウェイトms = this.iSystemPreviewImageWait.n現在の値;\r
2153                         CDTXMania.ConfigIni.b演奏情報を表示する = this.iSystemDebugInfo.bON;\r
2154                         CDTXMania.ConfigIni.n背景の透過度 = this.iSystemBGAlpha.n現在の値;\r
2155                         CDTXMania.ConfigIni.bBGM音を発声する = this.iSystemBGMSound.bON;\r
2156                         CDTXMania.ConfigIni.b歓声を発声する = this.iSystemAudienceSound.bON;\r
2157                         CDTXMania.ConfigIni.eダメージレベル = (Eダメージレベル) this.iSystemDamageLevel.n現在選択されている項目番号;\r
2158                         CDTXMania.ConfigIni.bScoreIniを出力する = this.iSystemSaveScore.bON;\r
2159 \r
2160                         CDTXMania.ConfigIni.bログ出力 = this.iLogOutputLog.bON;\r
2161                         CDTXMania.ConfigIni.n手動再生音量 = this.iSystemChipVolume.n現在の値;\r
2162                         CDTXMania.ConfigIni.n自動再生音量 = this.iSystemAutoChipVolume.n現在の値;\r
2163                         CDTXMania.ConfigIni.bストイックモード = this.iSystemStoicMode.bON;\r
2164 \r
2165                         CDTXMania.ConfigIni.nShowLagType = this.iSystemShowLag.n現在選択されている項目番号;                                // #25370 2011.6.3 yyagi\r
2166                         CDTXMania.ConfigIni.bIsAutoResultCapture = this.iSystemAutoResultCapture.bON;                                   // #25399 2011.6.9 yyagi\r
2167 \r
2168                         CDTXMania.ConfigIni.nRisky = this.iSystemRisky.n現在の値;                                                                           // #23559 2911.7.27 yyagi\r
2169 \r
2170                         CDTXMania.ConfigIni.strSystemSkinSubfolderFullName = skinSubFolders[ nSkinIndex ];                              // #28195 2012.5.2 yyagi\r
2171                         CDTXMania.Skin.SetCurrentSkinSubfolderFullName( CDTXMania.ConfigIni.strSystemSkinSubfolderFullName, true );\r
2172                         CDTXMania.ConfigIni.bUseBoxDefSkin = this.iSystemUseBoxDefSkin.bON;                                                             // #28195 2012.5.6 yyagi\r
2173 \r
2174                         CDTXMania.ConfigIni.nSoundDeviceType = this.iSystemSoundType.n現在選択されている項目番号;          // #24820 2013.1.3 yyagi\r
2175 //                      CDTXMania.ConfigIni.nWASAPIBufferSizeMs = this.iSystemWASAPIBufferSizeMs.n現在の値;                         // #24820 2013.1.15 yyagi\r
2176 //                      CDTXMania.ConfigIni.nASIOBufferSizeMs = this.iSystemASIOBufferSizeMs.n現在の値;                                     // #24820 2013.1.3 yyagi\r
2177                         CDTXMania.ConfigIni.nASIODevice = this.iSystemASIODevice.n現在選択されている項目番号;                      // #24820 2013.1.17 yyagi\r
2178 \r
2179                         CDTXMania.ConfigIni.bTimeStretch = this.iSystemTimeStretch.bON;                                                                 // #23664 2013.2.24 yyagi\r
2180 //Trace.TraceInformation( "saved" );\r
2181 //Trace.TraceInformation( "Skin現在Current : " + CDTXMania.Skin.GetCurrentSkinSubfolderFullName(true) );\r
2182 //Trace.TraceInformation( "Skin現在System  : " + CSkin.strSystemSkinSubfolderFullName );\r
2183 //Trace.TraceInformation( "Skin現在BoxDef  : " + CSkin.strBoxDefSkinSubfolderFullName );\r
2184                 \r
2185                 }\r
2186                 private void tConfigIniへ記録する・Bass()\r
2187                 {\r
2188                         //CDTXMania.ConfigIni.bAutoPlay.Bass = this.iBassAutoPlay.bON;\r
2189                         CDTXMania.ConfigIni.bAutoPlay.BsR = this.iBassR.bON;\r
2190                         CDTXMania.ConfigIni.bAutoPlay.BsG = this.iBassG.bON;\r
2191                         CDTXMania.ConfigIni.bAutoPlay.BsB = this.iBassB.bON;\r
2192                         CDTXMania.ConfigIni.bAutoPlay.BsPick = this.iBassPick.bON;\r
2193                         CDTXMania.ConfigIni.bAutoPlay.BsW = this.iBassW.bON;\r
2194                         CDTXMania.ConfigIni.n譜面スクロール速度.Bass = this.iBassScrollSpeed.n現在の値;\r
2195                         CDTXMania.ConfigIni.bSudden.Bass = this.iBassSudden.bON;\r
2196                         CDTXMania.ConfigIni.bHidden.Bass = this.iBassHidden.bON;\r
2197                         CDTXMania.ConfigIni.bReverse.Bass = this.iBassReverse.bON;\r
2198                         CDTXMania.ConfigIni.判定文字表示位置.Bass = (E判定文字表示位置) this.iBassPosition.n現在選択されている項目番号;\r
2199                         CDTXMania.ConfigIni.eRandom.Bass = (Eランダムモード) this.iBassRandom.n現在選択されている項目番号;\r
2200                         CDTXMania.ConfigIni.bLight.Bass = this.iBassLight.bON;\r
2201                         CDTXMania.ConfigIni.bLeft.Bass = this.iBassLeft.bON;\r
2202                         CDTXMania.ConfigIni.nInputAdjustTimeMs.Bass = this.iBassInputAdjustTimeMs.n現在の値;                // #23580 2011.1.3 yyagi\r
2203 \r
2204                         CDTXMania.ConfigIni.b演奏音を強調する.Bass = this.iSystemSoundMonitorBass.bON;\r
2205                         CDTXMania.ConfigIni.n表示可能な最小コンボ数.Bass = this.iSystemMinComboBass.n現在の値;\r
2206                 }\r
2207                 private void tConfigIniへ記録する・Drums()\r
2208                 {\r
2209                         CDTXMania.ConfigIni.bAutoPlay.LC = this.iDrumsLeftCymbal.bON;\r
2210                         CDTXMania.ConfigIni.bAutoPlay.HH = this.iDrumsHiHat.bON;\r
2211                         CDTXMania.ConfigIni.bAutoPlay.SD = this.iDrumsSnare.bON;\r
2212                         CDTXMania.ConfigIni.bAutoPlay.BD = this.iDrumsBass.bON;\r
2213                         CDTXMania.ConfigIni.bAutoPlay.HT = this.iDrumsHighTom.bON;\r
2214                         CDTXMania.ConfigIni.bAutoPlay.LT = this.iDrumsLowTom.bON;\r
2215                         CDTXMania.ConfigIni.bAutoPlay.FT = this.iDrumsFloorTom.bON;\r
2216                         CDTXMania.ConfigIni.bAutoPlay.CY = this.iDrumsCymbalRide.bON;\r
2217                         CDTXMania.ConfigIni.n譜面スクロール速度.Drums = this.iDrumsScrollSpeed.n現在の値;\r
2218                         CDTXMania.ConfigIni.ドラムコンボ文字の表示位置 = (Eドラムコンボ文字の表示位置) this.iDrumsComboPosition.n現在選択されている項目番号;\r
2219                         CDTXMania.ConfigIni.bSudden.Drums = this.iDrumsSudden.bON;\r
2220                         CDTXMania.ConfigIni.bHidden.Drums = this.iDrumsHidden.bON;\r
2221                         CDTXMania.ConfigIni.bReverse.Drums = this.iDrumsReverse.bON;\r
2222                         CDTXMania.ConfigIni.判定文字表示位置.Drums = (E判定文字表示位置) this.iDrumsPosition.n現在選択されている項目番号;\r
2223                         CDTXMania.ConfigIni.bTight = this.iDrumsTight.bON;\r
2224                         CDTXMania.ConfigIni.nInputAdjustTimeMs.Drums = this.iDrumsInputAdjustTimeMs.n現在の値;              // #23580 2011.1.3 yyagi\r
2225                         CDTXMania.ConfigIni.bGraph.Drums = this.iDrumsGraph.bON;// #24074 2011.01.23 add ikanick\r
2226 \r
2227                         CDTXMania.ConfigIni.eHHGroup = (EHHGroup) this.iSystemHHGroup.n現在選択されている項目番号;\r
2228                         CDTXMania.ConfigIni.eFTGroup = (EFTGroup) this.iSystemFTGroup.n現在選択されている項目番号;\r
2229                         CDTXMania.ConfigIni.eCYGroup = (ECYGroup) this.iSystemCYGroup.n現在選択されている項目番号;\r
2230                         CDTXMania.ConfigIni.eBDGroup = (EBDGroup) this.iSystemBDGroup.n現在選択されている項目番号;\r
2231                         CDTXMania.ConfigIni.eHitSoundPriorityHH = (E打ち分け時の再生の優先順位) this.iSystemHitSoundPriorityHH.n現在選択されている項目番号;\r
2232                         CDTXMania.ConfigIni.eHitSoundPriorityFT = (E打ち分け時の再生の優先順位) this.iSystemHitSoundPriorityFT.n現在選択されている項目番号;\r
2233                         CDTXMania.ConfigIni.eHitSoundPriorityCY = (E打ち分け時の再生の優先順位) this.iSystemHitSoundPriorityCY.n現在選択されている項目番号;\r
2234                         CDTXMania.ConfigIni.bフィルイン有効 = this.iSystemFillIn.bON;\r
2235                         CDTXMania.ConfigIni.b演奏音を強調する.Drums = this.iSystemSoundMonitorDrums.bON;\r
2236                         CDTXMania.ConfigIni.bドラム打音を発声する = this.iSystemHitSound.bON;\r
2237                         CDTXMania.ConfigIni.n表示可能な最小コンボ数.Drums = this.iSystemMinComboDrums.n現在の値;\r
2238                         CDTXMania.ConfigIni.bシンバルフリー = this.iSystemCymbalFree.bON;\r
2239 \r
2240                         CDTXMania.ConfigIni.eDark = (Eダークモード)this.iCommonDark.n現在選択されている項目番号;\r
2241                         CDTXMania.ConfigIni.nRisky = this.iSystemRisky.n現在の値;                                           // #23559 2911.7.27 yyagi\r
2242                 }\r
2243                 private void tConfigIniへ記録する・Guitar()\r
2244                 {\r
2245                         //CDTXMania.ConfigIni.bAutoPlay.Guitar = this.iGuitarAutoPlay.bON;\r
2246                         CDTXMania.ConfigIni.bAutoPlay.GtR = this.iGuitarR.bON;\r
2247                         CDTXMania.ConfigIni.bAutoPlay.GtG = this.iGuitarG.bON;\r
2248                         CDTXMania.ConfigIni.bAutoPlay.GtB = this.iGuitarB.bON;\r
2249                         CDTXMania.ConfigIni.bAutoPlay.GtPick = this.iGuitarPick.bON;\r
2250                         CDTXMania.ConfigIni.bAutoPlay.GtW = this.iGuitarW.bON;\r
2251                         CDTXMania.ConfigIni.n譜面スクロール速度.Guitar = this.iGuitarScrollSpeed.n現在の値;\r
2252                         CDTXMania.ConfigIni.bSudden.Guitar = this.iGuitarSudden.bON;\r
2253                         CDTXMania.ConfigIni.bHidden.Guitar = this.iGuitarHidden.bON;\r
2254                         CDTXMania.ConfigIni.bReverse.Guitar = this.iGuitarReverse.bON;\r
2255                         CDTXMania.ConfigIni.判定文字表示位置.Guitar = (E判定文字表示位置) this.iGuitarPosition.n現在選択されている項目番号;\r
2256                         CDTXMania.ConfigIni.eRandom.Guitar = (Eランダムモード) this.iGuitarRandom.n現在選択されている項目番号;\r
2257                         CDTXMania.ConfigIni.bLight.Guitar = this.iGuitarLight.bON;\r
2258                         CDTXMania.ConfigIni.bLeft.Guitar = this.iGuitarLeft.bON;\r
2259                         CDTXMania.ConfigIni.nInputAdjustTimeMs.Guitar = this.iGuitarInputAdjustTimeMs.n現在の値;    // #23580 2011.1.3 yyagi\r
2260 \r
2261                         CDTXMania.ConfigIni.n表示可能な最小コンボ数.Guitar = this.iSystemMinComboGuitar.n現在の値;\r
2262                         CDTXMania.ConfigIni.b演奏音を強調する.Guitar = this.iSystemSoundMonitorGuitar.bON;\r
2263                 }\r
2264                 //-----------------\r
2265                 #endregion\r
2266         }\r
2267 }\r