2 using System.Collections.Generic;
\r
4 using System.Drawing;
\r
9 internal class CAct演奏GuitarWailingBonus : CAct演奏WailingBonus共通
\r
13 public CAct演奏GuitarWailingBonus()
\r
15 base.b活性化してない = true;
\r
17 //public override void Start( E楽器パート part )
\r
19 // this.Start( part, null );
\r
21 public override void Start( E楽器パート part, 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.Instance.Timer );
\r
30 if( CDTXMania.Instance.ConfigIni.b歓声を発声する )
\r
32 if( r歓声Chip != null )
\r
34 CDTXMania.Instance.DTX.tチップの再生( r歓声Chip, CSound管理.rc演奏用タイマ.nシステム時刻, (int) Eレーン.BGM, CDTXMania.Instance.DTX.nモニタを考慮した音量( E楽器パート.UNKNOWN ) );
\r
37 CDTXMania.Instance.Skin.sound歓声音.n位置_次に鳴るサウンド = ( part == E楽器パート.GUITAR ) ? -50 : 50;
\r
38 CDTXMania.Instance.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 int On進行描画()
\r
63 if( !base.b活性化してない )
\r
65 for( int i = 0; i < 2; i++ )
\r
67 E楽器パート e楽器パート = ( i == 0 ) ? E楽器パート.GUITAR : E楽器パート.BASS;
\r
68 for( int k = 0; k < 4; k++ )
\r
70 if( ( this.ct進行用[ (int) e楽器パート, k ] != null ) && !this.ct進行用[ (int) e楽器パート, k ].b停止中 )
\r
72 if( this.ct進行用[ (int) e楽器パート, k ].b終了値に達した )
\r
74 this.ct進行用[ (int) e楽器パート, k ].t停止();
\r
78 this.ct進行用[ (int) e楽器パート, k ].t進行();
\r
83 for( int j = 0; j < 2; j++ )
\r
85 E楽器パート e楽器パート2 = ( j == 0 ) ? E楽器パート.GUITAR : E楽器パート.BASS;
\r
86 for( int m = 0; m < 4; m++ )
\r
88 if( ( this.ct進行用[ (int) e楽器パート2, m ] != null ) && !this.ct進行用[ (int) e楽器パート2, m ].b停止中 )
\r
90 int x = ( ( e楽器パート2 == E楽器パート.GUITAR ) ? 0x1a : 480 ) + 0x71;
\r
93 int num8 = this.ct進行用[ (int) e楽器パート2, m ].n現在の値;
\r
96 num6 = (int) ( 64.0 + ( 290.0 * Math.Cos( Math.PI / 2 * ( ( (double) num8 ) / 100.0 ) ) ) );
\r
98 else if( num8 < 150 )
\r
100 num6 = (int) ( 64.0 + ( ( 150 - num8 ) * Math.Sin( ( Math.PI * ( ( num8 - 100 ) % 0x19 ) ) / 25.0 ) ) );
\r
102 else if( num8 < 200 )
\r
108 num6 = (int) ( 64.0 - ( ( (double) ( 290 * ( num8 - 200 ) ) ) / 100.0 ) );
\r
110 if( CDTXMania.Instance.ConfigIni.bReverse[ (int) e楽器パート2 ] )
\r
112 num6 = ( 0x199 - num6 ) - 0xf4;
\r
114 Rectangle rectangle = new Rectangle( 0, 0, 0x1a, 0x7a * 2 );
\r
115 if( ( 0x199 - num6 ) < rectangle.Bottom )
\r
117 rectangle.Height = ( 0x199 - num6 ) - rectangle.Top;
\r
121 rectangle.Y = -num6;
\r
122 rectangle.Height -= -num6;
\r
125 if ( ( rectangle.Top < rectangle.Bottom ) && ( this.txWailingBonus != null ) )
\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
132 this.txWailingBonus.t2D描画(
\r
133 CDTXMania.Instance.Device,
\r
135 ( num6 + num7 ) * Scale.Y,
\r
140 //rectangle = new Rectangle( 0x1a, 0, 0x1a, 0x7a );
\r
141 //if( ( 0x199 - ( num6 + 0x7a ) ) < rectangle.Bottom )
\r
143 // rectangle.Height = ( 0x199 - ( num6 + 0x7a ) ) - rectangle.Top;
\r
145 //if( ( num6 + 0x7a ) < 0 )
\r
147 // rectangle.Y = -( num6 + 0x7a );
\r
148 // rectangle.Height -= rectangle.Y;
\r
149 // num7 = -( num6 + 0x7a );
\r
151 //if( ( rectangle.Top < rectangle.Bottom ) && ( this.txWailingBonus != null ) )
\r
153 // this.txWailingBonus.t2D描画( CDTXMania.Instance.app.Device, x, ( num6 + num7 ) + 0x7a, rectangle );
\r