2 using System.Collections.Generic;
\r
4 using System.Drawing;
\r
9 internal class CAct演奏GuitarWailingBonus : CActivity
\r
13 public CAct演奏GuitarWailingBonus()
\r
15 base.b活性化してない = true;
\r
17 public void Start( E楽器パート part )
\r
19 this.Start( part, null );
\r
21 public void Start( E楽器パート part, CDTX.CChip r歓声Chip )
\r
23 if( part != E楽器パート.DRUMS )
\r
25 for( int i = 0; i < 4; i++ )
\r
27 if( ( this.ct進行用[ (int) part, i ] == null ) || this.ct進行用[ (int) part, i ].b停止中 )
\r
29 this.ct進行用[ (int) part, i ] = new CCounter( 0, 300, 2, CDTXMania.Timer );
\r
30 if( CDTXMania.ConfigIni.b歓声を発声する )
\r
32 if( r歓声Chip != null )
\r
34 CDTXMania.DTX.tチップの再生( r歓声Chip, CDTXMania.Timer.nシステム時刻, 10, CDTXMania.DTX.nモニタを考慮した音量( E楽器パート.UNKNOWN ) );
\r
37 CDTXMania.Skin.sound歓声音.n位置・次に鳴るサウンド = ( part == E楽器パート.GUITAR ) ? -50 : 50;
\r
38 CDTXMania.Skin.sound歓声音.t再生する();
\r
50 public override void On活性化()
\r
52 for( int i = 0; i < 3; i++ )
\r
54 for( int j = 0; j < 4; j++ )
\r
56 this.ct進行用[ i, j ] = null;
\r
61 public override void OnManagedリソースの作成()
\r
63 if( !base.b活性化してない )
\r
65 this.txWailingBonus = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenPlay wailing bonus.png" ) );
\r
66 base.OnManagedリソースの作成();
\r
69 public override void OnManagedリソースの解放()
\r
71 if( !base.b活性化してない )
\r
73 CDTXMania.tテクスチャの解放( ref this.txWailingBonus );
\r
74 base.OnManagedリソースの解放();
\r
77 public override int On進行描画()
\r
79 if( !base.b活性化してない )
\r
81 for( int i = 0; i < 2; i++ )
\r
83 E楽器パート e楽器パート = ( i == 0 ) ? E楽器パート.GUITAR : E楽器パート.BASS;
\r
84 for( int k = 0; k < 4; k++ )
\r
86 if( ( this.ct進行用[ (int) e楽器パート, k ] != null ) && !this.ct進行用[ (int) e楽器パート, k ].b停止中 )
\r
88 if( this.ct進行用[ (int) e楽器パート, k ].b終了値に達した )
\r
90 this.ct進行用[ (int) e楽器パート, k ].t停止();
\r
94 this.ct進行用[ (int) e楽器パート, k ].t進行();
\r
99 for( int j = 0; j < 2; j++ )
\r
101 E楽器パート e楽器パート2 = ( j == 0 ) ? E楽器パート.GUITAR : E楽器パート.BASS;
\r
102 for( int m = 0; m < 4; m++ )
\r
104 if( ( this.ct進行用[ (int) e楽器パート2, m ] != null ) && !this.ct進行用[ (int) e楽器パート2, m ].b停止中 )
\r
106 int x = ( ( e楽器パート2 == E楽器パート.GUITAR ) ? 0x1a : 480 ) + 0x71;
\r
109 int num8 = this.ct進行用[ (int) e楽器パート2, m ].n現在の値;
\r
112 num6 = (int) ( 64.0 + ( 290.0 * Math.Cos( 1.5707963267948966 * ( ( (double) num8 ) / 100.0 ) ) ) );
\r
114 else if( num8 < 150 )
\r
116 num6 = (int) ( 64.0 + ( ( 150 - num8 ) * Math.Sin( ( 3.1415926535897931 * ( ( num8 - 100 ) % 0x19 ) ) / 25.0 ) ) );
\r
118 else if( num8 < 200 )
\r
124 num6 = (int) ( 64.0 - ( ( (double) ( 290 * ( num8 - 200 ) ) ) / 100.0 ) );
\r
126 if( CDTXMania.ConfigIni.bReverse[ (int) e楽器パート2 ] )
\r
128 num6 = ( 0x199 - num6 ) - 0xf4;
\r
130 Rectangle rectangle = new Rectangle( 0, 0, 0x1a, 0x7a );
\r
131 if( ( 0x199 - num6 ) < rectangle.Bottom )
\r
133 rectangle.Height = ( 0x199 - num6 ) - rectangle.Top;
\r
137 rectangle.Y = -num6;
\r
138 rectangle.Height -= -num6;
\r
141 if( ( rectangle.Top < rectangle.Bottom ) && ( this.txWailingBonus != null ) )
\r
143 this.txWailingBonus.t2D描画( CDTXMania.app.Device, x, num6 + num7, rectangle );
\r
146 rectangle = new Rectangle( 0x1a, 0, 0x1a, 0x7a );
\r
147 if( ( 0x199 - ( num6 + 0x7a ) ) < rectangle.Bottom )
\r
149 rectangle.Height = ( 0x199 - ( num6 + 0x7a ) ) - rectangle.Top;
\r
151 if( ( num6 + 0x7a ) < 0 )
\r
153 rectangle.Y = -( num6 + 0x7a );
\r
154 rectangle.Height -= rectangle.Y;
\r
155 num7 = -( num6 + 0x7a );
\r
157 if( ( rectangle.Top < rectangle.Bottom ) && ( this.txWailingBonus != null ) )
\r
159 this.txWailingBonus.t2D描画( CDTXMania.app.Device, x, ( num6 + num7 ) + 0x7a, rectangle );
\r
171 #region [ private ]
\r
172 //-----------------
\r
173 private CCounter[,] ct進行用 = new CCounter[ 3, 4 ];
\r
174 private CTexture txWailingBonus;
\r
175 //-----------------
\r