OSDN Git Service

#36043 rev.920 で手違いが起きたため、一度 rev.919 に戻し、ファイルを再修正。Ech定義の使用を CChip のプロパティを使うよう一部変更。
[dtxmania/dtxmania.git] / DTXManiaプロジェクト / コード / ステージ / 07.演奏 / ギター画面 / CAct演奏GuitarWailingBonus.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演奏GuitarWailingBonus : CAct演奏WailingBonus共通\r
10         {\r
11                 // メソッド\r
12 \r
13                 public CAct演奏GuitarWailingBonus()\r
14                 {\r
15                         base.b活性化してない = true;\r
16                 }\r
17                 //public override void Start( E楽器パート part )\r
18                 //{\r
19                 //    this.Start( part, null );\r
20                 //}\r
21                 public override void Start( E楽器パート part, CChip r歓声Chip )\r
22                 {\r
23                         if( part != E楽器パート.DRUMS )\r
24                         {\r
25                                 for( int i = 0; i < 4; i++ )\r
26                                 {\r
27                                         if( ( this.ct進行用[ (int) part, i ] == null ) || this.ct進行用[ (int) part, i ].b停止中 )\r
28                                         {\r
29                                                 this.ct進行用[ (int) part, i ] = new CCounter( 0, 300, 2, CDTXMania.Instance.Timer );\r
30                                                 if( CDTXMania.Instance.ConfigIni.b歓声を発声する )\r
31                                                 {\r
32                                                         if( r歓声Chip != null )\r
33                                                         {\r
34                                                                 CDTXMania.Instance.DTX.tチップの再生( r歓声Chip, CSound管理.rc演奏用タイマ.nシステム時刻, (int) Eレーン.BGM, CDTXMania.Instance.DTX.nモニタを考慮した音量( E楽器パート.UNKNOWN ) );\r
35                                                                 return;\r
36                                                         }\r
37                                                         CDTXMania.Instance.Skin.sound歓声音.n位置_次に鳴るサウンド = ( part == E楽器パート.GUITAR ) ? -50 : 50;\r
38                                                         CDTXMania.Instance.Skin.sound歓声音.t再生する();\r
39                                                         return;\r
40                                                 }\r
41                                                 break;\r
42                                         }\r
43                                 }\r
44                         }\r
45                 }\r
46 \r
47 \r
48                 // CActivity 実装\r
49 \r
50                 public override void On活性化()\r
51                 {\r
52                         for( int i = 0; i < 3; i++ )\r
53                         {\r
54                                 for( int j = 0; j < 4; j++ )\r
55                                 {\r
56                                         this.ct進行用[ i, j ] = null;\r
57                                 }\r
58                         }\r
59                         base.On活性化();\r
60                 }\r
61                 public override int On進行描画()\r
62                 {\r
63                         if( !base.b活性化してない )\r
64                         {\r
65                                 for( int i = 0; i < 2; i++ )\r
66                                 {\r
67                                         E楽器パート e楽器パート = ( i == 0 ) ? E楽器パート.GUITAR : E楽器パート.BASS;\r
68                                         for( int k = 0; k < 4; k++ )\r
69                                         {\r
70                                                 if( ( this.ct進行用[ (int) e楽器パート, k ] != null ) && !this.ct進行用[ (int) e楽器パート, k ].b停止中 )\r
71                                                 {\r
72                                                         if( this.ct進行用[ (int) e楽器パート, k ].b終了値に達した )\r
73                                                         {\r
74                                                                 this.ct進行用[ (int) e楽器パート, k ].t停止();\r
75                                                         }\r
76                                                         else\r
77                                                         {\r
78                                                                 this.ct進行用[ (int) e楽器パート, k ].t進行();\r
79                                                         }\r
80                                                 }\r
81                                         }\r
82                                 }\r
83                                 for( int j = 0; j < 2; j++ )\r
84                                 {\r
85                                         E楽器パート e楽器パート2 = ( j == 0 ) ? E楽器パート.GUITAR : E楽器パート.BASS;\r
86                                         for( int m = 0; m < 4; m++ )\r
87                                         {\r
88                                                 if( ( this.ct進行用[ (int) e楽器パート2, m ] != null ) && !this.ct進行用[ (int) e楽器パート2, m ].b停止中 )\r
89                                                 {\r
90                                                         int x = ( ( e楽器パート2 == E楽器パート.GUITAR ) ? 0x1a : 480 ) + 0x71;\r
91                                                         int num6 = 0;\r
92                                                         int num7 = 0;\r
93                                                         int num8 = this.ct進行用[ (int) e楽器パート2, m ].n現在の値;\r
94                                                         if( num8 < 100 )\r
95                                                         {\r
96                                                                 num6 = (int) ( 64.0 + ( 290.0 * Math.Cos( Math.PI / 2 * ( ( (double) num8 ) / 100.0 ) ) ) );\r
97                                                         }\r
98                                                         else if( num8 < 150 )\r
99                                                         {\r
100                                                                 num6 = (int) ( 64.0 + ( ( 150 - num8 ) * Math.Sin( ( Math.PI * ( ( num8 - 100 ) % 0x19 ) ) / 25.0 ) ) );\r
101                                                         }\r
102                                                         else if( num8 < 200 )\r
103                                                         {\r
104                                                                 num6 = 0x40;\r
105                                                         }\r
106                                                         else\r
107                                                         {\r
108                                                                 num6 = (int) ( 64.0 - ( ( (double) ( 290 * ( num8 - 200 ) ) ) / 100.0 ) );\r
109                                                         }\r
110                                                         if( CDTXMania.Instance.ConfigIni.bReverse[ (int) e楽器パート2 ] )\r
111                                                         {\r
112                                                                 num6 = ( 0x199 - num6 ) - 0xf4;\r
113                                                         }\r
114                                                         Rectangle rectangle = new Rectangle( 0, 0, 0x1a, 0x7a * 2 );\r
115                                                         if( ( 0x199 - num6 ) < rectangle.Bottom )\r
116                                                         {\r
117                                                                 rectangle.Height = ( 0x199 - num6 ) - rectangle.Top;\r
118                                                         }\r
119                                                         if( num6 < 0 )\r
120                                                         {\r
121                                                                 rectangle.Y = -num6;\r
122                                                                 rectangle.Height -= -num6;\r
123                                                                 num7 = -num6;\r
124                                                         }\r
125                                                         if ( ( rectangle.Top < rectangle.Bottom ) && ( this.txWailingBonus != null ) )\r
126                                                         {\r
127                                                                 rectangle.X = (int) ( rectangle.X * Scale.X );\r
128                                                                 rectangle.Y = (int) ( rectangle.Y * Scale.Y );\r
129                                                                 rectangle.Width = (int) ( rectangle.Width * Scale.X );\r
130                                                                 rectangle.Height = (int) ( rectangle.Height * Scale.Y );\r
131 \r
132                                                                 this.txWailingBonus.t2D描画(\r
133                                                                         CDTXMania.Instance.Device,\r
134                                                                         x * Scale.X,\r
135                                                                         ( num6 + num7 ) * Scale.Y,\r
136                                                                         rectangle\r
137                                                                 );\r
138                                                         }\r
139                                                         //num7 = 0;\r
140                                                         //rectangle = new Rectangle( 0x1a, 0, 0x1a, 0x7a );\r
141                                                         //if( ( 0x199 - ( num6 + 0x7a ) ) < rectangle.Bottom )\r
142                                                         //{\r
143                                                         //    rectangle.Height = ( 0x199 - ( num6 + 0x7a ) ) - rectangle.Top;\r
144                                                         //}\r
145                                                         //if( ( num6 + 0x7a ) < 0 )\r
146                                                         //{\r
147                                                         //    rectangle.Y = -( num6 + 0x7a );\r
148                                                         //    rectangle.Height -= rectangle.Y;\r
149                                                         //    num7 = -( num6 + 0x7a );\r
150                                                         //}\r
151                                                         //if( ( rectangle.Top < rectangle.Bottom ) && ( this.txWailingBonus != null ) )\r
152                                                         //{\r
153                                                         //    this.txWailingBonus.t2D描画( CDTXMania.Instance.app.Device, x, ( num6 + num7 ) + 0x7a, rectangle );\r
154                                                         //}\r
155                                                 }\r
156                                         }\r
157                                 }\r
158                         }\r
159                         return 0;\r
160                 }\r
161         }\r
162 }\r