2 using System.Collections.Generic;
\r
4 using System.Drawing;
\r
9 internal class CAct演奏WailingBonus共通 : CActivity
\r
11 public CAct演奏WailingBonus共通()
\r
13 for (int i = 0; i < 3; ++i)
\r
15 for (int j = 0; j < 4; ++j)
\r
20 base.b活性化してない = true;
\r
23 public void Start(E楽器パート part, CChip r歓声Chip = null)
\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
46 public override void On活性化()
\r
51 public override void On非活性化()
\r
53 for (int i = 0; i < 3; i++)
\r
55 for (int j = 0; j < 4; j++)
\r
57 this.ct進行用[i, j] = null;
\r
63 public override void OnManagedリソースの作成()
\r
67 this.txWailingBonus = TextureFactory.tテクスチャの生成Af(CSkin.Path(@"Graphics\ScreenPlay wailing bonus.png"), false);
\r
68 base.OnManagedリソースの作成();
\r
71 public override void OnManagedリソースの解放()
\r
75 TextureFactory.tテクスチャの解放(ref this.txWailingBonus);
\r
76 base.OnManagedリソースの解放();
\r
80 public override int On進行描画()
\r
84 for (int i = 0; i < 2; i++)
\r
86 E楽器パート e楽器パート = (i == 0) ? E楽器パート.GUITAR : E楽器パート.BASS;
\r
87 if (CDTXMania.Instance.ConfigIni.b楽器有効[e楽器パート])
\r
89 for (int k = 0; k < 4; k++)
\r
91 if ((this.ct進行用[(int)e楽器パート, k] != null) && !this.ct進行用[(int)e楽器パート, k].b停止中)
\r
93 if (this.ct進行用[(int)e楽器パート, k].b終了値に達した)
\r
95 this.ct進行用[(int)e楽器パート, k].t停止();
\r
99 this.ct進行用[(int)e楽器パート, k].t進行();
\r
103 if ((this.ct進行用[(int)e楽器パート, k] != null) && !this.ct進行用[(int)e楽器パート, k].b停止中)
\r
105 Rectangle rc = CDTXMania.Instance.Coordinates.ImgGtWailingBonus;
\r
107 int x = (e楽器パート == E楽器パート.GUITAR) ?
\r
108 CDTXMania.Instance.Coordinates.Lane.GtW.X + (CDTXMania.Instance.Coordinates.Lane.GtW.W - rc.Width) / 2 :
\r
109 CDTXMania.Instance.Coordinates.Lane.BsW.X + (CDTXMania.Instance.Coordinates.Lane.BsW.W - rc.Width) / 2;
\r
112 int ct = this.ct進行用[(int)e楽器パート, k].n現在の値;
\r
114 int yj = C演奏判定ライン座標共通.n判定ラインY座標(e楽器パート, false, true, C演奏判定ライン座標共通.Reverse.NotReverse);
\r
118 y = (int)(yj + (rc.Height * Math.Cos(Math.PI / 2 * (((double)ct) / 100.0))));
\r
122 y = (int)(yj + ((150 - ct) * Math.Sin((Math.PI * ((ct - 100) % 25)) / 25.0)));
\r
130 y = (int)(yj - (((double)(rc.Height * (ct - 200))) / 100.0));
\r
133 if (CDTXMania.Instance.ConfigIni.bReverse[e楽器パート])
\r
135 y = SampleFramework.GameWindowSize.Height - y - rc.Height;
\r
138 if (this.txWailingBonus != null)
\r
140 this.txWailingBonus.t2D描画(CDTXMania.Instance.Device, x, y, rc);
\r
151 protected CCounter[,] ct進行用 = new CCounter[3, 4];
\r
152 protected CTextureAf txWailingBonus;
\r