OSDN Git Service

続・演奏画面のリファクタ。ドラムとギター画面で共通で使用しているメソッドを1つにまとめる作業。まだ完全には作業完了していない。少しずつ慎重に進めます。
[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 : CAct演奏WailingBonus\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 override void Start( E楽器パート part )\r
22                 //{\r
23                 //    this.Start( part, null );\r
24                 //}\r
25                 public override 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 \r
77                 public override int On進行描画()\r
78                 {\r
79                         if( !base.b活性化してない )\r
80                         {\r
81                                 for( int i = 0; i < 2; i++ )\r
82                                 {\r
83                                         E楽器パート e楽器パート = ( i == 0 ) ? E楽器パート.GUITAR : E楽器パート.BASS;\r
84                                         for( int j = 0; j < 4; j++ )\r
85                                         {\r
86                                                 if( !this.ct進行用[ (int) e楽器パート, j ].b停止中 )\r
87                                                 {\r
88                                                         if( this.ct進行用[ (int) e楽器パート, j ].b終了値に達した )\r
89                                                         {\r
90                                                                 this.ct進行用[ (int) e楽器パート, j ].t停止();\r
91                                                         }\r
92                                                         else\r
93                                                         {\r
94                                                                 this.ct進行用[ (int) e楽器パート, j ].t進行();\r
95                                                                 int x = ( ( e楽器パート == E楽器パート.GUITAR ) ? 0x1fb : 0x18e ) + 0x4e;\r
96                                                                 int num4 = 0;\r
97                                                                 int num5 = 0;\r
98                                                                 int num6 = this.ct進行用[ (int) e楽器パート, j ].n現在の値;\r
99                                                                 if( num6 < 100 )\r
100                                                                 {\r
101                                                                         num4 = (int) ( 64.0 + ( 290.0 * Math.Cos( 1.5707963267948966 * ( ( (float) num6 ) / 100f ) ) ) );\r
102                                                                 }\r
103                                                                 else if( num6 < 150 )\r
104                                                                 {\r
105                                                                         num4 = (int) ( 64.0 + ( ( 150 - num6 ) * Math.Sin( ( 3.1415926535897931 * ( ( num6 - 100 ) % 0x19 ) ) / 25.0 ) ) );\r
106                                                                 }\r
107                                                                 else if( num6 < 200 )\r
108                                                                 {\r
109                                                                         num4 = 0x40;\r
110                                                                 }\r
111                                                                 else\r
112                                                                 {\r
113                                                                         num4 = (int) ( 64f - ( ( (float) ( 290 * ( num6 - 200 ) ) ) / 100f ) );\r
114                                                                 }\r
115                                                                 if( CDTXMania.ConfigIni.bReverse[ (int) e楽器パート ] )\r
116                                                                 {\r
117                                                                         num4 = ( 0x163 - num4 ) - 0xf4;\r
118                                                                 }\r
119                                                                 Rectangle rectangle = new Rectangle( 0, 0, 0x1a, 0x7a );\r
120                                                                 if( ( 0x163 - num4 ) < rectangle.Bottom )\r
121                                                                 {\r
122                                                                         rectangle.Height = ( 0x163 - num4 ) - rectangle.Top;\r
123                                                                 }\r
124                                                                 if( num4 < 0 )\r
125                                                                 {\r
126                                                                         rectangle.Y = -num4;\r
127                                                                         num5 = -num4;\r
128                                                                 }\r
129                                                                 if( ( rectangle.Top < rectangle.Bottom ) && ( this.txWailingBonus != null ) )\r
130                                                                 {\r
131                                                                         this.txWailingBonus.t2D描画( CDTXMania.app.Device, x, ( ( ( e楽器パート == E楽器パート.GUITAR ) ? 0x39 : 0x39 ) + num4 ) + num5, rectangle );\r
132                                                                 }\r
133                                                                 num5 = 0;\r
134                                                                 rectangle = new Rectangle( 0x1a, 0, 0x1a, 0x7a );\r
135                                                                 if( ( 0x163 - ( num4 + 0x7a ) ) < rectangle.Bottom )\r
136                                                                 {\r
137                                                                         rectangle.Height = ( 0x163 - ( num4 + 0x7a ) ) - rectangle.Top;\r
138                                                                 }\r
139                                                                 if( ( num4 + 0x7a ) < 0 )\r
140                                                                 {\r
141                                                                         rectangle.Y = -( num4 + 0x7a );\r
142                                                                         num5 = -( num4 + 0x7a );\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 ) + 0x7a, rectangle );\r
147                                                                 }\r
148                                                         }\r
149                                                 }\r
150                                         }\r
151                                 }\r
152                         }\r
153                         return 0;\r
154                 }\r
155         }\r
156 }\r