2 using System.Collections.Generic;
\r
4 using System.Drawing;
\r
9 internal class CAct演奏DrumsWailingBonus : CAct演奏WailingBonus
\r
13 public CAct演奏DrumsWailingBonus()
\r
15 base.b活性化してない = true;
\r
21 //public override void Start( E楽器パート part )
\r
23 // this.Start( part, null );
\r
25 public override void Start( E楽器パート part, CDTX.CChip r歓声Chip )
\r
27 if( ( part == E楽器パート.GUITAR ) || ( part == E楽器パート.BASS ) )
\r
29 int num = (int) part;
\r
30 for( int i = 0; i < 4; i++ )
\r
32 if( this.ct進行用[ num, i ].b停止中 )
\r
34 this.ct進行用[ num, i ] = new CCounter( 0, 300, 2, CDTXMania.Timer );
\r
35 if( CDTXMania.ConfigIni.b歓声を発声する )
\r
37 if( r歓声Chip != null )
\r
39 CDTXMania.DTX.tチップの再生( r歓声Chip, CDTXMania.Timer.nシステム時刻, 10, CDTXMania.DTX.nモニタを考慮した音量( E楽器パート.UNKNOWN ) );
\r
42 CDTXMania.Skin.sound歓声音.t再生する();
\r
54 public override void On活性化()
\r
56 for( int i = 0; i < 3; i++ )
\r
58 for( int j = 0; j < 4; j++ )
\r
60 this.ct進行用[ i, j ] = new CCounter();
\r
65 public override void On非活性化()
\r
67 for( int i = 0; i < 3; i++ )
\r
69 for( int j = 0; j < 4; j++ )
\r
71 this.ct進行用[ i, j ] = null;
\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 j = 0; j < 4; j++ )
\r
86 if( !this.ct進行用[ (int) e楽器パート, j ].b停止中 )
\r
88 if( this.ct進行用[ (int) e楽器パート, j ].b終了値に達した )
\r
90 this.ct進行用[ (int) e楽器パート, j ].t停止();
\r
94 this.ct進行用[ (int) e楽器パート, j ].t進行();
\r
95 int x = ( ( e楽器パート == E楽器パート.GUITAR ) ? 0x1fb : 0x18e ) + 0x4e;
\r
98 int num6 = this.ct進行用[ (int) e楽器パート, j ].n現在の値;
\r
101 num4 = (int) ( 64.0 + ( 290.0 * Math.Cos( 1.5707963267948966 * ( ( (float) num6 ) / 100f ) ) ) );
\r
103 else if( num6 < 150 )
\r
105 num4 = (int) ( 64.0 + ( ( 150 - num6 ) * Math.Sin( ( 3.1415926535897931 * ( ( num6 - 100 ) % 0x19 ) ) / 25.0 ) ) );
\r
107 else if( num6 < 200 )
\r
113 num4 = (int) ( 64f - ( ( (float) ( 290 * ( num6 - 200 ) ) ) / 100f ) );
\r
115 if( CDTXMania.ConfigIni.bReverse[ (int) e楽器パート ] )
\r
117 num4 = ( 0x163 - num4 ) - 0xf4;
\r
119 Rectangle rectangle = new Rectangle( 0, 0, 0x1a, 0x7a );
\r
120 if( ( 0x163 - num4 ) < rectangle.Bottom )
\r
122 rectangle.Height = ( 0x163 - num4 ) - rectangle.Top;
\r
126 rectangle.Y = -num4;
\r
129 if( ( rectangle.Top < rectangle.Bottom ) && ( this.txWailingBonus != null ) )
\r
131 this.txWailingBonus.t2D描画( CDTXMania.app.Device, x, ( ( ( e楽器パート == E楽器パート.GUITAR ) ? 0x39 : 0x39 ) + num4 ) + num5, rectangle );
\r
134 rectangle = new Rectangle( 0x1a, 0, 0x1a, 0x7a );
\r
135 if( ( 0x163 - ( num4 + 0x7a ) ) < rectangle.Bottom )
\r
137 rectangle.Height = ( 0x163 - ( num4 + 0x7a ) ) - rectangle.Top;
\r
139 if( ( num4 + 0x7a ) < 0 )
\r
141 rectangle.Y = -( num4 + 0x7a );
\r
142 num5 = -( num4 + 0x7a );
\r
144 if( ( rectangle.Top < rectangle.Bottom ) && ( this.txWailingBonus != null ) )
\r
146 this.txWailingBonus.t2D描画( CDTXMania.app.Device, x, ( ( ( ( e楽器パート == E楽器パート.GUITAR ) ? 0x39 : 0x39 ) + num4 ) + num5 ) + 0x7a, rectangle );
\r