OSDN Git Service

#24280 ベースの入力デバイス記録がギターのそれになる問題の修正
[dtxmania/dtxmania.git] / DTXManiaプロジェクト / コード / ステージ / 05.選曲 / CActSelectステータスパネル.cs
1 using System;\r
2 using System.Collections.Generic;\r
3 using System.Text;\r
4 using System.Runtime.InteropServices;\r
5 using System.Drawing;\r
6 using FDK;\r
7 \r
8 namespace DTXMania\r
9 {\r
10         internal class CActSelectステータスパネル : CActivity\r
11         {\r
12                 // メソッド\r
13 \r
14                 public CActSelectステータスパネル()\r
15                 {\r
16                         base.b活性化してない = true;\r
17                 }\r
18                 public void t選択曲が変更された()\r
19                 {\r
20                         C曲リストノード c曲リストノード = CDTXMania.stage選曲.r現在選択中の曲;\r
21                         Cスコア cスコア = CDTXMania.stage選曲.r現在選択中のスコア;\r
22                         if( ( c曲リストノード != null ) && ( cスコア != null ) )\r
23                         {\r
24                                 this.n現在選択中の曲の難易度 = CDTXMania.stage選曲.n現在選択中の曲の難易度;\r
25                                 for( int i = 0; i < 3; i++ )\r
26                                 {\r
27                                         int num2 = cスコア.譜面情報.レベル[ i ];\r
28                                         if( num2 < 0 )\r
29                                         {\r
30                                                 num2 = 0;\r
31                                         }\r
32                                         if( num2 > 0x63 )\r
33                                         {\r
34                                                 num2 = 0x63;\r
35                                         }\r
36                                         this.n現在選択中の曲のレベル[ i ] = num2;\r
37                                         this.n現在選択中の曲の最高ランク[ i ] = cスコア.譜面情報.最大ランク[ i ];\r
38                                         this.b現在選択中の曲がフルコンボ[ i ] = cスコア.譜面情報.フルコンボ[ i ];\r
39                                         this.db現在選択中の曲の最高スキル値[ i ] = cスコア.譜面情報.最大スキル[ i ];\r
40                                 }\r
41                                 for( int j = 0; j < 5; j++ )\r
42                                 {\r
43                                         this.str難易度ラベル[ j ] = c曲リストノード.ar難易度ラベル[ j ];\r
44                                 }\r
45                                 if( this.r直前の曲 != c曲リストノード )\r
46                                 {\r
47                                         this.n難易度開始文字位置 = 0;\r
48                                 }\r
49                                 this.r直前の曲 = c曲リストノード;\r
50                         }\r
51                 }\r
52 \r
53 \r
54                 // CActivity 実装\r
55 \r
56                 public override void On活性化()\r
57                 {\r
58                         this.n本体X = 3;\r
59                         this.n本体Y = 0x15d;\r
60                         this.n現在選択中の曲の難易度 = 0;\r
61                         for( int i = 0; i < 3; i++ )\r
62                         {\r
63                                 this.n現在選択中の曲のレベル[ i ] = 0;\r
64                                 this.n現在選択中の曲の最高ランク[ i ] = 99;\r
65                                 this.b現在選択中の曲がフルコンボ[ i ] = false;\r
66                                 this.db現在選択中の曲の最高スキル値[ i ] = 0.0;\r
67                         }\r
68                         for( int j = 0; j < 5; j++ )\r
69                         {\r
70                                 this.str難易度ラベル[ j ] = "";\r
71                         }\r
72                         this.n難易度開始文字位置 = 0;\r
73                         this.r直前の曲 = null;\r
74                         base.On活性化();\r
75                 }\r
76                 public override void On非活性化()\r
77                 {\r
78                         this.ct登場アニメ用 = null;\r
79                         this.ct難易度スクロール用 = null;\r
80                         this.ct難易度矢印用 = null;\r
81                         base.On非活性化();\r
82                 }\r
83                 public override void OnManagedリソースの作成()\r
84                 {\r
85                         if( !base.b活性化してない )\r
86                         {\r
87                                 this.txパネル本体 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenSelect status panel.png" ), true );\r
88                                 this.txレベル数字 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenSelect level numbers.png" ), false );\r
89                                 this.txスキルゲージ = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenSelect skill gauge.png" ), false );\r
90                                 this.txゲージ用数字他 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenSelect skill number on gauge etc.png" ), false );\r
91                                 this.tx難易度用矢印 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenSelect triangle arrow.png" ), false );\r
92                                 base.OnManagedリソースの作成();\r
93                         }\r
94                 }\r
95                 public override void OnManagedリソースの解放()\r
96                 {\r
97                         if( !base.b活性化してない )\r
98                         {\r
99                                 CDTXMania.tテクスチャの解放( ref this.txパネル本体 );\r
100                                 CDTXMania.tテクスチャの解放( ref this.txレベル数字 );\r
101                                 CDTXMania.tテクスチャの解放( ref this.txスキルゲージ );\r
102                                 CDTXMania.tテクスチャの解放( ref this.txゲージ用数字他 );\r
103                                 CDTXMania.tテクスチャの解放( ref this.tx難易度用矢印 );\r
104                                 base.OnManagedリソースの解放();\r
105                         }\r
106                 }\r
107                 public override int On進行描画()\r
108                 {\r
109                         if( !base.b活性化してない )\r
110                         {\r
111                                 #region [ 初めての進行描画 ]\r
112                                 //-----------------\r
113                                 if( base.b初めての進行描画 )\r
114                                 {\r
115                                         this.ct登場アニメ用 = new CCounter( 0, 100, 5, CDTXMania.Timer );\r
116                                         this.ct難易度スクロール用 = new CCounter( 0, 20, 1, CDTXMania.Timer );\r
117                                         this.ct難易度矢印用 = new CCounter( 0, 5, 80, CDTXMania.Timer );\r
118                                         base.b初めての進行描画 = false;\r
119                                 }\r
120                                 //-----------------\r
121                                 #endregion\r
122 \r
123                                 // 進行\r
124 \r
125                                 this.ct登場アニメ用.t進行();\r
126 \r
127                                 this.ct難易度スクロール用.t進行();\r
128                                 if( this.ct難易度スクロール用.b終了値に達した )\r
129                                 {\r
130                                         int num = this.n現在の難易度ラベルが完全表示されているかを調べてスクロール方向を返す();\r
131                                         if( num < 0 )\r
132                                         {\r
133                                                 this.n難易度開始文字位置--;\r
134                                         }\r
135                                         else if( num > 0 )\r
136                                         {\r
137                                                 this.n難易度開始文字位置++;\r
138                                         }\r
139                                         this.ct難易度スクロール用.n現在の値 = 0;\r
140                                 }\r
141         \r
142                                 this.ct難易度矢印用.t進行Loop();\r
143                                 \r
144                                 // 描画\r
145 \r
146                                 #region [ パネル本体の描画 ]\r
147                                 //-----------------\r
148                                 if( this.txパネル本体 != null )\r
149                                 {\r
150                                         if( this.ct登場アニメ用.b終了値に達した )\r
151                                         {\r
152                                                 this.n本体X = 3;\r
153                                                 this.n本体Y = 0x15d;\r
154                                         }\r
155                                         else\r
156                                         {\r
157                                                 double num2 = ( (double) ( 100 - this.ct登場アニメ用.n現在の値 ) ) / 100.0;\r
158                                                 double num3 = Math.Sin( 1.5707963267948966 * num2 );\r
159                                                 this.n本体X = 3 - ( (int) ( ( this.txパネル本体.sz画像サイズ.Width * num3 ) * num3 ) );\r
160                                                 this.n本体Y = 0x15d;\r
161                                         }\r
162                                         this.txパネル本体.t2D描画( CDTXMania.app.Device, this.n本体X, this.n本体Y );\r
163                                 }\r
164                                 //-----------------\r
165                                 #endregion\r
166 \r
167                                 #region [ 難易度文字列の描画 ]\r
168                                 //-----------------\r
169 \r
170                                 #region [ chArray ← 難易度文字列を並べたもの、index ← その文字数 ]\r
171                                 //-----------------\r
172                                 char[] chArray = new char[ 0x100 ];\r
173                                 C文字コンソール.Eフォント種別[] eフォント種別Array = new C文字コンソール.Eフォント種別[ 0x100 ];\r
174                                 bool flag = false;\r
175                                 bool flag2 = true;\r
176                                 int index = 0;\r
177                                 for( int i = 0; i < 5; i++ )\r
178                                 {\r
179                                         if( ( this.str難易度ラベル[ i ] != null ) && ( this.str難易度ラベル[ i ].Length > 0 ) )\r
180                                         {\r
181                                                 string str = this.str難易度ラベル[ i ];\r
182                                                 char[] chArray2 = new char[ 0x100 ];\r
183                                                 int num6 = 0;\r
184                                                 while( ( num6 < 0xff ) && ( num6 < this.str難易度ラベル[ i ].Length ) )\r
185                                                 {\r
186                                                         chArray2[ num6 ] = str[ num6 ];\r
187                                                         num6++;\r
188                                                 }\r
189                                                 chArray2[ num6 ] = '\0';\r
190                                                 if( !flag2 )\r
191                                                 {\r
192                                                         if( index < 0xff )\r
193                                                         {\r
194                                                                 chArray[ index ] = ' ';\r
195                                                                 eフォント種別Array[ index ] = C文字コンソール.Eフォント種別.白;\r
196                                                                 index++;\r
197                                                         }\r
198                                                         if( index < 0xff )\r
199                                                         {\r
200                                                                 chArray[ index ] = ' ';\r
201                                                                 eフォント種別Array[ index ] = C文字コンソール.Eフォント種別.白;\r
202                                                                 index++;\r
203                                                         }\r
204                                                 }\r
205                                                 flag2 = false;\r
206                                                 num6 = 0;\r
207                                                 while( ( chArray2[ num6 ] != '\0' ) && ( index < 0xff ) )\r
208                                                 {\r
209                                                         chArray[ index ] = chArray2[ num6++ ];\r
210                                                         eフォント種別Array[ index ] = ( this.n現在選択中の曲の難易度 == i ) ? C文字コンソール.Eフォント種別.赤 : C文字コンソール.Eフォント種別.白;\r
211                                                         index++;\r
212                                                 }\r
213                                                 chArray[ index ] = '\0';\r
214                                         }\r
215                                 }\r
216                                 //-----------------\r
217                                 #endregion\r
218 \r
219                                 if( index > 0 )\r
220                                 {\r
221                                         int x = this.n本体X + 20;\r
222                                         int y = this.n本体Y + 0x10;\r
223                                         index = this.n難易度開始文字位置;\r
224                                         flag = true;\r
225                                         while( index < ( this.n難易度開始文字位置 + 0x24 ) )\r
226                                         {\r
227                                                 CDTXMania.act文字コンソール.tPrint( x, y, eフォント種別Array[ index ], chArray[ index ].ToString() );\r
228                                                 x += 8;\r
229                                                 index++;\r
230                                                 if( chArray[ index ] == '\0' )\r
231                                                 {\r
232                                                         flag = false;\r
233                                                         break;\r
234                                                 }\r
235                                         }\r
236                                         if( this.n難易度開始文字位置 > 0 )\r
237                                         {\r
238                                                 int num9 = ( this.n本体X + 12 ) - this.ct難易度矢印用.n現在の値;\r
239                                                 int num10 = ( this.n本体Y + 0x10 ) + 5;\r
240                                                 if( this.tx難易度用矢印 != null )\r
241                                                 {\r
242                                                         this.tx難易度用矢印.t2D描画( CDTXMania.app.Device, num9, num10, new Rectangle( 0, 0, 8, 0x10 ) );\r
243                                                 }\r
244                                         }\r
245                                         if( flag )\r
246                                         {\r
247                                                 int num11 = ( ( this.n本体X + 20 ) + 0x120 ) + this.ct難易度矢印用.n現在の値;\r
248                                                 int num12 = ( this.n本体Y + 0x10 ) + 5;\r
249                                                 if( this.tx難易度用矢印 != null )\r
250                                                 {\r
251                                                         this.tx難易度用矢印.t2D描画( CDTXMania.app.Device, num11, num12, new Rectangle( 8, 0, 8, 0x10 ) );\r
252                                                 }\r
253                                         }\r
254                                 }\r
255                                 //-----------------\r
256                                 #endregion\r
257 \r
258                                 Cスコア cスコア = CDTXMania.stage選曲.r現在選択中のスコア;\r
259 \r
260                                 #region [ 選択曲の Lv の描画 ]\r
261                                 //-----------------\r
262                                 if( ( cスコア != null ) && ( this.txレベル数字 != null ) )\r
263                                 {\r
264                                         for( int i = 0; i < 3; i++ )\r
265                                         {\r
266                                                 int[,] nDispPosYOffset = { { 0, 21, 42 }, { 0, 42, 21} };       // #24063 2011.1.27 yyagi\r
267                                                 Rectangle rect十の位;\r
268                                                 Rectangle rect一の位;\r
269                                                 int nDispPosX = this.n本体X + 66;\r
270                                                 int nDispPosY = this.n本体Y + 50 + nDispPosYOffset[ (CDTXMania.ConfigIni.bIsSwappedGuitarBass? 1 : 0), i ];\r
271                                                 int nLevel = this.n現在選択中の曲のレベル[ i ];\r
272                                                 if( nLevel < 0 )\r
273                                                 {\r
274                                                         nLevel = 0;\r
275                                                 }\r
276                                                 else if( nLevel > 99 )\r
277                                                 {\r
278                                                         nLevel = 99;\r
279                                                 }\r
280                                                 // Lv25刻みで、白→オレンジ→黄色→赤、と色を変える\r
281                                                 // \r
282                                                 int nRectOffsetX = ( ( nLevel / 25 ) < 2 ) ? 64 : 0;\r
283                                                 int nRectOffsetY = ( ( ( nLevel / 25 ) % 2 ) == 0 ) ? 64 : 0;\r
284                                                 if( nLevel == 0 )\r
285                                                 {\r
286                                                         rect十の位 = this.rc数字[ 11 ];            // "--"\r
287                                                         rect一の位 = this.rc数字[ 11 ];            // "-- "\r
288                                                 }\r
289                                                 else if( cスコア.譜面情報.レベルを非表示にする )\r
290                                                 {\r
291                                                         rect十の位 = this.rc数字[ 10 ];            // "?"\r
292                                                         rect一の位 = this.rc数字[ 10 ];            // "?"\r
293                                                 }\r
294                                                 else\r
295                                                 {\r
296                                                         rect十の位 = this.rc数字[ nLevel / 10 ];\r
297                                                         rect一の位 = this.rc数字[ nLevel % 10 ];\r
298                                                 }\r
299                                                 rect十の位.X += nRectOffsetX;\r
300                                                 rect十の位.Y += nRectOffsetY;\r
301                                                 rect一の位.X += nRectOffsetX;\r
302                                                 rect一の位.Y += nRectOffsetY;\r
303                                                 this.txレベル数字.t2D描画( CDTXMania.app.Device, nDispPosX,      nDispPosY, rect十の位 );\r
304                                                 this.txレベル数字.t2D描画( CDTXMania.app.Device, nDispPosX + 13, nDispPosY, rect一の位 );\r
305                                         }\r
306                                 }\r
307                                 //-----------------\r
308                                 #endregion\r
309                                 #region [ 選択曲の 最高スキル値ゲージ+数値の描画 ]\r
310                                 //-----------------\r
311                                 for( int i = 0; i < 3; i++ )\r
312                                 {\r
313                                         int[ , ] nDispPosYOffset = { { 0, 21, 42 }, { 0, 42, 21 } };\r
314                                         if ( this.n現在選択中の曲のレベル[ i ] != 0 )\r
315                                         {\r
316                                                 double dMaxSkill = this.db現在選択中の曲の最高スキル値[ i ];\r
317                                                 if( dMaxSkill != 0.0 )\r
318                                                 {\r
319                                                         int nDispPosX = this.n本体X + 100;\r
320                                                         int nDispPosY = this.n本体Y + 53 + nDispPosYOffset[ ( CDTXMania.ConfigIni.bIsSwappedGuitarBass ? 1 : 0 ), i ];\r
321                                                         this.txスキルゲージ.t2D描画( CDTXMania.app.Device, nDispPosX, nDispPosY,\r
322                                                                                                                 new Rectangle( 0, 0, (int) ( 170.0 * dMaxSkill / 100.0 ), 10 ) );\r
323                                                 }\r
324                                                 string sMaxSkillString = dMaxSkill.ToString( "##0.00" );\r
325                                                 int nMaxSkillStringWidth = 0;\r
326                                                 foreach( char ch in sMaxSkillString )\r
327                                                 {\r
328                                                         for( int j = 0; j < 12; j++ )\r
329                                                         {\r
330                                                                 if( ch == this.st数字[ j ].ch )\r
331                                                                 {\r
332                                                                         nMaxSkillStringWidth += this.st数字[ j ].rc.Width - 1;\r
333                                                                         break;\r
334                                                                 }\r
335                                                         }\r
336                                                 }\r
337                                                 int x = this.n本体X + 182 - nMaxSkillStringWidth / 2;\r
338                                                 int y = this.n本体Y + 53 + nDispPosYOffset[ ( CDTXMania.ConfigIni.bIsSwappedGuitarBass ? 1 : 0 ), i ];\r
339                                                 foreach( char ch in sMaxSkillString )\r
340                                                 {\r
341                                                         for( int j = 0; j < 12; j++ )\r
342                                                         {\r
343                                                                 if( ch == this.st数字[ j ].ch )\r
344                                                                 {\r
345                                                                         if( this.txゲージ用数字他 != null )\r
346                                                                         {\r
347                                                                                 this.txゲージ用数字他.t2D描画( CDTXMania.app.Device, x, y, this.st数字[ j ].rc );\r
348                                                                         }\r
349                                                                         x += this.st数字[ j ].rc.Width - 1;\r
350                                                                         break;\r
351                                                                 }\r
352                                                         }\r
353                                                 }\r
354                                         }\r
355                                         else\r
356                                         {\r
357                                                 int x = this.n本体X + 182 - 20;\r
358                                                 int y = this.n本体Y + 53 + nDispPosYOffset[ ( CDTXMania.ConfigIni.bIsSwappedGuitarBass ? 1 : 0 ), i ];\r
359                                                 if( this.txゲージ用数字他 != null )\r
360                                                 {\r
361                                                         this.txゲージ用数字他.t2D描画( CDTXMania.app.Device, x, y, new Rectangle( 0, 22, 40, 10 ) );\r
362                                                 }\r
363                                         }\r
364                                 }\r
365                                 //-----------------\r
366                                 #endregion\r
367                                 #region [ 選択曲の 最高ランクの描画 ]\r
368                                 //-----------------\r
369                                 for( int i = 0; i < 3; i++ )\r
370                                 {\r
371                                         int nMaxRank = this.n現在選択中の曲の最高ランク[ i ];\r
372                                         if( nMaxRank != 99 )\r
373                                         {\r
374                                                 if ( nMaxRank < 0 )\r
375                                                 {\r
376                                                         nMaxRank = 0;\r
377                                                 }\r
378                                                 if( nMaxRank > 6 )\r
379                                                 {\r
380                                                         nMaxRank = 6;\r
381                                                 }\r
382                                                 int[ , ] nDispPosYOffset = { { 0, 21, 42 }, { 0, 42, 21 } };\r
383                                                 int x = this.n本体X + 278;\r
384                                                 int y = this.n本体Y + 55 + nDispPosYOffset[ ( CDTXMania.ConfigIni.bIsSwappedGuitarBass ? 1 : 0 ), i ];\r
385                                                 if( this.txゲージ用数字他 != null )\r
386                                                 {\r
387                                                         this.txゲージ用数字他.t2D描画( CDTXMania.app.Device, x, y, this.rcランク[ nMaxRank ] );\r
388                                                 }\r
389                                         }\r
390                                 }\r
391                                 //-----------------\r
392                                 #endregion\r
393                                 #region [ 選択曲の FullCombo の 描画 ]\r
394                                 //-----------------\r
395                                 Rectangle rectFullCombo = new Rectangle( 30, 32, 30, 16 );\r
396                                 for( int i = 0; i < 3; i++ )\r
397                                 {\r
398                                         if( this.b現在選択中の曲がフルコンボ[ i ] )\r
399                                         {\r
400                                                 int[ , ] nDispPosYOffset = { { 0, 21, 42 }, { 0, 42, 21 } };\r
401                                                 int x = this.n本体X + 290;\r
402                                                 int y = this.n本体Y + 53 + nDispPosYOffset[ (CDTXMania.ConfigIni.bIsSwappedGuitarBass ? 1 : 0), i ];\r
403                                                 if( this.txゲージ用数字他 != null )\r
404                                                 {\r
405                                                         this.txゲージ用数字他.t2D描画( CDTXMania.app.Device, x, y, rectFullCombo );\r
406                                                 }\r
407                                         }\r
408                                 }\r
409                                 //-----------------\r
410                                 #endregion\r
411                         }\r
412                         return 0;\r
413                 }\r
414 \r
415 \r
416                 // その他\r
417 \r
418                 #region [ private ]\r
419                 //-----------------\r
420                 [StructLayout( LayoutKind.Sequential )]\r
421                 private struct ST数字\r
422                 {\r
423                         public char ch;\r
424                         public Rectangle rc;\r
425                         public ST数字( char ch, Rectangle rc )\r
426                         {\r
427                                 this.ch = ch;\r
428                                 this.rc = rc;\r
429                         }\r
430                 }\r
431 \r
432                 private STDGBVALUE<bool> b現在選択中の曲がフルコンボ;\r
433                 private CCounter ct登場アニメ用;\r
434                 private CCounter ct難易度スクロール用;\r
435                 private CCounter ct難易度矢印用;\r
436                 private STDGBVALUE<double> db現在選択中の曲の最高スキル値;\r
437                 private STDGBVALUE<int> n現在選択中の曲のレベル;\r
438                 private STDGBVALUE<int> n現在選択中の曲の最高ランク;\r
439                 private int n現在選択中の曲の難易度;\r
440                 private int n難易度開始文字位置;\r
441                 private const int n難易度表示可能文字数 = 0x24;\r
442                 private int n本体X;\r
443                 private int n本体Y;\r
444                 private readonly Rectangle[] rcランク = new Rectangle[] { new Rectangle( 0, 0x20, 10, 10 ), new Rectangle( 10, 0x20, 10, 10 ), new Rectangle( 20, 0x20, 10, 10 ), new Rectangle( 0, 0x2a, 10, 10 ), new Rectangle( 10, 0x2a, 10, 10 ), new Rectangle( 20, 0x2a, 10, 10 ), new Rectangle( 0, 0x34, 10, 10 ) };\r
445                 private readonly Rectangle[] rc数字 = new Rectangle[] { new Rectangle( 0, 0, 15, 0x13 ), new Rectangle( 15, 0, 15, 0x13 ), new Rectangle( 30, 0, 15, 0x13 ), new Rectangle( 0x2d, 0, 15, 0x13 ), new Rectangle( 0, 0x13, 15, 0x13 ), new Rectangle( 15, 0x13, 15, 0x13 ), new Rectangle( 30, 0x13, 15, 0x13 ), new Rectangle( 0x2d, 0x13, 15, 0x13 ), new Rectangle( 0, 0x26, 15, 0x13 ), new Rectangle( 15, 0x26, 15, 0x13 ), new Rectangle( 30, 0x26, 15, 0x13 ), new Rectangle( 0x2d, 0x26, 15, 0x13 ) };\r
446                 private C曲リストノード r直前の曲;\r
447                 private string[] str難易度ラベル = new string[] { "", "", "", "", "" };\r
448                 private readonly ST数字[] st数字 = new ST数字[] { new ST数字( '0', new Rectangle( 0, 0, 8, 11 ) ), new ST数字( '1', new Rectangle( 8, 0, 8, 11 ) ), new ST数字( '2', new Rectangle( 0x10, 0, 8, 11 ) ), new ST数字( '3', new Rectangle( 0x18, 0, 8, 11 ) ), new ST数字( '4', new Rectangle( 0x20, 0, 8, 11 ) ), new ST数字( '5', new Rectangle( 40, 0, 8, 11 ) ), new ST数字( '6', new Rectangle( 0, 11, 8, 11 ) ), new ST数字( '7', new Rectangle( 8, 11, 8, 11 ) ), new ST数字( '8', new Rectangle( 0x10, 11, 8, 11 ) ), new ST数字( '9', new Rectangle( 0x18, 11, 8, 11 ) ), new ST数字( '.', new Rectangle( 0x20, 11, 4, 11 ) ), new ST数字( 'p', new Rectangle( 0x24, 11, 15, 11 ) ) };\r
449                 private CTexture txゲージ用数字他;\r
450                 private CTexture txスキルゲージ;\r
451                 private CTexture txパネル本体;\r
452                 private CTexture txレベル数字;\r
453                 private CTexture tx難易度用矢印;\r
454 \r
455                 private int n現在の難易度ラベルが完全表示されているかを調べてスクロール方向を返す()\r
456                 {\r
457                         int num = 0;\r
458                         int length = 0;\r
459                         for( int i = 0; i < 5; i++ )\r
460                         {\r
461                                 if( ( this.str難易度ラベル[ i ] != null ) && ( this.str難易度ラベル[ i ].Length > 0 ) )\r
462                                 {\r
463                                         length = this.str難易度ラベル[ i ].Length;\r
464                                 }\r
465                                 if( this.n現在選択中の曲の難易度 == i )\r
466                                 {\r
467                                         break;\r
468                                 }\r
469                                 if( ( this.str難易度ラベル[ i ] != null ) && ( this.str難易度ラベル.Length > 0 ) )\r
470                                 {\r
471                                         num += length + 2;\r
472                                 }\r
473                         }\r
474                         if( num >= ( this.n難易度開始文字位置 + 0x24 ) )\r
475                         {\r
476                                 return 1;\r
477                         }\r
478                         if( ( num + length ) <= this.n難易度開始文字位置 )\r
479                         {\r
480                                 return -1;\r
481                         }\r
482                         if( ( ( num + length ) - 1 ) >= ( this.n難易度開始文字位置 + 0x24 ) )\r
483                         {\r
484                                 return 1;\r
485                         }\r
486                         if( num < this.n難易度開始文字位置 )\r
487                         {\r
488                                 return -1;\r
489                         }\r
490                         return 0;\r
491                 }\r
492                 //-----------------\r
493                 #endregion\r
494         }\r
495 }\r