OSDN Git Service

#24074 オートの時はグラフを表示しないようにした。
[dtxmania/dtxmania.git] / DTXManiaプロジェクト / コード / ステージ / 04.コンフィグ / CActConfigList.cs
1 using System;\r
2 using System.Collections.Generic;\r
3 using System.Text;\r
4 using System.Drawing;\r
5 using FDK;\r
6 \r
7 namespace DTXMania\r
8 {\r
9         internal class CActConfigList : CActivity\r
10         {\r
11                 // プロパティ\r
12 \r
13                 public bool b現在選択されている項目はReturnToMenuである\r
14                 {\r
15                         get\r
16                         {\r
17                                 CItemBase base2 = this.list項目リスト[ this.n現在の選択項目 ];\r
18                                 if( ( ( base2 != this.iSystemReturnToMenu ) && ( base2 != this.iKeyAssignDrumsReturnToMenu ) ) && ( base2 != this.iKeyAssignGuitarReturnToMenu ) )\r
19                                 {\r
20                                         return ( base2 == this.iKeyAssignBassReturnToMenu );\r
21                                 }\r
22                                 return true;\r
23                         }\r
24                 }\r
25                 public CItemBase ib現在の選択項目\r
26                 {\r
27                         get\r
28                         {\r
29                                 return this.list項目リスト[ this.n現在の選択項目 ];\r
30                         }\r
31                 }\r
32                 public int n現在の選択項目;\r
33 \r
34 \r
35                 // メソッド\r
36 \r
37                 public void tEnter押下()\r
38                 {\r
39                         CDTXMania.Skin.sound決定音.t再生する();\r
40                         if( this.b要素値にフォーカス中 )\r
41                         {\r
42                                 this.b要素値にフォーカス中 = false;\r
43                         }\r
44                         else if( this.list項目リスト[ this.n現在の選択項目 ].e種別 == CItemBase.E種別.整数 )\r
45                         {\r
46                                 this.b要素値にフォーカス中 = true;\r
47                         }\r
48                         else if( this.b現在選択されている項目はReturnToMenuである )\r
49                         {\r
50                                 this.tConfigIniへ記録する();\r
51                         }\r
52                         else if( ( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemGuitar ) || ( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemDrums ) )\r
53                         {\r
54                                 this.list項目リスト[ this.n現在の選択項目 ].tEnter押下();\r
55                                 if( !this.iSystemGuitar.bON && !this.iSystemDrums.bON )\r
56                                 {\r
57                                         if( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemGuitar )\r
58                                         {\r
59                                                 this.iSystemDrums.bON = true;\r
60                                         }\r
61                                         else\r
62                                         {\r
63                                                 this.iSystemGuitar.bON = true;\r
64                                         }\r
65                                 }\r
66                         }\r
67                         else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignDrumsLC )\r
68                         {\r
69                                 CDTXMania.stageコンフィグ.tパッド選択通知( E楽器パート.DRUMS, Eパッド.LC );\r
70                         }\r
71                         else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignDrumsHHC )\r
72                         {\r
73                                 CDTXMania.stageコンフィグ.tパッド選択通知( E楽器パート.DRUMS, Eパッド.HH );\r
74                         }\r
75                         else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignDrumsHHO )\r
76                         {\r
77                                 CDTXMania.stageコンフィグ.tパッド選択通知( E楽器パート.DRUMS, Eパッド.HHO );\r
78                         }\r
79                         else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignDrumsSD )\r
80                         {\r
81                                 CDTXMania.stageコンフィグ.tパッド選択通知( E楽器パート.DRUMS, Eパッド.SD );\r
82                         }\r
83                         else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignDrumsBD )\r
84                         {\r
85                                 CDTXMania.stageコンフィグ.tパッド選択通知( E楽器パート.DRUMS, Eパッド.BD );\r
86                         }\r
87                         else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignDrumsHT )\r
88                         {\r
89                                 CDTXMania.stageコンフィグ.tパッド選択通知( E楽器パート.DRUMS, Eパッド.HT );\r
90                         }\r
91                         else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignDrumsLT )\r
92                         {\r
93                                 CDTXMania.stageコンフィグ.tパッド選択通知( E楽器パート.DRUMS, Eパッド.LT );\r
94                         }\r
95                         else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignDrumsFT )\r
96                         {\r
97                                 CDTXMania.stageコンフィグ.tパッド選択通知( E楽器パート.DRUMS, Eパッド.FT );\r
98                         }\r
99                         else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignDrumsCY )\r
100                         {\r
101                                 CDTXMania.stageコンフィグ.tパッド選択通知( E楽器パート.DRUMS, Eパッド.CY );\r
102                         }\r
103                         else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignDrumsRD )\r
104                         {\r
105                                 CDTXMania.stageコンフィグ.tパッド選択通知( E楽器パート.DRUMS, Eパッド.RD );\r
106                         }\r
107                         else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignGuitarR )\r
108                         {\r
109                                 CDTXMania.stageコンフィグ.tパッド選択通知( E楽器パート.GUITAR, Eパッド.HH );\r
110                         }\r
111                         else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignGuitarG )\r
112                         {\r
113                                 CDTXMania.stageコンフィグ.tパッド選択通知( E楽器パート.GUITAR, Eパッド.SD );\r
114                         }\r
115                         else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignGuitarB )\r
116                         {\r
117                                 CDTXMania.stageコンフィグ.tパッド選択通知( E楽器パート.GUITAR, Eパッド.BD );\r
118                         }\r
119                         else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignGuitarPick )\r
120                         {\r
121                                 CDTXMania.stageコンフィグ.tパッド選択通知( E楽器パート.GUITAR, Eパッド.HT );\r
122                         }\r
123                         else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignGuitarWail )\r
124                         {\r
125                                 CDTXMania.stageコンフィグ.tパッド選択通知( E楽器パート.GUITAR, Eパッド.LT );\r
126                         }\r
127                         else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignGuitarDecide )\r
128                         {\r
129                                 CDTXMania.stageコンフィグ.tパッド選択通知( E楽器パート.GUITAR, Eパッド.CY );\r
130                         }\r
131                         else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignGuitarCancel )\r
132                         {\r
133                                 CDTXMania.stageコンフィグ.tパッド選択通知( E楽器パート.GUITAR, Eパッド.FT );\r
134                         }\r
135                         else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignBassR )\r
136                         {\r
137                                 CDTXMania.stageコンフィグ.tパッド選択通知( E楽器パート.BASS, Eパッド.HH );\r
138                         }\r
139                         else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignBassG )\r
140                         {\r
141                                 CDTXMania.stageコンフィグ.tパッド選択通知( E楽器パート.BASS, Eパッド.SD );\r
142                         }\r
143                         else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignBassB )\r
144                         {\r
145                                 CDTXMania.stageコンフィグ.tパッド選択通知( E楽器パート.BASS, Eパッド.BD );\r
146                         }\r
147                         else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignBassPick )\r
148                         {\r
149                                 CDTXMania.stageコンフィグ.tパッド選択通知( E楽器パート.BASS, Eパッド.HT );\r
150                         }\r
151                         else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignBassWail )\r
152                         {\r
153                                 CDTXMania.stageコンフィグ.tパッド選択通知( E楽器パート.BASS, Eパッド.LT );\r
154                         }\r
155                         else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignBassDecide )\r
156                         {\r
157                                 CDTXMania.stageコンフィグ.tパッド選択通知( E楽器パート.BASS, Eパッド.CY );\r
158                         }\r
159                         else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignBassCancel )\r
160                         {\r
161                                 CDTXMania.stageコンフィグ.tパッド選択通知( E楽器パート.BASS, Eパッド.FT );\r
162                         }\r
163                         else\r
164                         {\r
165                                 this.list項目リスト[ this.n現在の選択項目 ].tEnter押下();\r
166                                 if( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemFullscreen )\r
167                                 {\r
168                                         CDTXMania.app.b次のタイミングで全画面・ウィンドウ切り替えを行う = true;\r
169                                 }\r
170                                 else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemVSyncWait )\r
171                                 {\r
172                                         CDTXMania.ConfigIni.b垂直帰線待ちを行う = this.iSystemVSyncWait.bON;\r
173                                         CDTXMania.app.b次のタイミングで垂直帰線同期切り替えを行う = true;\r
174                                 }\r
175                         }\r
176                 }\r
177                 public void t項目リストの設定・Exit()\r
178                 {\r
179                         this.tConfigIniへ記録する();\r
180                         this.eメニュー種別 = Eメニュー種別.Unknown;\r
181                 }\r
182                 public void t項目リストの設定・KeyAssignBass()\r
183                 {\r
184                         this.tConfigIniへ記録する();\r
185                         this.list項目リスト.Clear();\r
186                         this.iKeyAssignBassReturnToMenu = new CItemBase( "<< ReturnTo Menu", CItemBase.Eパネル種別.その他,\r
187                                 "左側のメニューに戻ります。",\r
188                                 "Return to left menu.");\r
189                         this.list項目リスト.Add( this.iKeyAssignBassReturnToMenu );\r
190                         this.iKeyAssignBassR = new CItemBase( "R",\r
191                                 "ベースのキー設定:\nRボタンへのキーの割り当てを設定し\nます。",\r
192                                 "Bass key assign:\nTo assign key/pads for R button.");\r
193                         this.list項目リスト.Add( this.iKeyAssignBassR );\r
194                         this.iKeyAssignBassG = new CItemBase( "G",\r
195                                 "ベースのキー設定:\nGボタンへのキーの割り当てを設定し\nます。",\r
196                                 "Bass key assign:\nTo assign key/pads for G button.");\r
197                         this.list項目リスト.Add( this.iKeyAssignBassG );\r
198                         this.iKeyAssignBassB = new CItemBase( "B",\r
199                                 "ベースのキー設定:\nBボタンへのキーの割り当てを設定し\nます。",\r
200                                 "Bass key assign:\nTo assign key/pads for B button.");\r
201                         this.list項目リスト.Add(this.iKeyAssignBassB);\r
202                         this.iKeyAssignBassPick = new CItemBase( "Pick",\r
203                                 "ベースのキー設定:\nピックボタンへのキーの割り当てを設\n定します。",\r
204                                 "Bass key assign:\nTo assign key/pads for Pick button.");\r
205                         this.list項目リスト.Add(this.iKeyAssignBassPick);\r
206                         this.iKeyAssignBassWail = new CItemBase( "Wailing",\r
207                                 "ベースのキー設定:\nWailingボタンへのキーの割り当てを設\n定します。",\r
208                                 "Bass key assign:\nTo assign key/pads for Wailing button.");\r
209                         this.list項目リスト.Add(this.iKeyAssignBassWail);\r
210                         this.iKeyAssignBassDecide = new CItemBase( "Decide",\r
211                                 "ベースのキー設定:\n決定ボタンへのキーの割り当てを設\n定します。",\r
212                                 "Bass key assign:\nTo assign key/pads for Decide button.");\r
213                         this.list項目リスト.Add(this.iKeyAssignBassDecide);\r
214                         this.iKeyAssignBassCancel = new CItemBase( "Cancel",\r
215                                 "ベースのキー設定:\nキャンセルボタンへのキーの割り当\nてを設定します。",\r
216                                 "Bass key assign:\nTo assign key/pads for Cancel button.");\r
217                         this.list項目リスト.Add(this.iKeyAssignBassCancel);\r
218                         this.n現在の選択項目 = 0;\r
219                         this.eメニュー種別 = Eメニュー種別.KeyAssignBass;\r
220                 }\r
221                 public void t項目リストの設定・KeyAssignDrums()\r
222                 {\r
223                         this.tConfigIniへ記録する();\r
224                         this.list項目リスト.Clear();\r
225                         this.iKeyAssignDrumsReturnToMenu = new CItemBase( "<< ReturnTo Menu", CItemBase.Eパネル種別.その他,\r
226                                 "左側のメニューに戻ります。",\r
227                                 "Return to left menu.");\r
228                         this.list項目リスト.Add(this.iKeyAssignDrumsReturnToMenu);\r
229                         this.iKeyAssignDrumsLC = new CItemBase( "LeftCymbal",\r
230                                 "ドラムのキー設定:\n左シンバルへのキーの割り当てを設\n定します。",\r
231                                 "Drums key assign:\nTo assign key/pads for LeftCymbal\n button.");\r
232                         this.list項目リスト.Add(this.iKeyAssignDrumsLC);\r
233                         this.iKeyAssignDrumsHHC = new CItemBase( "HiHat(Close)",\r
234                                 "ドラムのキー設定:\nハイハット(クローズ)へのキーの割り\n当てを設定します。",\r
235                                 "Drums key assign:\nTo assign key/pads for HiHat(Close)\n button.");\r
236                         this.list項目リスト.Add( this.iKeyAssignDrumsHHC );\r
237                         this.iKeyAssignDrumsHHO = new CItemBase( "HiHat(Open)",\r
238                                 "ドラムのキー設定:\nハイハット(オープン)へのキーの割り\n当てを設定します。",\r
239                                 "Drums key assign:\nTo assign key/pads for HiHat(Open)\n button.");\r
240                         this.list項目リスト.Add(this.iKeyAssignDrumsHHO);\r
241                         this.iKeyAssignDrumsSD = new CItemBase( "Snare",\r
242                                 "ドラムのキー設定:\nスネアへのキーの割り当てを設定し\nます。",\r
243                                 "Drums key assign:\nTo assign key/pads for Snare button.");\r
244                         this.list項目リスト.Add(this.iKeyAssignDrumsSD);\r
245                         this.iKeyAssignDrumsBD = new CItemBase( "Bass",\r
246                                 "ドラムのキー設定:\nバスドラムへのキーの割り当てを設定\nします。",\r
247                                 "Drums key assign:\nTo assign key/pads for Bass button.");\r
248                         this.list項目リスト.Add(this.iKeyAssignDrumsBD);\r
249                         this.iKeyAssignDrumsHT = new CItemBase( "HighTom",\r
250                                 "ドラムのキー設定:\nハイタムへのキーの割り当てを設定\nします。",\r
251                                 "Drums key assign:\nTo assign key/pads for HighTom\n button.");\r
252                         this.list項目リスト.Add(this.iKeyAssignDrumsHT);\r
253                         this.iKeyAssignDrumsLT = new CItemBase( "LowTom",\r
254                                 "ドラムのキー設定:\nロータムへのキーの割り当てを設定\nします。",\r
255                                 "Drums key assign:\nTo assign key/pads for LowTom button.");\r
256                         this.list項目リスト.Add(this.iKeyAssignDrumsLT);\r
257                         this.iKeyAssignDrumsFT = new CItemBase( "FloorTom",\r
258                                 "ドラムのキー設定:\nフロアタムへのキーの割り当てを設\n定します。",\r
259                                 "Drums key assign:\nTo assign key/pads for FloorTom\n button.");\r
260                         this.list項目リスト.Add(this.iKeyAssignDrumsFT);\r
261                         this.iKeyAssignDrumsCY = new CItemBase( "RightCymbal",\r
262                                 "ドラムのキー設定:\n右シンバルへのキーの割り当てを設\n定します。",\r
263                                 "Drums key assign:\nTo assign key/pads for RightCymbal\n button.");\r
264                         this.list項目リスト.Add(this.iKeyAssignDrumsCY);\r
265                         this.iKeyAssignDrumsRD = new CItemBase( "RideCymbal",\r
266                                 "ドラムのキー設定:\nライドシンバルへのキーの割り当て\nを設定します。",\r
267                                 "Drums key assign:\nTo assign key/pads for RideCymbal\n button.");\r
268                         this.list項目リスト.Add(this.iKeyAssignDrumsRD);\r
269                         this.n現在の選択項目 = 0;\r
270                         this.eメニュー種別 = Eメニュー種別.KeyAssignDrums;\r
271                 }\r
272                 public void t項目リストの設定・KeyAssignGuitar()\r
273                 {\r
274                         this.tConfigIniへ記録する();\r
275                         this.list項目リスト.Clear();\r
276                         this.iKeyAssignGuitarReturnToMenu = new CItemBase( "<< ReturnTo Menu", CItemBase.Eパネル種別.その他,\r
277                                 "左側のメニューに戻ります。",\r
278                                 "Return to left menu.");\r
279                         this.list項目リスト.Add(this.iKeyAssignGuitarReturnToMenu);\r
280                         this.iKeyAssignGuitarR = new CItemBase( "R",\r
281                                 "ギターのキー設定:\nRボタンへのキーの割り当てを設定し\nます。",\r
282                                 "Guitar key assign:\nTo assign key/pads for R button.");\r
283                         this.list項目リスト.Add(this.iKeyAssignGuitarR);\r
284                         this.iKeyAssignGuitarG = new CItemBase( "G",\r
285                                 "ギターのキー設定:\nGボタンへのキーの割り当てを設定し\nます。",\r
286                                 "Guitar key assign:\nTo assign key/pads for G button.");\r
287                         this.list項目リスト.Add(this.iKeyAssignGuitarG);\r
288                         this.iKeyAssignGuitarB = new CItemBase( "B",\r
289                                 "ギターのキー設定:\nBボタンへのキーの割り当てを設定し\nます。",\r
290                                 "Guitar key assign:\nTo assign key/pads for B button.");\r
291                         this.list項目リスト.Add(this.iKeyAssignGuitarB);\r
292                         this.iKeyAssignGuitarPick = new CItemBase( "Pick",\r
293                                 "ギターのキー設定:\nピックボタンへのキーの割り当てを設\n定します。",\r
294                                 "Guitar key assign:\nTo assign key/pads for Pick button.");\r
295                         this.list項目リスト.Add(this.iKeyAssignGuitarPick);\r
296                         this.iKeyAssignGuitarWail = new CItemBase( "Wailing",\r
297                                 "ギターのキー設定:\nWailingボタンへのキーの割り当てを\n設定します。",\r
298                                 "Guitar key assign:\nTo assign key/pads for Wailing button.");\r
299                         this.list項目リスト.Add(this.iKeyAssignGuitarWail);\r
300                         this.iKeyAssignGuitarDecide = new CItemBase( "Decide",\r
301                                 "ギターのキー設定:\n決定ボタンへのキーの割り当てを設\n定します。",\r
302                                 "Guitar key assign:\nTo assign key/pads for Decide button.");\r
303                         this.list項目リスト.Add(this.iKeyAssignGuitarDecide);\r
304                         this.iKeyAssignGuitarCancel = new CItemBase( "Cancel",\r
305                                 "ギターのキー設定:\nキャンセルボタンへのキーの割り当\nてを設定します。",\r
306                                 "Guitar key assign:\nTo assign key/pads for Cancel button.");\r
307                         this.list項目リスト.Add(this.iKeyAssignGuitarCancel);\r
308                         this.n現在の選択項目 = 0;\r
309                         this.eメニュー種別 = Eメニュー種別.KeyAssignGuitar;\r
310                 }\r
311                 public void t項目リストの設定・System()\r
312                 {\r
313                         this.tConfigIniへ記録する();\r
314                         this.list項目リスト.Clear();\r
315                         this.iSystemReturnToMenu = new CItemBase( "<< ReturnTo Menu", CItemBase.Eパネル種別.その他,\r
316                                 "左側のメニューに戻ります。",\r
317                                 "Return to left menu.");\r
318                         this.list項目リスト.Add( this.iSystemReturnToMenu );\r
319                         this.iSystemGuitar = new CItemToggle( "Guitar", CDTXMania.ConfigIni.bGuitar有効,\r
320                                 "ギター有効:\nこれを OFF にすると、ギターとベース\nに関するすべてが無効になります。\nつまりは DTXMania がドラム専用の\nゲームとなります。",\r
321                                 "To show guitar/bass lanes.\nIf Guitar=ON and Drums=OFF,\n the playing screen becomes\n guitar-only mode.");\r
322                         this.list項目リスト.Add( this.iSystemGuitar );\r
323                         this.iSystemDrums = new CItemToggle( "Drums", CDTXMania.ConfigIni.bDrums有効,\r
324                                 "ドラム有効:\nこれを OFF にすると、ドラムに関する\nすべてが無効になります。\nつまりは DTXMania がギター専用の\nゲームとなります。",\r
325                                 "To use drums lanes.\nIf Guitar=ON and Drums=OFF,\n the playing screen becomes\n guitar-only mode.");\r
326                         this.list項目リスト.Add( this.iSystemDrums );\r
327                         this.iSystemFullscreen = new CItemToggle( "Fullscreen", CDTXMania.ConfigIni.b全画面モード,\r
328                                 "画面モード設定:\nON で全画面モード、OFF でウィンド\nウモードになります。",\r
329                                 "Fullscreen mode or window mode.");\r
330                         this.list項目リスト.Add( this.iSystemFullscreen );\r
331                         this.iSystemStageFailed = new CItemToggle( "StageFailed", CDTXMania.ConfigIni.bSTAGEFAILED有効,\r
332                                 "STAGE FAILED 有効:\nON にすると、ゲージがなくなった時\nに STAGE FAILED となり演奏が中断\nされます。OFF の場合は、ゲージが\nなくなっても最後まで演奏できます。",\r
333                                 "Turn OFF if you don't want to encount\n GAME OVER.");\r
334                         this.list項目リスト.Add( this.iSystemStageFailed );\r
335                         this.iSystemRandomFromSubBox = new CItemToggle( "RandSubBox", CDTXMania.ConfigIni.bランダムセレクトで子BOXを検索対象とする,\r
336                                 "子BOXをRANDOMの対象とする:\nON にすると、RANDOM SELECT 時\nに子BOXも選択対象とします。",\r
337                                 "Turn ON to use child BOX (subfolders)\n at RANDOM SELECT.");\r
338                         this.list項目リスト.Add( this.iSystemRandomFromSubBox );\r
339                         this.iSystemHHGroup = new CItemList( "HH Group", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eHHGroup,\r
340                                 "ハイハットレーン打ち分け設定:\n左シンバル、ハイハットオープン、ハ\nイハットクローズの打ち分け方法を指\n定します。\n  HH-0 ... LC | HHC | HHO\n  HH-1 ... LC & ( HHC | HHO )\n  HH-2 ... LC | ( HHC & HHO )\n  HH-3 ... LC & HHC & HHO\n",\r
341                                 "HH-0: LC|HC|HO; all are separated.\nHH-1: LC&(HC|HO);\n HC and HO are separted.\n LC is grouped with HC and HHO.\nHH-2: LC|(HC&HO);\n LC and HHs are separated.\n HC and HO are grouped.\nHH-3: LC&HC&HO; all are grouped.",\r
342                                 new string[] { "HH-0", "HH-1", "HH-2", "HH-3" } );\r
343                         this.list項目リスト.Add( this.iSystemHHGroup );\r
344                         this.iSystemFTGroup = new CItemList( "FT Group", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eFTGroup,\r
345                                 "フロアタム打ち分け設定:\nロータムとフロアタムの打ち分け方法\nを指定します。\n  FT-0 ... LT | FT\n  FT-1 ... LT & FT\n",\r
346                                 "FT-0: LT|FT\n LT and FT are separated.\nFT-1: LT&FT\n LT and FT are grouped.",\r
347                                 new string[] { "FT-0", "FT-1" } );\r
348                         this.list項目リスト.Add( this.iSystemFTGroup );\r
349                         this.iSystemCYGroup = new CItemList( "CY Group", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eCYGroup,\r
350                                 "シンバルレーン打ち分け設定:\n右シンバルとライドシンバルの打ち分\nけ方法を指定します。\n  CY-0 ... CY | RD\n  CY-1 ... CY & RD\n",\r
351                                 "CY-0: CY|RD\n CY and RD are separated.\nCY-1: CY&RD\n CY and RD are grouped.",\r
352                                 new string[] { "CY-0", "CY-1" } );\r
353                         this.list項目リスト.Add( this.iSystemCYGroup );\r
354                         this.iSystemHitSoundPriorityHH = new CItemList( "HH Priority", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eHitSoundPriorityHH,\r
355                                 "発声音決定の優先順位:\nハイハットレーン打ち分け有効時に、\nチップの発声音をどのように決定する\nかを指定します。\n  C > P ... チップの音が優先\n  P > C ... 叩いたパッドの音が優先",\r
356                                 "To specify playing sound in case you're\n using HH-0,1 and 2.\n\nC>P:\n Chip sound is prior to the pad sound.\nP>C:\n Pad sound is prior to the chip sound.",\r
357                                 new string[] { "C>P", "P>C" } );\r
358                         this.list項目リスト.Add( this.iSystemHitSoundPriorityHH );\r
359                         this.iSystemHitSoundPriorityFT = new CItemList( "FT Priority", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eHitSoundPriorityFT,\r
360                                 "発声音決定の優先順位:\nフロアタム打ち分け有効時に、チップ\nの発声音をどのように決定するかを\n指定します。\n  C > P ... チップの音が優先\n  P > C ... 叩いたパッドの音が優先",\r
361                                 "To specify playing sound in case you're\n using FT-0.\n\nC>P:\n Chip sound is prior to the pad sound.\nP>C:\n Pad sound is prior to the chip sound.",\r
362                                 new string[] { "C>P", "P>C" });\r
363                         this.list項目リスト.Add( this.iSystemHitSoundPriorityFT );\r
364                         this.iSystemHitSoundPriorityCY = new CItemList( "CY Priority", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eHitSoundPriorityCY,\r
365                                 "発声音決定の優先順位\nシンバルレーン打ち分け有効時に、\nチップの発声音をどのように決定する\nかを指定します。\n  C > P ... チップの音が優先\n  P > C ... 叩いたパッドの音が優先",\r
366                                 "To specify playing sound in case you're\n using CY-0.\n\nC>P:\n Chip sound is prior to the pad sound.\nP>C:\n Pad sound is prior to the chip sound.",\r
367                                 new string[] { "C>P", "P>C" });\r
368                         this.list項目リスト.Add( this.iSystemHitSoundPriorityCY );\r
369                         this.iSystemAdjustWaves = new CItemToggle( "AdjustWaves", CDTXMania.ConfigIni.bWave再生位置自動調整機能有効,\r
370                                 "サウンド再生位置自動補正:\nハードウェアやOSに起因するサウン\nドのずれを強制的に補正します。\nBGM のように再生時間の長い音声\nデータが使用されている曲で効果が\nあります。",\r
371                                 "Automatic wave playing position\n adjustment feature. If you turn it ON,\n it decrease the lag which comes from\n the difference of hardware/OS.\nUsually, you should turn it ON.");\r
372                         this.list項目リスト.Add( this.iSystemAdjustWaves );\r
373                         this.iSystemVSyncWait = new CItemToggle( "VSyncWait", CDTXMania.ConfigIni.b垂直帰線待ちを行う,\r
374                                 "垂直帰線同期:\n画面の描画をディスプレイの垂直帰\n線中に行なう場合には ON を指定し\nます。ON にすると、ガタつきのない\n滑らかな画面描画が実現されます。",\r
375                                 "Turn ON to wait VSync (Vertical\n Synchronizing signal) at every\n drawings. (so FPS becomes 60)\nIf you have enough CPU/GPU power,\n the scroll would become smooth.");\r
376                         this.list項目リスト.Add( this.iSystemVSyncWait );\r
377                         this.iSystemAVI = new CItemToggle( "AVI", CDTXMania.ConfigIni.bAVI有効,\r
378                                 "AVIの使用:\n動画(AVI)を再生可能にする場合に\nON にします。AVI の再生には、それ\nなりのマシンパワーが必要とされます。",\r
379                                 "To use AVI playback or not.");\r
380                         this.list項目リスト.Add( this.iSystemAVI );\r
381                         this.iSystemBGA = new CItemToggle( "BGA", CDTXMania.ConfigIni.bBGA有効,\r
382                                 "BGAの使用:\n画像(BGA)を表示可能にする場合に\nON にします。BGA の再生には、それ\nなりのマシンパワーが必要とされます。",\r
383                                 "To draw BGA (back ground animations)\n or not.");\r
384                         this.list項目リスト.Add( this.iSystemBGA );\r
385                         this.iSystemGraph = new CItemToggle( "Graph", CDTXMania.ConfigIni.bGraph有効,\r
386                                 "達成率グラフの使用:\n最高スキル達成率と比較できるグラフ\nを表示する場合にON にします。\nオートプレイだと表示されません。\n現バージョンではドラムのみとなって\nいます。",\r
387                                 "To draw Graph \n or not.");\r
388                         this.list項目リスト.Add( this.iSystemGraph );\r
389                         this.iSystemFillIn = new CItemToggle( "FillIn", CDTXMania.ConfigIni.bフィルイン有効,\r
390                                 "フィルインエフェクトの使用:\nフィルイン区間の爆発パターンに特別\nのエフェクトを使用します。\nフィルインエフェクトの描画にはそれな\nりのマシンパワーが必要とされます。",\r
391                                 "To show bursting effects at the fill-in\n zone or not.");\r
392                         this.list項目リスト.Add( this.iSystemFillIn );\r
393                         this.iSystemSoundMonitorDrums = new CItemToggle( "DrumsMonitor", CDTXMania.ConfigIni.b演奏音を強調する.Drums,\r
394                                 "ドラム音モニタ:\nドラム音を他の音より大きめの音量で\n発声します。\nただし、オートプレイの場合は通常音\n量で発声されます。",\r
395                                 "To enhance the drums chip sound\n(except autoplay).");\r
396                         this.list項目リスト.Add( this.iSystemSoundMonitorDrums );\r
397                         this.iSystemSoundMonitorGuitar = new CItemToggle( "GuitarMonitor", CDTXMania.ConfigIni.b演奏音を強調する.Guitar,\r
398                                 "ギター音モニタ:\nギター音を他の音より大きめの音量\nで発声します。\nただし、オートプレイの場合は通常音\n量で発声されます。",\r
399                                 "To enhance the guitar chip sound\n(except autoplay).");\r
400                         this.list項目リスト.Add(this.iSystemSoundMonitorGuitar);\r
401                         this.iSystemSoundMonitorBass = new CItemToggle( "BassMonitor", CDTXMania.ConfigIni.b演奏音を強調する.Bass,\r
402                                 "ベース音モニタ:\nベース音を他の音より大きめの音量\nで発声します。\nただし、オートプレイの場合は通常音\n量で発声されます。",\r
403                                 "To enhance the bass chip sound\n(except autoplay).");\r
404                         this.list項目リスト.Add( this.iSystemSoundMonitorBass );\r
405                         this.iSystemPreviewSoundWait = new CItemInteger( "PreSoundWait", 0, 0x2710, CDTXMania.ConfigIni.n曲が選択されてからプレビュー音が鳴るまでのウェイトms,\r
406                                 "プレビュー音演奏までの時間:\n曲にカーソルが合わされてからプレ\nビュー音が鳴り始めるまでの時間を\n指定します。\n0 ~ 10000 [ms] が指定可能です。",\r
407                                 "Delay time(ms) to start playing preview\n sound in SELECT MUSIC screen.\nYou can specify from 0ms to 10000ms.");\r
408                         this.list項目リスト.Add( this.iSystemPreviewSoundWait );\r
409                         this.iSystemPreviewImageWait = new CItemInteger( "PreImageWait", 0, 0x2710, CDTXMania.ConfigIni.n曲が選択されてからプレビュー画像が表示開始されるまでのウェイトms,\r
410                                 "プレビュー画像表示までの時間:\n曲にカーソルが合わされてからプレ\nビュー画像が表示されるまでの時間\nを指定します。\n0 ~ 10000 [ms] が指定可能です。",\r
411                                 "Delay time(ms) to show preview image\n in SELECT MUSIC screen.\nYou can specify from 0ms to 10000ms.");\r
412                         this.list項目リスト.Add( this.iSystemPreviewImageWait );\r
413                         this.iSystemDebugInfo = new CItemToggle( "Debug Info", CDTXMania.ConfigIni.b演奏情報を表示する,\r
414                                 "演奏情報の表示:\n演奏中、BGA領域の下部に演奏情報\n(FPS、BPM、演奏時間など)を表示し\nます。\nまた、小節線の横に小節番号が表示\nされるようになります。",\r
415                                 "To show song informations on playing\n BGA area. (FPS, BPM, total time etc)\nYou can ON/OFF the indications\n by pushing [Del] while playing drums,\n guitar or bass.");\r
416                         this.list項目リスト.Add( this.iSystemDebugInfo );\r
417                         this.iSystemBGAlpha = new CItemInteger( "BG Alpha", 0, 0xff, CDTXMania.ConfigIni.n背景の透過度,\r
418                                 "背景画像の半透明割合:\n背景画像をDTXManiaのフレーム画像\nと合成する際の、背景画像の透明度\nを指定します。\n0 が完全透明で、255 が完全不透明\nとなります。",\r
419                                 "The degree for transparing playing\n screen and wallpaper.\n\n0=completely transparent,\n255=no transparency");\r
420                         this.list項目リスト.Add( this.iSystemBGAlpha );\r
421                         this.iSystemBGMSound = new CItemToggle( "BGM Sound", CDTXMania.ConfigIni.bBGM音を発声する,\r
422                                 "BGMの再生:\nこれをOFFにすると、BGM を再生しな\nくなります。",\r
423                                 "Turn OFF if you don't want to play\n BGM.");\r
424                         this.list項目リスト.Add( this.iSystemBGMSound );\r
425                         this.iSystemHitSound = new CItemToggle( "HitSound", CDTXMania.ConfigIni.bドラム打音を発声する,\r
426                                 "打撃音の再生:\nこれをOFFにすると、パッドを叩いた\nときの音を再生しなくなります(ドラム\nのみ)。\nDTX の音色で演奏したい場合などに\nOFF にします。",\r
427                                 "Turn OFF if you don't want to play\n hitting chip sound.\nIt is useful to play with real/electric\n drums kit.");\r
428                         this.list項目リスト.Add( this.iSystemHitSound );\r
429                         this.iSystemAudienceSound = new CItemToggle( "Audience", CDTXMania.ConfigIni.b歓声を発声する,\r
430                                 "歓声の再生:\nこれをOFFにすると、歓声を再生しな\nくなります。",\r
431                                 "Turn ON if you want to be cheered\n at the end of fill-in zone or not.");\r
432                         this.list項目リスト.Add( this.iSystemAudienceSound );\r
433                         this.iSystemDamageLevel = new CItemList( "DamageLevel", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eダメージレベル,\r
434                                 "ゲージ減少割合:\nMiss ヒット時のゲージの減少度合い\nを指定します。\n",\r
435                                 "Damage level at missing (and\n recovering level) at playing.",\r
436                                 new string[] { "Small", "Normal", "Large" } );\r
437                         this.list項目リスト.Add( this.iSystemDamageLevel );\r
438                         this.iSystemSaveScore = new CItemToggle( "SaveScore", CDTXMania.ConfigIni.bScoreIniを出力する,\r
439                                 "演奏記録の保存:\nON で演奏記録を ~.score.ini ファイ\nルに保存します。\n",\r
440                                 "To save high-scores/skills, turn it ON.\nTurn OFF in case your song data are\n in read-only media (CD-ROM etc).\nNote that the score files also contain\n 'BGM Adjust' parameter. So if you\n want to keep adjusting parameter,\n you need to set SaveScore=ON.");\r
441                         this.list項目リスト.Add( this.iSystemSaveScore );\r
442                         this.iSystemMinComboDrums = new CItemInteger( "D-MinCombo", 1, 0x1869f, CDTXMania.ConfigIni.n表示可能な最小コンボ数.Drums,\r
443                                 "表示可能な最小コンボ数(ドラム):\n画面に表示されるコンボの最小の数\nを指定します。\n1 ~ 99999 の値が指定可能です。",\r
444                                 "Initial number to show the combo\n for the drums.\nYou can specify from 1 to 99999.");\r
445                         this.list項目リスト.Add( this.iSystemMinComboDrums );\r
446                         this.iSystemMinComboGuitar = new CItemInteger( "G-MinCombo", 1, 0x1869f, CDTXMania.ConfigIni.n表示可能な最小コンボ数.Guitar,\r
447                                 "表示可能な最小コンボ数(ギター):\n画面に表示されるコンボの最小の数\nを指定します。\n1 ~ 99999 の値が指定可能です。",\r
448                                 "Initial number to show the combo\n for the guitar.\nYou can specify from 1 to 99999.");\r
449                         this.list項目リスト.Add(this.iSystemMinComboGuitar);\r
450                         this.iSystemMinComboBass = new CItemInteger( "B-MinCombo", 1, 0x1869f, CDTXMania.ConfigIni.n表示可能な最小コンボ数.Bass,\r
451                                 "表示可能な最小コンボ数(ベース):\n画面に表示されるコンボの最小の数\nを指定します。\n1 ~ 99999 の値が指定可能です。",\r
452                                 "Initial number to show the combo\n for the bass.\nYou can specify from 1 to 99999.");\r
453                         this.list項目リスト.Add(this.iSystemMinComboBass);\r
454                         this.iSystemChipVolume = new CItemInteger( "ChipVolume", 0, 100, CDTXMania.ConfigIni.n手動再生音量,\r
455                                 "打音の音量:\n入力に反応して再生されるチップの音\n量を指定します。\n0 ~ 100 % の値が指定可能です。\n",\r
456                                 "The volumes for chips you hit.\nYou can specify from 0 to 100%.");\r
457                         this.list項目リスト.Add( this.iSystemChipVolume );\r
458                         this.iSystemAutoChipVolume = new CItemInteger( "AutoVolume", 0, 100, CDTXMania.ConfigIni.n自動再生音量,\r
459                                 "自動再生音の音量:\n自動的に再生されるチップの音量を指\n定します。\n0 ~ 100 % の値が指定可能です。\n",\r
460                                 "The volumes for AUTO chips.\nYou can specify from 0 to 100%.");\r
461                         this.list項目リスト.Add( this.iSystemAutoChipVolume );\r
462                         this.iSystemStoicMode = new CItemToggle( "StoicMode", CDTXMania.ConfigIni.bストイックモード,\r
463                                 "ストイック(禁欲)モード:\n以下をまとめて表示ON/OFFします。\n・プレビュー画像/動画\n・リザルト画像/動画\n・NowLoading画像\n・演奏画面の背景画像\n・BGA 画像 / AVI 動画\n・グラフ画像\n",\r
464                                 "Turn ON to disable drawing\n * preview image / movie\n * result image / movie\n * nowloading image\n * wallpaper (in playing screen)\n * BGA / AVI (in playing screen)");\r
465                         this.list項目リスト.Add( this.iSystemStoicMode );\r
466                         this.iSystemCymbalFree = new CItemToggle( "CymbalFree", CDTXMania.ConfigIni.bシンバルフリー,\r
467                                 "シンバルフリーモード:\n左シンバル・右シンバルの区別をなく\nします。ライドシンバルまで区別をな\nくすか否かは、CYGroup に従います。\n",\r
468                                 "Turn ON to group LC (left cymbal) and\n CY (right cymbal).\nWhether RD (ride cymbal) is also\n grouped or not depends on the\n'CY Group' setting.");\r
469                         this.list項目リスト.Add( this.iSystemCymbalFree );\r
470                         this.iSystemBufferedInput = new CItemToggle( "BufferedInput", CDTXMania.ConfigIni.bバッファ入力を行う,\r
471                                 "バッファ入力モード:\nON にすると、FPS を超える入力解像\n度を実現します。\nOFF にすると、入力解像度は FPS に\n等しくなります。",\r
472                                 "To select joystick input method.\n\nON=to use buffer input. No lost/lags.\nOFF to use realtime input. It may\n causes lost/lags for input.\n Moreover, input frequency is\n synchronized with FPS.");\r
473                         this.list項目リスト.Add( this.iSystemBufferedInput );\r
474                         this.iLogOutputLog = new CItemToggle( "TraceLog", CDTXMania.ConfigIni.bログ出力,\r
475                                 "Traceログ出力:\nDTXManiaLog.txt にログを出力します。\n変更した場合は、DTXMania の再起動\n後に有効となります。",\r
476                                 "Turn ON to put debug log to\n DTXManiaLog.txt\nTo take it effective, you need to\n re-open DTXMania.");\r
477                         this.list項目リスト.Add( this.iLogOutputLog );\r
478                         this.n現在の選択項目 = 0;\r
479                         this.eメニュー種別 = Eメニュー種別.System;\r
480                 }\r
481                 public void t次に移動()\r
482                 {\r
483                         CDTXMania.Skin.soundカーソル移動音.t再生する();\r
484                         if( this.b要素値にフォーカス中 )\r
485                         {\r
486                                 this.list項目リスト[ this.n現在の選択項目 ].t項目値を前へ移動();\r
487                         }\r
488                         else\r
489                         {\r
490                                 this.n目標のスクロールカウンタ += 100;\r
491                         }\r
492                 }\r
493                 public void t前に移動()\r
494                 {\r
495                         CDTXMania.Skin.soundカーソル移動音.t再生する();\r
496                         if( this.b要素値にフォーカス中 )\r
497                         {\r
498                                 this.list項目リスト[ this.n現在の選択項目 ].t項目値を次へ移動();\r
499                         }\r
500                         else\r
501                         {\r
502                                 this.n目標のスクロールカウンタ -= 100;\r
503                         }\r
504                 }\r
505 \r
506 \r
507                 // CActivity 実装\r
508 \r
509                 public override void On活性化()\r
510                 {\r
511                         this.list項目リスト = new List<CItemBase>();\r
512                         this.eメニュー種別 = Eメニュー種別.Unknown;\r
513                         this.t項目リストの設定・System();\r
514                         this.b要素値にフォーカス中 = false;\r
515                         this.n目標のスクロールカウンタ = 0;\r
516                         this.n現在のスクロールカウンタ = 0;\r
517                         this.nスクロール用タイマ値 = -1;\r
518                         this.ct三角矢印アニメ = new CCounter();\r
519                         base.On活性化();\r
520                 }\r
521                 public override void On非活性化()\r
522                 {\r
523                         this.tConfigIniへ記録する();\r
524                         this.list項目リスト.Clear();\r
525                         this.ct三角矢印アニメ = null;\r
526                         base.On非活性化();\r
527                 }\r
528                 public override void OnManagedリソースの作成()\r
529                 {\r
530                         if( !base.b活性化してない )\r
531                         {\r
532                                 this.tx通常項目行パネル = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenConfig itembox.png" ), false );\r
533                                 this.txその他項目行パネル = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenConfig itembox other.png" ), false );\r
534                                 this.tx三角矢印 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenConfig triangle arrow.png" ), false );\r
535                                 base.OnManagedリソースの作成();\r
536                         }\r
537                 }\r
538                 public override void OnManagedリソースの解放()\r
539                 {\r
540                         CDTXMania.tテクスチャの解放( ref this.tx通常項目行パネル );\r
541                         CDTXMania.tテクスチャの解放( ref this.txその他項目行パネル );\r
542                         CDTXMania.tテクスチャの解放( ref this.tx三角矢印 );\r
543                         base.OnManagedリソースの解放();\r
544                 }\r
545                 public override int On進行描画()\r
546                 {\r
547                         throw new InvalidOperationException( "t進行描画(bool)のほうを使用してください。" );\r
548                 }\r
549                 public int t進行描画( bool b項目リスト側にフォーカスがある )\r
550                 {\r
551                         if( !base.b活性化してない )\r
552                         {\r
553                                 if( base.b初めての進行描画 )\r
554                                 {\r
555                                         this.nスクロール用タイマ値 = CDTXMania.Timer.n現在時刻;\r
556                                         this.ct三角矢印アニメ.t開始( 0, 9, 50, CDTXMania.Timer );\r
557                                         base.b初めての進行描画 = false;\r
558                                 }\r
559                                 this.b項目リスト側にフォーカスがある = b項目リスト側にフォーカスがある;\r
560                                 long num = CDTXMania.Timer.n現在時刻;\r
561                                 if( num < this.nスクロール用タイマ値 )\r
562                                 {\r
563                                         this.nスクロール用タイマ値 = num;\r
564                                 }\r
565                                 while( ( num - this.nスクロール用タイマ値 ) >= 2 )\r
566                                 {\r
567                                         int num2 = Math.Abs( (int) ( this.n目標のスクロールカウンタ - this.n現在のスクロールカウンタ ) );\r
568                                         int num3 = 0;\r
569                                         if( num2 <= 100 )\r
570                                         {\r
571                                                 num3 = 2;\r
572                                         }\r
573                                         else if( num2 <= 300 )\r
574                                         {\r
575                                                 num3 = 3;\r
576                                         }\r
577                                         else if( num2 <= 500 )\r
578                                         {\r
579                                                 num3 = 4;\r
580                                         }\r
581                                         else\r
582                                         {\r
583                                                 num3 = 8;\r
584                                         }\r
585                                         if( this.n現在のスクロールカウンタ < this.n目標のスクロールカウンタ )\r
586                                         {\r
587                                                 this.n現在のスクロールカウンタ += num3;\r
588                                                 if( this.n現在のスクロールカウンタ > this.n目標のスクロールカウンタ )\r
589                                                 {\r
590                                                         this.n現在のスクロールカウンタ = this.n目標のスクロールカウンタ;\r
591                                                 }\r
592                                         }\r
593                                         else if( this.n現在のスクロールカウンタ > this.n目標のスクロールカウンタ )\r
594                                         {\r
595                                                 this.n現在のスクロールカウンタ -= num3;\r
596                                                 if( this.n現在のスクロールカウンタ < this.n目標のスクロールカウンタ )\r
597                                                 {\r
598                                                         this.n現在のスクロールカウンタ = this.n目標のスクロールカウンタ;\r
599                                                 }\r
600                                         }\r
601                                         if( this.n現在のスクロールカウンタ >= 100 )\r
602                                         {\r
603                                                 this.n現在の選択項目 = this.t次の項目( this.n現在の選択項目 );\r
604                                                 this.n現在のスクロールカウンタ -= 100;\r
605                                                 this.n目標のスクロールカウンタ -= 100;\r
606                                                 if( this.n目標のスクロールカウンタ == 0 )\r
607                                                 {\r
608                                                         CDTXMania.stageコンフィグ.t項目変更通知();\r
609                                                 }\r
610                                         }\r
611                                         else if( this.n現在のスクロールカウンタ <= -100 )\r
612                                         {\r
613                                                 this.n現在の選択項目 = this.t前の項目( this.n現在の選択項目 );\r
614                                                 this.n現在のスクロールカウンタ += 100;\r
615                                                 this.n目標のスクロールカウンタ += 100;\r
616                                                 if( this.n目標のスクロールカウンタ == 0 )\r
617                                                 {\r
618                                                         CDTXMania.stageコンフィグ.t項目変更通知();\r
619                                                 }\r
620                                         }\r
621                                         this.nスクロール用タイマ値 += 2;\r
622                                 }\r
623                                 if( this.b項目リスト側にフォーカスがある && ( this.n目標のスクロールカウンタ == 0 ) )\r
624                                 {\r
625                                         this.ct三角矢印アニメ.t進行Loop();\r
626                                 }\r
627                                 this.ptパネルの基本座標[ 4 ].X = this.b項目リスト側にフォーカスがある ? 0x114 : 0x12d;\r
628                                 int nItem = this.n現在の選択項目;\r
629                                 for( int i = 0; i < 4; i++ )\r
630                                 {\r
631                                         nItem = this.t前の項目( nItem );\r
632                                 }\r
633                                 for( int j = -4; j < 6; j++ )\r
634                                 {\r
635                                         if( ( ( j == -4 ) && ( this.n現在のスクロールカウンタ > 0 ) ) || ( ( j == 5 ) && ( this.n現在のスクロールカウンタ < 0 ) ) )\r
636                                         {\r
637                                                 nItem = this.t次の項目( nItem );\r
638                                                 continue;\r
639                                         }\r
640                                         int index = j + 4;\r
641                                         int num8 = ( this.n現在のスクロールカウンタ <= 0 ) ? ( ( ( j + 4 ) + 1 ) % 10 ) : ( ( ( ( j + 4 ) - 1 ) + 10 ) % 10 );\r
642                                         int x = this.ptパネルの基本座標[ index ].X + ( (int) ( ( this.ptパネルの基本座標[ num8 ].X - this.ptパネルの基本座標[ index ].X ) * ( ( (double) Math.Abs( this.n現在のスクロールカウンタ ) ) / 100.0 ) ) );\r
643                                         int y = this.ptパネルの基本座標[ index ].Y + ( (int) ( ( this.ptパネルの基本座標[ num8 ].Y - this.ptパネルの基本座標[ index ].Y ) * ( ( (double) Math.Abs( this.n現在のスクロールカウンタ ) ) / 100.0 ) ) );\r
644                                         switch( this.list項目リスト[ nItem ].eパネル種別 )\r
645                                         {\r
646                                                 case CItemBase.Eパネル種別.通常:\r
647                                                         if( this.tx通常項目行パネル != null )\r
648                                                         {\r
649                                                                 this.tx通常項目行パネル.t2D描画( CDTXMania.app.Device, x, y );\r
650                                                         }\r
651                                                         break;\r
652 \r
653                                                 case CItemBase.Eパネル種別.その他:\r
654                                                         if( this.txその他項目行パネル != null )\r
655                                                         {\r
656                                                                 this.txその他項目行パネル.t2D描画( CDTXMania.app.Device, x, y );\r
657                                                         }\r
658                                                         break;\r
659                                         }\r
660                                         CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 0x12, y + 12, this.list項目リスト[ nItem ].str項目名 );\r
661                                         switch( this.list項目リスト[ nItem ].e種別 )\r
662                                         {\r
663                                                 case CItemBase.E種別.ONorOFFトグル:\r
664                                                         CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, ( (CItemToggle) this.list項目リスト[ nItem ] ).bON ? "ON" : "OFF" );\r
665                                                         break;\r
666 \r
667                                                 case CItemBase.E種別.ONorOFFor不定スリーステート:\r
668                                                         switch( ( (CItemThreeState) this.list項目リスト[ nItem ] ).e現在の状態 )\r
669                                                         {\r
670                                                                 case CItemThreeState.E状態.ON:\r
671                                                                         CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, "ON" );\r
672                                                                         break;\r
673 \r
674                                                                 case CItemThreeState.E状態.不定:\r
675                                                                         CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, "- -" );\r
676                                                                         break;\r
677 \r
678                                                                 default:\r
679                                                                         CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, "OFF" );\r
680                                                                         break;\r
681                                                         }\r
682                                                         break;\r
683 \r
684                                                 case CItemBase.E種別.整数:\r
685                                                         CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, ( (CItemInteger) this.list項目リスト[ nItem ] ).n現在の値.ToString(), ( j == 0 ) && this.b要素値にフォーカス中 );\r
686                                                         break;\r
687 \r
688                                                 case CItemBase.E種別.リスト:\r
689                                                         {\r
690                                                                 CItemList list = (CItemList) this.list項目リスト[ nItem ];\r
691                                                                 CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, list.list項目値[ list.n現在選択されている項目番号 ] );\r
692                                                                 break;\r
693                                                         }\r
694                                         }\r
695 \r
696 \r
697                                         nItem = this.t次の項目( nItem );\r
698                                 }\r
699                                 if( this.b項目リスト側にフォーカスがある && ( this.n目標のスクロールカウンタ == 0 ) )\r
700                                 {\r
701                                         int num11;\r
702                                         int num12;\r
703                                         int num13;\r
704                                         if( !this.b要素値にフォーカス中 )\r
705                                         {\r
706                                                 num11 = 0x114;\r
707                                                 num12 = 0xba - this.ct三角矢印アニメ.n現在の値;\r
708                                                 num13 = 0xfe + this.ct三角矢印アニメ.n現在の値;\r
709                                         }\r
710                                         else\r
711                                         {\r
712                                                 num11 = 0x210;\r
713                                                 num12 = 0xc6 - this.ct三角矢印アニメ.n現在の値;\r
714                                                 num13 = 0xf2 + this.ct三角矢印アニメ.n現在の値;\r
715                                         }\r
716                                         if( this.tx三角矢印 != null )\r
717                                         {\r
718                                                 this.tx三角矢印.t2D描画( CDTXMania.app.Device, num11, num12, new Rectangle( 0, 0, 0x20, 0x10 ) );\r
719                                                 this.tx三角矢印.t2D描画( CDTXMania.app.Device, num11, num13, new Rectangle( 0, 0x10, 0x20, 0x10 ) );\r
720                                         }\r
721                                 }\r
722                         }\r
723                         return 0;\r
724                 }\r
725 \r
726 \r
727                 // その他\r
728 \r
729                 #region [ private ]\r
730                 //-----------------\r
731                 private enum Eメニュー種別\r
732                 {\r
733                         System,\r
734                         KeyAssignDrums,\r
735                         KeyAssignGuitar,\r
736                         KeyAssignBass,\r
737                         Unknown\r
738                 }\r
739 \r
740                 private bool b項目リスト側にフォーカスがある;\r
741                 private bool b要素値にフォーカス中;\r
742                 private CCounter ct三角矢印アニメ;\r
743                 private Eメニュー種別 eメニュー種別;\r
744                 private CItemBase iKeyAssignBassB;\r
745                 private CItemBase iKeyAssignBassCancel;\r
746                 private CItemBase iKeyAssignBassDecide;\r
747                 private CItemBase iKeyAssignBassG;\r
748                 private CItemBase iKeyAssignBassPick;\r
749                 private CItemBase iKeyAssignBassR;\r
750                 private CItemBase iKeyAssignBassReturnToMenu;\r
751                 private CItemBase iKeyAssignBassWail;\r
752                 private CItemBase iKeyAssignDrumsBD;\r
753                 private CItemBase iKeyAssignDrumsCY;\r
754                 private CItemBase iKeyAssignDrumsFT;\r
755                 private CItemBase iKeyAssignDrumsHHC;\r
756                 private CItemBase iKeyAssignDrumsHHO;\r
757                 private CItemBase iKeyAssignDrumsHT;\r
758                 private CItemBase iKeyAssignDrumsLC;\r
759                 private CItemBase iKeyAssignDrumsLT;\r
760                 private CItemBase iKeyAssignDrumsRD;\r
761                 private CItemBase iKeyAssignDrumsReturnToMenu;\r
762                 private CItemBase iKeyAssignDrumsSD;\r
763                 private CItemBase iKeyAssignGuitarB;\r
764                 private CItemBase iKeyAssignGuitarCancel;\r
765                 private CItemBase iKeyAssignGuitarDecide;\r
766                 private CItemBase iKeyAssignGuitarG;\r
767                 private CItemBase iKeyAssignGuitarPick;\r
768                 private CItemBase iKeyAssignGuitarR;\r
769                 private CItemBase iKeyAssignGuitarReturnToMenu;\r
770                 private CItemBase iKeyAssignGuitarWail;\r
771                 private CItemToggle iLogOutputLog;\r
772                 private CItemToggle iSystemAdjustWaves;\r
773                 private CItemToggle iSystemAudienceSound;\r
774                 private CItemInteger iSystemAutoChipVolume;\r
775                 private CItemToggle iSystemAVI;\r
776                 private CItemToggle iSystemBGA;\r
777                 private CItemToggle iSystemGraph;\r
778                 private CItemInteger iSystemBGAlpha;\r
779                 private CItemToggle iSystemBGMSound;\r
780                 private CItemInteger iSystemChipVolume;\r
781                 private CItemList iSystemCYGroup;\r
782                 private CItemToggle iSystemCymbalFree;\r
783                 private CItemList iSystemDamageLevel;\r
784                 private CItemToggle iSystemDebugInfo;\r
785                 private CItemToggle iSystemDrums;\r
786                 private CItemToggle iSystemFillIn;\r
787                 private CItemList iSystemFTGroup;\r
788                 private CItemToggle iSystemFullscreen;\r
789                 private CItemToggle iSystemGuitar;\r
790                 private CItemList iSystemHHGroup;\r
791                 private CItemToggle iSystemHitSound;\r
792                 private CItemList iSystemHitSoundPriorityCY;\r
793                 private CItemList iSystemHitSoundPriorityFT;\r
794                 private CItemList iSystemHitSoundPriorityHH;\r
795                 private CItemInteger iSystemMinComboBass;\r
796                 private CItemInteger iSystemMinComboDrums;\r
797                 private CItemInteger iSystemMinComboGuitar;\r
798                 private CItemInteger iSystemPreviewImageWait;\r
799                 private CItemInteger iSystemPreviewSoundWait;\r
800                 private CItemToggle iSystemRandomFromSubBox;\r
801                 private CItemBase iSystemReturnToMenu;\r
802                 private CItemToggle iSystemSaveScore;\r
803                 private CItemToggle iSystemSoundMonitorBass;\r
804                 private CItemToggle iSystemSoundMonitorDrums;\r
805                 private CItemToggle iSystemSoundMonitorGuitar;\r
806                 private CItemToggle iSystemStageFailed;\r
807                 private CItemToggle iSystemStoicMode;\r
808                 private CItemToggle iSystemVSyncWait;\r
809                 private CItemToggle iSystemBufferedInput;\r
810                 private List<CItemBase> list項目リスト;\r
811                 private long nスクロール用タイマ値;\r
812                 private int n現在のスクロールカウンタ;\r
813                 private int n目標のスクロールカウンタ;\r
814                 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
815                 private CTexture txその他項目行パネル;\r
816                 private CTexture tx三角矢印;\r
817                 private CTexture tx通常項目行パネル;\r
818 \r
819                 private int t前の項目( int nItem )\r
820                 {\r
821                         if( --nItem < 0 )\r
822                         {\r
823                                 nItem = this.list項目リスト.Count - 1;\r
824                         }\r
825                         return nItem;\r
826                 }\r
827                 private int t次の項目( int nItem )\r
828                 {\r
829                         if( ++nItem >= this.list項目リスト.Count )\r
830                         {\r
831                                 nItem = 0;\r
832                         }\r
833                         return nItem;\r
834                 }\r
835                 private void tConfigIniへ記録する()\r
836                 {\r
837                         switch( this.eメニュー種別 )\r
838                         {\r
839                                 case Eメニュー種別.System:\r
840                                         this.tConfigIniへ記録する・System();\r
841                                         return;\r
842 \r
843                                 case Eメニュー種別.KeyAssignDrums:\r
844                                         this.tConfigIniへ記録する・KeyAssignDrums();\r
845                                         return;\r
846 \r
847                                 case Eメニュー種別.KeyAssignGuitar:\r
848                                         this.tConfigIniへ記録する・KeyAssignGuitar();\r
849                                         return;\r
850 \r
851                                 case Eメニュー種別.KeyAssignBass:\r
852                                         this.tConfigIniへ記録する・KeyAssignBass();\r
853                                         return;\r
854                         }\r
855                 }\r
856                 private void tConfigIniへ記録する・KeyAssignBass()\r
857                 {\r
858                 }\r
859                 private void tConfigIniへ記録する・KeyAssignDrums()\r
860                 {\r
861                 }\r
862                 private void tConfigIniへ記録する・KeyAssignGuitar()\r
863                 {\r
864                 }\r
865                 private void tConfigIniへ記録する・System()\r
866                 {\r
867                         CDTXMania.ConfigIni.bGuitar有効 = this.iSystemGuitar.bON;\r
868                         CDTXMania.ConfigIni.bDrums有効 = this.iSystemDrums.bON;\r
869                         CDTXMania.ConfigIni.b全画面モード = this.iSystemFullscreen.bON;\r
870                         CDTXMania.ConfigIni.bSTAGEFAILED有効 = this.iSystemStageFailed.bON;\r
871                         CDTXMania.ConfigIni.bランダムセレクトで子BOXを検索対象とする = this.iSystemRandomFromSubBox.bON;\r
872                         CDTXMania.ConfigIni.eHHGroup = (EHHGroup) this.iSystemHHGroup.n現在選択されている項目番号;\r
873                         CDTXMania.ConfigIni.eFTGroup = (EFTGroup) this.iSystemFTGroup.n現在選択されている項目番号;\r
874                         CDTXMania.ConfigIni.eCYGroup = (ECYGroup) this.iSystemCYGroup.n現在選択されている項目番号;\r
875                         CDTXMania.ConfigIni.eHitSoundPriorityHH = (E打ち分け時の再生の優先順位) this.iSystemHitSoundPriorityHH.n現在選択されている項目番号;\r
876                         CDTXMania.ConfigIni.eHitSoundPriorityFT = (E打ち分け時の再生の優先順位) this.iSystemHitSoundPriorityFT.n現在選択されている項目番号;\r
877                         CDTXMania.ConfigIni.eHitSoundPriorityCY = (E打ち分け時の再生の優先順位) this.iSystemHitSoundPriorityCY.n現在選択されている項目番号;\r
878                         CDTXMania.ConfigIni.bWave再生位置自動調整機能有効 = this.iSystemAdjustWaves.bON;\r
879                         CDTXMania.ConfigIni.b垂直帰線待ちを行う = this.iSystemVSyncWait.bON;\r
880                         CDTXMania.ConfigIni.bバッファ入力を行う = this.iSystemBufferedInput.bON;\r
881                         CDTXMania.ConfigIni.bAVI有効 = this.iSystemAVI.bON;\r
882                         CDTXMania.ConfigIni.bBGA有効 = this.iSystemBGA.bON;\r
883                         CDTXMania.ConfigIni.bGraph有効 = this.iSystemGraph.bON;\r
884                         CDTXMania.ConfigIni.bフィルイン有効 = this.iSystemFillIn.bON;\r
885                         CDTXMania.ConfigIni.b演奏音を強調する.Drums = this.iSystemSoundMonitorDrums.bON;\r
886                         CDTXMania.ConfigIni.b演奏音を強調する.Guitar = this.iSystemSoundMonitorGuitar.bON;\r
887                         CDTXMania.ConfigIni.b演奏音を強調する.Bass = this.iSystemSoundMonitorBass.bON;\r
888                         CDTXMania.ConfigIni.n曲が選択されてからプレビュー音が鳴るまでのウェイトms = this.iSystemPreviewSoundWait.n現在の値;\r
889                         CDTXMania.ConfigIni.n曲が選択されてからプレビュー画像が表示開始されるまでのウェイトms = this.iSystemPreviewImageWait.n現在の値;\r
890                         CDTXMania.ConfigIni.b演奏情報を表示する = this.iSystemDebugInfo.bON;\r
891                         CDTXMania.ConfigIni.n背景の透過度 = this.iSystemBGAlpha.n現在の値;\r
892                         CDTXMania.ConfigIni.bBGM音を発声する = this.iSystemBGMSound.bON;\r
893                         CDTXMania.ConfigIni.bドラム打音を発声する = this.iSystemHitSound.bON;\r
894                         CDTXMania.ConfigIni.b歓声を発声する = this.iSystemAudienceSound.bON;\r
895                         CDTXMania.ConfigIni.eダメージレベル = (Eダメージレベル) this.iSystemDamageLevel.n現在選択されている項目番号;\r
896                         CDTXMania.ConfigIni.bScoreIniを出力する = this.iSystemSaveScore.bON;\r
897                         CDTXMania.ConfigIni.n表示可能な最小コンボ数.Drums = this.iSystemMinComboDrums.n現在の値;\r
898                         CDTXMania.ConfigIni.n表示可能な最小コンボ数.Guitar = this.iSystemMinComboGuitar.n現在の値;\r
899                         CDTXMania.ConfigIni.n表示可能な最小コンボ数.Bass = this.iSystemMinComboBass.n現在の値;\r
900                         CDTXMania.ConfigIni.bログ出力 = this.iLogOutputLog.bON;\r
901                         CDTXMania.ConfigIni.n手動再生音量 = this.iSystemChipVolume.n現在の値;\r
902                         CDTXMania.ConfigIni.n自動再生音量 = this.iSystemAutoChipVolume.n現在の値;\r
903                         CDTXMania.ConfigIni.bストイックモード = this.iSystemStoicMode.bON;\r
904                         CDTXMania.ConfigIni.bシンバルフリー = this.iSystemCymbalFree.bON;\r
905                 }\r
906                 //-----------------\r
907                 #endregion\r
908         }\r
909 }\r