+++ /dev/null
-using System;\r
-using System.Collections.Generic;\r
-using System.Text;\r
-using System.Drawing;\r
-using SharpDX;\r
-using FDK;\r
-\r
-using Rectangle = System.Drawing.Rectangle;\r
-\r
-namespace DTXMania\r
-{\r
- internal class CActResultRank : CActivity\r
- {\r
- private CCounter ctランク表示;\r
- private CCounter ct白波移動;\r
- private int n本体X;\r
- private int n本体Y;\r
- private CTexture txランクパネル;\r
- private CTexture txランク文字;\r
- private CTexture tx白波;\r
-\r
- public CActResultRank()\r
- {\r
- base.b活性化してない = true;\r
- }\r
-\r
- public void tアニメを完了させる()\r
- {\r
- this.ctランク表示.n現在の値 = this.ctランク表示.n終了値;\r
- }\r
-\r
- public override void On活性化()\r
- {\r
- if (b活性化してない)\r
- {\r
- this.n本体X = 0x1ed;\r
- this.n本体Y = 0x153;\r
- base.On活性化();\r
- }\r
- }\r
-\r
- public override void On非活性化()\r
- {\r
- if (b活性化してる)\r
- {\r
- if (this.ct白波移動 != null)\r
- {\r
- this.ct白波移動 = null;\r
- }\r
- if (this.ctランク表示 != null)\r
- {\r
- this.ctランク表示 = null;\r
- }\r
- base.On非活性化();\r
- }\r
- }\r
-\r
- public override void OnManagedリソースの作成()\r
- {\r
- if (base.b活性化してる)\r
- {\r
- this.txランクパネル = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenResult rank panel.png"));\r
- this.tx白波 = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenResult rank wave.png"));\r
- switch (CDTXMania.Instance.stage結果.n総合ランク値)\r
- {\r
- case CScoreIni.ERANK.SS:\r
- this.txランク文字 = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenResult rankSS.png"));\r
- break;\r
-\r
- case CScoreIni.ERANK.S:\r
- this.txランク文字 = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenResult rankS.png"));\r
- break;\r
-\r
- case CScoreIni.ERANK.A:\r
- this.txランク文字 = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenResult rankA.png"));\r
- break;\r
-\r
- case CScoreIni.ERANK.B:\r
- this.txランク文字 = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenResult rankB.png"));\r
- break;\r
-\r
- case CScoreIni.ERANK.C:\r
- this.txランク文字 = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenResult rankC.png"));\r
- break;\r
-\r
- case CScoreIni.ERANK.D:\r
- this.txランク文字 = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenResult rankD.png"));\r
- break;\r
-\r
- case CScoreIni.ERANK.E:\r
- case CScoreIni.ERANK.UNKNOWN: // #23534 2010.10.28 yyagi: 演奏チップが0個のときは、rankEと見なす\r
- this.txランク文字 = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenResult rankE.png"));\r
- break;\r
-\r
- default:\r
- this.txランク文字 = null;\r
- break;\r
- }\r
- base.OnManagedリソースの作成();\r
- }\r
- }\r
-\r
- public override void OnManagedリソースの解放()\r
- {\r
- if (base.b活性化してる)\r
- {\r
- TextureFactory.tテクスチャの解放(ref this.txランクパネル);\r
- TextureFactory.tテクスチャの解放(ref this.tx白波);\r
- TextureFactory.tテクスチャの解放(ref this.txランク文字);\r
- base.OnManagedリソースの解放();\r
- }\r
- }\r
-\r
- public override int On進行描画()\r
- {\r
- if (base.b活性化してる)\r
- {\r
- if (base.b初めての進行描画)\r
- {\r
- this.ct白波移動 = new CCounter(-132, 0x170, 10, CDTXMania.Instance.Timer);\r
- this.ctランク表示 = new CCounter(0, 0x514, 2, CDTXMania.Instance.Timer);\r
- base.b初めての進行描画 = false;\r
- }\r
- this.ct白波移動.t進行Loop();\r
- this.ctランク表示.t進行();\r
- if (this.ctランク表示.n現在の値 >= 700)\r
- {\r
- float y = (this.ctランク表示.n現在の値 > 0x3e8) ? 1f : (((float)(this.ctランク表示.n現在の値 - 700)) / 300f);\r
- if (this.txランクパネル != null)\r
- {\r
- this.txランクパネル.n透明度 = (int)(255f * y);\r
- this.txランクパネル.vc拡大縮小倍率 = new Vector3(1f, y, 1f);\r
- this.txランクパネル.t2D描画(\r
- CDTXMania.Instance.Device,\r
- this.n本体X * Scale.X,\r
- (this.n本体Y + ((int)((1f - y) * 64f))) * Scale.Y\r
- );\r
- }\r
- }\r
- if (this.ctランク表示.n現在の値 >= 0x3e8)\r
- {\r
- double num2 = ((double)(this.ctランク表示.n現在の値 - 0x3e8)) / 300.0;\r
- if (this.txランク文字 != null)\r
- {\r
- this.txランク文字.t2D描画(\r
- CDTXMania.Instance.Device,\r
- this.n本体X * Scale.X,\r
- this.n本体Y * Scale.Y,\r
- new Rectangle(\r
- 0,\r
- 0,\r
- (int)(128.0 * num2 * Scale.X),\r
- (int)(0x80 * Scale.Y)\r
- )\r
- );\r
- }\r
- }\r
- this.t描画_白波();\r
- if (!this.ctランク表示.b終了値に達した)\r
- {\r
- return 0;\r
- }\r
- return 1;\r
- }\r
- return 0;\r
- }\r
-\r
- private void t描画_白波()\r
- {\r
- if (!this.ctランク表示.b終了値に達してない)\r
- {\r
- int num = this.ct白波移動.n現在の値;\r
- int num2 = this.n本体X;\r
- int y = this.n本体Y + num;\r
- if ((y < (this.n本体Y + 0x80)) && ((y + 0x20) > this.n本体Y))\r
- {\r
- Rectangle rectangle = new Rectangle(0, 0, 0x20, 0x20);\r
- if (y < this.n本体Y)\r
- {\r
- rectangle.Y += this.n本体Y - y;\r
- rectangle.Height -= this.n本体Y - y;\r
- y = this.n本体Y;\r
- }\r
- if ((y + 0x20) > (this.n本体Y + 0x80))\r
- {\r
- rectangle.Height -= (y + 0x20) - (this.n本体Y + 0x80);\r
- }\r
- if (rectangle.Bottom > rectangle.Top)\r
- {\r
- for (int i = 0; i < 4; i++)\r
- {\r
- if (this.tx白波 != null)\r
- {\r
- Rectangle rectangle1 = rectangle;\r
- rectangle1.X = (int)(rectangle1.X * Scale.X);\r
- rectangle1.Y = (int)(rectangle1.Y * Scale.Y);\r
- rectangle1.Width = (int)(rectangle1.Width * Scale.X);\r
- rectangle1.Height = (int)(rectangle1.Height * Scale.Y);\r
- this.tx白波.t2D描画(\r
- CDTXMania.Instance.Device,\r
- (num2 + (i * 0x20)) * Scale.X,\r
- y * Scale.Y,\r
- rectangle1\r
- );\r
- }\r
- }\r
- }\r
- }\r
- }\r
- }\r
- }\r
-}\r