OSDN Git Service

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