OSDN Git Service

#24281 リザルト画面のPLAYCOUNTを正しく表示するよう修正。
[dtxmania/dtxmania.git] / DTXManiaプロジェクト / コード / ステージ / 08.結果 / CStage結果.cs
1 using System;\r
2 using System.Collections.Generic;\r
3 using System.Text;\r
4 using System.Diagnostics;\r
5 using FDK;\r
6 \r
7 namespace DTXMania\r
8 {\r
9         internal class CStage結果 : CStage\r
10         {\r
11                 // プロパティ\r
12 \r
13                 public STDGBVALUE<bool> b新記録スキル;\r
14                 public STDGBVALUE<bool> b新記録スコア;\r
15         public STDGBVALUE<bool> b新記録ランク;\r
16                 public STDGBVALUE<float> fPerfect率;\r
17                 public STDGBVALUE<float> fGreat率;\r
18                 public STDGBVALUE<float> fGood率;\r
19                 public STDGBVALUE<float> fPoor率;\r
20         public STDGBVALUE<float> fMiss率;\r
21         public STDGBVALUE<bool> bオート;        // #23596 10.11.16 add ikanick\r
22                                                 //        10.11.17 change (int to bool) ikanick\r
23                 public STDGBVALUE<int> nランク値;\r
24                 public STDGBVALUE<int> n演奏回数;\r
25                 public int n総合ランク値;\r
26                 public CDTX.CChip[] r空うちドラムチップ;\r
27                 public STDGBVALUE<CScoreIni.C演奏記録> st演奏記録;\r
28 \r
29 \r
30                 // コンストラクタ\r
31 \r
32                 public CStage結果()\r
33                 {\r
34 //                      STDGBVALUE<CScoreIni.C演奏記録> stdgbvalue = new STDGBVALUE<CScoreIni.C演奏記録>();\r
35                         this.st演奏記録.Drums = new CScoreIni.C演奏記録();\r
36                         this.st演奏記録.Guitar = new CScoreIni.C演奏記録();\r
37                         this.st演奏記録.Bass = new CScoreIni.C演奏記録();\r
38 //                      this.st演奏記録 = stdgbvalue;\r
39                         this.r空うちドラムチップ = new CDTX.CChip[ 10 ];\r
40                         this.n総合ランク値 = -1;\r
41                         this.nチャンネル0Atoレーン07 = new int[] { 1, 2, 3, 4, 5, 7, 6, 1, 7, 0 };\r
42                         base.eステージID = CStage.Eステージ.結果;\r
43                         base.eフェーズID = CStage.Eフェーズ.共通_通常状態;\r
44                         base.b活性化してない = true;\r
45                         base.list子Activities.Add( this.actResultImage = new CActResultImage() );\r
46                         base.list子Activities.Add( this.actParameterPanel = new CActResultParameterPanel() );\r
47                         base.list子Activities.Add( this.actRank = new CActResultRank() );\r
48                         base.list子Activities.Add( this.actSongBar = new CActResultSongBar() );\r
49                         base.list子Activities.Add( this.actOption = new CActオプションパネル() );\r
50                         base.list子Activities.Add( this.actFI = new CActFIFOWhite() );\r
51                         base.list子Activities.Add( this.actFO = new CActFIFOBlack() );\r
52                 }\r
53 \r
54                 \r
55                 // CStage 実装\r
56 \r
57                 public override void On活性化()\r
58                 {\r
59                         Trace.TraceInformation( "結果ステージを活性化します。" );\r
60                         Trace.Indent();\r
61                         try\r
62                         {\r
63                                 #region [ 初期化 ]\r
64                                 //---------------------\r
65                                 this.eフェードアウト完了時の戻り値 = E戻り値.継続;\r
66                                 this.bアニメが完了 = false;\r
67                                 this.n最後に再生したHHのWAV番号 = -1;\r
68                                 this.n最後に再生したHHのチャンネル番号 = 0;\r
69                                 for( int i = 0; i < 3; i++ )\r
70                                 {\r
71                                         this.b新記録スキル[ i ] = false;\r
72                     this.b新記録スコア[ i ] = false;\r
73                     this.b新記録ランク[ i ] = false;\r
74                                 }\r
75                                 //---------------------\r
76                                 #endregion\r
77 \r
78                                 #region [ 結果の計算 ]\r
79                                 //---------------------\r
80                                 for( int j = 0; j < 3; j++ )\r
81                                 {\r
82                                         this.nランク値[ j ] = -1;\r
83                                         if( ( ( ( j != 0 ) || ( CDTXMania.DTX.bチップがある.Drums && !CDTXMania.ConfigIni.bギタレボモード ) ) && ( ( j != 1 ) || CDTXMania.DTX.bチップがある.Guitar ) ) && ( ( j != 2 ) || CDTXMania.DTX.bチップがある.Bass ) )\r
84                                         {\r
85                                                 CScoreIni.C演奏記録 part = this.st演奏記録[ j ];\r
86                                                 bool bIsAutoPlay = true;\r
87                                                 switch( j )\r
88                                                 {\r
89                                                         case 0:\r
90                                 bIsAutoPlay = CDTXMania.ConfigIni.bドラムが全部オートプレイである;\r
91                                                                 break;\r
92 \r
93                                                         case 1:\r
94                                                                 bIsAutoPlay = CDTXMania.ConfigIni.bAutoPlay.Guitar;\r
95                                                                 break;\r
96 \r
97                                                         case 2:\r
98                                                                 bIsAutoPlay = CDTXMania.ConfigIni.bAutoPlay.Bass;\r
99                                                                 break;\r
100                                                 }\r
101                                                 this.fPerfect率[ j ] = bIsAutoPlay ? 0f : ( ( 100f * part.nPerfect数 ) / ( (float) part.n全チップ数 ) );\r
102                                                 this.fGreat率[ j ] = bIsAutoPlay ? 0f : ( ( 100f * part.nGreat数 ) / ( (float) part.n全チップ数 ) );\r
103                                                 this.fGood率[ j ] = bIsAutoPlay ? 0f : ( ( 100f * part.nGood数 ) / ( (float) part.n全チップ数 ) );\r
104                                                 this.fPoor率[ j ] = bIsAutoPlay ? 0f : ( ( 100f * part.nPoor数 ) / ( (float) part.n全チップ数 ) );\r
105                                                 this.fMiss率[ j ] = bIsAutoPlay ? 0f : ( ( 100f * part.nMiss数 ) / ( (float) part.n全チップ数 ) );\r
106                                                 this.bオート[ j ] = bIsAutoPlay;     // #23596 10.11.16 add ikanick そのパートがオートなら1\r
107                                                                                                                         //        10.11.17 change (int to bool) ikanick\r
108                                                 this.nランク値[ j ] = CScoreIni.tランク値を計算して返す( part );\r
109                                         }\r
110                                 }\r
111                                 this.n総合ランク値 = CScoreIni.t総合ランク値を計算して返す( this.st演奏記録.Drums, this.st演奏記録.Guitar, this.st演奏記録.Bass );\r
112                                 //---------------------\r
113                                 #endregion\r
114 \r
115                                 #region [ .score.ini の作成と出力 ]\r
116                                 //---------------------\r
117                                 string str = CDTXMania.DTX.strファイル名の絶対パス + ".score.ini";\r
118                                 CScoreIni ini = new CScoreIni( str );\r
119 \r
120                                 bool[] b今までにフルコンボしたことがある = new bool[] { false, false, false };\r
121 \r
122                                 for( int k = 0; k < 3; k++ )\r
123                                 {\r
124                                         // フルコンボチェックならびに新記録ランクチェックは、ini.Record[] が、スコアチェックや演奏型スキルチェックの IF 内で書き直されてしまうよりも前に行う。(2010.9.10)\r
125                                         \r
126                                         b今までにフルコンボしたことがある[ k ] = ini.stセクション[ k * 2 ].bフルコンボである | ini.stセクション[ k * 2 + 1 ].bフルコンボである;\r
127 \r
128                                         if( this.nランク値[ k ] <= CScoreIni.tランク値を計算して返す( ini.stセクション[ ( k * 2 ) + 1 ] ) )\r
129                                         {\r
130                                                 this.b新記録ランク[ k ] = true;\r
131                                         }\r
132 \r
133                                         // 新記録スコアチェック\r
134                                         if( this.st演奏記録[ k ].nスコア > ini.stセクション[ k * 2 ].nスコア )\r
135                                         {\r
136                                                 this.b新記録スコア[ k ] = true;\r
137                                                 ini.stセクション[ k * 2 ] = this.st演奏記録[ k ];\r
138                                         }\r
139 \r
140                     // 新記録スキルチェック\r
141                     if (this.st演奏記録[k].db演奏型スキル値 > ini.stセクション[(k * 2) + 1].db演奏型スキル値)\r
142                     {\r
143                         this.b新記録スキル[ k ] = true;\r
144                         ini.stセクション[(k * 2) + 1] = this.st演奏記録[ k ];\r
145                     }\r
146                     // ラストプレイ #23595 2011.1.9 ikanick\r
147                     // オートじゃなければプレイ結果を書き込む\r
148                     if (this.bオート[ k ] == false) {\r
149                         ini.stセクション[k + 6] = this.st演奏記録[ k ];\r
150                     }\r
151 \r
152                     // #23596 10.11.16 add ikanick オートじゃないならクリア回数を1増やす\r
153                     //        10.11.17 change (nオート to bオート)\r
154                     //                 add default..throw           ikanick\r
155                     if (this.bオート[ k ] == false)\r
156                     {\r
157                         switch ( k )\r
158                         {\r
159                             case 0:\r
160                                 ini.stファイル.ClearCountDrums++;\r
161                                 break;\r
162                             case 1:\r
163                                 ini.stファイル.ClearCountGuitar++;\r
164                                 break;\r
165                             case 2:\r
166                                 ini.stファイル.ClearCountBass++;\r
167                                 break;\r
168                             default:\r
169                                 throw new Exception("クリア回数増加のk(0-2)が範囲外です。");\r
170                         }\r
171                     }\r
172                     //---------------------------------------------------------------------/\r
173                                 }\r
174                                 ini.t書き出し( str );\r
175                                 //---------------------\r
176                                 #endregion\r
177 \r
178                                 #region [ リザルト画面への演奏回数の更新 #24281 2011.1.30 yyagi]\r
179                                 this.n演奏回数.Drums = ini.stファイル.PlayCountDrums;\r
180                                 this.n演奏回数.Guitar = ini.stファイル.PlayCountGuitar;\r
181                                 this.n演奏回数.Bass = ini.stファイル.PlayCountBass;\r
182                                 #endregion\r
183                                 #region [ 選曲画面の譜面情報の更新 ]\r
184                                 //---------------------\r
185                                 if( !CDTXMania.bコンパクトモード )\r
186                                 {\r
187                                         Cスコア cスコア = CDTXMania.stage選曲.r確定されたスコア;\r
188                                         bool[] b更新が必要か否か = new bool[ 3 ];\r
189                                         CScoreIni.t更新条件を取得する( out b更新が必要か否か[ 0 ], out b更新が必要か否か[ 1 ], out b更新が必要か否か[ 2 ] );\r
190                                         for( int m = 0; m < 3; m++ )\r
191                                         {\r
192                                                 if( b更新が必要か否か[ m ] )\r
193                                                 {\r
194                                                         // FullCombo した記録を FullCombo なしで超えた場合、FullCombo マークが消えてしまう。\r
195                                                         // → FullCombo は、最新記録と関係なく、一度達成したらずっとつくようにする。(2010.9.11)\r
196                                                         cスコア.譜面情報.フルコンボ[ m ] = this.st演奏記録[ m ].bフルコンボである | b今までにフルコンボしたことがある[ m ];\r
197 \r
198                                                         if( this.b新記録スキル[ m ] )\r
199                                                         {\r
200                                                                 cスコア.譜面情報.最大スキル[ m ] = this.st演奏記録[ m ].db演奏型スキル値;\r
201                             }\r
202 \r
203                             if (this.b新記録ランク[ m ])\r
204                             {\r
205                                 cスコア.譜面情報.最大ランク[ m ] = this.nランク値[ m ];\r
206                             }\r
207                                                 }\r
208                                         }\r
209                                 }\r
210                                 //---------------------\r
211                                 #endregion\r
212 \r
213                                 #region [ #RESULTSOUND_xx の再生(あれば)]\r
214                                 //---------------------\r
215                                 int rank = CScoreIni.t総合ランク値を計算して返す( this.st演奏記録.Drums, this.st演奏記録.Guitar, this.st演奏記録.Bass );\r
216 \r
217                                 if (rank == 99) // #23534 2010.10.28 yyagi: 演奏チップが0個のときは、rankEと見なす\r
218                                 {\r
219                                         rank = 6;\r
220                                 }\r
221         \r
222                                 if( string.IsNullOrEmpty( CDTXMania.DTX.RESULTSOUND[ rank ] ) )\r
223                                 {\r
224                                         CDTXMania.Skin.soundステージクリア音.t再生する();\r
225                                         this.rResultSound = null;\r
226                                 }\r
227                                 else\r
228                                 {\r
229                                         string str2 = CDTXMania.DTX.strフォルダ名 + CDTXMania.DTX.RESULTSOUND[ rank ];\r
230                                         try\r
231                                         {\r
232                                                 this.rResultSound = CDTXMania.Sound管理.tサウンドを生成する( str2 );\r
233                                         }\r
234                                         catch\r
235                                         {\r
236                                                 Trace.TraceError( "サウンドの生成に失敗しました。({0})", new object[] { str2 } );\r
237                                                 this.rResultSound = null;\r
238                                         }\r
239                                 }\r
240                                 //---------------------\r
241                                 #endregion\r
242 \r
243                                 base.On活性化();\r
244                         }\r
245                         finally\r
246                         {\r
247                                 Trace.TraceInformation( "結果ステージの活性化を完了しました。" );\r
248                                 Trace.Unindent();\r
249                         }\r
250                 }\r
251                 public override void On非活性化()\r
252                 {\r
253                         if( this.rResultSound != null )\r
254                         {\r
255                                 CDTXMania.Sound管理.tサウンドを破棄する( this.rResultSound );\r
256                                 this.rResultSound = null;\r
257                         }\r
258                         base.On非活性化();\r
259                 }\r
260                 public override void OnManagedリソースの作成()\r
261                 {\r
262                         if( !base.b活性化してない )\r
263                         {\r
264                                 this.tx背景 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenResult background.jpg" ) );\r
265                                 this.tx上部パネル = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenResult header panel.png" ), true );\r
266                                 this.tx下部パネル = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenResult footer panel.png" ), true );\r
267                                 this.txオプションパネル = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\Screen option panels.png" ) );\r
268                                 base.OnManagedリソースの作成();\r
269                         }\r
270                 }\r
271                 public override void OnManagedリソースの解放()\r
272                 {\r
273                         if( !base.b活性化してない )\r
274                         {\r
275                                 if( this.ct登場用 != null )\r
276                                 {\r
277                                         this.ct登場用 = null;\r
278                                 }\r
279                                 CDTXMania.tテクスチャの解放( ref this.tx背景 );\r
280                                 CDTXMania.tテクスチャの解放( ref this.tx上部パネル );\r
281                                 CDTXMania.tテクスチャの解放( ref this.tx下部パネル );\r
282                                 CDTXMania.tテクスチャの解放( ref this.txオプションパネル );\r
283                                 base.OnManagedリソースの解放();\r
284                         }\r
285                 }\r
286                 public override int On進行描画()\r
287                 {\r
288                         if( !base.b活性化してない )\r
289                         {\r
290                                 int num;\r
291                                 if( base.b初めての進行描画 )\r
292                                 {\r
293                                         this.ct登場用 = new CCounter( 0, 100, 5, CDTXMania.Timer );\r
294                                         this.actFI.tフェードイン開始();\r
295                                         base.eフェーズID = CStage.Eフェーズ.共通_フェードイン;\r
296                                         if( this.rResultSound != null )\r
297                                         {\r
298                                                 this.rResultSound.t再生を開始する();\r
299                                         }\r
300                                         base.b初めての進行描画 = false;\r
301                                 }\r
302                                 this.bアニメが完了 = true;\r
303                                 if( this.ct登場用.b進行中 )\r
304                                 {\r
305                                         this.ct登場用.t進行();\r
306                                         if( this.ct登場用.b終了値に達した )\r
307                                         {\r
308                                                 this.ct登場用.t停止();\r
309                                         }\r
310                                         else\r
311                                         {\r
312                                                 this.bアニメが完了 = false;\r
313                                         }\r
314                                 }\r
315 \r
316                                 // 描画\r
317 \r
318                                 if( this.tx背景 != null )\r
319                                 {\r
320                                         this.tx背景.t2D描画( CDTXMania.app.Device, 0, 0 );\r
321                                 }\r
322                                 if( this.ct登場用.b進行中 && ( this.tx上部パネル != null ) )\r
323                                 {\r
324                                         double num2 = ( (double) this.ct登場用.n現在の値 ) / 100.0;\r
325                                         double num3 = Math.Sin( 1.5707963267948966 * num2 );\r
326                                         num = ( (int) ( this.tx上部パネル.sz画像サイズ.Height * num3 ) ) - this.tx上部パネル.sz画像サイズ.Height;\r
327                                 }\r
328                                 else\r
329                                 {\r
330                                         num = 0;\r
331                                 }\r
332                                 if( this.tx上部パネル != null )\r
333                                 {\r
334                                         this.tx上部パネル.t2D描画( CDTXMania.app.Device, 0, num );\r
335                                 }\r
336                                 if( this.tx下部パネル != null )\r
337                                 {\r
338                                         this.tx下部パネル.t2D描画( CDTXMania.app.Device, 0, 480 - this.tx下部パネル.sz画像サイズ.Height );\r
339                                 }\r
340                                 this.actOption.On進行描画();\r
341                                 if( this.actResultImage.On進行描画() == 0 )\r
342                                 {\r
343                                         this.bアニメが完了 = false;\r
344                                 }\r
345                                 if( this.actParameterPanel.On進行描画() == 0 )\r
346                                 {\r
347                                         this.bアニメが完了 = false;\r
348                                 }\r
349                                 if( this.actRank.On進行描画() == 0 )\r
350                                 {\r
351                                         this.bアニメが完了 = false;\r
352                                 }\r
353                                 if( this.actSongBar.On進行描画() == 0 )\r
354                                 {\r
355                                         this.bアニメが完了 = false;\r
356                                 }\r
357                                 if( base.eフェーズID == CStage.Eフェーズ.共通_フェードイン )\r
358                                 {\r
359                                         if( this.actFI.On進行描画() != 0 )\r
360                                         {\r
361                                                 base.eフェーズID = CStage.Eフェーズ.共通_通常状態;\r
362                                         }\r
363                                 }\r
364                                 else if( ( base.eフェーズID == CStage.Eフェーズ.共通_フェードアウト ) && ( this.actFO.On進行描画() != 0 ) )\r
365                                 {\r
366                                         return (int) this.eフェードアウト完了時の戻り値;\r
367                                 }\r
368 \r
369                                 // キー入力\r
370 \r
371                                 if( CDTXMania.act現在入力を占有中のプラグイン == null )\r
372                                 {\r
373                                         if( CDTXMania.ConfigIni.bドラム打音を発声する && CDTXMania.ConfigIni.bDrums有効 )\r
374                                         {\r
375                                                 for( int i = 0; i < 10; i++ )\r
376                                                 {\r
377                                                         List<STInputEvent> events = CDTXMania.Pad.GetEvents( E楽器パート.DRUMS, (Eパッド) i );\r
378                                                         if( ( events != null ) && ( events.Count > 0 ) )\r
379                                                         {\r
380                                                                 foreach( STInputEvent event2 in events )\r
381                                                                 {\r
382                                                                         if( !event2.b押された )\r
383                                                                         {\r
384                                                                                 continue;\r
385                                                                         }\r
386                                                                         CDTX.CChip rChip = this.r空うちドラムチップ[ i ];\r
387                                                                         if( rChip == null )\r
388                                                                         {\r
389                                                                                 switch( ( (Eパッド) i ) )\r
390                                                                                 {\r
391                                                                                         case Eパッド.HH:\r
392                                                                                                 rChip = this.r空うちドラムチップ[ 7 ];\r
393                                                                                                 if( rChip == null )\r
394                                                                                                 {\r
395                                                                                                         rChip = this.r空うちドラムチップ[ 9 ];\r
396                                                                                                 }\r
397                                                                                                 break;\r
398 \r
399                                                                                         case Eパッド.FT:\r
400                                                                                                 rChip = this.r空うちドラムチップ[ 4 ];\r
401                                                                                                 break;\r
402 \r
403                                                                                         case Eパッド.CY:\r
404                                                                                                 rChip = this.r空うちドラムチップ[ 8 ];\r
405                                                                                                 break;\r
406 \r
407                                                                                         case Eパッド.HHO:\r
408                                                                                                 rChip = this.r空うちドラムチップ[ 0 ];\r
409                                                                                                 if( rChip == null )\r
410                                                                                                 {\r
411                                                                                                         rChip = this.r空うちドラムチップ[ 9 ];\r
412                                                                                                 }\r
413                                                                                                 break;\r
414 \r
415                                                                                         case Eパッド.RD:\r
416                                                                                                 rChip = this.r空うちドラムチップ[ 6 ];\r
417                                                                                                 break;\r
418 \r
419                                                                                         case Eパッド.LC:\r
420                                                                                                 rChip = this.r空うちドラムチップ[ 0 ];\r
421                                                                                                 if( rChip == null )\r
422                                                                                                 {\r
423                                                                                                         rChip = this.r空うちドラムチップ[ 7 ];\r
424                                                                                                 }\r
425                                                                                                 break;\r
426                                                                                 }\r
427                                                                         }\r
428                                                                         if( ( ( rChip != null ) && ( rChip.nチャンネル番号 >= 0x11 ) ) && ( rChip.nチャンネル番号 <= 0x1a ) )\r
429                                                                         {\r
430                                                                                 int nLane = this.nチャンネル0Atoレーン07[ rChip.nチャンネル番号 - 0x11 ];\r
431                                                                                 if( ( nLane == 1 ) && ( ( rChip.nチャンネル番号 == 0x11 ) || ( ( rChip.nチャンネル番号 == 0x18 ) && ( this.n最後に再生したHHのチャンネル番号 != 0x18 ) ) ) )\r
432                                                                                 {\r
433                                                                                         CDTXMania.DTX.tWavの再生停止( this.n最後に再生したHHのWAV番号 );\r
434                                                                                         this.n最後に再生したHHのWAV番号 = rChip.n整数値・内部番号;\r
435                                                                                         this.n最後に再生したHHのチャンネル番号 = rChip.nチャンネル番号;\r
436                                                                                 }\r
437                                                                                 CDTXMania.DTX.tチップの再生( rChip, CDTXMania.Timer.nシステム時刻, nLane, CDTXMania.ConfigIni.n手動再生音量, CDTXMania.ConfigIni.b演奏音を強調する.Drums );\r
438                                                                         }\r
439                                                                 }\r
440                                                         }\r
441                                                 }\r
442                                         }\r
443                                         if( ( ( CDTXMania.Pad.b押されたDGB( Eパッド.CY ) || CDTXMania.Pad.b押された( E楽器パート.DRUMS, Eパッド.RD ) ) || ( CDTXMania.Pad.b押された( E楽器パート.DRUMS, Eパッド.LC ) || CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDX.DirectInput.Key.Return ) ) ) && !this.bアニメが完了 )\r
444                                         {\r
445                                                 this.actResultImage.tアニメを完了させる();\r
446                                                 this.actParameterPanel.tアニメを完了させる();\r
447                                                 this.actRank.tアニメを完了させる();\r
448                                                 this.actSongBar.tアニメを完了させる();\r
449                                                 this.ct登場用.t停止();\r
450                                         }\r
451                                         if( base.eフェーズID == CStage.Eフェーズ.共通_通常状態 )\r
452                                         {\r
453                                                 if ( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDX.DirectInput.Key.Escape ) )\r
454                                                 {\r
455                                                         CDTXMania.Skin.sound取消音.t再生する();\r
456                                                         this.actFO.tフェードアウト開始();\r
457                                                         base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト;\r
458                                                         this.eフェードアウト完了時の戻り値 = E戻り値.完了;\r
459                                                 }\r
460                                                 if ( ( ( CDTXMania.Pad.b押されたDGB( Eパッド.CY ) || CDTXMania.Pad.b押された( E楽器パート.DRUMS, Eパッド.RD ) ) || ( CDTXMania.Pad.b押された( E楽器パート.DRUMS, Eパッド.LC ) || CDTXMania.Input管理.Keyboard.bキーが押された( (int) SlimDX.DirectInput.Key.Return ) ) ) && this.bアニメが完了 )\r
461                                                 {\r
462                                                         CDTXMania.Skin.sound取消音.t再生する();\r
463                                                         this.actFO.tフェードアウト開始();\r
464                                                         base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト;\r
465                                                         this.eフェードアウト完了時の戻り値 = E戻り値.完了;\r
466                                                 }\r
467                                         }\r
468                                 }\r
469                         }\r
470                         return 0;\r
471                 }\r
472                 public enum E戻り値 : int\r
473                 {\r
474                         継続,\r
475                         完了\r
476                 }\r
477 \r
478 \r
479                 // その他\r
480 \r
481                 #region [ private ]\r
482                 //-----------------\r
483                 private CCounter ct登場用;\r
484                 private E戻り値 eフェードアウト完了時の戻り値;\r
485                 private CActFIFOWhite actFI;\r
486                 private CActFIFOBlack actFO;\r
487                 private CActオプションパネル actOption;\r
488                 private CActResultParameterPanel actParameterPanel;\r
489                 private CActResultRank actRank;\r
490                 private CActResultImage actResultImage;\r
491                 private CActResultSongBar actSongBar;\r
492                 private bool bアニメが完了;\r
493                 private readonly int[] nチャンネル0Atoレーン07;\r
494                 private int n最後に再生したHHのWAV番号;\r
495                 private int n最後に再生したHHのチャンネル番号;\r
496                 private CSound rResultSound;\r
497                 private CTexture txオプションパネル;\r
498                 private CTexture tx下部パネル;\r
499                 private CTexture tx上部パネル;\r
500                 private CTexture tx背景;\r
501                 //-----------------\r
502                 #endregion\r
503         }\r
504 }\r