OSDN Git Service

#36043 CDTXMania 内の app 以外の static メンバをインスタンスメンバにし、appを介してアクセスするように変更。CChipのメンバの多くをpr...
[dtxmania/dtxmania.git] / DTXManiaプロジェクト / コード / ステージ / 08.結果 / CActResultRank.cs
1 using System;\r
2 using System.Collections.Generic;\r
3 using System.Text;\r
4 using System.Drawing;\r
5 using SlimDX;\r
6 using FDK;\r
7 \r
8 namespace DTXMania\r
9 {\r
10         internal class CActResultRank : CActivity\r
11         {\r
12                 // コンストラクタ\r
13                 public CActResultRank()\r
14                 {\r
15                         base.b活性化してない = true;\r
16                 }\r
17 \r
18 \r
19                 // メソッド\r
20 \r
21                 public void tアニメを完了させる()\r
22                 {\r
23                         this.ctランク表示.n現在の値 = this.ctランク表示.n終了値;\r
24                 }\r
25 \r
26 \r
27                 // CActivity 実装\r
28 \r
29                 public override void On活性化()\r
30                 {\r
31                         this.n本体X = 0x1ed;\r
32                         this.n本体Y = 0x153;\r
33                         base.On活性化();\r
34                 }\r
35                 public override void On非活性化()\r
36                 {\r
37                         if( this.ct白波移動 != null )\r
38                         {\r
39                                 this.ct白波移動 = null;\r
40                         }\r
41                         if( this.ctランク表示 != null )\r
42                         {\r
43                                 this.ctランク表示 = null;\r
44                         }\r
45                         base.On非活性化();\r
46                 }\r
47                 public override void OnManagedリソースの作成()\r
48                 {\r
49                         if( !base.b活性化してない )\r
50                         {\r
51                                 this.txランクパネル = TextureFactory.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenResult rank panel.png" ) );\r
52                                 this.tx白波 = TextureFactory.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenResult rank wave.png" ) );\r
53                                 switch (CDTXMania.app.stage結果.n総合ランク値)\r
54                                 {\r
55                                         case 0:\r
56                                                 this.txランク文字 = TextureFactory.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenResult rankSS.png" ) );\r
57                                                 break;\r
58 \r
59                                         case 1:\r
60                                                 this.txランク文字 = TextureFactory.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenResult rankS.png" ) );\r
61                                                 break;\r
62 \r
63                                         case 2:\r
64                                                 this.txランク文字 = TextureFactory.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenResult rankA.png" ) );\r
65                                                 break;\r
66 \r
67                                         case 3:\r
68                                                 this.txランク文字 = TextureFactory.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenResult rankB.png" ) );\r
69                                                 break;\r
70 \r
71                                         case 4:\r
72                                                 this.txランク文字 = TextureFactory.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenResult rankC.png" ) );\r
73                                                 break;\r
74 \r
75                                         case 5:\r
76                                                 this.txランク文字 = TextureFactory.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenResult rankD.png" ) );\r
77                                                 break;\r
78 \r
79                                         case 6:\r
80                                         case 99:        // #23534 2010.10.28 yyagi: 演奏チップが0個のときは、rankEと見なす\r
81                                                 this.txランク文字 = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenResult rankE.png"));\r
82                                                 break;\r
83 \r
84                                         default:\r
85                                                 this.txランク文字 = null;\r
86                                                 break;\r
87                                 }\r
88                                 base.OnManagedリソースの作成();\r
89                         }\r
90                 }\r
91                 public override void OnManagedリソースの解放()\r
92                 {\r
93                         if( !base.b活性化してない )\r
94                         {\r
95                                 TextureFactory.tテクスチャの解放( ref this.txランクパネル );\r
96                                 TextureFactory.tテクスチャの解放( ref this.tx白波 );\r
97                                 TextureFactory.tテクスチャの解放( ref this.txランク文字 );\r
98                                 base.OnManagedリソースの解放();\r
99                         }\r
100                 }\r
101                 public override int On進行描画()\r
102                 {\r
103                         if( base.b活性化してない )\r
104                         {\r
105                                 return 0;\r
106                         }\r
107                         if( base.b初めての進行描画 )\r
108                         {\r
109                                 this.ct白波移動 = new CCounter( -132, 0x170, 10, CDTXMania.app.Timer );\r
110                                 this.ctランク表示 = new CCounter( 0, 0x514, 2, CDTXMania.app.Timer );\r
111                                 base.b初めての進行描画 = false;\r
112                         }\r
113                         this.ct白波移動.t進行Loop();\r
114                         this.ctランク表示.t進行();\r
115                         if( this.ctランク表示.n現在の値 >= 700 )\r
116                         {\r
117                                 float y = ( this.ctランク表示.n現在の値 > 0x3e8 ) ? 1f : ( ( (float) ( this.ctランク表示.n現在の値 - 700 ) ) / 300f );\r
118                                 if( this.txランクパネル != null )\r
119                                 {\r
120                                         this.txランクパネル.n透明度 = (int) ( 255f * y );\r
121                                         this.txランクパネル.vc拡大縮小倍率 = new Vector3( 1f, y, 1f );\r
122                                         this.txランクパネル.t2D描画(\r
123                                                 CDTXMania.app.Device,\r
124                                                 this.n本体X * Scale.X,\r
125                                                 (this.n本体Y + ( (int) ( ( 1f - y ) * 64f ) )) * Scale.Y\r
126                                         );\r
127                                 }\r
128                         }\r
129                         if( this.ctランク表示.n現在の値 >= 0x3e8 )\r
130                         {\r
131                                 double num2 = ( (double) ( this.ctランク表示.n現在の値 - 0x3e8 ) ) / 300.0;\r
132                                 if( this.txランク文字 != null )\r
133                                 {\r
134                                         this.txランク文字.t2D描画(\r
135                                                 CDTXMania.app.Device,\r
136                                                 this.n本体X * Scale.X,\r
137                                                 this.n本体Y * Scale.Y,\r
138                                                 new Rectangle(\r
139                                                         0,\r
140                                                         0,\r
141                                                         (int) ( 128.0 * num2 * Scale.X),\r
142                                                         (int)(0x80 * Scale.Y)\r
143                                                 )\r
144                                         );\r
145                                 }\r
146                         }\r
147                         this.t描画_白波();\r
148                         if( !this.ctランク表示.b終了値に達した )\r
149                         {\r
150                                 return 0;\r
151                         }\r
152                         return 1;\r
153                 }\r
154                 \r
155 \r
156                 // その他\r
157 \r
158                 #region [ private ]\r
159                 //-----------------\r
160                 private CCounter ctランク表示;\r
161                 private CCounter ct白波移動;\r
162                 private int n本体X;\r
163                 private int n本体Y;\r
164                 private CTexture txランクパネル;\r
165                 private CTexture txランク文字;\r
166                 private CTexture tx白波;\r
167                 \r
168                 private void t描画_白波()\r
169                 {\r
170                         if( !this.ctランク表示.b終了値に達してない )\r
171                         {\r
172                                 int num = this.ct白波移動.n現在の値;\r
173                                 int num2 = this.n本体X;\r
174                                 int y = this.n本体Y + num;\r
175                                 if( ( y < ( this.n本体Y + 0x80 ) ) && ( ( y + 0x20 ) > this.n本体Y ) )\r
176                                 {\r
177                                         Rectangle rectangle = new Rectangle( 0, 0, 0x20, 0x20 );\r
178                                         if( y < this.n本体Y )\r
179                                         {\r
180                                                 rectangle.Y += this.n本体Y - y;\r
181                                                 rectangle.Height -= this.n本体Y - y;\r
182                                                 y = this.n本体Y;\r
183                                         }\r
184                                         if( ( y + 0x20 ) > ( this.n本体Y + 0x80 ) )\r
185                                         {\r
186                                                 rectangle.Height -= ( y + 0x20 ) - ( this.n本体Y + 0x80 );\r
187                                         }\r
188                                         if( rectangle.Bottom > rectangle.Top )\r
189                                         {\r
190                                                 for( int i = 0; i < 4; i++ )\r
191                                                 {\r
192                                                         if( this.tx白波 != null )\r
193                                                         {\r
194                                                                 Rectangle rectangle1 = rectangle;\r
195                                                                 rectangle1.X = (int) ( rectangle1.X * Scale.X );\r
196                                                                 rectangle1.Y = (int) ( rectangle1.Y * Scale.Y );\r
197                                                                 rectangle1.Width = (int) ( rectangle1.Width * Scale.X );\r
198                                                                 rectangle1.Height = (int) ( rectangle1.Height * Scale.Y );\r
199                                                                 this.tx白波.t2D描画(\r
200                                                                         CDTXMania.app.Device,\r
201                                                                         (num2 + ( i * 0x20 )) * Scale.X,\r
202                                                                         y * Scale.Y,\r
203                                                                         rectangle1\r
204                                                                 );\r
205                                                         }\r
206                                                 }\r
207                                         }\r
208                                 }\r
209                         }\r
210                 }\r
211                 //-----------------\r
212                 #endregion\r
213         }\r
214 }\r