OSDN Git Service

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