OSDN Git Service

リポジトリの中間ファイルをすべて削除し、再構築。
[dtxmania/dtxmania.git] / DTXManiaプロジェクト / コード / ステージ / 07.演奏 / ドラム画面 / CAct演奏DrumsWailingBonus.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 CAct演奏DrumsWailingBonus : CActivity\r
10         {\r
11                 // コンストラクタ\r
12 \r
13                 public CAct演奏DrumsWailingBonus()\r
14                 {\r
15                         base.b活性化してない = true;\r
16                 }\r
17                 \r
18                 \r
19                 // メソッド\r
20 \r
21                 public void Start( E楽器パート part )\r
22                 {\r
23                         this.Start( part, null );\r
24                 }\r
25                 public void Start( E楽器パート part, CDTX.CChip r歓声Chip )\r
26                 {\r
27                         if( ( part == E楽器パート.GUITAR ) || ( part == E楽器パート.BASS ) )\r
28                         {\r
29                                 int num = (int) part;\r
30                                 for( int i = 0; i < 4; i++ )\r
31                                 {\r
32                                         if( this.ct進行用[ num, i ].b停止中 )\r
33                                         {\r
34                                                 this.ct進行用[ num, i ] = new CCounter( 0, 300, 2, CDTXMania.Timer );\r
35                                                 if( CDTXMania.ConfigIni.b歓声を発声する )\r
36                                                 {\r
37                                                         if( r歓声Chip != null )\r
38                                                         {\r
39                                                                 CDTXMania.DTX.tチップの再生( r歓声Chip, CDTXMania.Timer.nシステム時刻, 10, CDTXMania.DTX.nモニタを考慮した音量( E楽器パート.UNKNOWN ) );\r
40                                                                 return;\r
41                                                         }\r
42                                                         CDTXMania.Skin.sound歓声音.t再生する();\r
43                                                         return;\r
44                                                 }\r
45                                                 break;\r
46                                         }\r
47                                 }\r
48                         }\r
49                 }\r
50 \r
51 \r
52                 // CActivity 実装\r
53 \r
54                 public override void On活性化()\r
55                 {\r
56                         for( int i = 0; i < 3; i++ )\r
57                         {\r
58                                 for( int j = 0; j < 4; j++ )\r
59                                 {\r
60                                         this.ct進行用[ i, j ] = new CCounter();\r
61                                 }\r
62                         }\r
63                         base.On活性化();\r
64                 }\r
65                 public override void On非活性化()\r
66                 {\r
67                         for( int i = 0; i < 3; i++ )\r
68                         {\r
69                                 for( int j = 0; j < 4; j++ )\r
70                                 {\r
71                                         this.ct進行用[ i, j ] = null;\r
72                                 }\r
73                         }\r
74                         base.On非活性化();\r
75                 }\r
76                 public override void OnManagedリソースの作成()\r
77                 {\r
78                         if( !base.b活性化してない )\r
79                         {\r
80                                 this.txWailingBonus = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenPlay wailing bonus.png" ) );\r
81                                 base.OnManagedリソースの作成();\r
82                         }\r
83                 }\r
84                 public override void OnManagedリソースの解放()\r
85                 {\r
86                         if( !base.b活性化してない )\r
87                         {\r
88                                 CDTXMania.tテクスチャの解放( ref this.txWailingBonus );\r
89                                 base.OnManagedリソースの解放();\r
90                         }\r
91                 }\r
92                 public override int On進行描画()\r
93                 {\r
94                         if( !base.b活性化してない )\r
95                         {\r
96                                 for( int i = 0; i < 2; i++ )\r
97                                 {\r
98                                         E楽器パート e楽器パート = ( i == 0 ) ? E楽器パート.GUITAR : E楽器パート.BASS;\r
99                                         for( int j = 0; j < 4; j++ )\r
100                                         {\r
101                                                 if( !this.ct進行用[ (int) e楽器パート, j ].b停止中 )\r
102                                                 {\r
103                                                         if( this.ct進行用[ (int) e楽器パート, j ].b終了値に達した )\r
104                                                         {\r
105                                                                 this.ct進行用[ (int) e楽器パート, j ].t停止();\r
106                                                         }\r
107                                                         else\r
108                                                         {\r
109                                                                 this.ct進行用[ (int) e楽器パート, j ].t進行();\r
110                                                                 int x = ( ( e楽器パート == E楽器パート.GUITAR ) ? 0x1fb : 0x18e ) + 0x4e;\r
111                                                                 int num4 = 0;\r
112                                                                 int num5 = 0;\r
113                                                                 int num6 = this.ct進行用[ (int) e楽器パート, j ].n現在の値;\r
114                                                                 if( num6 < 100 )\r
115                                                                 {\r
116                                                                         num4 = (int) ( 64.0 + ( 290.0 * Math.Cos( 1.5707963267948966 * ( ( (float) num6 ) / 100f ) ) ) );\r
117                                                                 }\r
118                                                                 else if( num6 < 150 )\r
119                                                                 {\r
120                                                                         num4 = (int) ( 64.0 + ( ( 150 - num6 ) * Math.Sin( ( 3.1415926535897931 * ( ( num6 - 100 ) % 0x19 ) ) / 25.0 ) ) );\r
121                                                                 }\r
122                                                                 else if( num6 < 200 )\r
123                                                                 {\r
124                                                                         num4 = 0x40;\r
125                                                                 }\r
126                                                                 else\r
127                                                                 {\r
128                                                                         num4 = (int) ( 64f - ( ( (float) ( 290 * ( num6 - 200 ) ) ) / 100f ) );\r
129                                                                 }\r
130                                                                 if( CDTXMania.ConfigIni.bReverse[ (int) e楽器パート ] )\r
131                                                                 {\r
132                                                                         num4 = ( 0x163 - num4 ) - 0xf4;\r
133                                                                 }\r
134                                                                 Rectangle rectangle = new Rectangle( 0, 0, 0x1a, 0x7a );\r
135                                                                 if( ( 0x163 - num4 ) < rectangle.Bottom )\r
136                                                                 {\r
137                                                                         rectangle.Height = ( 0x163 - num4 ) - rectangle.Top;\r
138                                                                 }\r
139                                                                 if( num4 < 0 )\r
140                                                                 {\r
141                                                                         rectangle.Y = -num4;\r
142                                                                         num5 = -num4;\r
143                                                                 }\r
144                                                                 if( ( rectangle.Top < rectangle.Bottom ) && ( this.txWailingBonus != null ) )\r
145                                                                 {\r
146                                                                         this.txWailingBonus.t2D描画( CDTXMania.app.Device, x, ( ( ( e楽器パート == E楽器パート.GUITAR ) ? 0x39 : 0x39 ) + num4 ) + num5, rectangle );\r
147                                                                 }\r
148                                                                 num5 = 0;\r
149                                                                 rectangle = new Rectangle( 0x1a, 0, 0x1a, 0x7a );\r
150                                                                 if( ( 0x163 - ( num4 + 0x7a ) ) < rectangle.Bottom )\r
151                                                                 {\r
152                                                                         rectangle.Height = ( 0x163 - ( num4 + 0x7a ) ) - rectangle.Top;\r
153                                                                 }\r
154                                                                 if( ( num4 + 0x7a ) < 0 )\r
155                                                                 {\r
156                                                                         rectangle.Y = -( num4 + 0x7a );\r
157                                                                         num5 = -( num4 + 0x7a );\r
158                                                                 }\r
159                                                                 if( ( rectangle.Top < rectangle.Bottom ) && ( this.txWailingBonus != null ) )\r
160                                                                 {\r
161                                                                         this.txWailingBonus.t2D描画( CDTXMania.app.Device, x, ( ( ( ( e楽器パート == E楽器パート.GUITAR ) ? 0x39 : 0x39 ) + num4 ) + num5 ) + 0x7a, rectangle );\r
162                                                                 }\r
163                                                         }\r
164                                                 }\r
165                                         }\r
166                                 }\r
167                         }\r
168                         return 0;\r
169                 }\r
170 \r
171 \r
172                 // その他\r
173 \r
174                 #region [ private ]\r
175                 //-----------------\r
176                 private CCounter[,] ct進行用 = new CCounter[ 3, 4 ];\r
177                 private CTexture txWailingBonus;\r
178                 //-----------------\r
179                 #endregion\r
180         }\r
181 }\r