2 using System.Collections.Generic;
3 using System.Diagnostics;
6 using System.Threading;
12 internal class CActConfigList : CActivity
16 public bool bIsKeyAssignSelected // #24525 2011.3.15 yyagi
20 Eメニュー種別 e = this.eメニュー種別;
21 if ( e == Eメニュー種別.KeyAssignBass || e == Eメニュー種別.KeyAssignDrums ||
22 e == Eメニュー種別.KeyAssignGuitar || e == Eメニュー種別.KeyAssignSystem )
32 public bool bIsFocusingParameter // #32059 2013.9.17 yyagi
39 public bool b現在選択されている項目はReturnToMenuである
43 CItemBase currentItem = this.list項目リスト[ this.n現在の選択項目 ];
44 if ( currentItem == this.iSystemReturnToMenu || currentItem == this.iDrumsReturnToMenu ||
45 currentItem == this.iGuitarReturnToMenu || currentItem == this.iBassReturnToMenu )
55 public CItemBase ib現在の選択項目
59 return this.list項目リスト[ this.n現在の選択項目 ];
66 #region [ t項目リストの設定_System() ]
67 public void t項目リストの設定_System()
69 this.tConfigIniへ記録する();
70 this.list項目リスト.Clear();
72 // #27029 2012.1.5 from: 説明文は最大9行→13行に変更。
74 this.iSystemReturnToMenu = new CItemBase( "<< Return To Menu", CItemBase.Eパネル種別.その他,
76 "Return to left menu." );
77 this.list項目リスト.Add( this.iSystemReturnToMenu );
79 this.iSystemReloadDTX = new CItemBase( "Reload Songs", CItemBase.Eパネル種別.通常,
81 "Reload song data." );
82 this.list項目リスト.Add( this.iSystemReloadDTX );
84 //this.iCommonDark = new CItemList( "Dark", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eDark,
85 // "HALF: 背景、レーン、ゲージが表示されなくなります。\n" +
86 // "FULL: さらに小節線、拍線、判定ライン、パッドも表示されなくなります。",
87 // "OFF: all display parts are shown.\n" +
88 // "HALF: wallpaper, lanes and gauge are disappeared.\n" +
89 // "FULL: additionaly to HALF, bar/beat lines, hit bar, pads are disappeared.",
90 // new string[] { "OFF", "HALF", "FULL" } );
91 //this.list項目リスト.Add( this.iCommonDark );
93 //this.iSystemRisky = new CItemInteger( "Risky", 0, 10, CDTXMania.ConfigIni.nRisky,
95 // "1以上の値にすると、その回数分のPoor/Missで\n" +
97 // "0にすると無効になり、DamageLevelに従った\n" +
100 // "なお、この設定は、StageFailedの設定と併用できます。",
102 // "It means the Poor/Miss times to be FAILED.\n" +
103 // "Set 0 to disable Risky mode." );
104 //this.list項目リスト.Add( this.iSystemRisky );
106 int nDGmode = ( CDTXMania.ConfigIni.bGuitar有効 ? 1 : 1 ) + ( CDTXMania.ConfigIni.bDrums有効 ? 0 : 1 ) - 1;
107 this.iSystemGRmode = new CItemList("Drums & GR", CItemBase.Eパネル種別.通常, nDGmode,
109 "DrOnly: ドラムを有効にします。\n" +
110 "GROnly: ギター/ベースを有効にします。",
111 "DrOnly: Drums is available.\n" +
112 "GROnly: Guitar/Bass are available.\n",
113 new string[] { "DrOnly", "GROnly" });
114 this.list項目リスト.Add( this.iSystemGRmode );
116 this.iCommonPlaySpeed = new CItemInteger( "PlaySpeed", 5, 40, CDTXMania.ConfigIni.n演奏速度,
117 "曲の演奏速度を、速くしたり遅くしたりすることが\n" +
119 "(※一部のサウンドカードでは正しく再生\n" +
122 "TimeStretchがONのとき、x0.850以下にすると、\n" +
124 "It changes the song speed.\n" +
125 "For example, you can play in half speed by setting PlaySpeed = 0.500 for your practice.\n" +
127 "Note: It also changes the songs' pitch. In case TimeStretch=ON and slower than x0.900, some sound lag occurs." );
128 this.list項目リスト.Add( this.iCommonPlaySpeed );
130 this.iSystemTimeStretch = new CItemToggle( "TimeStretch", CDTXMania.ConfigIni.bTimeStretch,
132 "ONにすると、演奏速度の変更を周波数変更ではなく\n"+
135 "タイムストレッチ使用時は、サウンド処理により\n" +
136 "多くのCPU性能を使用します。\n" +
137 "また、演奏速度をx0.850以下にすると、\n" +
139 "The way to change the playing speed:\n" +
140 "Turn ON to use time stretch to change the play speed." +
142 "TimeStretch uses more CPU power. And some sound lag occurs if PlaySpeed is slower than x0.900." );
143 this.list項目リスト.Add( this.iSystemTimeStretch );
145 this.iSystemFullscreen = new CItemToggle( "Fullscreen", CDTXMania.ConfigIni.b全画面モード,
147 "ONで全画面モード、OFFでウィンドウモードになります。",
148 "Fullscreen mode or window mode." );
149 this.list項目リスト.Add( this.iSystemFullscreen );
151 this.iSystemStageFailed = new CItemToggle( "StageFailed", CDTXMania.ConfigIni.bSTAGEFAILED有効,
152 "STAGE FAILED 有効:\n" +
153 "ON にすると、ゲージがなくなった時に \n" +
154 "STAGE FAILED となり演奏が中断されます。\n" +
155 "OFF の場合は、ゲージがなくなっても\n" +
157 "Turn OFF if you don't want to encount GAME OVER." );
158 this.list項目リスト.Add( this.iSystemStageFailed );
160 this.iSystemRandomFromSubBox = new CItemToggle( "RandSubBox", CDTXMania.ConfigIni.bランダムセレクトで子BOXを検索対象とする,
161 "子BOXをRANDOMの対象とする:\n" +
162 "ON にすると、RANDOM SELECT 時に子BOXも\n" +
164 "Turn ON to use child BOX (subfolders) at RANDOM SELECT." );
165 this.list項目リスト.Add( this.iSystemRandomFromSubBox );
168 this.iSystemAdjustWaves = new CItemToggle( "AdjustWaves", CDTXMania.ConfigIni.bWave再生位置自動調整機能有効,
170 "ハードウェアやOSに起因するサウンドのずれを\n"+
172 "BGM のように再生時間の長い音声データが\n" +
173 "使用されている曲で効果があります。\n" +
175 "※ SoundTypeでDSound(DirectSound)を指定している\n" +
177 "WASAPI/ASIO使用時は効果がありません。",
178 "Automatic wave playing position adjustment feature.\n" +
180 "If you turn it ON, it decrease the lag which comes from the difference of hardware/OS.\n" +
181 "Usually, you should turn it ON.\n" +
183 "Note: This setting is effetive only when DSound(DirectSound) in SoundType is used." );
184 this.list項目リスト.Add( this.iSystemAdjustWaves );
187 this.iSystemVSyncWait = new CItemToggle( "VSyncWait", CDTXMania.ConfigIni.b垂直帰線待ちを行う,
189 "画面の描画をディスプレイの垂直帰線中に行なう場合\n" +
191 "ON にすると、ガタつきのない滑らかな画面描画が\n" +
193 "Turn ON to wait VSync (Vertical Synchronizing signal) at every drawings. (so FPS becomes 60)\n" +
195 "If you have enough CPU/GPU power, the scroll would become smooth." );
196 this.list項目リスト.Add( this.iSystemVSyncWait );
197 this.iSystemAVI = new CItemToggle( "AVI", CDTXMania.ConfigIni.bAVI有効,
199 "演奏中に動画(AVI)を再生する場合にON にします。\n" +
200 "AVI の再生には、それなりのマシンパワーが\n" +
202 "To use AVI playback or not." );
203 this.list項目リスト.Add( this.iSystemAVI );
204 this.iSystemForceAVIFullscreen = new CItemToggle( "FullAVI", CDTXMania.ConfigIni.bForceAVIFullscreen,
206 "旧仕様の動画(AVI)の表示を強制的に全画面化します。\n" +
207 "BGAと併用している場合は、表示がおかしくなります。",
208 "Forcely show the legacy-spec AVI to fullscreen.\n" +
209 "If the data contains both AVI and BGA, the screen will corrupt." );
210 this.list項目リスト.Add( this.iSystemForceAVIFullscreen );
211 this.iSystemBGA = new CItemToggle( "BGA", CDTXMania.ConfigIni.bBGA有効,
213 "演奏中に画像(BGA)を表示する場合にON にします。\n" +
214 "BGA の再生には、それなりのマシンパワーが\n" +
216 "To draw BGA (back ground animations) or not." );
217 this.list項目リスト.Add( this.iSystemBGA );
218 this.iSystemPreviewSoundWait = new CItemInteger( "PreSoundWait", 0, 0x2710, CDTXMania.ConfigIni.n曲が選択されてからプレビュー音が鳴るまでのウェイトms,
220 "曲にカーソルが合わされてからプレビュー音が\n" +
221 "鳴り始めるまでの時間を指定します。\n" +
222 "0 ~ 10000 [ms] が指定可能です。",
223 "Delay time(ms) to start playing preview sound in SELECT MUSIC screen.\n" +
224 "You can specify from 0ms to 10000ms." );
225 this.list項目リスト.Add( this.iSystemPreviewSoundWait );
226 //this.iSystemPreviewImageWait = new CItemInteger( "PreImageWait", 0, 0x2710, CDTXMania.ConfigIni.n曲が選択されてからプレビュー画像が表示開始されるまでのウェイトms,
227 // "プレビュー画像表示までの時間:\n" +
228 // "曲にカーソルが合わされてからプレビュー画像が\n" +
229 // "表示されるまでの時間を指定します。\n" +
230 // "0 ~ 10000 [ms] が指定可能です。",
231 // "Delay time(ms) to show preview image in SELECT MUSIC screen.\n" +
232 // "You can specify from 0ms to 10000ms." );
233 //this.list項目リスト.Add( this.iSystemPreviewImageWait );
234 this.iSystemDebugInfo = new CItemToggle( "Debug Info", CDTXMania.ConfigIni.b演奏情報を表示する,
236 "演奏中、BGA領域の下部に演奏情報\n" +
237 "(FPS、BPM、演奏時間など)を表示します。\n" +
238 "また、小節線の横に小節番号が表示されるように\n" +
240 "To show song informations on playing BGA area. (FPS, BPM, total time etc)\n" +
241 "You can ON/OFF the indications by pushing [Del] while playing drums, guitar or bass." );
242 this.list項目リスト.Add( this.iSystemDebugInfo );
243 //this.iSystemBGAlpha = new CItemInteger( "BG Alpha", 0, 0xff, CDTXMania.ConfigIni.n背景の透過度,
245 // "背景画像をDTXManiaのフレーム画像と合成する際の、\n" +
246 // "背景画像の透明度を指定します。\n" +
247 // "0 が完全不透明で、255 が完全透明となります。",
248 // "The degree for transparing playing screen and wallpaper.\n" +
250 // "0=no transparent, 255=completely transparency." );
251 //this.list項目リスト.Add( this.iSystemBGAlpha );
252 this.iSystemBGMSound = new CItemToggle( "BGM Sound", CDTXMania.ConfigIni.bBGM音を発声する,
254 "これをOFFにすると、BGM を再生しなくなります。",
255 "Turn OFF if you don't want to play BGM." );
256 this.list項目リスト.Add( this.iSystemBGMSound );
257 this.iSystemAudienceSound = new CItemToggle( "Audience", CDTXMania.ConfigIni.b歓声を発声する,
259 "これをOFFにすると、歓声を再生しなくなります。",
260 "Turn ON if you want to be cheered at the end of fill-in zone." );
261 this.list項目リスト.Add( this.iSystemAudienceSound );
262 this.iSystemDamageLevel = new CItemList( "DamageLevel", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eダメージレベル,
264 "Miss ヒット時のゲージの減少度合いを指定します。\n" +
265 "Riskyが1以上の場合は無効となります。",
266 "Damage level at missing (and recovering level) at playing.\n" +
267 "This setting is ignored when Risky >= 1.",
268 new string[] { "Small", "Normal", "Large" } );
269 this.list項目リスト.Add( this.iSystemDamageLevel );
270 this.iSystemSaveScore = new CItemToggle( "SaveScore", CDTXMania.ConfigIni.bScoreIniを出力する,
272 "これをONにすると、演奏記録を ~.score.ini \n" +
274 "To save high-scores/skills, turn it ON.\n" +
275 "Turn OFF in case your song data are in read-only media (CD-ROM etc).\n" +
276 "Note that the score files also contain 'BGM Adjust' parameter.\n" +
277 "So if you want to keep adjusting parameter, you need to set SaveScore=ON." );
278 this.list項目リスト.Add( this.iSystemSaveScore );
281 this.iSystemChipVolume = new CItemInteger( "ChipVolume", 0, 100, CDTXMania.ConfigIni.n手動再生音量,
283 "入力に反応して再生されるチップの音量を指定します。\n" +
284 "0 ~ 100 % の値が指定可能です。",
285 "The volumes for chips you hit.\n" +
286 "You can specify from 0 to 100%." );
287 this.list項目リスト.Add( this.iSystemChipVolume );
288 this.iSystemAutoChipVolume = new CItemInteger( "AutoVolume", 0, 100, CDTXMania.ConfigIni.n自動再生音量,
290 "自動的に再生されるチップの音量を指定します。\n" +
291 "0 ~ 100 % の値が指定可能です。",
292 "The volumes for AUTO chips.\n" +
293 "You can specify from 0 to 100%." );
294 this.list項目リスト.Add( this.iSystemAutoChipVolume );
295 //this.iSystemStoicMode = new CItemToggle( "StoicMode", CDTXMania.ConfigIni.bストイックモード,
296 // "ストイック(禁欲)モード:\n" +
297 // "以下をまとめて表示ON/OFFします。\n" +
300 // "・NowLoading画像\n" +
302 // "・BGA 画像 / AVI 動画\n" +
304 // "Turn ON to disable drawing\n" +
305 // " * preview image / movie\n" +
306 // " * result image / movie\n" +
307 // " * nowloading image\n" +
308 // " * wallpaper (in playing screen)\n" +
309 // " * BGA / AVI (in playing screen)\n" +
311 //this.list項目リスト.Add( this.iSystemStoicMode );
312 this.iSystemShowLag = new CItemList( "ShowLagTime", CItemBase.Eパネル種別.通常, CDTXMania.ConfigIni.nShowLagType,
314 "ジャストタイミングからのズレ時間(ms)を表示します。\n" +
315 " OFF: ズレ時間を表示しません。\n" +
316 " ON: ズレ時間を表示します。\n" +
317 " GREAT-: PERFECT以外の時のみ表示します。",
318 "About displaying the lag from the \"just timing\".\n" +
319 " OFF: Don't show it.\n" +
321 " GREAT-: Show it except you've gotten PERFECT.",
322 new string[] { "OFF", "ON", "GREAT-" } );
323 this.list項目リスト.Add( this.iSystemShowLag );
324 this.iSystemAutoResultCapture = new CItemToggle( "AutoSaveResult", CDTXMania.ConfigIni.bIsAutoResultCapture,
326 "ONにすると、ハイスコア/ハイスキル時に、\n" +
327 "自動的にリザルト画像を曲データと同じフォルダに\n" +
329 "AutoSaveResult:\n" +
330 "Turn ON to save your result screen image automatically when you get hiscore/hiskill." );
331 this.list項目リスト.Add( this.iSystemAutoResultCapture );
334 this.iSystemJudgeDispPriority = new CItemList( "JudgePriority", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.e判定表示優先度,
335 "判定文字列とコンボ表示の優先順位を指定します。\n" +
337 " Under: チップの下に表示します。\n" +
338 " Over: チップの上に表示します。",
339 "The display prioity between chips and judge mark/combo.\n" +
341 " Under: Show them under the chips.\n" +
342 " Over: Show them over the chips.",
343 new string[] { "Under", "Over" } );
344 this.list項目リスト.Add( this.iSystemJudgeDispPriority );
346 this.iSystemBufferedInput = new CItemToggle( "BufferedInput", CDTXMania.ConfigIni.bバッファ入力を行う,
348 "ON にすると、FPS を超える入力解像度を実現します。\n" +
349 "OFF にすると、入力解像度は FPS に等しくなります。",
350 "To select joystick input method.\n" +
352 "ON to use buffer input. No lost/lags.\n" +
353 "OFF to use realtime input. It may causes lost/lags for input.\n" +
354 "Moreover, input frequency is synchronized with FPS." );
355 this.list項目リスト.Add( this.iSystemBufferedInput );
356 this.iLogOutputLog = new CItemToggle( "TraceLog", CDTXMania.ConfigIni.bログ出力,
358 "DTXManiaLog.txt にログを出力します。\n" +
359 "この設定の変更は、DTXManiaの再起動後に\n" +
361 "Turn ON to put debug log to DTXManiaLog.txt.\n" +
362 "To take it effective, you need to re-open DTXMania." );
363 this.list項目リスト.Add( this.iLogOutputLog );
365 this.iSystemSkillMode = new CItemList( "SkillMode", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eSkillMode,
367 "達成率、ランク、スコアの計算方法を設定します。\n" +
368 " DTXMania: DTXManiaの計算方法です。\n" +
369 " XG: XG以降の計算方法です。\n",
370 new string[] { "DTXMania", "XG" } );
371 this.list項目リスト.Add( this.iSystemSkillMode );
374 //this.iSystemSpeaker = new CItemToggle("Speaker", CDTXMania.ConfigIni.bSpeaker,
375 // "スピーカーの表示を設定します。",
377 //this.list項目リスト.Add(this.iSystemSpeaker);
379 //this.iDrumsMoveDrumSet = new CItemList("DrumSetMove", CItemBase.Eパネル種別.通常, (int)CDTXMania.ConfigIni.eドラムセットを動かす,
380 // "ドラムセットが動くかを設定します。\n" +
381 // "ON: ドラムセットを動かします。\n" +
382 // "OFF: ドラムセットを動かしません。\n"+
383 // "NONE: ドラムセットを表示しません。",
384 // "Set up a DrumSet Moves.",
385 // new string[] { "ON", "OFF", "NONE" });
386 //this.list項目リスト.Add(this.iDrumsMoveDrumSet);
388 //this.iSystemLivePoint = new CItemToggle("LivePoint", CDTXMania.ConfigIni.bLivePoint,
389 // "LivePointゲージの表示を設定します。\n",
392 //this.list項目リスト.Add(this.iSystemLivePoint);
394 //this.iSystemBPMbar = new CItemList("BPMBar", CItemBase.Eパネル種別.通常, (int)CDTXMania.ConfigIni.eBPMbar,
395 // "左右のBPMに連動して動くバーの表示\n" +
397 // "ON: 左右両方表示します。\n" +
398 // "L Only: 左のみ表示します。\n" +
399 // "OFF: 動くバーを表示しません。\n"+
400 // "NONE: BPMバーを表示しません。",
401 // "To change the displaying position of\n" +
402 // "the ride cymbal.",
403 // new string[] { "ON", "L Only", "OFF", "NONE" });
404 //this.list項目リスト.Add(this.iSystemBPMbar);
406 this.iSystemNamePlateType = new CItemList("NamePlateType", CItemBase.Eパネル種別.通常, (int)CDTXMania.ConfigIni.eNamePlateType,
408 " Type-A: XG2風の表示です。\n" +
409 " Type-B: XG1風の表示です。\n",
410 "Change the configuration playing screen\n" +
413 new string[] { "Type-A", "Type-B" });
414 this.list項目リスト.Add(this.iSystemNamePlateType);
416 this.iSystemJudgeCountDisp = new CItemToggle( "JudgeCountDisp", CDTXMania.ConfigIni.bJudgeCountDisp,
418 "ONにするとSkillMater上に現在の判定数を\n" +
420 "SkillMaterが無効の場合は表示されません。",
421 "JudgeCountDisplayMode." );
422 this.list項目リスト.Add( this.iSystemJudgeCountDisp );
425 #region [ WASAPI / ASIO ]
426 // #24820 2013.1.3 yyagi
427 this.iSystemSoundType = new CItemList( "SoundType", CItemList.Eパネル種別.通常, CDTXMania.ConfigIni.nSoundDeviceType,
429 "WASAPI, ASIO, DSound(DirectSound)の中から\n" +
430 "サウンド出力方式を選択します。\n" +
431 "WASAPIはVista以降でのみ使用可能です。\n" +
432 "ASIOはXPでも使用可能ですが、対応機器でのみ\n" +
434 "WASAPIかASIOを指定することで、\n" +
435 "遅延の少ない演奏を楽しむことができます。\n" +
437 "※ 設定はCONFIGURATION画面の終了時に\n" +
439 "Sound output type:\n" +
440 "You can choose WASAPI, ASIO or DShow(DirectShow).\n" +
441 "WASAPI can use only after Vista.\n" +
442 "ASIO can use on XP or later OSs, but you need \"ASIO-supported\" sound device.\n" +
444 "You should use WASAPI or ASIO to decrease the sound lag.\n" +
446 "Note: Exit CONFIGURATION to make the setting take effect.",
447 new string[] { "DSound", "ASIO", "WASAPI" } );
448 this.list項目リスト.Add( this.iSystemSoundType );
450 // #24820 2013.1.15 yyagi
451 this.iSystemWASAPIBufferSizeMs = new CItemInteger( "WASAPI BufferSize", 0, 99999, CDTXMania.ConfigIni.nWASAPIBufferSizeMs,
452 "WASAPI使用時のバッファサイズ:\n" +
453 // "0~99999ms を指定可能です。\n" +
454 "0を指定すると、設定可能な最小のバッファサイズを\n" +
456 "1以上を指定すると、その値以上で指定可能な\n" +
457 "最小のバッファサイズを自動設定します。\n" +
458 "値を小さくするほど発音遅延が減少しますが、\n" +
459 "音割れや性能低下などの問題が発生する場合が\n" +
461 "タブレットなど性能の低いPCを使う場合は、\n" +
462 "手動で大きめの値を指定してください。\n" +
464 "※ 設定はCONFIGURATION画面の終了時に\n" +
466 "Sound buffer size for WASAPI:\n" +
467 "You can set from 0 to 99999ms.\n" +
468 "Set 0 to use a minimum buffer size automatically.\n" +
469 "Smaller value makes smaller lag, but it may cause sound troubles. " +
470 "So if you use poor CPU PC (tablet etc), please specify a little bigger value.\n" +
472 "Note: Exit CONFIGURATION to make the setting take effect." );
473 this.list項目リスト.Add( this.iSystemWASAPIBufferSizeMs );
475 // #24820 2013.1.17 yyagi
476 string[] asiodevs = CEnumerateAllAsioDevices.GetAllASIODevices();
477 this.iSystemASIODevice = new CItemList( "ASIO device", CItemList.Eパネル種別.通常, CDTXMania.ConfigIni.nASIODevice,
479 "ASIO使用時のサウンドデバイスを選択します。\n" +
481 "※ 設定はCONFIGURATION画面の終了時に\n" +
483 "ASIO Sound Device:\n" +
484 "Select the sound device to use under ASIO mode.\n" +
486 "Note: Exit CONFIGURATION to make the setting take effect.",
488 this.list項目リスト.Add( this.iSystemASIODevice );
490 // #24820 2013.1.3 yyagi
491 //this.iSystemASIOBufferSizeMs = new CItemInteger("ASIOBuffSize", 0, 99999, CDTXMania.ConfigIni.nASIOBufferSizeMs,
492 // "ASIO使用時のバッファサイズ:\n" +
493 // "0~99999ms を指定可能です。\n" +
494 // "推奨値は0で、サウンドデバイスでの\n" +
495 // "設定値をそのまま使用します。\n" +
496 // "(サウンドデバイスのASIO設定は、\n" +
497 // " ASIO capsなどで行います)\n" +
498 // "値を小さくするほど発音ラグが\n" +
499 // "減少しますが、音割れや異常動作を\n" +
500 // "引き起こす場合があります。\n" +
502 // "※ 設定はCONFIGURATION画面の\n" +
504 // "Sound buffer size for ASIO:\n" +
505 // "You can set from 0 to 99999ms.\n" +
506 // "You should set it to 0, to use\n" +
507 // "a default value specified to\n" +
508 // "the sound device.\n" +
509 // "Smaller value makes smaller lag,\n" +
510 // "but it may cause sound troubles.\n" +
512 // "Note: Exit CONFIGURATION to make\n" +
513 // " the setting take effect." );
514 //this.list項目リスト.Add( this.iSystemASIOBufferSizeMs );
516 // #33689 2014.6.17 yyagi
517 this.iSystemSoundTimerType = new CItemToggle( "UseOSTimer", CDTXMania.ConfigIni.bUseOSTimer,
518 "OSタイマーを使用するかどうか:\n" +
519 "演奏タイマーとして、DTXMania独自のタイマーを使うか\n" +
520 "OS標準のタイマーを使うかを選択します。\n" +
521 "OS標準タイマーを使うとスクロールが滑らかに\n" +
522 "なりますが、演奏で音ズレが発生することが\n" +
524 "(そのためAdjustWavesの効果が適用されます。)\n" +
526 "この指定はWASAPI/ASIO使用時のみ有効です。\n",
527 "Use OS Timer or not:\n" +
528 "If this settings is ON, DTXMania uses OS Standard timer. It brings smooth scroll, but may cause some sound lag.\n" +
529 "(so AdjustWaves is also avilable)\n" +
531 "If OFF, DTXMania uses its original timer and the effect is vice versa.\n" +
533 "This settings is avilable only when you use WASAPI/ASIO.\n"
535 this.list項目リスト.Add( this.iSystemSoundTimerType );
537 // #33700 2013.1.3 yyagi
538 this.iSystemMasterVolume = new CItemInteger( "MasterVolume", 0, 100, CDTXMania.ConfigIni.nMasterVolume,
541 "0が無音で、100が最大値です。\n" +
542 "(WASAPI/ASIO時のみ有効です)",
544 "You can set 0 - 100.\n" +
547 "Only for WASAPI/ASIO mode." );
548 this.list項目リスト.Add( this.iSystemMasterVolume );
550 this.iSystemSkinSubfolder = new CItemList( "Skin (General)", CItemBase.Eパネル種別.通常, nSkinIndex,
551 "スキン切替:スキンを切り替えます。\n",
552 //"CONFIGURATIONを抜けると、設定した\n" +
557 this.list項目リスト.Add( this.iSystemSkinSubfolder );
558 this.iSystemUseBoxDefSkin = new CItemToggle( "Skin (Box)", CDTXMania.ConfigIni.bUseBoxDefSkin,
559 "Music boxスキンの利用:\n" +
560 "特別なスキンが設定されたMusic boxに出入りしたとき\n" +
561 "に、自動でスキンを切り替えるかどうかを設定します。\n",
563 //"(Music Boxスキンは、box.defファイル\n" +
566 "Automatically change skin specified in box.def file." );
567 this.list項目リスト.Add( this.iSystemUseBoxDefSkin );
569 // #36372 2016.06.19 kairera0467
570 this.iSystemBGMAdjust = new CItemInteger( "BGMAdjust", -99, 99, CDTXMania.ConfigIni.nCommonBGMAdjustMs,
571 "BGMの再生タイミングの微調整を行います。\n" +
572 "-99 ~ 99ms まで指定可能です。\n" +
574 "To adjust the BGM play timing.\n" +
575 "You can set from -99 to 0ms.\n" );
576 this.list項目リスト.Add( this.iSystemBGMAdjust );
578 this.iSystemGoToKeyAssign = new CItemBase( "System Keys", CItemBase.Eパネル種別.通常,
579 "システムのキー入力に関する項目を設定します。",
580 "Settings for the system key/pad inputs." );
581 this.list項目リスト.Add( this.iSystemGoToKeyAssign );
585 this.eメニュー種別 = Eメニュー種別.System;
589 #region [ t項目リストの設定_Drums() ]
590 public void t項目リストの設定_Drums()
592 this.tConfigIniへ記録する();
593 this.list項目リスト.Clear();
595 // #27029 2012.1.5 from: 説明文は最大9行→13行に変更。
597 this.iDrumsReturnToMenu = new CItemBase( "<< Return To Menu", CItemBase.Eパネル種別.その他,
599 "Return to left menu." );
600 this.list項目リスト.Add( this.iDrumsReturnToMenu );
603 this.iDrumsAutoPlayAll = new CItemThreeState( "AutoPlay (All)", CItemThreeState.E状態.不定,
604 "全パッドの自動演奏の ON/OFF を\n" +
606 "You can change whether Auto or not for all drums lanes at once." );
607 this.list項目リスト.Add( this.iDrumsAutoPlayAll );
609 this.iDrumsLeftCymbal = new CItemToggle( " LeftCymbal", CDTXMania.ConfigIni.bAutoPlay.LC,
611 "To play LeftCymbal automatically." );
612 this.list項目リスト.Add( this.iDrumsLeftCymbal );
614 this.iDrumsHiHat = new CItemToggle( " HiHat", CDTXMania.ConfigIni.bAutoPlay.HH,
615 "ハイハットを自動で演奏します。\n" +
617 "To play HiHat automatically.\n" +
618 "(It effects to both HH-close and HH-open)" );
619 this.list項目リスト.Add( this.iDrumsHiHat );
621 this.iDrumsSnare = new CItemToggle( " Snare", CDTXMania.ConfigIni.bAutoPlay.SD,
623 "To play Snare automatically." );
624 this.list項目リスト.Add( this.iDrumsSnare );
626 this.iDrumsBass = new CItemToggle( " BassDrum", CDTXMania.ConfigIni.bAutoPlay.BD,
628 "To play Bass Drum automatically." );
629 this.list項目リスト.Add( this.iDrumsBass );
631 this.iDrumsHighTom = new CItemToggle( " HighTom", CDTXMania.ConfigIni.bAutoPlay.HT,
633 "To play High Tom automatically." );
634 this.list項目リスト.Add( this.iDrumsHighTom );
636 this.iDrumsLowTom = new CItemToggle( " LowTom", CDTXMania.ConfigIni.bAutoPlay.LT,
638 "To play Low Tom automatically." );
639 this.list項目リスト.Add( this.iDrumsLowTom );
641 this.iDrumsFloorTom = new CItemToggle( " FloorTom", CDTXMania.ConfigIni.bAutoPlay.FT,
643 "To play Floor Tom automatically." );
644 this.list項目リスト.Add( this.iDrumsFloorTom );
646 this.iDrumsCymbalRide = new CItemToggle( " Cym/Ride", CDTXMania.ConfigIni.bAutoPlay.CY,
647 "右シンバルとライドシンバルを自動で演奏します。",
648 "To play both right- and Ride-Cymbal automatically." );
649 this.list項目リスト.Add( this.iDrumsCymbalRide );
651 this.iDrumsLeftPedal = new CItemToggle( " LeftPedal", CDTXMania.ConfigIni.bAutoPlay.LP,
652 "ハイハットペダルを自動で演奏します。",
653 "To play LeftPedal automatically." );
654 this.list項目リスト.Add( this.iDrumsLeftPedal );
656 this.iDrumsLeftBassDrum = new CItemToggle( " LeftBassDrum", CDTXMania.ConfigIni.bAutoPlay.LBD,
658 "To play LeftBassDrum automatically." );
659 this.list項目リスト.Add( this.iDrumsLeftBassDrum );
663 this.iDrumsScrollSpeed = new CItemInteger( "ScrollSpeed", 0, 0x7cf, CDTXMania.ConfigIni.n譜面スクロール速度.Drums,
664 "演奏時のドラム譜面のスクロールの速度を指定します。\n" +
665 "x0.5 ~ x1000.0 を指定可能です。",
666 "To change the scroll speed for the drums lanes.\n" +
667 "You can set it from x0.5 to x1000.0.\n" +
668 "(ScrollSpeed=x0.5 means half speed)" );
669 this.list項目リスト.Add( this.iDrumsScrollSpeed );
672 this.iDrumsSudHid = new CItemList( "Sud+Hid", CItemBase.Eパネル種別.通常, getDefaultSudHidValue( E楽器パート.DRUMS ),
674 "OFF: チップを常に表示します。\n" +
675 "Sudden: チップがヒットバー付近に来るまで表示\n" +
677 "Hidden: チップがヒットバー付近で表示されなく\n" +
679 "Sud+Hid: SuddenとHiddenの効果を同時にかけます。\n" +
680 "S(emi)-Invisible:\n" +
681 " 通常はチップを透明にしますが、Poor /\n" +
682 " Miss時にはしばらく表示します。\n" +
683 "F(ull)-Invisible:\n" +
684 " チップを常に透明にします。暗譜での練習\n" +
686 "Drums chips display type:\n" +
688 "OFF: Always show chips.\n" +
689 "Sudden: The chips are disappered until they\n" +
690 " come near the hit bar, and suddenly\n" +
692 "Hidden: The chips are hidden by approaching to\n" +
694 "Sud+Hid: Both Sudden and Hidden.\n" +
695 "S(emi)-Invisible:\n" +
696 " Usually you can't see the chips except\n" +
697 " you've gotten Poor/Miss.\n" +
698 "F(ull)-Invisible:\n" +
699 " You can't see the chips at all.",
700 new string[] { "OFF", "Sudden", "Hidden", "Sud+Hid", "S-Invisible", "F-Invisible" } );
701 this.list項目リスト.Add( this.iDrumsSudHid );
704 this.iDrumsDark = new CItemList(" Dark", CItemBase.Eパネル種別.通常, (int)CDTXMania.ConfigIni.eDark,
705 "レーン表示のオプションをまとめて切り替えます。\n"+
706 "HALF: レーンが表示されなくなります。\n"+
707 "FULL: さらに小節線、拍線、判定ラインも\n"+
709 "OFF: all display parts are shown.\nHALF: lanes and gauge are\n disappeared.\nFULL: additionaly to HALF, bar/beat\n lines, hit bar are disappeared.",
710 new string[] { "OFF", "HALF", "FULL" });
711 this.list項目リスト.Add(this.iDrumsDark);
713 this.iDrumsLaneDispType = new CItemList("LaneDisp", CItemBase.Eパネル種別.通常, (int)CDTXMania.ConfigIni.nLaneDispType.Drums,
714 "レーンの縦線と小節線の表示を切り替えます。\n" +
715 "ALL ON :レーン背景、小節線を表示します。\n" +
716 "LANE OFF:レーン背景を表示しません。\n" +
717 "LINE OFF:小節線を表示しません。\n"+
718 "ALL OFF:レーン背景、小節線を表示しません。",
720 new string[] { "ALL ON", "LANE OFF", "LINE OFF", "ALL OFF"});
721 this.list項目リスト.Add(this.iDrumsLaneDispType);
723 this.iDrumsJudgeLineDisp = new CItemToggle("JudgeLineDisp", CDTXMania.ConfigIni.bJudgeLineDisp.Drums,
724 "判定ラインの表示 / 非表示を切り替えます。",
726 this.list項目リスト.Add(this.iDrumsJudgeLineDisp);
728 this.iDrumsLaneFlush = new CItemToggle("LaneFlush", CDTXMania.ConfigIni.bLaneFlush.Drums,
729 "レーンフラッシュの表示 / 非表示を\n" +
732 this.list項目リスト.Add(this.iDrumsLaneFlush);
734 this.iDrumsReverse = new CItemToggle( "Reverse", CDTXMania.ConfigIni.bReverse.Drums,
735 "ドラムチップが譜面の下から上に流れるようになります。",
736 "The scroll way is reversed. Drums chips flow from the bottom to the top." );
737 this.list項目リスト.Add( this.iDrumsReverse );
739 this.iSystemRisky = new CItemInteger( "Risky", 0, 10, CDTXMania.ConfigIni.nRisky,
741 "1以上の値にすると、その回数分のPoor/Missで\n" +
743 "0にすると無効になり、DamageLevelに従った\n" +
746 "なお、この設定は、StageFailedの設定と併用できます。",
748 "It means the Poor/Miss times to be FAILED.\n" +
749 "Set 0 to disable Risky mode." );
750 this.list項目リスト.Add( this.iSystemRisky );
752 this.iDrumsTight = new CItemToggle( "Tight", CDTXMania.ConfigIni.bTight,
753 "ドラムチップのないところでパッドを叩くとミスになります",
754 "It becomes MISS to hit pad without chip." );
755 this.list項目リスト.Add( this.iDrumsTight );
759 this.iDrumsLaneType = new CItemList("LaneType", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eLaneType,
760 "ドラムのレーンの配置を変更します。\n" +
762 "Type-B 2ペダルとタムをそれぞれま\n"+
764 "Type-C 3タムのみをまとめた表示です。\n"+
765 "Type-D 左右完全対象の表示です。",
766 "To change the displaying position of\n" +
769 "Type-B Summarized 2 pedals and Toms.\n"+
770 "Type-C Summarized 3 Toms only.\n"+
771 "Type-D Work In Progress....",
772 new string[] { "Type-A", "Type-B", "Type-C", "Type-D"});
773 this.list項目リスト.Add(this.iDrumsLaneType);
775 #region [ DrumsLanePosition ]
776 //this.iDrumsLanePosition = new CItemList( "LanePosition", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eドラムレーン表示位置,
777 // "ドラムレーンの位置を指定します。\n" +
779 // "Left: 画面の左側にドラムレーンを表示します。\n" +
780 // "Center: 画面の中央にドラムレーンを表示します。\n",
781 // "The display position for Drums Lane." +
783 // " Left: Drums lanes are shown in the left of screen.\n" +
784 // " Center: Drums lanes are shown in the center of screen.",
785 // //"Note that it doesn't take effect at Autoplay ([Left] is forcely used).",
786 // new string[] { "Left", "Center" } );
787 //this.list項目リスト.Add( this.iDrumsLanePosition );
789 #region [ ComboPosition ]
790 //this.iDrumsComboPosition = new CItemList( "ComboPosition", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.ドラムコンボ文字の表示位置,
791 // "演奏時のドラムコンボ文字列の位置を指定します。",
792 // "The display position for Drums Combo.",
793 // //"Note that it doesn't take effect at Autoplay ([Left] is forcely used).",
794 // new string[] { "Left", "Center", "Right", "OFF" } );
795 //this.list項目リスト.Add( this.iDrumsComboPosition );
798 this.iDrumsPosition = new CItemList( "Position", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.判定文字表示位置.Drums,
799 "ドラムの判定文字の表示位置を指定します。\n" +
803 "The position to show judgement mark.\n" +
804 "(Perfect, Great, ...)\n" +
806 " P-A: on the lanes.\n" +
807 " P-B: under the hit bar.\n" +
808 " OFF: no judgement mark.",
809 new string[] { "OFF", "P-A", "P-B" } );
810 this.list項目リスト.Add( this.iDrumsPosition );
813 this.iDrumsRDPosition = new CItemList("RDPosition", CItemBase.Eパネル種別.通常, (int)CDTXMania.ConfigIni.eRDPosition,
816 "RD RC:最右端はRCレーンになります\n"+
817 "RC RD: 最右端はRDレーンになります",
818 "To change the displaying position of\n" +
820 new string[] { "RD RC", "RC RD" });
821 this.list項目リスト.Add(this.iDrumsRDPosition);
824 this.iSystemHHGroup = new CItemList( "HH Group", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eHHGroup,
825 "ハイハットレーン打ち分け設定:\n" +
826 "左シンバル、ハイハットオープン、\n" +
827 "ハイハットクローズの打ち分け方法を指定します。\n" +
828 " HH-0 ... LC | HHC | HHO\n" +
829 " HH-1 ... LC & ( HHC | HHO )\n" +
830 " HH-2 ... LC | ( HHC & HHO )\n" +
831 " HH-3 ... LC & HHC & HHO\n" +
833 "HH-0: LC|HC|HO;\n" +
834 " all are separated.\n" +
835 "HH-1: LC&(HC|HO);\n" +
836 " HC and HO are separted.\n" +
837 " LC is grouped with HC and HHO.\n" +
838 "HH-2: LC|(HC&HO);\n" +
839 " LC and HHs are separated.\n" +
840 " HC and HO are grouped.\n" +
841 "HH-3: LC&HC&HO; all are grouped.\n" +
843 new string[] { "HH-0", "HH-1", "HH-2", "HH-3" } );
844 this.list項目リスト.Add( this.iSystemHHGroup );
846 this.iSystemFTGroup = new CItemList( "FT Group", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eFTGroup,
848 "ロータムとフロアタムの打ち分け方法を指定します。\n" +
849 " FT-0 ... LT | FT\n" +
850 " FT-1 ... LT & FT\n",
852 " LT and FT are separated.\n" +
854 " LT and FT are grouped.",
855 new string[] { "FT-0", "FT-1" } );
856 this.list項目リスト.Add( this.iSystemFTGroup );
858 this.iSystemCYGroup = new CItemList( "CY Group", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eCYGroup,
860 "右シンバルとライドシンバルの打ち分け方法を\n" +
862 " CY-0 ... CY | RD\n" +
863 " CY-1 ... CY & RD\n",
865 " CY and RD are separated.\n" +
867 " CY and RD are grouped.",
868 new string[] { "CY-0", "CY-1" } );
869 this.list項目リスト.Add( this.iSystemCYGroup );
871 this.iSystemBDGroup = new CItemList("BD Group", CItemBase.Eパネル種別.通常, (int)CDTXMania.ConfigIni.eBDGroup, // #27029 2012.1.4 from
873 "左ペダル、左バスドラ、右バスドラの打ち分け\n" +
875 " BD-0 ... LP | LBD | BD\n" +
876 " BD-1 ... LP | LBD & BD\n" +
877 " BD-2 ... LP & LBD | BD\n" +
878 " BD-3 ... LP & LBD & BD\n",
879 new string[] { "BD-0", "BD-1", "BD-2", "BD-3" });
880 this.list項目リスト.Add(this.iSystemBDGroup);
883 this.iSystemCymbalFree = new CItemToggle( "CymbalFree", CDTXMania.ConfigIni.bシンバルフリー,
885 "左シンバル・右シンバルの区別をなくします。\n" +
886 "ライドシンバルまで区別をなくすか否かは、\n" +
888 "Turn ON to group LC (left cymbal) and CY (right cymbal).\n" +
889 "Whether RD (ride cymbal) is also grouped or not depends on the 'CY Group' setting." );
890 this.list項目リスト.Add( this.iSystemCymbalFree );
892 #region [ SoundPriority ]
893 this.iSystemHitSoundPriorityHH = new CItemList( "HH Priority", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eHitSoundPriorityHH,
895 "ハイハットレーン打ち分け有効時に、チップの発声音を\n" +
896 "どのように決定するかを指定します。\n" +
897 " C > P ... チップの音が優先\n" +
898 " P > C ... 叩いたパッドの音が優先\n" +
900 "※BD Group が BD-1 である場合、\n" +
902 "To specify playing sound in case you're using HH-0,1 and 2.\n" +
905 " Chip sound is prior to the pad sound.\n" +
907 " Pad sound is prior to the chip sound.\n" +
909 "* This value cannot be changed while BD Group is set as BD-1.",
910 new string[] { "C>P", "P>C" } );
911 this.list項目リスト.Add( this.iSystemHitSoundPriorityHH );
913 this.iSystemHitSoundPriorityFT = new CItemList( "FT Priority", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eHitSoundPriorityFT,
915 "フロアタム打ち分け有効時に、チップの発声音を\n" +
916 "どのように決定するかを指定します。\n" +
917 " C > P ... チップの音が優先\n" +
918 " P > C ... 叩いたパッドの音が優先",
919 "To specify playing sound in case you're using FT-0.\n" +
922 " Chip sound is prior to the pad sound.\n" +
924 " Pad sound is prior to the chip sound.",
925 new string[] { "C>P", "P>C" } );
926 this.list項目リスト.Add( this.iSystemHitSoundPriorityFT );
928 this.iSystemHitSoundPriorityCY = new CItemList( "CY Priority", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eHitSoundPriorityCY,
930 "シンバルレーン打ち分け有効時に、チップの発声音を\n" +
931 "どのように決定するかを指定します。\n" +
932 " C > P ... チップの音が優先\n" +
933 " P > C ... 叩いたパッドの音が優先",
934 "To specify playing sound in case you're using CY-0.\n" +
937 " Chip sound is prior to the pad sound.\n" +
939 " Pad sound is prior to the chip sound.",
940 new string[] { "C>P", "P>C" } );
941 this.list項目リスト.Add( this.iSystemHitSoundPriorityCY );
944 this.iSystemFillIn = new CItemToggle( "FillIn", CDTXMania.ConfigIni.bフィルイン有効,
946 "フィルイン区間の爆発パターンに特別のエフェクトを\n" +
948 "フィルインエフェクトの描画には\n" +
949 "それなりのマシンパワーが必要とされます。",
950 "To show bursting effects at the fill-in zone." );
951 this.list項目リスト.Add( this.iSystemFillIn );
953 this.iSystemHitSound = new CItemToggle( "HitSound", CDTXMania.ConfigIni.bドラム打音を発声する,
955 "これをOFFにすると、パッドを叩いたときの音を\n" +
956 "再生しなくなります(ドラムのみ)。\n" +
957 "電子ドラム本来の音色で演奏したい場合などに\n" +
960 "注意:BD Group が BD-1 である場合は\n" +
962 "Turn OFF if you don't want to play hitting chip sound.\n" +
963 "It is useful to play with real/electric drums kit.\n" +
965 "Warning: You should not use BD Group BD-1 with HitSound OFF.\n" );
966 this.list項目リスト.Add( this.iSystemHitSound );
968 this.iSystemSoundMonitorDrums = new CItemToggle( "DrumsMonitor", CDTXMania.ConfigIni.b演奏音を強調する.Drums,
970 "ドラム音を他の音より大きめの音量で発声します。\n" +
971 "ただし、オートプレイの場合は通常音量で発声されます",
972 "To enhance the drums chip sound (except autoplay)." );
973 this.list項目リスト.Add( this.iSystemSoundMonitorDrums );
975 this.iSystemMinComboDrums = new CItemInteger( "D-MinCombo", 1, 0x1869f, CDTXMania.ConfigIni.n表示可能な最小コンボ数.Drums,
976 "表示可能な最小コンボ数(ドラム):\n" +
977 "画面に表示されるコンボの最小の数を指定します。\n" +
978 "1 ~ 99999 の値が指定可能です。",
979 "Initial number to show the combo for the drums.\n" +
980 "You can specify from 1 to 99999." );
981 this.list項目リスト.Add( this.iSystemMinComboDrums );
983 this.iDrumsJudgeLinePos = new CItemInteger("JudgeLinePos", 0, 100, CDTXMania.ConfigIni.nJudgeLine.Drums,
984 "演奏時の判定ラインの高さを変更します。\n" +
986 "To change the judgeLinePosition for the\n" +
987 "You can set it from 0 to 100." );
988 this.list項目リスト.Add(this.iDrumsJudgeLinePos);
990 this.iDrumsJudgeLineOffset = new CItemInteger("JudgeLineOffset", -99, 99, CDTXMania.ConfigIni.nJudgeLinePosOffset.Drums,
991 "演奏時の判定ラインのY座標の位置を変更します。\n" +
992 "-99 ~ 99pxの間で指定できます。",
993 "To change the judgeLinePosition for the\n" +
994 "You can set it from 0 to 100." );
995 this.list項目リスト.Add( this.iDrumsJudgeLineOffset );
997 // #23580 2011.1.3 yyagi
998 this.iDrumsInputAdjustTimeMs = new CItemInteger( "InputAdjust", -99, 99, CDTXMania.ConfigIni.nInputAdjustTimeMs.Drums,
999 "ドラムの入力タイミングの微調整を行います。\n" +
1000 "-99 ~ 99ms まで指定可能です。\n" +
1001 "入力ラグを軽減するためには、\n" +
1003 "To adjust the drums input timing.\n" +
1004 "You can set from -99 to 99ms.\n" +
1005 "To decrease input lag, set minus value." );
1006 this.list項目リスト.Add( this.iDrumsInputAdjustTimeMs );
1008 // #24074 2011.01.23 add ikanick
1009 this.iDrumsGraph = new CItemToggle( "Graph", CDTXMania.ConfigIni.bGraph.Drums,
1010 "最高スキルと比較できるグラフを表示します。\n" +
1012 "To draw Graph or not." );
1013 this.list項目リスト.Add( this.iDrumsGraph );
1015 this.iDrumsGoToKeyAssign = new CItemBase( "Drums Keys", CItemBase.Eパネル種別.通常,
1016 "ドラムのキー入力に関する項目を設定します。",
1017 "Settings for the drums key/pad inputs." );
1018 this.list項目リスト.Add( this.iDrumsGoToKeyAssign );
1022 this.eメニュー種別 = Eメニュー種別.Drums;
1025 #region [ t項目リストの設定_Guitar() ]
1026 public void t項目リストの設定_Guitar()
1028 this.tConfigIniへ記録する();
1029 this.list項目リスト.Clear();
1031 // #27029 2012.1.5 from: 説明文は最大9行→13行に変更。
1033 this.iGuitarReturnToMenu = new CItemBase( "<< Return To Menu", CItemBase.Eパネル種別.その他,
1035 "Return to left menu." );
1036 this.list項目リスト.Add( this.iGuitarReturnToMenu );
1038 #region [ AutoPlay ]
1039 this.iGuitarAutoPlayAll = new CItemThreeState( "AutoPlay (All)", CItemThreeState.E状態.不定,
1040 "全ネック/ピックの自動演奏の ON/OFF を\n" +
1042 "You can change whether Auto or not for all guitar neck/pick at once." );
1043 this.list項目リスト.Add( this.iGuitarAutoPlayAll );
1044 this.iGuitarR = new CItemToggle( " R", CDTXMania.ConfigIni.bAutoPlay.GtR,
1046 "To play R neck automatically." );
1047 this.list項目リスト.Add( this.iGuitarR );
1048 this.iGuitarG = new CItemToggle( " G", CDTXMania.ConfigIni.bAutoPlay.GtG,
1050 "To play G neck automatically." );
1051 this.list項目リスト.Add( this.iGuitarG );
1052 this.iGuitarB = new CItemToggle( " B", CDTXMania.ConfigIni.bAutoPlay.GtB,
1054 "To play B neck automatically." );
1055 this.list項目リスト.Add( this.iGuitarB );
1056 this.iGuitarPick = new CItemToggle( " Pick", CDTXMania.ConfigIni.bAutoPlay.GtPick,
1058 "To play Pick automatically." );
1059 this.list項目リスト.Add( this.iGuitarPick );
1060 this.iGuitarW = new CItemToggle( " Wailing", CDTXMania.ConfigIni.bAutoPlay.GtW,
1062 "To play wailing automatically." );
1063 this.list項目リスト.Add( this.iGuitarW );
1065 this.iGuitarScrollSpeed = new CItemInteger( "ScrollSpeed", 0, 0x7cf, CDTXMania.ConfigIni.n譜面スクロール速度.Guitar,
1066 "演奏時のドラム譜面のスクロールの速度を指定します。\n" +
1067 "x0.5 ~ x1000.0 を指定可能です。",
1068 "To change the scroll speed for the drums lanes.\n" +
1069 "You can set it from x0.5 to x1000.0.\n" +
1070 "(ScrollSpeed=x0.5 means half speed)" );
1071 this.list項目リスト.Add( this.iGuitarScrollSpeed );
1073 this.iGuitarSudHid = new CItemList( "Sud+Hid", CItemBase.Eパネル種別.通常, getDefaultSudHidValue( E楽器パート.GUITAR ),
1075 "OFF: チップを常に表示します。\n" +
1076 "Sudden: チップがヒットバー付近に来るまで表示\n" +
1078 "Hidden: チップがヒットバー付近で表示されなく\n" +
1080 "Sud+Hid: SuddenとHiddenの効果を同時にかけます。\n" +
1081 "S(emi)-Invisible:\n" +
1082 " 通常はチップを透明にしますが、Bad時\n" +
1084 "F(ull)-Invisible:\n" +
1085 " チップを常に透明にします。暗譜での練習\n" +
1087 "Guitar chips display type:\n" +
1089 "OFF: Always show chips.\n" +
1090 "Sudden: The chips are disappered until they\n" +
1091 " come near the hit bar, and suddenly\n" +
1093 "Hidden: The chips are hidden by approaching to\n" +
1095 "Sud+Hid: Both Sudden and Hidden.\n" +
1096 "S(emi)-Invisible:\n" +
1097 " Usually you can't see the chips except\n" +
1098 " you've gotten Bad.\n" +
1099 "F(ull)-Invisible:\n" +
1100 " You can't see the chips at all.",
1101 new string[] { "OFF", "Sudden", "Hidden", "Sud+Hid", "S-Invisible", "F-Invisible" } );
1102 this.list項目リスト.Add( this.iGuitarSudHid );
1104 //this.iGuitarSudden = new CItemToggle( "Sudden", CDTXMania.ConfigIni.bSudden.Guitar,
1105 // "ギターチップがヒットバー付近にくる\nまで表示されなくなります。",
1106 // "Guitar chips are disappered until they\ncome near the hit bar, and suddenly\nappears." );
1107 //this.list項目リスト.Add( this.iGuitarSudden );
1108 //this.iGuitarHidden = new CItemToggle( "Hidden", CDTXMania.ConfigIni.bHidden.Guitar,
1109 // "ギターチップがヒットバー付近で表示\nされなくなります。",
1110 // "Guitar chips are hidden by approaching\nto the hit bar. " );
1111 //this.list項目リスト.Add( this.iGuitarHidden );
1113 //this.iGuitarInvisible = new CItemList( "Invisible", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eInvisible.Guitar,
1114 // "ギターのチップを全く表示しなくなりま\n" +
1115 // "す。暗譜での練習にお使いください。\n" +
1116 // "これをONにすると、SuddenとHiddenの\n" +
1118 // "If you set Blindfold=ON, you can't\n" +
1119 // "see the chips at all.",
1120 // new string[] { "OFF", "HALF", "ON" } );
1121 //this.list項目リスト.Add( this.iGuitarInvisible );
1123 this.iGuitarDark = new CItemList(" Dark", CItemBase.Eパネル種別.通常, (int)CDTXMania.ConfigIni.eDark,
1124 "レーン表示のオプションをまとめて切り替えます。\n" +
1125 "HALF: レーンが表示されなくなります。\n" +
1126 "FULL: さらに小節線、拍線、判定ラインも\n" +
1128 "OFF: all display parts are shown.\nHALF: lanes and gauge are\n disappeared.\nFULL: additionaly to HALF, bar/beat\n lines, hit bar are disappeared.",
1129 new string[] { "OFF", "HALF", "FULL" });
1130 this.list項目リスト.Add(this.iGuitarDark);
1132 this.iGuitarLaneDispType = new CItemList("LaneDisp", CItemBase.Eパネル種別.通常, (int)CDTXMania.ConfigIni.nLaneDispType.Guitar,
1133 "レーンの縦線と小節線の表示を切り替えます。\n" +
1134 "ALL ON :レーン背景、小節線を表示します。\n" +
1135 "LANE OFF:レーン背景を表示しません。\n" +
1136 "LINE OFF:小節線を表示しません。\n" +
1137 "ALL OFF:レーン背景、小節線を表示しません。",
1139 new string[] { "ALL ON", "LANE OFF", "LINE OFF", "ALL OFF" });
1140 this.list項目リスト.Add(this.iGuitarLaneDispType);
1142 this.iGuitarJudgeLineDisp = new CItemToggle( "JudgeLineDisp", CDTXMania.ConfigIni.bJudgeLineDisp.Guitar,
1143 "判定ラインの表示 / 非表示を切り替えます。",
1144 "Toggle JudgeLine");
1145 this.list項目リスト.Add( this.iGuitarJudgeLineDisp );
1147 this.iGuitarLaneFlush = new CItemToggle( "LaneFlush", CDTXMania.ConfigIni.bLaneFlush.Guitar,
1148 "レーンフラッシュの表示の表示 / 非表示を\n" +
1150 "Toggle LaneFlush" );
1151 this.list項目リスト.Add( this.iGuitarLaneFlush );
1153 this.iGuitarReverse = new CItemToggle( "Reverse", CDTXMania.ConfigIni.bReverse.Guitar,
1154 "ギターチップが譜面の上から下に流れるようになります",
1155 "The scroll way is reversed. Guitar chips flow from the top to the bottom." );
1156 this.list項目リスト.Add( this.iGuitarReverse );
1158 this.iSystemJudgePosGuitar = new CItemList( "JudgePos", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.e判定位置.Guitar,
1160 "判定ラインとRGBボタンが、少し下側に表示される\n" +
1162 "Judge Line position:\n" +
1163 "The judge line and RGB buttons will be displayed lower position.",
1164 new string[] { "Normal", "Lower" } );
1165 this.list項目リスト.Add( this.iSystemJudgePosGuitar );
1167 this.iGuitarPosition = new CItemList( "Position", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.判定文字表示位置.Guitar,
1168 "ギターの判定文字の表示位置を指定します。\n" +
1171 " P-C: COMBO の下\n" +
1173 "The position to show judgement mark.\n" +
1174 "(Perfect, Great, ...)\n" +
1176 " P-A: on the lanes.\n" +
1177 " P-B: over the hit bar.\n" +
1178 " P-C: under the COMBO indication.\n" +
1179 " OFF: no judgement mark.",
1180 new string[] { "OFF", "P-A", "P-B", "P-C" } );
1181 this.list項目リスト.Add( this.iGuitarPosition );
1183 //this.iGuitarJudgeDispPriority = new CItemList( "JudgePriority", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.e判定表示優先度.Guitar,
1184 // "判定文字列とコンボ表示の優先順位を\n" +
1187 // " Under: チップの下に表示します。\n" +
1188 // " Over: チップの上に表示します。",
1189 // "The display prioity between chips\n" +
1190 // " and judge mark/combo.\n" +
1192 // " Under: Show them under the chips.\n" +
1193 // " Over: Show them over the chips.",
1194 // new string[] { "Under", "Over" } );
1195 //this.list項目リスト.Add( this.iGuitarJudgeDispPriority );
1197 this.iGuitarRandom = new CItemList( "Random", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eRandom.Guitar,
1198 "ギターのチップがランダムに降ってきます。\n" +
1199 " Part: 小節・レーン単位で交換\n" +
1200 " Super: チップ単位で交換\n" +
1202 "Guitar chips come randomly.\n" +
1204 " Part: swapping lanes randomly for each measures.\n" +
1205 " Super: swapping chip randomly\n" +
1206 " Hyper: swapping randomly (number of lanes also changes)",
1207 new string[] { "OFF", "Part", "Super", "Hyper" } );
1208 this.list項目リスト.Add( this.iGuitarRandom );
1210 this.iGuitarLight = new CItemToggle( "Light", CDTXMania.ConfigIni.bLight.Guitar,
1211 "ギターチップのないところでピッキングしても BAD に\n" +
1213 "Even if you pick without any chips, it doesn't become BAD." );
1214 this.list項目リスト.Add( this.iGuitarLight );
1215 this.iGuitarLeft = new CItemToggle( "Left", CDTXMania.ConfigIni.bLeft.Guitar,
1216 "ギターの RGB の並びが左右反転します。\n" +
1218 "Lane order 'R-G-B' becomes 'B-G-R' for lefty." );
1219 this.list項目リスト.Add( this.iGuitarLeft );
1221 this.iSystemSoundMonitorGuitar = new CItemToggle( "GuitarMonitor", CDTXMania.ConfigIni.b演奏音を強調する.Guitar,
1223 "ギター音を他の音より大きめの音量で発声します。\n" +
1224 "ただし、オートプレイの場合は通常音量で\n" +
1226 "To enhance the guitar chip sound (except autoplay)." );
1227 this.list項目リスト.Add( this.iSystemSoundMonitorGuitar );
1228 this.iSystemMinComboGuitar = new CItemInteger( "G-MinCombo", 1, 0x1869f, CDTXMania.ConfigIni.n表示可能な最小コンボ数.Guitar,
1229 "表示可能な最小コンボ数(ギター):\n" +
1230 "画面に表示されるコンボの最小の数を指定します。\n" +
1231 "1 ~ 99999 の値が指定可能です。",
1232 "Initial number to show the combo for the guitar.\n" +
1233 "You can specify from 1 to 99999." );
1234 this.list項目リスト.Add( this.iSystemMinComboGuitar );
1237 // #23580 2011.1.3 yyagi
1238 this.iGuitarInputAdjustTimeMs = new CItemInteger( "InputAdjust", -99, 99, CDTXMania.ConfigIni.nInputAdjustTimeMs.Guitar,
1239 "ギターの入力タイミングの微調整を行います。\n" +
1240 "-99 ~ 99ms まで指定可能です。\n" +
1241 "入力ラグを軽減するためには、\n" +
1243 "To adjust the guitar input timing.\n" +
1244 "You can set from -99 to 99ms.\n" +
1245 "To decrease input lag, set minus value." );
1246 this.list項目リスト.Add( this.iGuitarInputAdjustTimeMs );
1248 this.iGuitarGraph = new CItemToggle( "Graph", CDTXMania.ConfigIni.bGraph.Guitar,
1249 "最高スキルと比較できるグラフを表示します。\n" +
1250 "オートプレイだと表示されません。\n" +
1251 "この項目を有効にすると、ベースパートのグラフは\n" +
1253 "To draw Graph or not." );
1254 this.list項目リスト.Add( this.iGuitarGraph );
1256 this.iGuitarGoToKeyAssign = new CItemBase( "Guitar Keys", CItemBase.Eパネル種別.通常,
1257 "ギターのキー入力に関する項目を設定します。",
1258 "Settings for the guitar key/pad inputs." );
1259 this.list項目リスト.Add( this.iGuitarGoToKeyAssign );
1263 this.eメニュー種別 = Eメニュー種別.Guitar;
1266 #region [ t項目リストの設定_Bass() ]
1267 public void t項目リストの設定_Bass()
1269 this.tConfigIniへ記録する();
1270 this.list項目リスト.Clear();
1272 // #27029 2012.1.5 from: 説明文は最大9行→13行に変更。
1274 this.iBassReturnToMenu = new CItemBase( "<< Return To Menu", CItemBase.Eパネル種別.その他,
1276 "Return to left menu." );
1277 this.list項目リスト.Add( this.iBassReturnToMenu );
1279 #region [ AutoPlay ]
1280 this.iBassAutoPlayAll = new CItemThreeState( "AutoPlay (All)", CItemThreeState.E状態.不定,
1281 "全ネック/ピックの自動演奏の ON/OFF を\n" +
1283 "You can change whether Auto or not for all bass neck/pick at once." );
1284 this.list項目リスト.Add( this.iBassAutoPlayAll );
1285 this.iBassR = new CItemToggle( " R", CDTXMania.ConfigIni.bAutoPlay.BsR,
1287 "To play R neck automatically." );
1288 this.list項目リスト.Add( this.iBassR );
1289 this.iBassG = new CItemToggle( " G", CDTXMania.ConfigIni.bAutoPlay.BsG,
1291 "To play G neck automatically." );
1292 this.list項目リスト.Add( this.iBassG );
1293 this.iBassB = new CItemToggle( " B", CDTXMania.ConfigIni.bAutoPlay.BsB,
1295 "To play B neck automatically." );
1296 this.list項目リスト.Add( this.iBassB );
1297 this.iBassPick = new CItemToggle( " Pick", CDTXMania.ConfigIni.bAutoPlay.BsPick,
1299 "To play Pick automatically." );
1300 this.list項目リスト.Add( this.iBassPick );
1301 this.iBassW = new CItemToggle( " Wailing", CDTXMania.ConfigIni.bAutoPlay.BsW,
1303 "To play wailing automatically." );
1304 this.list項目リスト.Add( this.iBassW );
1307 this.iBassScrollSpeed = new CItemInteger( "ScrollSpeed", 0, 0x7cf, CDTXMania.ConfigIni.n譜面スクロール速度.Bass,
1308 "演奏時のベース譜面のスクロールの速度を指定します\n" +
1309 "x0.5 ~ x1000.0 までを指定可能です。",
1310 "To change the scroll speed for the bass lanes.\n" +
1311 "You can set it from x0.5 to x1000.0.\n" +
1312 "(ScrollSpeed=x0.5 means half speed)" );
1313 this.list項目リスト.Add( this.iBassScrollSpeed );
1315 this.iBassSudHid = new CItemList( "Sud+Hid", CItemBase.Eパネル種別.通常, getDefaultSudHidValue( E楽器パート.BASS ),
1317 "OFF: チップを常に表示します。\n" +
1318 "Sudden: チップがヒットバー付近に来るまで表示\n" +
1320 "Hidden: チップがヒットバー付近で表示されなく\n" +
1322 "Sud+Hid: SuddenとHiddenの効果を同時にかけます。\n" +
1323 "S(emi)-Invisible:\n" +
1324 " 通常はチップを透明にしますが、Bad時\n" +
1326 "F(ull)-Invisible:\n" +
1327 " チップを常に透明にします。暗譜での練習\n" +
1329 "Bass chips display type:\n" +
1331 "OFF: Always show chips.\n" +
1332 "Sudden: The chips are disappered until they\n" +
1333 " come near the hit bar, and suddenly\n" +
1335 "Hidden: The chips are hidden by approaching to\n" +
1337 "Sud+Hid: Both Sudden and Hidden.\n" +
1338 "S(emi)-Invisible:\n" +
1339 " Usually you can't see the chips except\n" +
1340 " you've gotten Bad.\n" +
1341 "F(ull)-Invisible:\n" +
1342 " You can't see the chips at all.",
1343 new string[] { "OFF", "Sudden", "Hidden", "Sud+Hid", "S-Invisible", "F-Invisible" } );
1344 this.list項目リスト.Add( this.iBassSudHid );
1346 //this.iBassSudden = new CItemToggle( "Sudden", CDTXMania.ConfigIni.bSudden.Bass,
1347 // "ベースチップがヒットバー付近にくる\nまで表示されなくなります。",
1348 // "Bass chips are disappered until they\ncome near the hit bar, and suddenly\nappears." );
1349 //this.list項目リスト.Add( this.iBassSudden );
1350 //this.iBassHidden = new CItemToggle( "Hidden", CDTXMania.ConfigIni.bHidden.Bass,
1351 // "ベースチップがヒットバー付近で表示\nされなくなります。",
1352 // "Bass chips are hidden by approaching\nto the hit bar." );
1353 //this.list項目リスト.Add( this.iBassHidden );
1355 //this.iBassInvisible = new CItemList( "InvisibleBlindfold", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eInvisible.Bass,
1356 // "ベースのチップを全く表示しなくなりま\n" +
1357 // "す。暗譜での練習にお使いください。\n" +
1358 // "これをONにすると、SuddenとHiddenの\n" +
1360 // "If you set Blindfold=ON, you can't\n" +
1361 // "see the chips at all.",
1362 // new string[] { "OFF", "HALF", "ON"} );
1363 //this.list項目リスト.Add( this.iBassInvisible );
1365 this.iBassDark = new CItemList(" Dark", CItemBase.Eパネル種別.通常, (int)CDTXMania.ConfigIni.eDark,
1366 "レーン表示のオプションをまとめて切り替えます。\n" +
1367 "HALF: レーンが表示されなくなります。\n" +
1368 "FULL: さらに小節線、拍線、判定ラインも\n" +
1370 "OFF: all display parts are shown.\nHALF: lanes and gauge are\n disappeared.\nFULL: additionaly to HALF, bar/beat\n lines, hit bar are disappeared.",
1371 new string[] { "OFF", "HALF", "FULL" });
1372 this.list項目リスト.Add(this.iBassDark);
1374 this.iBassLaneDispType = new CItemList( "LaneDisp", CItemBase.Eパネル種別.通常, (int)CDTXMania.ConfigIni.nLaneDispType.Bass,
1375 "レーンの縦線と小節線の表示を切り替えます。\n" +
1376 "ALL ON :レーン背景、小節線を表示します。\n" +
1377 "LANE OFF:レーン背景を表示しません。\n" +
1378 "LINE OFF:小節線を表示しません。\n" +
1379 "ALL OFF:レーン背景、小節線を表示しません。",
1381 new string[] { "ALL ON", "LANE OFF", "LINE OFF", "ALL OFF" });
1382 this.list項目リスト.Add(this.iBassLaneDispType);
1384 this.iBassJudgeLineDisp = new CItemToggle("JudgeLineDisp", CDTXMania.ConfigIni.bJudgeLineDisp.Bass,
1385 "判定ラインの表示 / 非表示を切り替えます。",
1386 "Toggle JudgeLine");
1387 this.list項目リスト.Add(this.iBassJudgeLineDisp);
1389 this.iBassLaneFlush = new CItemToggle( "LaneFlush", CDTXMania.ConfigIni.bLaneFlush.Bass,
1390 "レーンフラッシュの表示 / 非表示を\n" +
1392 "Toggle LaneFlush" );
1393 this.list項目リスト.Add( this.iBassLaneFlush );
1395 this.iBassReverse = new CItemToggle( "Reverse", CDTXMania.ConfigIni.bReverse.Bass,
1396 "ベースチップが譜面の上から下に流れるようになります",
1397 "The scroll way is reversed. Bass chips flow from the top to the bottom." );
1398 this.list項目リスト.Add( this.iBassReverse );
1400 this.iSystemJudgePosBass = new CItemList( "JudgePos", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.e判定位置.Bass,
1402 "判定ラインとRGBボタンが、少し下側に表示される\n" +
1404 "Judge Line position:\n" +
1405 "The judge line and RGB buttons will be displayed lower position.",
1406 new string[] { "Normal", "Lower" } );
1407 this.list項目リスト.Add( this.iSystemJudgePosBass );
1409 this.iBassPosition = new CItemList( "Position", CItemBase.Eパネル種別.通常,
1410 (int) CDTXMania.ConfigIni.判定文字表示位置.Bass,
1411 "ベースの判定文字の表示位置を指定します。\n" +
1414 " P-C: COMBO の下\n" +
1416 "The position to show judgement mark.\n" +
1417 "(Perfect, Great, ...)\n" +
1419 " P-A: on the lanes.\n" +
1420 " P-B: over the hit bar.\n" +
1421 " P-C: under the COMBO indication.\n" +
1422 " OFF: no judgement mark.",
1423 new string[] { "OFF", "P-A", "P-B", "P-C" } );
1424 this.list項目リスト.Add( this.iBassPosition );
1426 //this.iBassJudgeDispPriority = new CItemList( "JudgePriority", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.e判定表示優先度.Bass,
1427 //"判定文字列とコンボ表示の優先順位を\n" +
1430 //" Under: チップの下に表示します。\n" +
1431 //" Over: チップの上に表示します。",
1432 //"The display prioity between chips\n" +
1433 //" and judge mark/combo.\n" +
1435 //" Under: Show them under the chips.\n" +
1436 //" Over: Show them over the chips.",
1437 //new string[] { "Under", "Over" } );
1438 //this.list項目リスト.Add( this.iBassJudgeDispPriority );
1440 this.iBassRandom = new CItemList( "Random", CItemBase.Eパネル種別.通常,
1441 (int) CDTXMania.ConfigIni.eRandom.Bass,
1442 "ベースのチップがランダムに降ってきます。\n" +
1443 " Part: 小節・レーン単位で交換\n" +
1444 " Super: チップ単位で交換\n" +
1446 "Bass chips come randomly.\n" +
1448 " Part: swapping lanes randomly for each measures.\n" +
1449 " Super: swapping chip randomly\n" +
1450 " Hyper: swapping randomly (number of lanes also changes)",
1451 new string[] { "OFF", "Part", "Super", "Hyper" } );
1452 this.list項目リスト.Add( this.iBassRandom );
1453 this.iBassLight = new CItemToggle( "Light", CDTXMania.ConfigIni.bLight.Bass,
1454 "ベースチップのないところでピッキングしても BAD に\n" +
1456 "Even if you pick without any chips, it doesn't become BAD." );
1457 this.list項目リスト.Add( this.iBassLight );
1458 this.iBassLeft = new CItemToggle( "Left", CDTXMania.ConfigIni.bLeft.Bass,
1459 "ベースの RGB の並びが左右反転します。\n" +
1461 "Lane order 'R-G-B' becomes 'B-G-R' for lefty." );
1462 this.list項目リスト.Add( this.iBassLeft );
1464 this.iSystemSoundMonitorBass = new CItemToggle( "BassMonitor", CDTXMania.ConfigIni.b演奏音を強調する.Bass,
1466 "ベース音を他の音より大きめの音量で発声します。\n" +
1467 "ただし、オートプレイの場合は通常音量で\n" +
1469 "To enhance the bass chip sound (except autoplay)." );
1470 this.list項目リスト.Add( this.iSystemSoundMonitorBass );
1472 this.iSystemMinComboBass = new CItemInteger( "B-MinCombo", 1, 0x1869f, CDTXMania.ConfigIni.n表示可能な最小コンボ数.Bass,
1473 "表示可能な最小コンボ数(ベース):\n" +
1474 "画面に表示されるコンボの最小の数を指定します。\n" +
1475 "1 ~ 99999 の値が指定可能です。",
1476 "Initial number to show the combo for the bass.\n" +
1477 "You can specify from 1 to 99999." );
1478 this.list項目リスト.Add( this.iSystemMinComboBass );
1480 this.iBassGraph = new CItemToggle( "Graph", CDTXMania.ConfigIni.bGraph.Bass,
1481 "最高スキルと比較できるグラフを表示します。\n" +
1482 "オートプレイだと表示されません。\n" +
1483 "この項目を有効にすると、ギターパートのグラフは\n" +
1485 "To draw Graph or not." );
1486 this.list項目リスト.Add( this.iBassGraph );
1488 // #23580 2011.1.3 yyagi
1489 this.iBassInputAdjustTimeMs = new CItemInteger( "InputAdjust", -99, 99, CDTXMania.ConfigIni.nInputAdjustTimeMs.Bass,
1490 "ベースの入力タイミングの微調整を行います。\n" +
1491 "-99 ~ 99ms まで指定可能です。\n" +
1492 "入力ラグを軽減するためには、負の値を\n" +
1494 "To adjust the bass input timing.\n" +
1495 "You can set from -99 to 99ms.\n" +
1496 "To decrease input lag, set minus value." );
1497 this.list項目リスト.Add( this.iBassInputAdjustTimeMs );
1499 this.iBassGoToKeyAssign = new CItemBase( "Bass Keys", CItemBase.Eパネル種別.通常,
1500 "ベースのキー入力に関する項目を設定します。",
1501 "Settings for the bass key/pad inputs." );
1502 this.list項目リスト.Add( this.iBassGoToKeyAssign );
1506 this.eメニュー種別 = Eメニュー種別.Bass;
1510 /// <summary>Sud+Hidの初期値を返す</summary>
1511 /// <param name="eInst"></param>
1517 /// 4: Semi-Invisible
1518 /// 5: Full-Invisible
1520 private int getDefaultSudHidValue( E楽器パート eInst )
1523 int nInst = (int) eInst;
1524 if ( CDTXMania.ConfigIni.eInvisible[ nInst ] != EInvisible.OFF )
1526 defvar = (int) CDTXMania.ConfigIni.eInvisible[ nInst ] + 3;
1530 defvar = ( CDTXMania.ConfigIni.bSudden[ nInst ] ? 1 : 0 ) +
1531 ( CDTXMania.ConfigIni.bHidden[ nInst ] ? 2 : 0 );
1539 public void tEsc押下()
1541 if ( this.b要素値にフォーカス中 ) // #32059 2013.9.17 add yyagi
1543 this.b要素値にフォーカス中 = false;
1546 if ( this.eメニュー種別 == Eメニュー種別.KeyAssignSystem )
1550 else if ( this.eメニュー種別 == Eメニュー種別.KeyAssignDrums )
1554 else if ( this.eメニュー種別 == Eメニュー種別.KeyAssignGuitar )
1558 else if ( this.eメニュー種別 == Eメニュー種別.KeyAssignBass )
1564 public void tEnter押下()
1566 CDTXMania.Skin.sound決定音.t再生する();
1567 if( this.b要素値にフォーカス中 )
1569 this.b要素値にフォーカス中 = false;
1571 else if( this.list項目リスト[ this.n現在の選択項目 ].e種別 == CItemBase.E種別.整数 )
1573 this.b要素値にフォーカス中 = true;
1575 else if( this.b現在選択されている項目はReturnToMenuである )
1577 //this.tConfigIniへ記録する();
1578 //CONFIG中にスキン変化が発生すると面倒なので、一旦マスクした。
1580 #region [ 個々のキーアサイン ]
1581 else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignDrumsLC )
1583 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.DRUMS, EKeyConfigPad.LC );
1585 else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignDrumsHHC )
1587 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.DRUMS, EKeyConfigPad.HH );
1589 else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignDrumsHHO )
1591 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.DRUMS, EKeyConfigPad.HHO );
1593 else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignDrumsSD )
1595 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.DRUMS, EKeyConfigPad.SD );
1597 else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignDrumsBD )
1599 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.DRUMS, EKeyConfigPad.BD );
1601 else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignDrumsHT )
1603 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.DRUMS, EKeyConfigPad.HT );
1605 else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignDrumsLT )
1607 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.DRUMS, EKeyConfigPad.LT );
1609 else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignDrumsFT )
1611 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.DRUMS, EKeyConfigPad.FT );
1613 else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignDrumsCY )
1615 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.DRUMS, EKeyConfigPad.CY );
1617 else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignDrumsRD )
1619 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.DRUMS, EKeyConfigPad.RD );
1621 else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignDrumsLP ) // #27029 2012.1.4 from
1623 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.DRUMS, EKeyConfigPad.LP ); //
1625 else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignDrumsLBD ) // #27029 2012.1.4 from
1627 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.DRUMS, EKeyConfigPad.LBD ); //
1629 else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignGuitarR )
1631 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.GUITAR, EKeyConfigPad.R );
1633 else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignGuitarG )
1635 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.GUITAR, EKeyConfigPad.G );
1637 else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignGuitarB )
1639 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.GUITAR, EKeyConfigPad.B );
1641 else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignGuitarPick )
1643 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.GUITAR, EKeyConfigPad.Pick );
1645 else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignGuitarWail )
1647 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.GUITAR, EKeyConfigPad.Wail );
1649 else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignGuitarDecide )
1651 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.GUITAR, EKeyConfigPad.Decide );
1653 else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignGuitarCancel )
1655 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.GUITAR, EKeyConfigPad.Cancel );
1657 else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignBassR )
1659 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.BASS, EKeyConfigPad.R );
1661 else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignBassG )
1663 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.BASS, EKeyConfigPad.G );
1665 else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignBassB )
1667 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.BASS, EKeyConfigPad.B );
1669 else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignBassPick )
1671 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.BASS, EKeyConfigPad.Pick );
1673 else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignBassWail )
1675 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.BASS, EKeyConfigPad.Wail );
1677 else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignBassDecide )
1679 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.BASS, EKeyConfigPad.Decide );
1681 else if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignBassCancel )
1683 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.BASS, EKeyConfigPad.Cancel );
1685 else if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignSystemCapture )
1687 CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.SYSTEM, EKeyConfigPad.Capture);
1692 // #27029 2012.1.5 from
1693 if( ( this.iSystemBDGroup.n現在選択されている項目番号 == (int) EBDGroup.どっちもBD ) &&
1694 ( ( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemHHGroup ) || ( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemHitSoundPriorityHH ) ) )
1701 this.list項目リスト[ this.n現在の選択項目 ].tEnter押下();
1707 if( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemFullscreen )
1709 CDTXMania.app.b次のタイミングで全画面_ウィンドウ切り替えを行う = true;
1711 else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemVSyncWait )
1713 CDTXMania.ConfigIni.b垂直帰線待ちを行う = this.iSystemVSyncWait.bON;
1714 CDTXMania.app.b次のタイミングで垂直帰線同期切り替えを行う = true;
1716 #region [ AutoPlay #23886 2012.5.8 yyagi ]
1717 else if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iDrumsAutoPlayAll )
1719 this.t全部のドラムパッドのAutoを切り替える( this.iDrumsAutoPlayAll.e現在の状態 == CItemThreeState.E状態.ON );
1721 else if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iGuitarAutoPlayAll )
1723 this.t全部のギターパッドのAutoを切り替える( this.iGuitarAutoPlayAll.e現在の状態 == CItemThreeState.E状態.ON );
1725 else if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iBassAutoPlayAll )
1727 this.t全部のベースパッドのAutoを切り替える( this.iBassAutoPlayAll.e現在の状態 == CItemThreeState.E状態.ON );
1730 #region [ キーアサインへの遷移と脱出 ]
1731 else if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemGoToKeyAssign ) // #24609 2011.4.12 yyagi
1733 t項目リストの設定_KeyAssignSystem();
1735 else if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignSystemReturnToMenu ) // #24609 2011.4.12 yyagi
1739 else if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iDrumsGoToKeyAssign ) // #24525 2011.3.15 yyagi
1741 t項目リストの設定_KeyAssignDrums();
1743 else if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignDrumsReturnToMenu ) // #24525 2011.3.15 yyagi
1747 else if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iGuitarGoToKeyAssign ) // #24525 2011.3.15 yyagi
1749 t項目リストの設定_KeyAssignGuitar();
1751 else if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignGuitarReturnToMenu ) // #24525 2011.3.15 yyagi
1755 else if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iBassGoToKeyAssign ) // #24525 2011.3.15 yyagi
1757 t項目リストの設定_KeyAssignBass();
1759 else if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignBassReturnToMenu ) // #24525 2011.3.15 yyagi
1765 else if (this.list項目リスト[this.n現在の選択項目] == this.iDrumsDark) // #27029 2012.1.4 from
1767 if (this.iDrumsDark.n現在選択されている項目番号 == (int)Eダークモード.FULL)
1769 this.iDrumsLaneDispType.n現在選択されている項目番号 = 3;
1770 this.iDrumsJudgeLineDisp.bON = false;
1771 this.iDrumsLaneFlush.bON = false;
1773 else if (this.iDrumsDark.n現在選択されている項目番号 == (int)Eダークモード.HALF)
1775 this.iDrumsLaneDispType.n現在選択されている項目番号 = 1;
1776 this.iDrumsJudgeLineDisp.bON = true;
1777 this.iDrumsLaneFlush.bON = true;
1781 this.iDrumsLaneDispType.n現在選択されている項目番号 = 0;
1782 this.iDrumsJudgeLineDisp.bON = true;
1783 this.iDrumsLaneFlush.bON = true;
1786 else if (this.list項目リスト[this.n現在の選択項目] == this.iGuitarDark) // #27029 2012.1.4 from
1788 if (this.iGuitarDark.n現在選択されている項目番号 == (int)Eダークモード.FULL)
1790 this.iGuitarLaneDispType.n現在選択されている項目番号 = 3;
1791 this.iGuitarJudgeLineDisp.bON = false;
1792 this.iGuitarLaneFlush.bON = false;
1794 else if (this.iGuitarDark.n現在選択されている項目番号 == (int)Eダークモード.HALF)
1796 this.iGuitarLaneDispType.n現在選択されている項目番号 = 1;
1797 this.iGuitarJudgeLineDisp.bON = true;
1798 this.iGuitarLaneFlush.bON = true;
1802 this.iGuitarLaneDispType.n現在選択されている項目番号 = 0;
1803 this.iGuitarJudgeLineDisp.bON = true;
1804 this.iGuitarLaneFlush.bON = true;
1807 else if (this.list項目リスト[this.n現在の選択項目] == this.iBassDark) // #27029 2012.1.4 from
1809 if (this.iBassDark.n現在選択されている項目番号 == (int)Eダークモード.FULL)
1811 this.iBassLaneDispType.n現在選択されている項目番号 = 3;
1812 this.iBassJudgeLineDisp.bON = false;
1813 this.iBassLaneFlush.bON = false;
1815 else if (this.iBassDark.n現在選択されている項目番号 == (int)Eダークモード.HALF)
1817 this.iBassLaneDispType.n現在選択されている項目番号 = 1;
1818 this.iBassJudgeLineDisp.bON = true;
1819 this.iBassLaneFlush.bON = true;
1823 this.iBassLaneDispType.n現在選択されている項目番号 = 0;
1824 this.iBassJudgeLineDisp.bON = true;
1825 this.iBassLaneFlush.bON = true;
1829 #region[ ギター・ベースグラフ ]
1830 else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iGuitarGraph )
1832 if( this.iGuitarGraph.bON == true )
1834 CDTXMania.ConfigIni.bGraph.Bass = false;
1835 this.iBassGraph.bON = false;
1838 else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iBassGraph )
1840 if( this.iBassGraph.bON == true )
1842 CDTXMania.ConfigIni.bGraph.Guitar = false;
1843 this.iGuitarGraph.bON = false;
1848 #region [ BDGroup #27029 2012.1.4 from ]
1849 else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemBDGroup ) // #27029 2012.1.4 from
1851 if( this.iSystemBDGroup.n現在選択されている項目番号 == (int) EBDGroup.どっちもBD )
1853 // #27029 2012.1.5 from: 変更前の状態をバックアップする。
1854 //CDTXMania.ConfigIni.BackupOf1BD = new CConfigIni.CBackupOf1BD() {
1855 // eHHGroup = (EHHGroup) this.iSystemHHGroup.n現在選択されている項目番号,
1856 // eHitSoundPriorityHH = (E打ち分け時の再生の優先順位) this.iSystemHitSoundPriorityHH.n現在選択されている項目番号,
1859 //// HH Group ... HH-0 → HH-2 / HH-1 → HH-3 / HH-2 → 変更なし / HH-3 → 変更なし
1860 //if( this.iSystemHHGroup.n現在選択されている項目番号 == (int) EHHGroup.全部打ち分ける )
1861 // this.iSystemHHGroup.n現在選択されている項目番号 = (int) EHHGroup.左シンバルのみ打ち分ける;
1862 //if( this.iSystemHHGroup.n現在選択されている項目番号 == (int) EHHGroup.ハイハットのみ打ち分ける )
1863 // this.iSystemHHGroup.n現在選択されている項目番号 = (int) EHHGroup.全部共通;
1865 //// HH Priority ... C>P → 変更なし / P>C → C>P
1866 //if( this.iSystemHitSoundPriorityHH.n現在選択されている項目番号 == (int) E打ち分け時の再生の優先順位.PadがChipより優先 )
1867 // this.iSystemHitSoundPriorityHH.n現在選択されている項目番号 = (int) E打ち分け時の再生の優先順位.ChipがPadより優先;
1871 // #27029 2012.1.5 from: 変更前の状態に戻す。
1872 //this.iSystemHHGroup.n現在選択されている項目番号 = (int) CDTXMania.ConfigIni.BackupOf1BD.eHHGroup;
1873 //this.iSystemHitSoundPriorityHH.n現在選択されている項目番号 = (int) CDTXMania.ConfigIni.BackupOf1BD.eHitSoundPriorityHH;
1875 //CDTXMania.ConfigIni.BackupOf1BD = null;
1879 else if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemUseBoxDefSkin ) // #28195 2012.5.6 yyagi
1881 CSkin.bUseBoxDefSkin = this.iSystemUseBoxDefSkin.bON;
1883 #region [ スキン項目でEnterを押下した場合に限り、スキンの縮小サンプルを生成する。]
1884 else if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemSkinSubfolder ) // #28195 2012.5.2 yyagi
1886 tGenerateSkinSample();
1889 #region [ 曲データ一覧の再読み込み ]
1890 else if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemReloadDTX ) // #32081 2013.10.21 yyagi
1892 if ( CDTXMania.EnumSongs.IsEnumerating )
1894 // Debug.WriteLine( "バックグラウンドでEnumeratingSongs中だったので、一旦中断します。" );
1895 CDTXMania.EnumSongs.Abort();
1896 CDTXMania.actEnumSongs.On非活性化();
1899 CDTXMania.EnumSongs.StartEnumFromDisk();
1900 CDTXMania.EnumSongs.ChangeEnumeratePriority( ThreadPriority.Normal );
1901 CDTXMania.actEnumSongs.bコマンドでの曲データ取得 = true;
1902 CDTXMania.actEnumSongs.On活性化();
1908 private void tGenerateSkinSample()
1910 nSkinIndex = ( ( CItemList ) this.list項目リスト[ this.n現在の選択項目 ] ).n現在選択されている項目番号;
1911 if ( nSkinSampleIndex != nSkinIndex )
1913 string path = skinSubFolders[ nSkinIndex ];
1914 path = System.IO.Path.Combine( path, @"Graphics\1_background.png" );
1915 Bitmap bmSrc = new Bitmap( path );
1916 Bitmap bmDest = new Bitmap( bmSrc.Width / 4, bmSrc.Height / 4 );
1917 Graphics g = Graphics.FromImage( bmDest );
1918 g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
1919 g.DrawImage( bmSrc, new Rectangle( 0, 0, bmSrc.Width / 4, bmSrc.Height / 4 ),
1920 0, 0, bmSrc.Width, bmSrc.Height, GraphicsUnit.Pixel );
1921 if ( txSkinSample1 != null )
1923 CDTXMania.t安全にDisposeする( ref txSkinSample1 );
1925 txSkinSample1 = CDTXMania.tテクスチャの生成( bmDest, false );
1929 nSkinSampleIndex = nSkinIndex;
1933 #region [ 項目リストの設定 ( Exit, KeyAssignSystem/Drums/Guitar/Bass) ]
1934 public void t項目リストの設定_Exit()
1936 this.tConfigIniへ記録する();
1937 this.eメニュー種別 = Eメニュー種別.Unknown;
1939 public void t項目リストの設定_KeyAssignSystem()
1941 //this.tConfigIniへ記録する();
1942 this.list項目リスト.Clear();
1944 // #27029 2012.1.5 from: 説明文は最大9行→13行に変更。
1946 this.iKeyAssignSystemReturnToMenu = new CItemBase( "<< Return To Menu", CItemBase.Eパネル種別.その他,
1948 "Return to left menu." );
1949 this.list項目リスト.Add( this.iKeyAssignSystemReturnToMenu );
1950 this.iKeyAssignSystemCapture = new CItemBase( "Capture",
1952 "画面キャプチャのキーの割り当てを設定します。",
1953 "Capture key assign:\n" +
1954 "To assign key for screen capture.\n" +
1955 "(You can assign keyboard only. You can't use pads to capture screenshot.)" );
1956 this.list項目リスト.Add( this.iKeyAssignSystemCapture );
1960 this.eメニュー種別 = Eメニュー種別.KeyAssignSystem;
1962 public void t項目リストの設定_KeyAssignDrums()
1964 // this.tConfigIniへ記録する();
1965 this.list項目リスト.Clear();
1967 // #27029 2012.1.5 from: 説明文は最大9行→13行に変更。
1969 this.iKeyAssignDrumsReturnToMenu = new CItemBase( "<< Return To Menu", CItemBase.Eパネル種別.その他,
1971 "Return to left menu." );
1972 this.list項目リスト.Add( this.iKeyAssignDrumsReturnToMenu );
1973 this.iKeyAssignDrumsLC = new CItemBase( "LeftCymbal",
1975 "左シンバルへのキーの割り当てを設定します。",
1976 "Drums key assign:\n" +
1977 "To assign key/pads for LeftCymbal button." );
1978 this.list項目リスト.Add( this.iKeyAssignDrumsLC );
1979 this.iKeyAssignDrumsHHC = new CItemBase( "HiHat(Close)",
1981 "ハイハット(クローズ)へのキーの割り当てを設定します。",
1982 "Drums key assign:\n" +
1983 "To assign key/pads for HiHat(Close) button." );
1984 this.list項目リスト.Add( this.iKeyAssignDrumsHHC );
1985 this.iKeyAssignDrumsHHO = new CItemBase( "HiHat(Open)",
1987 "ハイハット(オープン)へのキーの割り当てを設定します。",
1988 "Drums key assign:\n" +
1989 "To assign key/pads for HiHat(Open) button." );
1990 this.list項目リスト.Add( this.iKeyAssignDrumsHHO );
1991 this.iKeyAssignDrumsSD = new CItemBase( "Snare",
1993 "スネアへのキーの割り当てを設定します。",
1994 "Drums key assign:\n" +
1995 "To assign key/pads for Snare button." );
1996 this.list項目リスト.Add( this.iKeyAssignDrumsSD );
1997 this.iKeyAssignDrumsBD = new CItemBase( "Bass",
1999 "バスドラムへのキーの割り当てを設定します。",
2000 "Drums key assign:\n" +
2001 "To assign key/pads for Bass button." );
2002 this.list項目リスト.Add( this.iKeyAssignDrumsBD );
2003 this.iKeyAssignDrumsHT = new CItemBase( "HighTom",
2005 "ハイタムへのキーの割り当てを設定します。",
2006 "Drums key assign:\n" +
2007 "To assign key/pads for HighTom button." );
2008 this.list項目リスト.Add( this.iKeyAssignDrumsHT );
2009 this.iKeyAssignDrumsLT = new CItemBase( "LowTom",
2011 "ロータムへのキーの割り当てを設定します。",
2012 "Drums key assign:\n" +
2013 "To assign key/pads for LowTom button." );
2014 this.list項目リスト.Add( this.iKeyAssignDrumsLT );
2015 this.iKeyAssignDrumsFT = new CItemBase( "FloorTom",
2017 "フロアタムへのキーの割り当てを設定します。",
2018 "Drums key assign:\n" +
2019 "To assign key/pads for FloorTom button." );
2020 this.list項目リスト.Add( this.iKeyAssignDrumsFT );
2021 this.iKeyAssignDrumsCY = new CItemBase( "RightCymbal",
2023 "右シンバルへのキーの割り当てを設定します。",
2024 "Drums key assign:\n" +
2025 "To assign key/pads for RightCymbal button." );
2026 this.list項目リスト.Add( this.iKeyAssignDrumsCY );
2027 this.iKeyAssignDrumsRD = new CItemBase( "RideCymbal",
2029 "ライドシンバルへのキーの割り当てを設定します。",
2030 "Drums key assign:\n" +
2031 "To assign key/pads for RideCymbal button." );
2032 this.list項目リスト.Add( this.iKeyAssignDrumsRD );
2033 this.iKeyAssignDrumsLP = new CItemBase( "HiHatPedal", // #27029 2012.1.4 from
2035 "ハイハットのフットペダルへのキーの割り当てを設定します。", //
2036 "Drums key assign:\n" + //
2037 "To assign key/pads for HiHatPedal button." ); //
2038 this.list項目リスト.Add( this.iKeyAssignDrumsLP ); //
2039 this.iKeyAssignDrumsLBD = new CItemBase( "LeftBass",
2041 "ハイハットのフットペダルへのキーの割り当てを設定します。",
2042 "Drums key assign:\n" +
2043 "To assign key/pads for LeftBass button." );
2044 this.list項目リスト.Add( this.iKeyAssignDrumsLBD );
2048 this.eメニュー種別 = Eメニュー種別.KeyAssignDrums;
2050 public void t項目リストの設定_KeyAssignGuitar()
2052 // this.tConfigIniへ記録する();
2053 this.list項目リスト.Clear();
2055 // #27029 2012.1.5 from: 説明文は最大9行→13行に変更。
2057 this.iKeyAssignGuitarReturnToMenu = new CItemBase( "<< Return To Menu", CItemBase.Eパネル種別.その他,
2059 "Return to left menu." );
2060 this.list項目リスト.Add( this.iKeyAssignGuitarReturnToMenu );
2061 this.iKeyAssignGuitarR = new CItemBase( "R",
2063 "Rボタンへのキーの割り当てを設定します。",
2064 "Guitar key assign:\n" +
2065 "To assign key/pads for R button." );
2066 this.list項目リスト.Add( this.iKeyAssignGuitarR );
2067 this.iKeyAssignGuitarG = new CItemBase( "G",
2069 "Gボタンへのキーの割り当てを設定します。",
2070 "Guitar key assign:\n" +
2071 "To assign key/pads for G button." );
2072 this.list項目リスト.Add( this.iKeyAssignGuitarG );
2073 this.iKeyAssignGuitarB = new CItemBase( "B",
2075 "Bボタンへのキーの割り当てを設定します。",
2076 "Guitar key assign:\n" +
2077 "To assign key/pads for B button." );
2078 this.list項目リスト.Add( this.iKeyAssignGuitarB );
2079 this.iKeyAssignGuitarPick = new CItemBase( "Pick",
2081 "ピックボタンへのキーの割り当てを設定します。",
2082 "Guitar key assign:\n" +
2083 "To assign key/pads for Pick button." );
2084 this.list項目リスト.Add( this.iKeyAssignGuitarPick );
2085 this.iKeyAssignGuitarWail = new CItemBase( "Wailing",
2087 "Wailingボタンへのキーの割り当てを設定します。",
2088 "Guitar key assign:\nTo assign key/pads for Wailing button." );
2089 this.list項目リスト.Add( this.iKeyAssignGuitarWail );
2090 this.iKeyAssignGuitarDecide = new CItemBase( "Decide",
2092 "決定ボタンへのキーの割り当てを設定します。",
2093 "Guitar key assign:\nTo assign key/pads for Decide button." );
2094 this.list項目リスト.Add( this.iKeyAssignGuitarDecide );
2095 this.iKeyAssignGuitarCancel = new CItemBase( "Cancel",
2097 "キャンセルボタンへのキーの割り当てを設定します。",
2098 "Guitar key assign:\n" +
2099 "To assign key/pads for Cancel button." );
2100 this.list項目リスト.Add( this.iKeyAssignGuitarCancel );
2104 this.eメニュー種別 = Eメニュー種別.KeyAssignGuitar;
2106 public void t項目リストの設定_KeyAssignBass()
2108 // this.tConfigIniへ記録する();
2109 this.list項目リスト.Clear();
2111 // #27029 2012.1.5 from: 説明文は最大9行→13行に変更。
2113 this.iKeyAssignBassReturnToMenu = new CItemBase( "<< Return To Menu", CItemBase.Eパネル種別.その他,
2115 "Return to left menu." );
2116 this.list項目リスト.Add( this.iKeyAssignBassReturnToMenu );
2117 this.iKeyAssignBassR = new CItemBase( "R",
2119 "Rボタンへのキーの割り当てを設定します。",
2120 "Bass key assign:\n" +
2121 "To assign key/pads for R button." );
2122 this.list項目リスト.Add( this.iKeyAssignBassR );
2123 this.iKeyAssignBassG = new CItemBase( "G",
2125 "Gボタンへのキーの割り当てを設定します。",
2126 "Bass key assign:\n" +
2127 "To assign key/pads for G button." );
2128 this.list項目リスト.Add( this.iKeyAssignBassG );
2129 this.iKeyAssignBassB = new CItemBase( "B",
2131 "Bボタンへのキーの割り当てを設定します。",
2132 "Bass key assign:\n" +
2133 "To assign key/pads for B button." );
2134 this.list項目リスト.Add( this.iKeyAssignBassB );
2135 this.iKeyAssignBassPick = new CItemBase( "Pick",
2137 "ピックボタンへのキーの割り当てを設定します。",
2138 "Bass key assign:\n" +
2139 "To assign key/pads for Pick button." );
2140 this.list項目リスト.Add( this.iKeyAssignBassPick );
2141 this.iKeyAssignBassWail = new CItemBase( "Wailing",
2143 "Wailingボタンへのキーの割り当てを設定します。",
2144 "Bass key assign:\n" +
2145 "To assign key/pads for Wailing button." );
2146 this.list項目リスト.Add( this.iKeyAssignBassWail );
2147 this.iKeyAssignBassDecide = new CItemBase( "Decide",
2149 "決定ボタンへのキーの割り当てを設定します。",
2150 "Bass key assign:\n" +
2151 "To assign key/pads for Decide button." );
2152 this.list項目リスト.Add( this.iKeyAssignBassDecide );
2153 this.iKeyAssignBassCancel = new CItemBase( "Cancel",
2155 "キャンセルボタンへのキーの割り当てを設定します。",
2156 "Bass key assign:\n" +
2157 "To assign key/pads for Cancel button." );
2158 this.list項目リスト.Add( this.iKeyAssignBassCancel );
2162 this.eメニュー種別 = Eメニュー種別.KeyAssignBass;
2167 CDTXMania.Skin.soundカーソル移動音.t再生する();
2168 if( this.b要素値にフォーカス中 )
2170 this.list項目リスト[ this.n現在の選択項目 ].t項目値を前へ移動();
2175 this.n目標のスクロールカウンタ += 100;
2180 CDTXMania.Skin.soundカーソル移動音.t再生する();
2181 if( this.b要素値にフォーカス中 )
2183 this.list項目リスト[ this.n現在の選択項目 ].t項目値を次へ移動();
2188 this.n目標のスクロールカウンタ -= 100;
2191 private void t要素値を上下に変更中の処理()
2193 if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemMasterVolume ) // #33700 2014.4.26 yyagi
2195 CDTXMania.Sound管理.nMasterVolume = this.iSystemMasterVolume.n現在の値;
2202 public override void On活性化()
2207 this.list項目リスト = new List<CItemBase>();
2208 this.eメニュー種別 = Eメニュー種別.Unknown;
2210 #region [ スキン選択肢と、現在選択中のスキン(index)の準備 #28195 2012.5.2 yyagi ]
2211 int ns = ( CDTXMania.Skin.strSystemSkinSubfolders == null ) ? 0 : CDTXMania.Skin.strSystemSkinSubfolders.Length;
2212 int nb = ( CDTXMania.Skin.strBoxDefSkinSubfolders == null ) ? 0 : CDTXMania.Skin.strBoxDefSkinSubfolders.Length;
2213 skinSubFolders = new string[ ns + nb ];
2214 for ( int i = 0; i < ns; i++ )
2216 skinSubFolders[ i ] = CDTXMania.Skin.strSystemSkinSubfolders[ i ];
2218 for ( int i = 0; i < nb; i++ )
2220 skinSubFolders[ ns + i ] = CDTXMania.Skin.strBoxDefSkinSubfolders[ i ];
2222 skinSubFolder_org = CDTXMania.Skin.GetCurrentSkinSubfolderFullName( true );
2223 Array.Sort( skinSubFolders );
2224 skinNames = CSkin.GetSkinName( skinSubFolders );
2225 nSkinIndex = Array.BinarySearch( skinSubFolders, skinSubFolder_org );
2226 if ( nSkinIndex < 0 ) // 念のため
2230 nSkinSampleIndex = -1;
2233 this.prvFont = new CPrivateFastFont( CSkin.Path( @"Graphics\fonts\mplus-1p-heavy.ttf" ), 20 ); // t項目リストの設定 の前に必要
2234 // this.listMenu = new List<stMenuItemRight>();
2237 this.t項目リストの設定_Bass(); // #27795 2012.3.11 yyagi; System設定の中でDrumsの設定を参照しているため、
2238 this.t項目リストの設定_Guitar(); // 活性化の時点でDrumsの設定も入れ込んでおかないと、System設定中に例外発生することがある。
2239 this.t項目リストの設定_Drums(); //
2240 this.t項目リストの設定_System(); // 順番として、最後にSystemを持ってくること。設定一覧の初期位置がSystemのため。
2241 this.b要素値にフォーカス中 = false;
2242 this.n目標のスクロールカウンタ = 0;
2243 this.n現在のスクロールカウンタ = 0;
2244 this.nスクロール用タイマ値 = -1;
2245 this.ct三角矢印アニメ = new CCounter();
2247 this.iSystemSoundType_initial = this.iSystemSoundType.n現在選択されている項目番号; // CONFIGに入ったときの値を保持しておく
2248 this.iSystemWASAPIBufferSizeMs_initial = this.iSystemWASAPIBufferSizeMs.n現在の値; // CONFIG脱出時にこの値から変更されているようなら
2249 // this.iSystemASIOBufferSizeMs_initial = this.iSystemASIOBufferSizeMs.n現在の値; // サウンドデバイスを再構築する
2250 this.iSystemASIODevice_initial = this.iSystemASIODevice.n現在選択されている項目番号; //
2251 this.iSystemSoundTimerType_initial = this.iSystemSoundTimerType.GetIndex(); //
2254 public override void On非活性化()
2259 this.tConfigIniへ記録する();
2260 this.list項目リスト.Clear();
2261 this.ct三角矢印アニメ = null;
2268 if ( CDTXMania.Skin.GetCurrentSkinSubfolderFullName( true ) != this.skinSubFolder_org )
2270 CDTXMania.stageChangeSkin.tChangeSkinMain(); // #28195 2012.6.11 yyagi CONFIG脱出時にSkin更新
2274 // #24820 2013.1.22 yyagi CONFIGでWASAPI/ASIO/DirectSound関連の設定を変更した場合、サウンドデバイスを再構築する。
2275 // #33689 2014.6.17 yyagi CONFIGでSoundTimerTypeの設定を変更した場合も、サウンドデバイスを再構築する。
2276 #region [ サウンドデバイス変更 ]
2277 if ( this.iSystemSoundType_initial != this.iSystemSoundType.n現在選択されている項目番号 ||
2278 this.iSystemWASAPIBufferSizeMs_initial != this.iSystemWASAPIBufferSizeMs.n現在の値 ||
2279 // this.iSystemASIOBufferSizeMs_initial != this.iSystemASIOBufferSizeMs.n現在の値 ||
2280 this.iSystemASIODevice_initial != this.iSystemASIODevice.n現在選択されている項目番号 ||
2281 this.iSystemSoundTimerType_initial != this.iSystemSoundTimerType.GetIndex() )
2283 ESoundDeviceType soundDeviceType;
2284 switch ( this.iSystemSoundType.n現在選択されている項目番号 )
2287 soundDeviceType = ESoundDeviceType.DirectSound;
2290 soundDeviceType = ESoundDeviceType.ASIO;
2293 soundDeviceType = ESoundDeviceType.ExclusiveWASAPI;
2296 soundDeviceType = ESoundDeviceType.Unknown;
2300 CDTXMania.Sound管理.t初期化( soundDeviceType,
2301 this.iSystemWASAPIBufferSizeMs.n現在の値,
2303 // this.iSystemASIOBufferSizeMs.n現在の値,
2304 this.iSystemASIODevice.n現在選択されている項目番号,
2305 this.iSystemSoundTimerType.bON );
2306 CDTXMania.app.ShowWindowTitleWithSoundType();
2309 #region [ サウンドのタイムストレッチモード変更 ]
2310 FDK.CSound管理.bIsTimeStretch = this.iSystemTimeStretch.bON;
2313 public override void OnManagedリソースの作成()
2318 this.tx通常項目行パネル = CDTXMania.tテクスチャの生成Af( CSkin.Path( @"Graphics\4_itembox.png" ), false );
2319 this.txその他項目行パネル = CDTXMania.tテクスチャの生成Af( CSkin.Path( @"Graphics\4_itembox other.png" ), false );
2320 this.tx三角矢印 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\4_triangle arrow.png" ), false );
2321 this.txSkinSample1 = null; // スキン選択時に動的に設定するため、ここでは初期化しない
2322 base.OnManagedリソースの作成();
2324 public override void OnManagedリソースの解放()
2329 CDTXMania.tテクスチャの解放( ref this.txSkinSample1 );
2330 CDTXMania.tテクスチャの解放( ref this.tx通常項目行パネル );
2331 CDTXMania.tテクスチャの解放( ref this.txその他項目行パネル );
2332 CDTXMania.tテクスチャの解放( ref this.tx三角矢印 );
2334 base.OnManagedリソースの解放();
2337 private void OnListMenuの初期化()
2340 this.listMenu = new stMenuItemRight[ this.list項目リスト.Count ];
2344 /// 事前にレンダリングしておいたテクスチャを解放する。
2346 private void OnListMenuの解放()
2348 if ( listMenu != null )
2350 for ( int i = 0; i < listMenu.Length; i++ )
2352 if ( listMenu[ i ].txParam != null )
2354 listMenu[ i ].txParam.Dispose();
2356 if ( listMenu[ i ].txMenuItemRight != null )
2358 listMenu[ i ].txMenuItemRight.Dispose();
2361 this.listMenu = null;
2364 public override int On進行描画()
2366 throw new InvalidOperationException( "t進行描画(bool)のほうを使用してください。" );
2368 public int t進行描画( bool b項目リスト側にフォーカスがある )
2375 #region [ 初めての進行描画 ]
2377 if( base.b初めての進行描画 )
2379 this.nスクロール用タイマ値 = CSound管理.rc演奏用タイマ.n現在時刻;
2380 this.ct三角矢印アニメ.t開始( 0, 9, 50, CDTXMania.Timer );
2382 base.b初めての進行描画 = false;
2387 this.b項目リスト側にフォーカスがある = b項目リスト側にフォーカスがある; // 記憶
2389 #region [ 項目スクロールの進行 ]
2391 long n現在時刻 = CDTXMania.Timer.n現在時刻;
2392 if( n現在時刻 < this.nスクロール用タイマ値 ) this.nスクロール用タイマ値 = n現在時刻;
2394 const int INTERVAL = 2; // [ms]
2395 while( ( n現在時刻 - this.nスクロール用タイマ値 ) >= INTERVAL )
2397 int n目標項目までのスクロール量 = Math.Abs( (int) ( this.n目標のスクロールカウンタ - this.n現在のスクロールカウンタ ) );
2400 #region [ n加速度の決定;目標まで遠いほど加速する。]
2402 if( n目標項目までのスクロール量 <= 100 )
2406 else if( n目標項目までのスクロール量 <= 300 )
2410 else if( n目標項目までのスクロール量 <= 500 )
2420 #region [ this.n現在のスクロールカウンタに n加速度 を加減算。]
2422 if( this.n現在のスクロールカウンタ < this.n目標のスクロールカウンタ )
2424 this.n現在のスクロールカウンタ += n加速度;
2425 if( this.n現在のスクロールカウンタ > this.n目標のスクロールカウンタ )
2428 this.n現在のスクロールカウンタ = this.n目標のスクロールカウンタ;
2431 else if( this.n現在のスクロールカウンタ > this.n目標のスクロールカウンタ )
2433 this.n現在のスクロールカウンタ -= n加速度;
2434 if( this.n現在のスクロールカウンタ < this.n目標のスクロールカウンタ )
2437 this.n現在のスクロールカウンタ = this.n目標のスクロールカウンタ;
2442 #region [ 行超え処理、ならびに目標位置に到達したらスクロールを停止して項目変更通知を発行。]
2444 if( this.n現在のスクロールカウンタ >= 100 )
2446 this.n現在の選択項目 = this.t次の項目( this.n現在の選択項目 );
2447 this.n現在のスクロールカウンタ -= 100;
2448 this.n目標のスクロールカウンタ -= 100;
2449 if( this.n目標のスクロールカウンタ == 0 )
2451 CDTXMania.stageコンフィグ.t項目変更通知();
2454 else if( this.n現在のスクロールカウンタ <= -100 )
2456 this.n現在の選択項目 = this.t前の項目( this.n現在の選択項目 );
2457 this.n現在のスクロールカウンタ += 100;
2458 this.n目標のスクロールカウンタ += 100;
2459 if( this.n目標のスクロールカウンタ == 0 )
2461 CDTXMania.stageコンフィグ.t項目変更通知();
2467 this.nスクロール用タイマ値 += INTERVAL;
2472 #region [ ▲印アニメの進行 ]
2474 if( this.b項目リスト側にフォーカスがある && ( this.n目標のスクロールカウンタ == 0 ) )
2475 this.ct三角矢印アニメ.t進行Loop();
2482 this.ptパネルの基本座標[ 4 ].X = this.b項目リスト側にフォーカスがある ? 276 : 301; // メニューにフォーカスがあるなら、項目リストの中央は頭を出さない。
2484 #region [ 計11個の項目パネルを描画する。]
2486 int nItem = this.n現在の選択項目;
2487 for( int i = 0; i < 4; i++ )
2488 nItem = this.t前の項目( nItem );
2490 for( int n行番号 = -4; n行番号 < 6; n行番号++ ) // n行番号 == 0 がフォーカスされている項目パネル。
2492 #region [ 今まさに画面外に飛びだそうとしている項目パネルは描画しない。]
2494 if( ( ( n行番号 == -4 ) && ( this.n現在のスクロールカウンタ > 0 ) ) || // 上に飛び出そうとしている
2495 ( ( n行番号 == +5 ) && ( this.n現在のスクロールカウンタ < 0 ) ) ) // 下に飛び出そうとしている
2497 nItem = this.t次の項目( nItem );
2503 int n移動元の行の基本位置 = n行番号 + 4;
2504 int n移動先の行の基本位置 = ( this.n現在のスクロールカウンタ <= 0 ) ? ( ( n移動元の行の基本位置 + 1 ) % 10 ) : ( ( ( n移動元の行の基本位置 - 1 ) + 10 ) % 10 );
2505 int x = this.ptパネルの基本座標[ n移動元の行の基本位置 ].X + ( (int) ( ( this.ptパネルの基本座標[ n移動先の行の基本位置 ].X - this.ptパネルの基本座標[ n移動元の行の基本位置 ].X ) * ( ( (double) Math.Abs( this.n現在のスクロールカウンタ ) ) / 100.0 ) ) );
2506 int y = this.ptパネルの基本座標[ n移動元の行の基本位置 ].Y + ( (int) ( ( this.ptパネルの基本座標[ n移動先の行の基本位置 ].Y - this.ptパネルの基本座標[ n移動元の行の基本位置 ].Y ) * ( ( (double) Math.Abs( this.n現在のスクロールカウンタ ) ) / 100.0 ) ) );
2508 #region [ 現在の行の項目パネル枠を描画。]
2510 switch ( this.list項目リスト[ nItem ].eパネル種別 )
2512 case CItemBase.Eパネル種別.通常:
2513 if ( this.tx通常項目行パネル != null )
2514 this.tx通常項目行パネル.t2D描画( CDTXMania.app.Device, x * Scale.X, y * Scale.Y );
2517 case CItemBase.Eパネル種別.その他:
2518 if ( this.txその他項目行パネル != null )
2519 this.txその他項目行パネル.t2D描画( CDTXMania.app.Device, x * Scale.X, y * Scale.Y );
2524 #region [ 現在の行の項目名を描画。]
2526 if ( listMenu[ nItem ].txMenuItemRight != null ) // 自前のキャッシュに含まれているようなら、再レンダリングせずキャッシュを使用
2528 listMenu[ nItem ].txMenuItemRight.t2D描画( CDTXMania.app.Device, x + 337, (int)( ( y + 18 ) * 1.5 - 20 ) );
2532 Bitmap bmpItem = prvFont.DrawPrivateFont( this.list項目リスト[ nItem ].str項目名, Color.White, Color.Black );
2533 listMenu[ nItem ].txMenuItemRight = CDTXMania.tテクスチャの生成( bmpItem );
2534 // ctItem.t2D描画( CDTXMania.app.Device, ( x + 0x12 ) * Scale.X, ( y + 12 ) * Scale.Y - 20 );
2535 // CDTXMania.tテクスチャの解放( ref ctItem );
2536 CDTXMania.t安全にDisposeする( ref bmpItem );
2538 //CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 0x12, y + 12, this.list項目リスト[ nItem ].str項目名 );
2541 #region [ 現在の行の項目の要素を描画。]
2543 string strParam = null;
2545 switch ( this.list項目リスト[ nItem ].e種別 )
2547 case CItemBase.E種別.ONorOFFトグル:
2550 //CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, ( (CItemToggle) this.list項目リスト[ nItem ] ).bON ? "ON" : "OFF" );
2551 strParam = ( (CItemToggle) this.list項目リスト[ nItem ] ).bON ? "ON" : "OFF";
2556 case CItemBase.E種別.ONorOFFor不定スリーステート:
2559 switch ( ( (CItemThreeState) this.list項目リスト[ nItem ] ).e現在の状態 )
2561 case CItemThreeState.E状態.ON:
2565 case CItemThreeState.E状態.不定:
2573 //CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, "ON" );
2578 case CItemBase.E種別.整数: // #24789 2011.4.8 yyagi: add PlaySpeed supports (copied them from OPTION)
2581 if ( this.list項目リスト[ nItem ] == this.iCommonPlaySpeed )
2583 double d = ( (double) ( (CItemInteger) this.list項目リスト[ nItem ] ).n現在の値 ) / 20.0;
2584 //CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, d.ToString( "0.000" ), ( n行番号 == 0 ) && this.b要素値にフォーカス中 );
2585 strParam = d.ToString( "0.000" );
2587 else if ( this.list項目リスト[ nItem ] == this.iDrumsScrollSpeed || this.list項目リスト[ nItem ] == this.iGuitarScrollSpeed || this.list項目リスト[ nItem ] == this.iBassScrollSpeed )
2589 float f = ( ( (CItemInteger) this.list項目リスト[ nItem ] ).n現在の値 + 1 ) * 0.5f;
2590 //CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, f.ToString( "x0.0" ), ( n行番号 == 0 ) && this.b要素値にフォーカス中 );
2591 strParam = f.ToString( "x0.0" );
2595 //CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, ( (CItemInteger) this.list項目リスト[ nItem ] ).n現在の値.ToString(), ( n行番号 == 0 ) && this.b要素値にフォーカス中 );
2596 strParam = ( (CItemInteger) this.list項目リスト[ nItem ] ).n現在の値.ToString();
2598 b強調 = ( n行番号 == 0 ) && this.b要素値にフォーカス中;
2603 case CItemBase.E種別.リスト: // #28195 2012.5.2 yyagi: add Skin supports
2607 CItemList list = (CItemList) this.list項目リスト[ nItem ];
2608 //CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, list.list項目値[ list.n現在選択されている項目番号 ] );
2609 strParam = list.list項目値[ list.n現在選択されている項目番号 ];
2611 #region [ 必要な場合に、Skinのサンプルを生成・描画する。#28195 2012.5.2 yyagi ]
2612 if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemSkinSubfolder )
2614 tGenerateSkinSample(); // 最初にSkinの選択肢にきたとき(Enterを押す前)に限り、サンプル生成が発生する。
2615 if ( txSkinSample1 != null )
2617 txSkinSample1.t2D描画( CDTXMania.app.Device, 124, 409 );
2628 Bitmap bmpStr = b強調 ?
2629 prvFont.DrawPrivateFont( strParam, Color.White, Color.Black, Color.Yellow, Color.OrangeRed ) :
2630 prvFont.DrawPrivateFont( strParam, Color.White, Color.Black );
2631 CTexture txStr = CDTXMania.tテクスチャの生成( bmpStr, false );
2632 txStr.t2D描画( CDTXMania.app.Device, ( x + 210 ) * Scale.X, (int)( ( y + 18 ) * 1.5 - 20 ) );
2633 CDTXMania.tテクスチャの解放( ref txStr );
2634 CDTXMania.t安全にDisposeする( ref bmpStr );
2638 int nIndex = this.list項目リスト[ nItem ].GetIndex();
2639 if ( listMenu[ nItem ].nParam != nIndex || listMenu[ nItem ].txParam == null )
2641 stMenuItemRight stm = listMenu[ nItem ];
2642 stm.nParam = nIndex;
2643 object o = this.list項目リスト[ nItem ].obj現在値();
2644 stm.strParam = ( o == null ) ? "" : o.ToString();
2647 prvFont.DrawPrivateFont( strParam, Color.White, Color.Black );
2648 stm.txParam = CDTXMania.tテクスチャの生成( bmpStr, false );
2649 CDTXMania.t安全にDisposeする( ref bmpStr );
2651 listMenu[ nItem ] = stm;
2653 listMenu[ nItem ].txParam.t2D描画( CDTXMania.app.Device, ( x + 210 ) * Scale.X, (int)( ( y + 18 ) * 1.5 - 20 ) );
2658 nItem = this.t次の項目( nItem );
2663 #region [ 項目リストにフォーカスがあって、かつスクロールが停止しているなら、パネルの上下に▲印を描画する。]
2665 if( this.b項目リスト側にフォーカスがある && ( this.n目標のスクロールカウンタ == 0 ) )
2673 if( this.b要素値にフォーカス中 )
2675 x = 528; // 要素値の上下あたり。
2676 y_upper = 198 - this.ct三角矢印アニメ.n現在の値;
2677 y_lower = 242 + this.ct三角矢印アニメ.n現在の値;
2681 x = 276; // 項目名の上下あたり。
2682 y_upper = 186 - this.ct三角矢印アニメ.n現在の値;
2683 y_lower = 254 + this.ct三角矢印アニメ.n現在の値;
2688 if ( this.tx三角矢印 != null )
2690 this.tx三角矢印.t2D描画( CDTXMania.app.Device, x * Scale.X, y_upper * Scale.Y, new Rectangle( 0, 0, (int) ( 32 * Scale.X ), (int) ( 16 * Scale.Y ) ) );
2691 this.tx三角矢印.t2D描画( CDTXMania.app.Device, x * Scale.X, y_lower * Scale.Y, new Rectangle( 0, (int) ( 16 * Scale.Y ), (int) ( 32 * Scale.X ), (int) ( 16 * Scale.Y ) ) );
2704 private enum Eメニュー種別
2710 KeyAssignSystem, // #24609 2011.4.12 yyagi: 画面キャプチャキーのアサイン
2718 private bool b項目リスト側にフォーカスがある;
2719 private bool b要素値にフォーカス中;
2720 private CCounter ct三角矢印アニメ;
2721 private Eメニュー種別 eメニュー種別;
2723 private CItemBase iKeyAssignSystemCapture; // #24609
2724 private CItemBase iKeyAssignSystemReturnToMenu; // #24609
2725 private CItemBase iKeyAssignBassB;
2726 private CItemBase iKeyAssignBassCancel;
2727 private CItemBase iKeyAssignBassDecide;
2728 private CItemBase iKeyAssignBassG;
2729 private CItemBase iKeyAssignBassPick;
2730 private CItemBase iKeyAssignBassR;
2731 private CItemBase iKeyAssignBassReturnToMenu;
2732 private CItemBase iKeyAssignBassWail;
2733 private CItemBase iKeyAssignDrumsBD;
2734 private CItemBase iKeyAssignDrumsCY;
2735 private CItemBase iKeyAssignDrumsFT;
2736 private CItemBase iKeyAssignDrumsHHC;
2737 private CItemBase iKeyAssignDrumsHHO;
2738 private CItemBase iKeyAssignDrumsHT;
2739 private CItemBase iKeyAssignDrumsLC;
2740 private CItemBase iKeyAssignDrumsLT;
2741 private CItemBase iKeyAssignDrumsRD;
2742 private CItemBase iKeyAssignDrumsReturnToMenu;
2743 private CItemBase iKeyAssignDrumsSD;
2744 private CItemBase iKeyAssignDrumsLP; // #27029 2012.1.4 from
2745 private CItemBase iKeyAssignDrumsLBD;
2746 private CItemBase iKeyAssignGuitarB;
2747 private CItemBase iKeyAssignGuitarCancel;
2748 private CItemBase iKeyAssignGuitarDecide;
2749 private CItemBase iKeyAssignGuitarG;
2750 private CItemBase iKeyAssignGuitarPick;
2751 private CItemBase iKeyAssignGuitarR;
2752 private CItemBase iKeyAssignGuitarReturnToMenu;
2753 private CItemBase iKeyAssignGuitarWail;
2755 private CItemToggle iLogOutputLog;
2756 private CItemToggle iSystemAdjustWaves;
2757 private CItemToggle iSystemAudienceSound;
2758 private CItemInteger iSystemAutoChipVolume;
2759 private CItemToggle iSystemAVI;
2760 private CItemToggle iSystemForceAVIFullscreen;
2761 private CItemToggle iSystemBGA;
2762 // private CItemToggle iSystemGraph; #24074 2011.01.23 comment-out ikanick オプション(Drums)へ移行
2763 private CItemInteger iSystemBGAlpha;
2764 private CItemToggle iSystemBGMSound;
2765 private CItemInteger iSystemChipVolume;
2766 private CItemList iSystemCYGroup;
2767 private CItemToggle iSystemCymbalFree;
2768 private CItemList iSystemDamageLevel;
2769 private CItemToggle iSystemDebugInfo;
2770 // private CItemToggle iSystemDrums;
2771 private CItemToggle iSystemFillIn;
2772 private CItemList iSystemFTGroup;
2773 private CItemToggle iSystemFullscreen;
2774 // private CItemToggle iSystemGuitar;
2775 private CItemList iSystemHHGroup;
2776 private CItemList iSystemBDGroup; // #27029 2012.1.4 from
2777 private CItemToggle iSystemHitSound;
2778 private CItemList iSystemHitSoundPriorityCY;
2779 private CItemList iSystemHitSoundPriorityFT;
2780 private CItemList iSystemHitSoundPriorityHH;
2781 private CItemInteger iSystemMinComboBass;
2782 private CItemInteger iSystemMinComboDrums;
2783 private CItemInteger iSystemMinComboGuitar;
2784 private CItemInteger iSystemPreviewImageWait;
2785 private CItemInteger iSystemPreviewSoundWait;
2786 private CItemToggle iSystemRandomFromSubBox;
2787 private CItemBase iSystemReturnToMenu;
2788 private CItemToggle iSystemSaveScore;
2789 private CItemList iSystemSkillMode;
2790 private CItemToggle iSystemSoundMonitorBass;
2791 private CItemToggle iSystemSoundMonitorDrums;
2792 private CItemToggle iSystemSoundMonitorGuitar;
2793 private CItemToggle iSystemStageFailed;
2794 private CItemToggle iSystemStoicMode;
2795 private CItemToggle iSystemVSyncWait;
2796 private CItemList iSystemShowLag; // #25370 2011.6.3 yyagi
2797 private CItemToggle iSystemAutoResultCapture; // #25399 2011.6.9 yyagi
2798 private CItemToggle iSystemBufferedInput;
2799 private CItemInteger iSystemRisky; // #23559 2011.7.27 yyagi
2800 private CItemList iSystemSoundType; // #24820 2013.1.3 yyagi
2801 private CItemInteger iSystemWASAPIBufferSizeMs; // #24820 2013.1.15 yyagi
2802 // private CItemInteger iSystemASIOBufferSizeMs; // #24820 2013.1.3 yyagi
2803 private CItemList iSystemASIODevice; // #24820 2013.1.17 yyagi
2804 private CItemInteger iSystemBGMAdjust; // #36372 2016.06.19 kairera0467
2806 private int iSystemSoundType_initial;
2807 private int iSystemWASAPIBufferSizeMs_initial;
2808 // private int iSystemASIOBufferSizeMs_initial;
2809 private int iSystemASIODevice_initial;
2810 private CItemToggle iSystemSoundTimerType; // #33689 2014.6.17 yyagi
2811 private int iSystemSoundTimerType_initial; // #33689 2014.6.17 yyagi
2813 private CItemToggle iSystemTimeStretch; // #23664 2013.2.24 yyagi
2814 private CItemList iSystemJudgePosGuitar; // #33891 2014.6.26 yyagi
2815 private CItemList iSystemJudgePosBass; // #33891 2014.6.26 yyagi
2817 //private CItemList iDrumsJudgeDispPriority; //
2818 //private CItemList iGuitarJudgeDispPriority; //
2819 //private CItemList iBassJudgeDispPriority; //
2820 private CItemList iSystemJudgeDispPriority;
2823 private CItemList iSystemNamePlateType;
2824 private CItemToggle iSystemJudgeCountDisp;
2827 private List<CItemBase> list項目リスト;
2828 private long nスクロール用タイマ値;
2829 private int n現在のスクロールカウンタ;
2830 private int n目標のスクロールカウンタ;
2831 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 ) };
2832 private CTextureAf txその他項目行パネル;
2833 private CTexture tx三角矢印;
2834 private CTextureAf tx通常項目行パネル;
2836 private CPrivateFastFont prvFont;
2837 //private List<string> list項目リスト_str最終描画名;
2838 private struct stMenuItemRight
2840 // public string strMenuItem;
2841 public CTexture txMenuItemRight;
2843 public string strParam;
2844 public CTexture txParam;
2846 private stMenuItemRight[] listMenu;
2848 private CTexture txSkinSample1; // #28195 2012.5.2 yyagi
2849 private string[] skinSubFolders; //
2850 private string[] skinNames; //
2851 private string skinSubFolder_org; //
2852 private int nSkinSampleIndex; //
2853 private int nSkinIndex; //
2855 private CItemBase iDrumsGoToKeyAssign;
2856 private CItemBase iGuitarGoToKeyAssign;
2857 private CItemBase iBassGoToKeyAssign;
2858 private CItemBase iSystemGoToKeyAssign; // #24609
2860 private CItemList iSystemGRmode;
2862 //private CItemToggle iBassAutoPlay;
2863 private CItemThreeState iBassAutoPlayAll; // #23886 2012.5.8 yyagi
2864 private CItemToggle iBassR; //
2865 private CItemToggle iBassG; //
2866 private CItemToggle iBassB; //
2867 private CItemToggle iBassPick; //
2868 private CItemToggle iBassW; //
2870 private CItemToggle iBassLeft;
2871 private CItemToggle iBassLight;
2872 private CItemList iBassPosition;
2873 private CItemList iBassRandom;
2874 private CItemBase iBassReturnToMenu;
2875 private CItemToggle iBassReverse;
2876 private CItemInteger iBassScrollSpeed;
2877 private CItemList iBassDark;
2878 private CItemList iBassLaneDispType;
2879 private CItemToggle iBassJudgeLineDisp;
2880 private CItemToggle iBassLaneFlush;
2881 private CItemToggle iBassGraph;
2883 private CItemList iCommonDark;
2884 private CItemInteger iCommonPlaySpeed;
2885 // private CItemBase iCommonReturnToMenu;
2887 private CItemThreeState iDrumsAutoPlayAll;
2888 private CItemToggle iDrumsBass;
2889 private CItemList iDrumsComboPosition;
2890 private CItemToggle iDrumsCymbalRide;
2891 private CItemToggle iDrumsFloorTom;
2892 //private CItemToggle iDrumsHidden;
2893 private CItemToggle iDrumsHighTom;
2894 private CItemToggle iDrumsHiHat;
2895 private CItemInteger iDrumsJudgeLinePos;
2896 private CItemInteger iDrumsJudgeLineOffset;
2897 private CItemList iDrumsLaneType;
2898 private CItemToggle iDrumsLeftBassDrum;
2899 private CItemToggle iDrumsLeftCymbal;
2900 private CItemToggle iDrumsLeftPedal;
2901 private CItemToggle iDrumsLowTom;
2902 private CItemList iDrumsRDPosition;
2903 private CItemList iDrumsPosition;
2904 private CItemBase iDrumsReturnToMenu;
2905 private CItemToggle iDrumsReverse;
2906 private CItemInteger iDrumsScrollSpeed;
2907 private CItemToggle iDrumsSnare;
2908 //private CItemToggle iDrumsSudden;
2909 private CItemToggle iDrumsTight;
2910 private CItemToggle iDrumsGraph; // #24074 2011.01.23 add ikanick
2911 private CItemList iDrumsLanePosition;
2912 private CItemList iDrumsDark;
2913 private CItemList iDrumsLaneDispType;
2914 private CItemToggle iDrumsJudgeLineDisp;
2915 private CItemToggle iDrumsLaneFlush;
2917 //private CItemToggle iGuitarAutoPlay;
2918 private CItemThreeState iGuitarAutoPlayAll; // #23886 2012.5.8 yyagi
2919 private CItemToggle iGuitarR; //
2920 private CItemToggle iGuitarG; //
2921 private CItemToggle iGuitarB; //
2922 private CItemToggle iGuitarPick; //
2923 private CItemToggle iGuitarW; //
2925 private CItemToggle iGuitarLeft;
2926 private CItemToggle iGuitarLight;
2927 private CItemList iGuitarPosition;
2928 private CItemList iGuitarRandom;
2929 private CItemBase iGuitarReturnToMenu;
2930 private CItemToggle iGuitarReverse;
2931 private CItemInteger iGuitarScrollSpeed;
2932 private CItemList iGuitarDark;
2933 private CItemList iGuitarLaneDispType;
2934 private CItemToggle iGuitarJudgeLineDisp;
2935 private CItemToggle iGuitarLaneFlush;
2936 private CItemToggle iGuitarGraph;
2938 private CItemInteger iDrumsInputAdjustTimeMs; // #23580 2011.1.3 yyagi
2939 private CItemInteger iGuitarInputAdjustTimeMs; //
2940 private CItemInteger iBassInputAdjustTimeMs; //
2941 private CItemList iSystemSkinSubfolder; // #28195 2012.5.2 yyagi
2942 private CItemToggle iSystemUseBoxDefSkin; // #28195 2012.5.6 yyagi
2943 private CItemList iDrumsSudHid; // #32072 2013.9.20 yyagi
2944 private CItemList iGuitarSudHid; // #32072 2013.9.20 yyagi
2945 private CItemList iBassSudHid; // #32072 2013.9.20 yyagi
2946 private CItemBase iSystemReloadDTX; // #32081 2013.10.21 yyagi
2947 private CItemInteger iSystemMasterVolume; // #33700 2014.4.26 yyagi
2949 private int t前の項目( int nItem )
2953 nItem = this.list項目リスト.Count - 1;
2957 private int t次の項目( int nItem )
2959 if( ++nItem >= this.list項目リスト.Count )
2965 private void t全部のドラムパッドのAutoを切り替える( bool bAutoON )
2967 this.iDrumsLeftCymbal.bON = this.iDrumsHiHat.bON = this.iDrumsSnare.bON = this.iDrumsBass.bON = this.iDrumsHighTom.bON = this.iDrumsLowTom.bON = this.iDrumsFloorTom.bON = this.iDrumsCymbalRide.bON = this.iDrumsLeftPedal.bON = this.iDrumsLeftBassDrum.bON = bAutoON;
2969 private void t全部のギターパッドのAutoを切り替える( bool bAutoON )
2971 this.iGuitarR.bON = this.iGuitarG.bON = this.iGuitarB.bON = this.iGuitarPick.bON = this.iGuitarW.bON = bAutoON;
2973 private void t全部のベースパッドのAutoを切り替える( bool bAutoON )
2975 this.iBassR.bON = this.iBassG.bON = this.iBassB.bON = this.iBassPick.bON = this.iBassW.bON = bAutoON;
2977 private void tConfigIniへ記録する()
2979 switch( this.eメニュー種別 )
2981 case Eメニュー種別.System:
2982 this.tConfigIniへ記録する_System();
2983 this.tConfigIniへ記録する_KeyAssignSystem();
2987 this.tConfigIniへ記録する_Drums();
2988 this.tConfigIniへ記録する_KeyAssignDrums();
2991 case Eメニュー種別.Guitar:
2992 this.tConfigIniへ記録する_Guitar();
2993 this.tConfigIniへ記録する_KeyAssignGuitar();
2997 this.tConfigIniへ記録する_Bass();
2998 this.tConfigIniへ記録する_KeyAssignBass();
3002 private void tConfigIniへ記録する_KeyAssignBass()
3005 private void tConfigIniへ記録する_KeyAssignDrums()
3008 private void tConfigIniへ記録する_KeyAssignGuitar()
3011 private void tConfigIniへ記録する_KeyAssignSystem()
3014 private void tConfigIniへ記録する_System()
3016 //CDTXMania.ConfigIni.eDark = (Eダークモード) this.iCommonDark.n現在選択されている項目番号;
3017 CDTXMania.ConfigIni.n演奏速度 = this.iCommonPlaySpeed.n現在の値;
3019 CDTXMania.ConfigIni.bGuitar有効 = ( ( ( this.iSystemGRmode.n現在選択されている項目番号 + 1 ) / 2 ) == 1 );
3020 //this.iSystemGuitar.bON;
3021 CDTXMania.ConfigIni.bDrums有効 = ( ( ( this.iSystemGRmode.n現在選択されている項目番号 + 1 ) % 2 ) == 1 );
3022 //this.iSystemDrums.bON;
3024 CDTXMania.ConfigIni.b全画面モード = this.iSystemFullscreen.bON;
3025 CDTXMania.ConfigIni.bSTAGEFAILED有効 = this.iSystemStageFailed.bON;
3026 CDTXMania.ConfigIni.bランダムセレクトで子BOXを検索対象とする = this.iSystemRandomFromSubBox.bON;
3028 CDTXMania.ConfigIni.bWave再生位置自動調整機能有効 = this.iSystemAdjustWaves.bON;
3029 CDTXMania.ConfigIni.b垂直帰線待ちを行う = this.iSystemVSyncWait.bON;
3030 CDTXMania.ConfigIni.bバッファ入力を行う = this.iSystemBufferedInput.bON;
3031 CDTXMania.ConfigIni.bAVI有効 = this.iSystemAVI.bON;
3032 CDTXMania.ConfigIni.bForceAVIFullscreen = this.iSystemForceAVIFullscreen.bON;
3033 CDTXMania.ConfigIni.bBGA有効 = this.iSystemBGA.bON;
3034 // CDTXMania.ConfigIni.bGraph有効 = this.iSystemGraph.bON;#24074 2011.01.23 comment-out ikanick オプション(Drums)へ移行
3035 CDTXMania.ConfigIni.n曲が選択されてからプレビュー音が鳴るまでのウェイトms = this.iSystemPreviewSoundWait.n現在の値;
3036 //CDTXMania.ConfigIni.n曲が選択されてからプレビュー画像が表示開始されるまでのウェイトms = this.iSystemPreviewImageWait.n現在の値;
3037 CDTXMania.ConfigIni.b演奏情報を表示する = this.iSystemDebugInfo.bON;
3038 //CDTXMania.ConfigIni.n背景の透過度 = this.iSystemBGAlpha.n現在の値;
3039 CDTXMania.ConfigIni.bBGM音を発声する = this.iSystemBGMSound.bON;
3040 CDTXMania.ConfigIni.b歓声を発声する = this.iSystemAudienceSound.bON;
3041 CDTXMania.ConfigIni.eダメージレベル = (Eダメージレベル) this.iSystemDamageLevel.n現在選択されている項目番号;
3042 CDTXMania.ConfigIni.bScoreIniを出力する = this.iSystemSaveScore.bON;
3044 CDTXMania.ConfigIni.bログ出力 = this.iLogOutputLog.bON;
3045 CDTXMania.ConfigIni.n手動再生音量 = this.iSystemChipVolume.n現在の値;
3046 CDTXMania.ConfigIni.n自動再生音量 = this.iSystemAutoChipVolume.n現在の値;
3047 //CDTXMania.ConfigIni.bストイックモード = this.iSystemStoicMode.bON;
3049 CDTXMania.ConfigIni.nShowLagType = this.iSystemShowLag.n現在選択されている項目番号; // #25370 2011.6.3 yyagi
3050 CDTXMania.ConfigIni.bIsAutoResultCapture = this.iSystemAutoResultCapture.bON; // #25399 2011.6.9 yyagi
3052 //CDTXMania.ConfigIni.nRisky = this.iSystemRisky.n現在の値; // #23559 2011.7.27 yyagi
3054 CDTXMania.ConfigIni.strSystemSkinSubfolderFullName = skinSubFolders[ nSkinIndex ]; // #28195 2012.5.2 yyagi
3055 CDTXMania.Skin.SetCurrentSkinSubfolderFullName( CDTXMania.ConfigIni.strSystemSkinSubfolderFullName, true );
3056 CDTXMania.ConfigIni.bUseBoxDefSkin = this.iSystemUseBoxDefSkin.bON; // #28195 2012.5.6 yyagi
3058 CDTXMania.ConfigIni.nSoundDeviceType = this.iSystemSoundType.n現在選択されている項目番号; // #24820 2013.1.3 yyagi
3059 CDTXMania.ConfigIni.nWASAPIBufferSizeMs = this.iSystemWASAPIBufferSizeMs.n現在の値; // #24820 2013.1.15 yyagi
3060 // CDTXMania.ConfigIni.nASIOBufferSizeMs = this.iSystemASIOBufferSizeMs.n現在の値; // #24820 2013.1.3 yyagi
3061 CDTXMania.ConfigIni.nASIODevice = this.iSystemASIODevice.n現在選択されている項目番号; // #24820 2013.1.17 yyagi
3062 CDTXMania.ConfigIni.bUseOSTimer = this.iSystemSoundTimerType.bON; // #33689 2014.6.17 yyagi
3064 CDTXMania.ConfigIni.bTimeStretch = this.iSystemTimeStretch.bON; // #23664 2013.2.24 yyagi
3065 //Trace.TraceInformation( "saved" );
3066 //Trace.TraceInformation( "Skin現在Current : " + CDTXMania.Skin.GetCurrentSkinSubfolderFullName(true) );
3067 //Trace.TraceInformation( "Skin現在System : " + CSkin.strSystemSkinSubfolderFullName );
3068 //Trace.TraceInformation( "Skin現在BoxDef : " + CSkin.strBoxDefSkinSubfolderFullName );
3069 CDTXMania.ConfigIni.nMasterVolume = this.iSystemMasterVolume.n現在の値; // #33700 2014.4.26 yyagi
3070 CDTXMania.ConfigIni.e判定表示優先度 = (E判定表示優先度) this.iSystemJudgeDispPriority.n現在選択されている項目番号;
3072 CDTXMania.ConfigIni.eSkillMode = ( ESkillType )this.iSystemSkillMode.n現在選択されている項目番号;
3073 CDTXMania.ConfigIni.eNamePlateType = ( Eタイプ )this.iSystemNamePlateType.n現在選択されている項目番号;
3074 CDTXMania.ConfigIni.bJudgeCountDisp = this.iSystemJudgeCountDisp.bON;
3075 CDTXMania.ConfigIni.nCommonBGMAdjustMs = this.iSystemBGMAdjust.n現在の値; // #36372 2016.06.19 kairera0467
3077 private void tConfigIniへ記録する_Bass()
3079 //CDTXMania.ConfigIni.bAutoPlay.Bass = this.iBassAutoPlay.bON;
3080 CDTXMania.ConfigIni.bAutoPlay.BsR = this.iBassR.bON;
3081 CDTXMania.ConfigIni.bAutoPlay.BsG = this.iBassG.bON;
3082 CDTXMania.ConfigIni.bAutoPlay.BsB = this.iBassB.bON;
3083 CDTXMania.ConfigIni.bAutoPlay.BsPick = this.iBassPick.bON;
3084 CDTXMania.ConfigIni.bAutoPlay.BsW = this.iBassW.bON;
3085 CDTXMania.ConfigIni.n譜面スクロール速度.Bass = this.iBassScrollSpeed.n現在の値;
3086 // "Sudden" || "Sud+Hid"
3087 CDTXMania.ConfigIni.bSudden.Bass = ( this.iBassSudHid.n現在選択されている項目番号 == 1 || this.iBassSudHid.n現在選択されている項目番号 == 3 ) ? true : false;
3088 // "Hidden" || "Sud+Hid"
3089 CDTXMania.ConfigIni.bHidden.Bass = ( this.iBassSudHid.n現在選択されている項目番号 == 2 || this.iBassSudHid.n現在選択されている項目番号 == 3 ) ? true : false;
3090 if ( this.iBassSudHid.n現在選択されている項目番号 == 4 ) CDTXMania.ConfigIni.eInvisible.Bass = EInvisible.SEMI; // "S-Invisible"
3091 else if ( this.iBassSudHid.n現在選択されている項目番号 == 5 ) CDTXMania.ConfigIni.eInvisible.Bass = EInvisible.FULL; // "F-Invisible"
3092 else CDTXMania.ConfigIni.eInvisible.Bass = EInvisible.OFF;
3093 CDTXMania.ConfigIni.bReverse.Bass = this.iBassReverse.bON;
3094 CDTXMania.ConfigIni.判定文字表示位置.Bass = (E判定文字表示位置) this.iBassPosition.n現在選択されている項目番号;
3095 CDTXMania.ConfigIni.eRandom.Bass = (Eランダムモード) this.iBassRandom.n現在選択されている項目番号;
3096 CDTXMania.ConfigIni.bLight.Bass = this.iBassLight.bON;
3097 CDTXMania.ConfigIni.bLeft.Bass = this.iBassLeft.bON;
3098 CDTXMania.ConfigIni.nInputAdjustTimeMs.Bass = this.iBassInputAdjustTimeMs.n現在の値; // #23580 2011.1.3 yyagi
3100 CDTXMania.ConfigIni.b演奏音を強調する.Bass = this.iSystemSoundMonitorBass.bON;
3101 CDTXMania.ConfigIni.n表示可能な最小コンボ数.Bass = this.iSystemMinComboBass.n現在の値;
3102 CDTXMania.ConfigIni.e判定位置.Bass = (E判定位置) this.iSystemJudgePosBass.n現在選択されている項目番号; // #33891 2014.6.26 yyagi
3103 //CDTXMania.ConfigIni.e判定表示優先度.Bass = (E判定表示優先度) this.iBassJudgeDispPriority.n現在選択されている項目番号;
3104 CDTXMania.ConfigIni.bLaneFlush.Bass = this.iBassLaneFlush.bON;
3105 CDTXMania.ConfigIni.nLaneDispType.Bass = this.iBassLaneDispType.n現在選択されている項目番号;
3106 CDTXMania.ConfigIni.bJudgeLineDisp.Bass = this.iBassJudgeLineDisp.bON;
3107 CDTXMania.ConfigIni.bGraph.Bass = this.iBassGraph.bON;
3109 private void tConfigIniへ記録する_Drums()
3111 CDTXMania.ConfigIni.bAutoPlay.LC = this.iDrumsLeftCymbal.bON;
3112 CDTXMania.ConfigIni.bAutoPlay.HH = this.iDrumsHiHat.bON;
3113 CDTXMania.ConfigIni.bAutoPlay.SD = this.iDrumsSnare.bON;
3114 CDTXMania.ConfigIni.bAutoPlay.BD = this.iDrumsBass.bON;
3115 CDTXMania.ConfigIni.bAutoPlay.HT = this.iDrumsHighTom.bON;
3116 CDTXMania.ConfigIni.bAutoPlay.LT = this.iDrumsLowTom.bON;
3117 CDTXMania.ConfigIni.bAutoPlay.FT = this.iDrumsFloorTom.bON;
3118 CDTXMania.ConfigIni.bAutoPlay.CY = this.iDrumsCymbalRide.bON;
3119 CDTXMania.ConfigIni.bAutoPlay.LP = this.iDrumsLeftPedal.bON;
3120 CDTXMania.ConfigIni.bAutoPlay.LBD = this.iDrumsLeftBassDrum.bON;
3121 CDTXMania.ConfigIni.n譜面スクロール速度.Drums = this.iDrumsScrollSpeed.n現在の値;
3122 //CDTXMania.ConfigIni.ドラムコンボ文字の表示位置 = (Eドラムコンボ文字の表示位置) this.iDrumsComboPosition.n現在選択されている項目番号;
3123 // "Sudden" || "Sud+Hid"
3124 CDTXMania.ConfigIni.bSudden.Drums = ( this.iDrumsSudHid.n現在選択されている項目番号 == 1 || this.iDrumsSudHid.n現在選択されている項目番号 == 3 ) ? true : false;
3125 // "Hidden" || "Sud+Hid"
3126 CDTXMania.ConfigIni.bHidden.Drums = ( this.iDrumsSudHid.n現在選択されている項目番号 == 2 || this.iDrumsSudHid.n現在選択されている項目番号 == 3 ) ? true : false;
3127 if ( this.iDrumsSudHid.n現在選択されている項目番号 == 4 ) CDTXMania.ConfigIni.eInvisible.Drums = EInvisible.SEMI; // "S-Invisible"
3128 else if ( this.iDrumsSudHid.n現在選択されている項目番号 == 5 ) CDTXMania.ConfigIni.eInvisible.Drums = EInvisible.FULL; // "F-Invisible"
3129 else CDTXMania.ConfigIni.eInvisible.Drums = EInvisible.OFF;
3130 CDTXMania.ConfigIni.bReverse.Drums = this.iDrumsReverse.bON;
3131 CDTXMania.ConfigIni.判定文字表示位置.Drums = (E判定文字表示位置) this.iDrumsPosition.n現在選択されている項目番号;
3132 CDTXMania.ConfigIni.bTight = this.iDrumsTight.bON;
3133 CDTXMania.ConfigIni.nInputAdjustTimeMs.Drums = this.iDrumsInputAdjustTimeMs.n現在の値; // #23580 2011.1.3 yyagi
3134 CDTXMania.ConfigIni.bGraph.Drums = this.iDrumsGraph.bON;// #24074 2011.01.23 add ikanick
3136 CDTXMania.ConfigIni.eHHGroup = (EHHGroup) this.iSystemHHGroup.n現在選択されている項目番号;
3137 CDTXMania.ConfigIni.eFTGroup = (EFTGroup) this.iSystemFTGroup.n現在選択されている項目番号;
3138 CDTXMania.ConfigIni.eCYGroup = (ECYGroup) this.iSystemCYGroup.n現在選択されている項目番号;
3139 CDTXMania.ConfigIni.eBDGroup = (EBDGroup) this.iSystemBDGroup.n現在選択されている項目番号;
3140 CDTXMania.ConfigIni.eHitSoundPriorityHH = (E打ち分け時の再生の優先順位) this.iSystemHitSoundPriorityHH.n現在選択されている項目番号;
3141 CDTXMania.ConfigIni.eHitSoundPriorityFT = (E打ち分け時の再生の優先順位) this.iSystemHitSoundPriorityFT.n現在選択されている項目番号;
3142 CDTXMania.ConfigIni.eHitSoundPriorityCY = (E打ち分け時の再生の優先順位) this.iSystemHitSoundPriorityCY.n現在選択されている項目番号;
3143 CDTXMania.ConfigIni.bフィルイン有効 = this.iSystemFillIn.bON;
3144 CDTXMania.ConfigIni.b演奏音を強調する.Drums = this.iSystemSoundMonitorDrums.bON;
3145 CDTXMania.ConfigIni.bドラム打音を発声する = this.iSystemHitSound.bON;
3146 CDTXMania.ConfigIni.n表示可能な最小コンボ数.Drums = this.iSystemMinComboDrums.n現在の値;
3147 CDTXMania.ConfigIni.bシンバルフリー = this.iSystemCymbalFree.bON;
3149 //CDTXMania.ConfigIni.eDark = (Eダークモード)this.iCommonDark.n現在選択されている項目番号;
3150 CDTXMania.ConfigIni.nRisky = this.iSystemRisky.n現在の値; // #23559 2911.7.27 yyagi
3151 CDTXMania.ConfigIni.nJudgeLine.Drums = this.iDrumsJudgeLinePos.n現在の値;
3152 CDTXMania.ConfigIni.nJudgeLinePosOffset.Drums = this.iDrumsJudgeLineOffset.n現在の値;
3153 //CDTXMania.ConfigIni.eドラムレーン表示位置 = (Eドラムレーン表示位置) this.iDrumsLanePosition.n現在選択されている項目番号;
3154 CDTXMania.ConfigIni.eRDPosition = (ERDPosition)this.iDrumsRDPosition.n現在選択されている項目番号;
3155 CDTXMania.ConfigIni.eLaneType = ( Eタイプ )this.iDrumsLaneType.n現在選択されている項目番号;
3157 CDTXMania.ConfigIni.nLaneDispType.Drums = this.iDrumsLaneDispType.n現在選択されている項目番号;
3158 CDTXMania.ConfigIni.bJudgeLineDisp.Drums = this.iDrumsJudgeLineDisp.bON;
3159 CDTXMania.ConfigIni.bLaneFlush.Drums = this.iDrumsLaneFlush.bON;
3161 private void tConfigIniへ記録する_Guitar()
3163 //CDTXMania.ConfigIni.bAutoPlay.Guitar = this.iGuitarAutoPlay.bON;
3164 CDTXMania.ConfigIni.bAutoPlay.GtR = this.iGuitarR.bON;
3165 CDTXMania.ConfigIni.bAutoPlay.GtG = this.iGuitarG.bON;
3166 CDTXMania.ConfigIni.bAutoPlay.GtB = this.iGuitarB.bON;
3167 CDTXMania.ConfigIni.bAutoPlay.GtPick = this.iGuitarPick.bON;
3168 CDTXMania.ConfigIni.bAutoPlay.GtW = this.iGuitarW.bON;
3169 CDTXMania.ConfigIni.n譜面スクロール速度.Guitar = this.iGuitarScrollSpeed.n現在の値;
3170 // "Sudden" || "Sud+Hid"
3171 CDTXMania.ConfigIni.bSudden.Guitar = ( this.iGuitarSudHid.n現在選択されている項目番号 == 1 || this.iGuitarSudHid.n現在選択されている項目番号 == 3 ) ? true : false;
3172 // "Hidden" || "Sud+Hid"
3173 CDTXMania.ConfigIni.bHidden.Guitar = ( this.iGuitarSudHid.n現在選択されている項目番号 == 2 || this.iGuitarSudHid.n現在選択されている項目番号 == 3 ) ? true : false;
3174 if ( this.iGuitarSudHid.n現在選択されている項目番号 == 4 ) CDTXMania.ConfigIni.eInvisible.Guitar = EInvisible.SEMI; // "S-Invisible"
3175 else if ( this.iGuitarSudHid.n現在選択されている項目番号 == 5 ) CDTXMania.ConfigIni.eInvisible.Guitar = EInvisible.FULL; // "F-Invisible"
3176 else CDTXMania.ConfigIni.eInvisible.Guitar = EInvisible.OFF;
3177 CDTXMania.ConfigIni.bReverse.Guitar = this.iGuitarReverse.bON;
3178 CDTXMania.ConfigIni.判定文字表示位置.Guitar = (E判定文字表示位置) this.iGuitarPosition.n現在選択されている項目番号;
3179 CDTXMania.ConfigIni.eRandom.Guitar = (Eランダムモード) this.iGuitarRandom.n現在選択されている項目番号;
3180 CDTXMania.ConfigIni.bLight.Guitar = this.iGuitarLight.bON;
3181 CDTXMania.ConfigIni.bLeft.Guitar = this.iGuitarLeft.bON;
3182 CDTXMania.ConfigIni.nInputAdjustTimeMs.Guitar = this.iGuitarInputAdjustTimeMs.n現在の値; // #23580 2011.1.3 yyagi
3184 CDTXMania.ConfigIni.n表示可能な最小コンボ数.Guitar = this.iSystemMinComboGuitar.n現在の値;
3185 CDTXMania.ConfigIni.b演奏音を強調する.Guitar = this.iSystemSoundMonitorGuitar.bON;
3186 CDTXMania.ConfigIni.e判定位置.Guitar = (E判定位置) this.iSystemJudgePosGuitar.n現在選択されている項目番号; // #33891 2014.6.26 yyagi
3187 //CDTXMania.ConfigIni.e判定表示優先度.Guitar = (E判定表示優先度) this.iGuitarJudgeDispPriority.n現在選択されている項目番号;
3188 CDTXMania.ConfigIni.bLaneFlush.Guitar = this.iGuitarLaneFlush.bON;
3189 CDTXMania.ConfigIni.nLaneDispType.Guitar = this.iGuitarLaneDispType.n現在選択されている項目番号;
3190 CDTXMania.ConfigIni.bJudgeLineDisp.Guitar = this.iGuitarJudgeLineDisp.bON;
3191 CDTXMania.ConfigIni.bGraph.Guitar = this.iGuitarGraph.bON;