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
19 public override void Start(E楽器パート part, CChip r歓声Chip)
\r
21 if ((part == E楽器パート.GUITAR) || (part == E楽器パート.BASS))
\r
23 int num = (int)part;
\r
24 for (int i = 0; i < 4; i++)
\r
26 if (this.ct進行用[num, i].b停止中)
\r
28 this.ct進行用[num, i] = new CCounter(0, 300, 2, CDTXMania.Instance.Timer);
\r
29 if (CDTXMania.Instance.ConfigIni.b歓声を発声する)
\r
31 if (r歓声Chip != null)
\r
33 CDTXMania.Instance.DTX.tチップの再生(r歓声Chip, CSound管理.rc演奏用タイマ.nシステム時刻, (int)Eレーン.BGM, CDTXMania.Instance.DTX.nモニタを考慮した音量(E楽器パート.UNKNOWN));
\r
36 CDTXMania.Instance.Skin.sound歓声音.t再生する();
\r
48 public override void On活性化()
\r
50 for (int i = 0; i < 3; i++)
\r
52 for (int j = 0; j < 4; j++)
\r
54 this.ct進行用[i, j] = new CCounter();
\r
59 public override void On非活性化()
\r
61 for (int i = 0; i < 3; i++)
\r
63 for (int j = 0; j < 4; j++)
\r
65 this.ct進行用[i, j] = null;
\r
71 public override int On進行描画()
\r
75 for (int i = 0; i < 2; i++)
\r
77 E楽器パート e楽器パート = (i == 0) ? E楽器パート.GUITAR : E楽器パート.BASS;
\r
78 for (int j = 0; j < 4; j++)
\r
80 if (!this.ct進行用[(int)e楽器パート, j].b停止中)
\r
82 if (this.ct進行用[(int)e楽器パート, j].b終了値に達した)
\r
84 this.ct進行用[(int)e楽器パート, j].t停止();
\r
88 this.ct進行用[(int)e楽器パート, j].t進行();
\r
89 int x = ((e楽器パート == E楽器パート.GUITAR) ? 1521 + 234 : 1194 + 234);
\r
90 if (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Center)
\r
92 x -= (e楽器パート == E楽器パート.GUITAR) ? 71 : 994;
\r
96 int num6 = this.ct進行用[(int)e楽器パート, j].n現在の値;
\r
99 num4 = (int)(64.0 + (290.0 * Math.Cos(Math.PI / 2 * (((float)num6) / 100f))));
\r
101 else if (num6 < 150)
\r
103 num4 = (int)(64.0 + ((150 - num6) * Math.Sin((Math.PI * ((num6 - 100) % 0x19)) / 25.0)));
\r
105 else if (num6 < 200)
\r
111 num4 = (int)(64f - (((float)(290 * (num6 - 200))) / 100f));
\r
113 if (CDTXMania.Instance.ConfigIni.bReverse[(int)e楽器パート])
\r
115 num4 = (0x163 - num4) - 0xf4;
\r
117 Rectangle rectangle = new Rectangle(0, 0, 0x1a, 0x7a * 2);
\r
118 if ((0x163 - num4) < rectangle.Bottom)
\r
120 rectangle.Height = (0x163 - num4) - rectangle.Top;
\r
124 rectangle.Y = -num4;
\r
127 if ((rectangle.Top < rectangle.Bottom) && (this.txWailingBonus != null))
\r
129 rectangle.X = (int)(rectangle.X * Scale.X);
\r
130 rectangle.Y = (int)(rectangle.Y * Scale.Y);
\r
131 rectangle.Width = (int)(rectangle.Width * Scale.X);
\r
132 rectangle.Height = (int)(rectangle.Height * Scale.Y);
\r
133 this.txWailingBonus.t2D描画(
\r
134 CDTXMania.Instance.Device,
\r
136 ((((e楽器パート == E楽器パート.GUITAR) ? 0x39 : 0x39) + num4) + num5) * Scale.Y,
\r
141 //rectangle = new Rectangle( 0x1a, 0, 0x1a, 0x7a );
\r
142 //if( ( 0x163 - ( num4 + 0x7a ) ) < rectangle.Bottom )
\r
144 // rectangle.Height = ( 0x163 - ( num4 + 0x7a ) ) - rectangle.Top;
\r
146 //if( ( num4 + 0x7a ) < 0 )
\r
148 // rectangle.Y = -( num4 + 0x7a );
\r
149 // num5 = -( num4 + 0x7a );
\r
151 //if( ( rectangle.Top < rectangle.Bottom ) && ( this.txWailingBonus != null ) )
\r
153 // this.txWailingBonus.t2D描画( CDTXMania.Instance.app.Device, x, ( ( ( ( e楽器パート == E楽器パート.GUITAR ) ? 0x39 : 0x39 ) + num4 ) + num5 ) + 0x7a, rectangle );
\r