2 using System.Collections.Generic;
\r
4 using System.Runtime.InteropServices;
\r
5 using System.Drawing;
\r
6 using System.Drawing.Imaging;
\r
8 using System.Diagnostics;
\r
9 using SlimDX.Direct3D9;
\r
14 internal class CStage演奏ギター画面 : CStage
\r
18 public bool bAUTOでないチップが1つでもバーを通過した
\r
27 public CStage演奏ギター画面()
\r
29 base.eステージID = CStage.Eステージ.演奏;
\r
30 base.eフェーズID = CStage.Eフェーズ.共通_通常状態;
\r
31 base.b活性化してない = true;
\r
32 base.list子Activities.Add( this.actStageFailed = new CAct演奏ステージ失敗() );
\r
33 base.list子Activities.Add( this.actAVI = new CAct演奏AVI() );
\r
34 base.list子Activities.Add( this.actBGA = new CAct演奏BGA() );
\r
35 base.list子Activities.Add( this.actPanel = new CAct演奏パネル文字列() );
\r
36 base.list子Activities.Add( this.act譜面スクロール速度 = new CAct演奏スクロール速度() );
\r
37 base.list子Activities.Add( this.actStatusPanels = new CAct演奏Guitarステータスパネル() );
\r
38 base.list子Activities.Add( this.actWailingBonus = new CAct演奏GuitarWailingBonus() );
\r
39 base.list子Activities.Add( this.actScore = new CAct演奏Guitarスコア() );
\r
40 base.list子Activities.Add( this.actRGB = new CAct演奏GuitarRGB() );
\r
41 base.list子Activities.Add( this.actLaneFlushGB = new CAct演奏GuitarレーンフラッシュGB() );
\r
42 base.list子Activities.Add( this.actJudgeString = new CAct演奏Guitar判定文字列() );
\r
43 base.list子Activities.Add( this.actGauge = new CAct演奏Guitarゲージ() );
\r
44 base.list子Activities.Add( this.actCombo = new CAct演奏Guitarコンボ() );
\r
45 base.list子Activities.Add( this.actChipFire = new CAct演奏Guitarチップファイア() );
\r
46 base.list子Activities.Add( this.actPlayInfo = new CAct演奏演奏情報() );
\r
47 base.list子Activities.Add( this.actFI = new CActFIFOBlack() );
\r
48 base.list子Activities.Add( this.actFO = new CActFIFOBlack() );
\r
49 base.list子Activities.Add( this.actFOClear = new CActFIFOWhite() );
\r
55 public void t演奏結果を格納する( out CScoreIni.C演奏記録 Drums, out CScoreIni.C演奏記録 Guitar, out CScoreIni.C演奏記録 Bass )
\r
57 Drums = new CScoreIni.C演奏記録();
\r
58 Guitar = new CScoreIni.C演奏記録();
\r
59 Bass = new CScoreIni.C演奏記録();
\r
60 if( CDTXMania.DTX.bチップがある.Guitar )
\r
62 Guitar.nスコア = this.actScore.Get( E楽器パート.GUITAR );
\r
63 Guitar.dbゲーム型スキル値 = CScoreIni.tゲーム型スキルを計算して返す( CDTXMania.DTX.LEVEL.Guitar, CDTXMania.DTX.n可視チップ数.Guitar, this.nヒット数・Auto含まない.Guitar.Perfect, this.actCombo.n現在のコンボ数.Guitar最高値 );
\r
64 Guitar.db演奏型スキル値 = CScoreIni.t演奏型スキルを計算して返す( CDTXMania.DTX.n可視チップ数.Guitar, this.nヒット数・Auto含まない.Guitar.Perfect, this.nヒット数・Auto含まない.Guitar.Great, this.nヒット数・Auto含まない.Guitar.Good, this.nヒット数・Auto含まない.Guitar.Poor, this.nヒット数・Auto含まない.Guitar.Miss );
\r
65 Guitar.nPerfect数 = CDTXMania.ConfigIni.bAutoPlay.Guitar ? this.nヒット数・Auto含む.Guitar.Perfect : this.nヒット数・Auto含まない.Guitar.Perfect;
\r
66 Guitar.nGreat数 = CDTXMania.ConfigIni.bAutoPlay.Guitar ? this.nヒット数・Auto含む.Guitar.Great : this.nヒット数・Auto含まない.Guitar.Great;
\r
67 Guitar.nGood数 = CDTXMania.ConfigIni.bAutoPlay.Guitar ? this.nヒット数・Auto含む.Guitar.Good : this.nヒット数・Auto含まない.Guitar.Good;
\r
68 Guitar.nPoor数 = CDTXMania.ConfigIni.bAutoPlay.Guitar ? this.nヒット数・Auto含む.Guitar.Poor : this.nヒット数・Auto含まない.Guitar.Poor;
\r
69 Guitar.nMiss数 = CDTXMania.ConfigIni.bAutoPlay.Guitar ? this.nヒット数・Auto含む.Guitar.Miss : this.nヒット数・Auto含まない.Guitar.Miss;
\r
70 Guitar.n最大コンボ数 = this.actCombo.n現在のコンボ数.Guitar最高値;
\r
71 Guitar.n全チップ数 = CDTXMania.DTX.n可視チップ数.Guitar;
\r
72 for( int i = 0; i < 10; i++ )
\r
74 Guitar.bAutoPlay[ i ] = CDTXMania.ConfigIni.bAutoPlay[ i ];
\r
76 Guitar.bTight = CDTXMania.ConfigIni.bTight;
\r
77 for( int j = 0; j < 3; j++ )
\r
79 Guitar.bSudden[ j ] = CDTXMania.ConfigIni.bSudden[ j ];
\r
80 Guitar.bHidden[ j ] = CDTXMania.ConfigIni.bHidden[ j ];
\r
81 Guitar.bReverse[ j ] = CDTXMania.ConfigIni.bReverse[ j ];
\r
82 Guitar.eRandom[ j ] = CDTXMania.ConfigIni.eRandom[ j ];
\r
83 Guitar.bLight[ j ] = CDTXMania.ConfigIni.bLight[ j ];
\r
84 Guitar.bLeft[ j ] = CDTXMania.ConfigIni.bLeft[ j ];
\r
85 Guitar.f譜面スクロール速度[ j ] = ( (float) ( CDTXMania.ConfigIni.n譜面スクロール速度[ j ] + 1 ) ) * 0.5f;
\r
87 Guitar.eDark = CDTXMania.ConfigIni.eDark;
\r
88 Guitar.n演奏速度分子 = CDTXMania.ConfigIni.n演奏速度;
\r
89 Guitar.n演奏速度分母 = 20;
\r
90 Guitar.eHHGroup = CDTXMania.ConfigIni.eHHGroup;
\r
91 Guitar.eFTGroup = CDTXMania.ConfigIni.eFTGroup;
\r
92 Guitar.eCYGroup = CDTXMania.ConfigIni.eCYGroup;
\r
93 Guitar.eHitSoundPriorityHH = CDTXMania.ConfigIni.eHitSoundPriorityHH;
\r
94 Guitar.eHitSoundPriorityFT = CDTXMania.ConfigIni.eHitSoundPriorityFT;
\r
95 Guitar.eHitSoundPriorityCY = CDTXMania.ConfigIni.eHitSoundPriorityCY;
\r
96 Guitar.bGuitar有効 = CDTXMania.ConfigIni.bGuitar有効;
\r
97 Guitar.bDrums有効 = CDTXMania.ConfigIni.bDrums有効;
\r
98 Guitar.bSTAGEFAILED有効 = CDTXMania.ConfigIni.bSTAGEFAILED有効;
\r
99 Guitar.eダメージレベル = CDTXMania.ConfigIni.eダメージレベル;
\r
100 Guitar.b演奏にキーボードを使用した = this.b演奏にキーボードを使った.Guitar;
\r
101 Guitar.b演奏にMIDI入力を使用した = this.b演奏にMIDI入力を使った.Guitar;
\r
102 Guitar.b演奏にジョイパッドを使用した = this.b演奏にジョイパッドを使った.Guitar;
\r
103 Guitar.b演奏にマウスを使用した = this.b演奏にマウスを使った.Guitar;
\r
104 Guitar.nPerfectになる範囲ms = CDTXMania.nPerfect範囲ms;
\r
105 Guitar.nGreatになる範囲ms = CDTXMania.nGreat範囲ms;
\r
106 Guitar.nGoodになる範囲ms = CDTXMania.nGood範囲ms;
\r
107 Guitar.nPoorになる範囲ms = CDTXMania.nPoor範囲ms;
\r
108 Guitar.strDTXManiaのバージョン = CDTXMania.VERSION;
\r
109 Guitar.最終更新日時 = DateTime.Now.ToString();
\r
110 Guitar.Hash = CScoreIni.t演奏セクションのMD5を求めて返す( Guitar );
\r
112 if( CDTXMania.DTX.bチップがある.Bass )
\r
114 Bass.nスコア = this.actScore.Get( E楽器パート.BASS );
\r
115 Bass.dbゲーム型スキル値 = CScoreIni.tゲーム型スキルを計算して返す( CDTXMania.DTX.LEVEL.Bass, CDTXMania.DTX.n可視チップ数.Bass, this.nヒット数・Auto含まない.Bass.Perfect, this.actCombo.n現在のコンボ数.Bass最高値 );
\r
116 Bass.db演奏型スキル値 = CScoreIni.t演奏型スキルを計算して返す( CDTXMania.DTX.n可視チップ数.Bass, this.nヒット数・Auto含まない.Bass.Perfect, this.nヒット数・Auto含まない.Bass.Great, this.nヒット数・Auto含まない.Bass.Good, this.nヒット数・Auto含まない.Bass.Poor, this.nヒット数・Auto含まない.Bass.Miss );
\r
117 Bass.nPerfect数 = CDTXMania.ConfigIni.bAutoPlay.Bass ? this.nヒット数・Auto含む.Bass.Perfect : this.nヒット数・Auto含まない.Bass.Perfect;
\r
118 Bass.nGreat数 = CDTXMania.ConfigIni.bAutoPlay.Bass ? this.nヒット数・Auto含む.Bass.Great : this.nヒット数・Auto含まない.Bass.Great;
\r
119 Bass.nGood数 = CDTXMania.ConfigIni.bAutoPlay.Bass ? this.nヒット数・Auto含む.Bass.Good : this.nヒット数・Auto含まない.Bass.Good;
\r
120 Bass.nPoor数 = CDTXMania.ConfigIni.bAutoPlay.Bass ? this.nヒット数・Auto含む.Bass.Poor : this.nヒット数・Auto含まない.Bass.Poor;
\r
121 Bass.nMiss数 = CDTXMania.ConfigIni.bAutoPlay.Bass ? this.nヒット数・Auto含む.Bass.Miss : this.nヒット数・Auto含まない.Bass.Miss;
\r
122 Bass.n最大コンボ数 = this.actCombo.n現在のコンボ数.Bass最高値;
\r
123 Bass.n全チップ数 = CDTXMania.DTX.n可視チップ数.Bass;
\r
124 for( int k = 0; k < 10; k++ )
\r
126 Bass.bAutoPlay[ k ] = CDTXMania.ConfigIni.bAutoPlay[ k ];
\r
128 Bass.bTight = CDTXMania.ConfigIni.bTight;
\r
129 for( int m = 0; m < 3; m++ )
\r
131 Bass.bSudden[ m ] = CDTXMania.ConfigIni.bSudden[ m ];
\r
132 Bass.bHidden[ m ] = CDTXMania.ConfigIni.bHidden[ m ];
\r
133 Bass.bReverse[ m ] = CDTXMania.ConfigIni.bReverse[ m ];
\r
134 Bass.eRandom[ m ] = CDTXMania.ConfigIni.eRandom[ m ];
\r
135 Bass.bLight[ m ] = CDTXMania.ConfigIni.bLight[ m ];
\r
136 Bass.bLeft[ m ] = CDTXMania.ConfigIni.bLeft[ m ];
\r
137 Bass.f譜面スクロール速度[ m ] = ( (float) ( CDTXMania.ConfigIni.n譜面スクロール速度[ m ] + 1 ) ) * 0.5f;
\r
139 Bass.eDark = CDTXMania.ConfigIni.eDark;
\r
140 Bass.n演奏速度分子 = CDTXMania.ConfigIni.n演奏速度;
\r
142 Bass.eHHGroup = CDTXMania.ConfigIni.eHHGroup;
\r
143 Bass.eFTGroup = CDTXMania.ConfigIni.eFTGroup;
\r
144 Bass.eCYGroup = CDTXMania.ConfigIni.eCYGroup;
\r
145 Bass.eHitSoundPriorityHH = CDTXMania.ConfigIni.eHitSoundPriorityHH;
\r
146 Bass.eHitSoundPriorityFT = CDTXMania.ConfigIni.eHitSoundPriorityFT;
\r
147 Bass.eHitSoundPriorityCY = CDTXMania.ConfigIni.eHitSoundPriorityCY;
\r
148 Bass.bGuitar有効 = CDTXMania.ConfigIni.bGuitar有効;
\r
149 Bass.bDrums有効 = CDTXMania.ConfigIni.bDrums有効;
\r
150 Bass.bSTAGEFAILED有効 = CDTXMania.ConfigIni.bSTAGEFAILED有効;
\r
151 Bass.eダメージレベル = CDTXMania.ConfigIni.eダメージレベル;
\r
152 Bass.b演奏にキーボードを使用した = this.b演奏にキーボードを使った.Guitar;
\r
153 Bass.b演奏にMIDI入力を使用した = this.b演奏にMIDI入力を使った.Guitar;
\r
154 Bass.b演奏にジョイパッドを使用した = this.b演奏にジョイパッドを使った.Guitar;
\r
155 Bass.b演奏にマウスを使用した = this.b演奏にマウスを使った.Guitar;
\r
156 Bass.nPerfectになる範囲ms = CDTXMania.nPerfect範囲ms;
\r
157 Bass.nGreatになる範囲ms = CDTXMania.nGreat範囲ms;
\r
158 Bass.nGoodになる範囲ms = CDTXMania.nGood範囲ms;
\r
159 Bass.nPoorになる範囲ms = CDTXMania.nPoor範囲ms;
\r
160 Bass.strDTXManiaのバージョン = CDTXMania.VERSION;
\r
161 Bass.最終更新日時 = DateTime.Now.ToString();
\r
162 Bass.Hash = CScoreIni.t演奏セクションのMD5を求めて返す( Bass );
\r
169 public override void On活性化()
\r
171 this.eフェードアウト完了時の戻り値 = E演奏画面の戻り値.継続;
\r
172 this.n現在のトップChip = ( CDTXMania.DTX.listChip.Count > 0 ) ? 0 : -1;
\r
173 this.n最後に再生したHHの実WAV番号 = -1;
\r
174 this.n最後に再生したHHのチャンネル番号 = 0;
\r
175 this.n最後に再生したギターの実WAV番号 = -1;
\r
176 this.n最後に再生したベースの実WAV番号 = -1;
\r
177 for( int i = 0; i < 50; i++ )
\r
179 this.n最後に再生したBGMの実WAV番号[ i ] = -1;
\r
181 this.r次にくるギターChip = null;
\r
182 this.r次にくるベースChip = null;
\r
183 for( int j = 0; j < 10; j++ )
\r
185 this.r現在の空うちドラムChip[ j ] = null;
\r
187 this.r現在の空うちギターChip = null;
\r
188 this.r現在の空うちベースChip = null;
\r
189 for( int k = 0; k < 3; k++ )
\r
191 for( int n = 0; n < 5; n++ )
\r
193 this.nヒット数・Auto含まない[ k ] = new STHITCOUNTOFRANK();
\r
194 this.nヒット数・Auto含む[ k ] = new STHITCOUNTOFRANK();
\r
196 this.queWailing[ k ] = new Queue<CDTX.CChip>();
\r
198 for( int m = 0; m < 3; m++ )
\r
200 this.b演奏にキーボードを使った[ m ] = false;
\r
201 this.b演奏にジョイパッドを使った[ m ] = false;
\r
202 this.b演奏にMIDI入力を使った[ m ] = false;
\r
203 this.b演奏にマウスを使った[ m ] = false;
\r
205 this.bAUTOでないチップが1つでもバーを通過した = false;
\r
207 this.tステータスパネルの選択();
\r
210 public override void OnManagedリソースの作成()
\r
212 if( !base.b活性化してない )
\r
214 this.t背景テクスチャの生成();
\r
215 this.txチップ = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenPlayGuitar chips.png" ) );
\r
216 this.txヒットバー = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenPlayGuitar hit-bar.png" ) );
\r
217 this.txWailing枠 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenPlay wailing cursor.png" ) );
\r
218 base.OnManagedリソースの作成();
\r
221 public override void OnManagedリソースの解放()
\r
223 if( !base.b活性化してない )
\r
225 CDTXMania.tテクスチャの解放( ref this.tx背景 );
\r
226 CDTXMania.tテクスチャの解放( ref this.txチップ );
\r
227 CDTXMania.tテクスチャの解放( ref this.txヒットバー );
\r
228 CDTXMania.tテクスチャの解放( ref this.txWailing枠 );
\r
229 base.OnManagedリソースの解放();
\r
232 public override int On進行描画()
\r
234 if( !base.b活性化してない )
\r
237 bool flag2 = false;
\r
239 if( base.b初めての進行描画 )
\r
241 CDTXMania.Timer.tリセット();
\r
242 this.ctチップ模様アニメ.Guitar = new CCounter( 0, 0x17, 20, CDTXMania.Timer );
\r
243 this.ctチップ模様アニメ.Bass = new CCounter( 0, 0x17, 20, CDTXMania.Timer );
\r
244 this.ctWailingチップ模様アニメ = new CCounter( 0, 4, 50, CDTXMania.Timer );
\r
245 base.eフェーズID = CStage.Eフェーズ.共通_フェードイン;
\r
246 this.actFI.tフェードイン開始();
\r
247 base.b初めての進行描画 = false;
\r
249 if( CDTXMania.ConfigIni.bSTAGEFAILED有効 && ( base.eフェーズID == CStage.Eフェーズ.共通_通常状態 ) )
\r
251 // bool flag3 = ( CDTXMania.ConfigIni.bAutoPlay.Guitar || !CDTXMania.DTX.bチップがある.Guitar ) || ( this.actGauge.db現在のゲージ値.Guitar <= -0.1 ); // #23630
\r
252 // bool flag4 = ( CDTXMania.ConfigIni.bAutoPlay.Bass || !CDTXMania.DTX.bチップがある.Bass ) || ( this.actGauge.db現在のゲージ値.Bass <= -0.1 ); // #23630
\r
253 bool bFailedGuitar = (!CDTXMania.ConfigIni.bAutoPlay.Guitar && ((!CDTXMania.DTX.bチップがある.Guitar) || (this.actGauge.db現在のゲージ値.Guitar <= -0.1))); // #23630 2011.11.9 yyagi: separated AutoPlay condition: not to be failed at once
\r
254 bool bFailedBass = (!CDTXMania.ConfigIni.bAutoPlay.Bass && ((!CDTXMania.DTX.bチップがある.Bass) || (this.actGauge.db現在のゲージ値.Bass <= -0.1))); // #23630
\r
255 if (bFailedGuitar && bFailedBass)
\r
257 this.actStageFailed.Start();
\r
258 CDTXMania.DTX.t全チップの再生停止();
\r
259 base.eフェーズID = CStage.Eフェーズ.演奏_STAGE_FAILED;
\r
263 this.t進行描画・MIDIBGM();
\r
264 this.t進行描画・パネル文字列();
\r
268 this.t進行描画・ステータスパネル();
\r
269 this.t進行描画・レーンフラッシュGB();
\r
270 this.t進行描画・ギターベース判定ライン();
\r
272 this.t進行描画・DANGER();
\r
273 this.t進行描画・RGBボタン();
\r
274 this.t進行描画・判定文字列();
\r
276 this.t進行描画・WailingBonus();
\r
277 this.t進行描画・譜面スクロール速度();
\r
278 this.t進行描画・チップアニメ();
\r
279 flag = this.t進行描画・チップ();
\r
281 this.t進行描画・Wailing枠();
\r
282 this.t進行描画・チップファイアGB();
\r
283 this.t進行描画・STAGEFAILED();
\r
284 flag2 = this.t進行描画・フェードイン・アウト();
\r
285 if( flag && ( base.eフェーズID == CStage.Eフェーズ.共通_通常状態 ) )
\r
287 this.eフェードアウト完了時の戻り値 = E演奏画面の戻り値.ステージクリア;
\r
288 base.eフェーズID = CStage.Eフェーズ.演奏_STAGE_CLEAR_フェードアウト;
\r
289 this.actFOClear.tフェードアウト開始();
\r
293 return (int) this.eフェードアウト完了時の戻り値;
\r
298 if( CDTXMania.act現在入力を占有中のプラグイン == null )
\r
300 IInputDevice keyboard = CDTXMania.Input管理.Keyboard;
\r
301 if( keyboard.bキーが押された( 0x36 ) && ( keyboard.bキーが押されている( 120 ) || keyboard.bキーが押されている( 0x4e ) ) )
\r
303 this.bPAUSE = !this.bPAUSE;
\r
306 CDTXMania.Timer.t一時停止();
\r
307 CDTXMania.DTX.t全チップの再生一時停止();
\r
311 CDTXMania.Timer.t再開();
\r
312 CDTXMania.DTX.t全チップの再生再開();
\r
315 if( ( !this.bPAUSE && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED ) ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) )
\r
319 if( keyboard.bキーが押された( 0x84 ) && ( keyboard.bキーが押されている( 120 ) || keyboard.bキーが押されている( 0x4e ) ) )
\r
321 CDTXMania.DTX.t各自動再生音チップの再生時刻を変更する( ( keyboard.bキーが押されている( 0x4b ) || keyboard.bキーが押されている( 0x74 ) ) ? 1 : 10 );
\r
322 CDTXMania.DTX.tWave再生位置自動補正();
\r
324 else if( keyboard.bキーが押された( 50 ) && ( keyboard.bキーが押されている( 120 ) || keyboard.bキーが押されている( 0x4e ) ) )
\r
326 CDTXMania.DTX.t各自動再生音チップの再生時刻を変更する( ( keyboard.bキーが押されている( 0x4b ) || keyboard.bキーが押されている( 0x74 ) ) ? -1 : -10 );
\r
327 CDTXMania.DTX.tWave再生位置自動補正();
\r
329 else if( keyboard.bキーが押された( 0x31 ) )
\r
331 CDTXMania.ConfigIni.b演奏情報を表示する = !CDTXMania.ConfigIni.b演奏情報を表示する;
\r
333 else if( ( base.eフェーズID == CStage.Eフェーズ.共通_通常状態 ) && ( keyboard.bキーが押された( 0x35 ) || CDTXMania.Pad.b押されたGB( Eパッド.FT ) ) )
\r
335 this.actFO.tフェードアウト開始();
\r
336 base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト;
\r
337 this.eフェードアウト完了時の戻り値 = E演奏画面の戻り値.演奏中断;
\r
348 #region [ private ]
\r
349 //-----------------
\r
350 private class STHITCOUNTOFRANK
\r
356 public int Perfect;
\r
360 public int this[ int index ]
\r
367 return this.Perfect;
\r
381 throw new IndexOutOfRangeException();
\r
388 this.Perfect = value;
\r
392 this.Great = value;
\r
407 throw new IndexOutOfRangeException();
\r
412 [StructLayout( LayoutKind.Sequential )]
\r
413 private struct STKARAUCHI
\r
415 public CDTX.CChip HH;
\r
416 public CDTX.CChip SD;
\r
417 public CDTX.CChip BD;
\r
418 public CDTX.CChip HT;
\r
419 public CDTX.CChip LT;
\r
420 public CDTX.CChip FT;
\r
421 public CDTX.CChip CY;
\r
422 public CDTX.CChip HHO;
\r
423 public CDTX.CChip RD;
\r
424 public CDTX.CChip LC;
\r
425 public CDTX.CChip this[ int index ]
\r
461 throw new IndexOutOfRangeException();
\r
507 throw new IndexOutOfRangeException();
\r
512 private CAct演奏AVI actAVI;
\r
513 private CAct演奏BGA actBGA;
\r
514 private CAct演奏Guitarチップファイア actChipFire;
\r
515 private CAct演奏Guitarコンボ actCombo;
\r
516 private CActFIFOBlack actFI;
\r
517 private CActFIFOBlack actFO;
\r
518 private CActFIFOWhite actFOClear;
\r
519 private CAct演奏Guitarゲージ actGauge;
\r
520 private CAct演奏Guitar判定文字列 actJudgeString;
\r
521 private CAct演奏GuitarレーンフラッシュGB actLaneFlushGB;
\r
522 private CAct演奏パネル文字列 actPanel;
\r
523 private CAct演奏演奏情報 actPlayInfo;
\r
524 private CAct演奏GuitarRGB actRGB;
\r
525 private CAct演奏Guitarスコア actScore;
\r
526 private CAct演奏ステージ失敗 actStageFailed;
\r
527 private CAct演奏Guitarステータスパネル actStatusPanels;
\r
528 private CAct演奏GuitarWailingBonus actWailingBonus;
\r
529 private CAct演奏スクロール速度 act譜面スクロール速度;
\r
530 private bool bPAUSE;
\r
531 private STDGBVALUE<bool> b演奏にMIDI入力を使った;
\r
532 private STDGBVALUE<bool> b演奏にキーボードを使った;
\r
533 private STDGBVALUE<bool> b演奏にジョイパッドを使った;
\r
534 private STDGBVALUE<bool> b演奏にマウスを使った;
\r
535 private CCounter ctWailingチップ模様アニメ;
\r
536 private STDGBVALUE<CCounter> ctチップ模様アニメ;
\r
537 private E演奏画面の戻り値 eフェードアウト完了時の戻り値;
\r
538 private readonly int[,] nBGAスコープチャンネルマップ = new int[ , ] { { 0xc4, 0xc7, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xe0 }, { 4, 7, 0x55, 0x56, 0x57, 0x58, 0x59, 0x60 } };
\r
539 private readonly int[] nチャンネル0Atoパッド08 = new int[] { 1, 2, 3, 4, 5, 7, 6, 1, 8, 0 };
\r
540 private readonly int[] nチャンネル0Atoレーン07 = new int[] { 1, 2, 3, 4, 5, 7, 6, 1, 7, 0 };
\r
541 private readonly int[] nパッド0Atoチャンネル0A = new int[] { 0x11, 0x12, 0x13, 20, 0x15, 0x17, 0x16, 0x18, 0x19, 0x1a };
\r
542 private readonly int[] nパッド0Atoパッド08 = new int[] { 1, 2, 3, 4, 5, 6, 7, 1, 8, 0 };
\r
543 private readonly int[] nパッド0Atoレーン07 = new int[] { 1, 2, 3, 4, 5, 6, 7, 1, 7, 0 };
\r
544 private STDGBVALUE<STHITCOUNTOFRANK> nヒット数・Auto含まない;
\r
545 private STDGBVALUE<STHITCOUNTOFRANK> nヒット数・Auto含む;
\r
546 private int n現在のトップChip = -1;
\r
547 private int[] n最後に再生したBGMの実WAV番号 = new int[ 50 ];
\r
548 private int n最後に再生したHHのチャンネル番号;
\r
549 private int n最後に再生したHHの実WAV番号;
\r
550 private int n最後に再生したギターの実WAV番号;
\r
551 private int n最後に再生したベースの実WAV番号;
\r
552 private STDGBVALUE<Queue<CDTX.CChip>> queWailing;
\r
553 private STDGBVALUE<CDTX.CChip> r現在の歓声Chip;
\r
554 private CDTX.CChip r現在の空うちギターChip;
\r
555 private STKARAUCHI r現在の空うちドラムChip;
\r
556 private CDTX.CChip r現在の空うちベースChip;
\r
557 private CDTX.CChip r次にくるギターChip;
\r
558 private CDTX.CChip r次にくるベースChip;
\r
559 private CTexture txWailing枠;
\r
560 private CTexture txチップ;
\r
561 private CTexture txヒットバー;
\r
562 private CTexture tx背景;
\r
564 private E判定 e指定時刻からChipのJUDGEを返す( long nTime, CDTX.CChip pChip )
\r
566 if( pChip != null )
\r
568 int num = Math.Abs( (int) ( nTime - pChip.n発声時刻ms ) );
\r
569 if( num <= CDTXMania.nPerfect範囲ms )
\r
571 return E判定.Perfect;
\r
573 if( num <= CDTXMania.nGreat範囲ms )
\r
577 if( num <= CDTXMania.nGood範囲ms )
\r
581 if( num <= CDTXMania.nPoor範囲ms )
\r
588 private CDTX.CChip r空うちChip( E楽器パート part, Eパッド pad )
\r
592 case E楽器パート.GUITAR:
\r
593 return this.r現在の空うちギターChip;
\r
596 return this.r現在の空うちベースChip;
\r
600 private CDTX.CChip r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( long nTime, int nChannelFlag )
\r
603 if( this.n現在のトップChip == -1 )
\r
607 int count = CDTXMania.DTX.listChip.Count;
\r
608 int num4 = num5 = this.n現在のトップChip;
\r
609 if( this.n現在のトップChip >= count )
\r
611 num4 = num5 = count - 1;
\r
614 while( num2 < count )
\r
616 CDTX.CChip chip = CDTXMania.DTX.listChip[ num2 ];
\r
617 if( ( ( nChannelFlag >= 0x11 ) && ( nChannelFlag <= 0x1a ) ) && ( ( chip.nチャンネル番号 == nChannelFlag ) || ( chip.nチャンネル番号 == ( nChannelFlag + 0x20 ) ) ) )
\r
619 if( chip.n発声時刻ms > nTime )
\r
625 else if( ( ( nChannelFlag == 0x2f ) && ( chip.e楽器パート == E楽器パート.GUITAR ) ) || ( ( ( nChannelFlag >= 0x20 ) && ( nChannelFlag <= 40 ) ) && ( chip.nチャンネル番号 == nChannelFlag ) ) )
\r
627 if( chip.n発声時刻ms > nTime )
\r
633 else if( ( ( nChannelFlag == 0xaf ) && ( chip.e楽器パート == E楽器パート.BASS ) ) || ( ( ( nChannelFlag >= 160 ) && ( nChannelFlag <= 0xa8 ) ) && ( chip.nチャンネル番号 == nChannelFlag ) ) )
\r
635 if( chip.n発声時刻ms > nTime )
\r
646 CDTX.CChip chip2 = CDTXMania.DTX.listChip[ num3 ];
\r
647 if( ( nChannelFlag >= 0x11 ) && ( nChannelFlag <= 0x1a ) )
\r
649 if( ( chip2.nチャンネル番号 == nChannelFlag ) || ( chip2.nチャンネル番号 == ( nChannelFlag + 0x20 ) ) )
\r
654 else if( ( ( nChannelFlag == 0x2f ) && ( chip2.e楽器パート == E楽器パート.GUITAR ) ) || ( ( ( nChannelFlag >= 0x20 ) && ( nChannelFlag <= 40 ) ) && ( chip2.nチャンネル番号 == nChannelFlag ) ) )
\r
656 if( ( chip2.nチャンネル番号 >= 0x20 ) && ( chip2.nチャンネル番号 <= 40 ) )
\r
661 else if( ( ( ( nChannelFlag == 0xaf ) && ( chip2.e楽器パート == E楽器パート.BASS ) ) || ( ( ( nChannelFlag >= 160 ) && ( nChannelFlag <= 0xa8 ) ) && ( chip2.nチャンネル番号 == nChannelFlag ) ) ) && ( ( chip2.nチャンネル番号 >= 160 ) && ( chip2.nチャンネル番号 <= 0xa8 ) ) )
\r
667 if( ( num2 == count ) && ( num3 < 0 ) )
\r
671 if( num2 == count )
\r
673 return CDTXMania.DTX.listChip[ num3 ];
\r
677 return CDTXMania.DTX.listChip[ num2 ];
\r
679 CDTX.CChip chip3 = CDTXMania.DTX.listChip[ num2 ];
\r
680 CDTX.CChip chip4 = CDTXMania.DTX.listChip[ num3 ];
\r
681 int num6 = Math.Abs( (int) ( nTime - chip3.n発声時刻ms ) );
\r
682 int num7 = Math.Abs( (int) ( nTime - chip4.n発声時刻ms ) );
\r
689 private CDTX.CChip r指定時刻に一番近い未ヒットChip( long nTime, int nChannelFlag )
\r
691 return this.r指定時刻に一番近い未ヒットChip( nTime, nChannelFlag, 0 );
\r
693 private CDTX.CChip r指定時刻に一番近い未ヒットChip( long nTime, int nChannelFlag, int n検索範囲時間ms )
\r
697 if( this.n現在のトップChip == -1 )
\r
701 int count = CDTXMania.DTX.listChip.Count;
\r
702 int num4 = num5 = this.n現在のトップChip;
\r
703 if( this.n現在のトップChip >= count )
\r
705 num4 = num5 = count - 1;
\r
708 while( num2 < count )
\r
710 CDTX.CChip chip = CDTXMania.DTX.listChip[ num2 ];
\r
711 if( ( !chip.bHit && ( nChannelFlag >= 0x11 ) ) && ( nChannelFlag <= 0x1a ) )
\r
713 if( ( chip.nチャンネル番号 == nChannelFlag ) || ( chip.nチャンネル番号 == ( nChannelFlag + 0x20 ) ) )
\r
715 if( chip.n発声時刻ms > nTime )
\r
722 else if( !chip.bHit && ( ( ( nChannelFlag == 0x2f ) && ( chip.e楽器パート == E楽器パート.GUITAR ) ) || ( ( ( nChannelFlag >= 0x20 ) && ( nChannelFlag <= 40 ) ) && ( chip.nチャンネル番号 == nChannelFlag ) ) ) )
\r
724 if( chip.n発声時刻ms > nTime )
\r
730 else if( !chip.bHit && ( ( ( nChannelFlag == 0xaf ) && ( chip.e楽器パート == E楽器パート.BASS ) ) || ( ( ( nChannelFlag >= 160 ) && ( nChannelFlag <= 0xa8 ) ) && ( chip.nチャンネル番号 == nChannelFlag ) ) ) )
\r
732 if( chip.n発声時刻ms > nTime )
\r
743 CDTX.CChip chip2 = CDTXMania.DTX.listChip[ num3 ];
\r
744 if( ( ( ( !chip2.bHit && ( nChannelFlag >= 0x11 ) ) && ( ( nChannelFlag <= 0x1a ) && ( ( chip2.nチャンネル番号 == nChannelFlag ) || ( chip2.nチャンネル番号 == ( nChannelFlag + 0x20 ) ) ) ) ) || ( !chip2.bHit && ( ( ( nChannelFlag == 0x2f ) && ( chip2.e楽器パート == E楽器パート.GUITAR ) ) || ( ( ( nChannelFlag >= 0x20 ) && ( nChannelFlag <= 40 ) ) && ( chip2.nチャンネル番号 == nChannelFlag ) ) ) ) ) || ( !chip2.bHit && ( ( ( nChannelFlag == 0xaf ) && ( chip2.e楽器パート == E楽器パート.BASS ) ) || ( ( ( nChannelFlag >= 160 ) && ( nChannelFlag <= 0xa8 ) ) && ( chip2.nチャンネル番号 == nChannelFlag ) ) ) ) )
\r
750 if( ( num2 == count ) && ( num3 < 0 ) )
\r
754 CDTX.CChip chip3 = null;
\r
755 if( num2 == count )
\r
757 chip3 = CDTXMania.DTX.listChip[ num3 ];
\r
758 num6 = Math.Abs( (int) ( nTime - chip3.n発声時刻ms ) );
\r
760 else if( num3 < 0 )
\r
762 chip3 = CDTXMania.DTX.listChip[ num2 ];
\r
763 num6 = Math.Abs( (int) ( nTime - chip3.n発声時刻ms ) );
\r
767 int num7 = Math.Abs( (int) ( nTime - CDTXMania.DTX.listChip[ num2 ].n発声時刻ms ) );
\r
768 int num8 = Math.Abs( (int) ( nTime - CDTXMania.DTX.listChip[ num3 ].n発声時刻ms ) );
\r
771 chip3 = CDTXMania.DTX.listChip[ num2 ];
\r
772 num6 = Math.Abs( (int) ( nTime - chip3.n発声時刻ms ) );
\r
776 chip3 = CDTXMania.DTX.listChip[ num3 ];
\r
777 num6 = Math.Abs( (int) ( nTime - chip3.n発声時刻ms ) );
\r
780 if( ( n検索範囲時間ms > 0 ) && ( num6 > n検索範囲時間ms ) )
\r
786 private CDTX.CChip r次にくるギターChipを更新して返す()
\r
788 this.r次にくるギターChip = this.r指定時刻に一番近い未ヒットChip( CDTXMania.Timer.n現在時刻, 0x2f, 500 );
\r
789 return this.r次にくるギターChip;
\r
791 private CDTX.CChip r次にくるベースChipを更新して返す()
\r
793 this.r次にくるベースChip = this.r指定時刻に一番近い未ヒットChip( CDTXMania.Timer.n現在時刻, 0xaf, 500 );
\r
794 return this.r次にくるベースChip;
\r
796 private void tサウンド再生( CDTX.CChip rChip, long n再生開始システム時刻ms, E楽器パート part )
\r
798 this.tサウンド再生( rChip, n再生開始システム時刻ms, part, CDTXMania.ConfigIni.n手動再生音量, false, false );
\r
800 private void tサウンド再生( CDTX.CChip rChip, long n再生開始システム時刻ms, E楽器パート part, int n音量 )
\r
802 this.tサウンド再生( rChip, n再生開始システム時刻ms, part, n音量, false, false );
\r
804 private void tサウンド再生( CDTX.CChip rChip, long n再生開始システム時刻ms, E楽器パート part, int n音量, bool bモニタ )
\r
806 this.tサウンド再生( rChip, n再生開始システム時刻ms, part, n音量, bモニタ, false );
\r
808 private void tサウンド再生( CDTX.CChip pChip, long n再生開始システム時刻ms, E楽器パート part, int n音量, bool bモニタ, bool b音程をずらして再生 )
\r
810 if( pChip != null )
\r
815 if( CDTXMania.ConfigIni.bドラム打音を発声する )
\r
817 int index = pChip.nチャンネル番号;
\r
818 if( ( index >= 0x11 ) && ( index <= 0x1a ) )
\r
824 if( ( index < 0x31 ) || ( index > 0x3a ) )
\r
830 int nLane = this.nチャンネル0Atoレーン07[ index ];
\r
831 if( ( nLane == 1 ) && ( ( index == 0 ) || ( ( ( index == 7 ) && ( this.n最後に再生したHHのチャンネル番号 != 0x18 ) ) && ( this.n最後に再生したHHのチャンネル番号 != 0x38 ) ) ) )
\r
833 CDTXMania.DTX.tWavの再生停止( this.n最後に再生したHHの実WAV番号 );
\r
834 this.n最後に再生したHHの実WAV番号 = pChip.n整数値・内部番号;
\r
835 this.n最後に再生したHHのチャンネル番号 = pChip.nチャンネル番号;
\r
837 CDTXMania.DTX.tチップの再生( pChip, n再生開始システム時刻ms, nLane, n音量, bモニタ );
\r
842 case E楽器パート.GUITAR:
\r
843 CDTXMania.DTX.tWavの再生停止( this.n最後に再生したギターの実WAV番号 );
\r
844 CDTXMania.DTX.tチップの再生( pChip, n再生開始システム時刻ms, 8, n音量, bモニタ, b音程をずらして再生 );
\r
845 this.n最後に再生したギターの実WAV番号 = pChip.n整数値・内部番号;
\r
849 CDTXMania.DTX.tWavの再生停止( this.n最後に再生したベースの実WAV番号 );
\r
850 CDTXMania.DTX.tチップの再生( pChip, n再生開始システム時刻ms, 9, n音量, bモニタ, b音程をずらして再生 );
\r
851 this.n最後に再生したベースの実WAV番号 = pChip.n整数値・内部番号;
\r
856 private void tステータスパネルの選択()
\r
858 if( CDTXMania.bコンパクトモード )
\r
860 this.actStatusPanels.tラベル名からステータスパネルを決定する( null );
\r
862 else if( CDTXMania.stage選曲.r確定された曲 != null )
\r
864 this.actStatusPanels.tラベル名からステータスパネルを決定する( CDTXMania.stage選曲.r確定された曲.ar難易度ラベル[ CDTXMania.stage選曲.n確定された曲の難易度 ] );
\r
867 private E判定 tチップのヒット処理( long nHitTime, CDTX.CChip pChip )
\r
870 E判定 e判定 = this.e指定時刻からChipのJUDGEを返す( nHitTime, pChip );
\r
872 if( ( ( pChip.e楽器パート == E楽器パート.GUITAR ) && CDTXMania.ConfigIni.bAutoPlay.Guitar ) || ( ( pChip.e楽器パート == E楽器パート.BASS ) && CDTXMania.ConfigIni.bAutoPlay.Bass ) )
\r
878 this.bAUTOでないチップが1つでもバーを通過した = true;
\r
880 switch( pChip.e楽器パート )
\r
882 case E楽器パート.GUITAR:
\r
883 this.actJudgeString.Start( 10, flag ? E判定.Auto : e判定 );
\r
887 this.actJudgeString.Start( 11, flag ? E判定.Auto : e判定 );
\r
892 this.t判定にあわせてゲージを増減する( pChip.e楽器パート, e判定 );
\r
895 switch( pChip.e楽器パート )
\r
898 if( ( e判定 != E判定.Miss ) && ( e判定 != E判定.Bad ) )
\r
900 STHITCOUNTOFRANK sthitcountofrank;
\r
902 ( sthitcountofrank = this.nヒット数・Auto含む.Drums )[ num4 = (int) e判定 ] = sthitcountofrank[ num4 ] + 1;
\r
906 this.nヒット数・Auto含む.Drums.Miss++;
\r
910 case E楽器パート.GUITAR:
\r
911 if( ( e判定 != E判定.Miss ) && ( e判定 != E判定.Bad ) )
\r
913 STHITCOUNTOFRANK sthitcountofrank2;
\r
915 ( sthitcountofrank2 = this.nヒット数・Auto含む.Guitar )[ num5 = (int) e判定 ] = sthitcountofrank2[ num5 ] + 1;
\r
918 this.nヒット数・Auto含む.Guitar.Miss++;
\r
922 if( ( e判定 != E判定.Miss ) && ( e判定 != E判定.Bad ) )
\r
924 STHITCOUNTOFRANK sthitcountofrank4;
\r
926 ( sthitcountofrank4 = this.nヒット数・Auto含む.Bass )[ num7 = (int) e判定 ] = sthitcountofrank4[ num7 ] + 1;
\r
930 this.nヒット数・Auto含む.Bass.Miss++;
\r
934 STHITCOUNTOFRANK sthitcountofrank5;
\r
940 this.nヒット数・Auto含まない.Bass.Miss++;
\r
943 ( sthitcountofrank5 = this.nヒット数・Auto含まない.Bass )[ num8 = (int) e判定 ] = sthitcountofrank5[ num8 ] + 1;
\r
952 STHITCOUNTOFRANK sthitcountofrank3;
\r
958 this.nヒット数・Auto含まない.Guitar.Miss++;
\r
961 ( sthitcountofrank3 = this.nヒット数・Auto含まない.Guitar )[ num6 = (int) e判定 ] = sthitcountofrank3[ num6 ] + 1;
\r
964 num = this.actCombo.n現在のコンボ数.Guitar;
\r
977 this.actCombo.n現在のコンボ数.Guitar = num;
\r
980 num = this.actCombo.n現在のコンボ数.Bass;
\r
993 this.actCombo.n現在のコンボ数.Bass = num;
\r
995 if( ( !flag && ( e判定 != E判定.Miss ) ) && ( e判定 != E判定.Bad ) )
\r
998 if( pChip.e楽器パート == E楽器パート.GUITAR )
\r
1000 guitar = this.actCombo.n現在のコンボ数.Guitar;
\r
1002 if( pChip.e楽器パート == E楽器パート.BASS )
\r
1004 guitar = this.actCombo.n現在のコンボ数.Bass;
\r
1006 long nScore = this.actScore.Get( pChip.e楽器パート );
\r
1007 long[] numArray = new long[] { 350L, 200L, 50L, 0L };
\r
1008 if( ( guitar <= 500 ) || ( e判定 == E判定.Good ) )
\r
1010 nScore += numArray[ (int) e判定 ] * guitar;
\r
1012 else if( ( e判定 == E判定.Perfect ) || ( e判定 == E判定.Great ) )
\r
1014 nScore += numArray[ (int) e判定 ] * 500L;
\r
1016 this.actScore.Set( pChip.e楽器パート, nScore );
\r
1020 private void tチップのヒット処理・BadならびにTight時のMiss( E楽器パート part )
\r
1022 this.tチップのヒット処理・BadならびにTight時のMiss( part, 0 );
\r
1024 private void tチップのヒット処理・BadならびにTight時のMiss( E楽器パート part, int nLane )
\r
1026 this.t判定にあわせてゲージを増減する( part, E判定.Miss );
\r
1029 case E楽器パート.DRUMS:
\r
1032 case E楽器パート.GUITAR:
\r
1033 this.actJudgeString.Start( 10, E判定.Bad );
\r
1034 this.actCombo.n現在のコンボ数.Guitar = 0;
\r
1038 this.actJudgeString.Start( 11, E判定.Bad );
\r
1039 this.actCombo.n現在のコンボ数.Bass = 0;
\r
1046 private void tパネル文字列の設定()
\r
1048 this.actPanel.SetPanelString( string.IsNullOrEmpty( CDTXMania.DTX.PANEL ) ? CDTXMania.DTX.TITLE : CDTXMania.DTX.PANEL );
\r
1050 private void t進行描画・AVI()
\r
1052 if( ( ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) ) && ( !CDTXMania.ConfigIni.bストイックモード && CDTXMania.ConfigIni.bAVI有効 ) )
\r
1054 this.actAVI.t進行描画( 0xb5, 50 );
\r
1057 private void t進行描画・BGA()
\r
1059 if( ( ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) ) && ( !CDTXMania.ConfigIni.bストイックモード && CDTXMania.ConfigIni.bBGA有効 ) )
\r
1061 this.actBGA.t進行描画( 0xb5, 50 );
\r
1064 private void t進行描画・DANGER()
\r
1067 private void t進行描画・MIDIBGM()
\r
1069 if( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED )
\r
1071 CStage.Eフェーズ eフェーズid1 = base.eフェーズID;
\r
1074 private void t進行描画・RGBボタン()
\r
1076 if( CDTXMania.ConfigIni.eDark != Eダークモード.FULL )
\r
1078 this.actRGB.On進行描画();
\r
1081 private void t進行描画・STAGEFAILED()
\r
1083 if( ( ( base.eフェーズID == CStage.Eフェーズ.演奏_STAGE_FAILED ) || ( base.eフェーズID == CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) ) && ( ( this.actStageFailed.On進行描画() != 0 ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) ) )
\r
1085 this.eフェードアウト完了時の戻り値 = E演奏画面の戻り値.ステージ失敗;
\r
1086 base.eフェーズID = CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト;
\r
1087 this.actFO.tフェードアウト開始();
\r
1090 private void t進行描画・WailingBonus()
\r
1092 if( ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) )
\r
1094 this.actWailingBonus.On進行描画();
\r
1097 private void t進行描画・Wailing枠()
\r
1099 if( ( CDTXMania.ConfigIni.eDark != Eダークモード.FULL ) && CDTXMania.ConfigIni.bGuitar有効 )
\r
1101 if( CDTXMania.DTX.bチップがある.Guitar && ( this.txWailing枠 != null ) )
\r
1103 this.txWailing枠.t2D描画( CDTXMania.app.Device, 0x8b, CDTXMania.ConfigIni.bReverse.Guitar ? 340 : 11 );
\r
1105 if( CDTXMania.DTX.bチップがある.Bass && ( this.txWailing枠 != null ) )
\r
1107 this.txWailing枠.t2D描画( CDTXMania.app.Device, 0x251, CDTXMania.ConfigIni.bReverse.Bass ? 340 : 11 );
\r
1111 private void t進行描画・ギターベース判定ライン()
\r
1113 if( ( CDTXMania.ConfigIni.eDark != Eダークモード.FULL ) && CDTXMania.ConfigIni.bGuitar有効 )
\r
1115 if( CDTXMania.DTX.bチップがある.Guitar )
\r
1117 int y = ( CDTXMania.ConfigIni.bReverse.Guitar ? 0x171 : 40 ) - 3;
\r
1118 for( int i = 0; i < 4; i++ )
\r
1120 if( this.txヒットバー != null )
\r
1122 this.txヒットバー.t2D描画( CDTXMania.app.Device, 0x17 + ( 0x1c * i ), y, new Rectangle( 0, i * 8, 0x1c, 8 ) );
\r
1126 if( CDTXMania.DTX.bチップがある.Bass )
\r
1128 int num3 = ( CDTXMania.ConfigIni.bReverse.Bass ? 0x171 : 40 ) - 3;
\r
1129 for( int j = 0; j < 4; j++ )
\r
1131 if( this.txヒットバー != null )
\r
1133 this.txヒットバー.t2D描画( CDTXMania.app.Device, 0x1dd + ( 0x1c * j ), num3, new Rectangle( 0, j * 8, 0x1c, 8 ) );
\r
1139 private void t進行描画・ゲージ()
\r
1141 if( ( ( CDTXMania.ConfigIni.eDark != Eダークモード.HALF ) && ( CDTXMania.ConfigIni.eDark != Eダークモード.FULL ) ) && ( ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) ) )
\r
1143 this.actGauge.On進行描画();
\r
1146 private void t進行描画・コンボ()
\r
1148 this.actCombo.On進行描画();
\r
1150 private void t進行描画・スコア()
\r
1152 this.actScore.On進行描画();
\r
1154 private void t進行描画・ステータスパネル()
\r
1156 this.actStatusPanels.On進行描画();
\r
1158 private bool t進行描画・チップ()
\r
1160 if( ( base.eフェーズID == CStage.Eフェーズ.演奏_STAGE_FAILED ) || ( base.eフェーズID == CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) )
\r
1164 if( ( this.n現在のトップChip == -1 ) || ( this.n現在のトップChip >= CDTXMania.DTX.listChip.Count ) )
\r
1168 int num = this.n現在のトップChip;
\r
1174 //double speed = 264.0; // BPM150の時の1小節の長さ[dot]
\r
1175 double speed = 234.0; // BPM150の時の1小節の長さ[dot]
\r
1177 double num2 = ( ( ( ( this.act譜面スクロール速度.db現在の譜面スクロール速度.Drums + 1.0 ) * 0.5 ) * 37.5 ) * speed ) / 60000.0;
\r
1178 double num3 = ( ( ( ( ( this.act譜面スクロール速度.db現在の譜面スクロール速度.Guitar + 1.0 ) * 0.5 ) * 0.5 ) * 37.5 ) * speed ) / 60000.0;
\r
1179 double num4 = ( ( ( ( ( this.act譜面スクロール速度.db現在の譜面スクロール速度.Bass + 1.0 ) * 0.5 ) * 0.5 ) * 37.5 ) * speed ) / 60000.0;
\r
1181 CDTX dTX = CDTXMania.DTX;
\r
1182 CConfigIni configIni = CDTXMania.ConfigIni;
\r
1183 while( num < dTX.listChip.Count )
\r
1185 CDTX.CChip pChip = dTX.listChip[ num ];
\r
1186 pChip.nバーからの距離dot.Drums = (int) ( ( pChip.n発声時刻ms - CDTXMania.Timer.n現在時刻 ) * num2 );
\r
1187 pChip.nバーからの距離dot.Guitar = (int) ( ( pChip.n発声時刻ms - CDTXMania.Timer.n現在時刻 ) * num3 );
\r
1188 pChip.nバーからの距離dot.Bass = (int) ( ( pChip.n発声時刻ms - CDTXMania.Timer.n現在時刻 ) * num4 );
\r
1189 if( Math.Min( Math.Min( pChip.nバーからの距離dot.Drums, pChip.nバーからの距離dot.Guitar ), pChip.nバーからの距離dot.Bass ) > 450 )
\r
1193 if( ( ( num == this.n現在のトップChip ) && ( pChip.nバーからの距離dot.Drums < -65 ) ) && pChip.bHit )
\r
1195 this.n現在のトップChip++;
\r
1196 num = this.n現在のトップChip;
\r
1199 if( ( ( pChip.e楽器パート != E楽器パート.UNKNOWN ) && !pChip.bHit ) && ( ( pChip.nバーからの距離dot.Drums < 0 ) && ( this.e指定時刻からChipのJUDGEを返す( CDTXMania.Timer.n現在時刻, pChip ) == E判定.Miss ) ) )
\r
1201 this.tチップのヒット処理( CDTXMania.Timer.n現在時刻, pChip );
\r
1203 switch( pChip.nチャンネル番号 )
\r
1206 if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )
\r
1208 pChip.bHit = true;
\r
1209 if( configIni.bBGM音を発声する )
\r
1211 dTX.tチップの再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, 10, dTX.nモニタを考慮した音量( E楽器パート.UNKNOWN ) );
\r
1217 if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )
\r
1219 pChip.bHit = true;
\r
1220 this.actPlayInfo.dbBPM = ( pChip.n整数値 * ( ( (double) configIni.n演奏速度 ) / 20.0 ) ) + dTX.BASEBPM;
\r
1232 if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )
\r
1234 pChip.bHit = true;
\r
1235 if( configIni.bBGA有効 )
\r
1237 switch( pChip.eBGA種別 )
\r
1239 case EBGA種別.BMPTEX:
\r
1240 if( pChip.rBMPTEX != null )
\r
1242 this.actBGA.Start( pChip.nチャンネル番号, null, pChip.rBMPTEX, pChip.rBMPTEX.tx画像.sz画像サイズ.Width, pChip.rBMPTEX.tx画像.sz画像サイズ.Height, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 );
\r
1247 if( ( pChip.rBGA != null ) && ( ( pChip.rBMP != null ) || ( pChip.rBMPTEX != null ) ) )
\r
1249 this.actBGA.Start( pChip.nチャンネル番号, pChip.rBMP, pChip.rBMPTEX, pChip.rBGA.pt画像側右下座標.X - pChip.rBGA.pt画像側左上座標.X, pChip.rBGA.pt画像側右下座標.Y - pChip.rBGA.pt画像側左上座標.Y, 0, 0, pChip.rBGA.pt画像側左上座標.X, pChip.rBGA.pt画像側左上座標.Y, 0, 0, pChip.rBGA.pt表示座標.X, pChip.rBGA.pt表示座標.Y, 0, 0, 0 );
\r
1253 case EBGA種別.BGAPAN:
\r
1254 if( ( pChip.rBGAPan != null ) && ( ( pChip.rBMP != null ) || ( pChip.rBMPTEX != null ) ) )
\r
1256 this.actBGA.Start( pChip.nチャンネル番号, pChip.rBMP, pChip.rBMPTEX, pChip.rBGAPan.sz開始サイズ.Width, pChip.rBGAPan.sz開始サイズ.Height, pChip.rBGAPan.sz終了サイズ.Width, pChip.rBGAPan.sz終了サイズ.Height, pChip.rBGAPan.pt画像側開始位置.X, pChip.rBGAPan.pt画像側開始位置.Y, pChip.rBGAPan.pt画像側終了位置.X, pChip.rBGAPan.pt画像側終了位置.Y, pChip.rBGAPan.pt表示側開始位置.X, pChip.rBGAPan.pt表示側開始位置.Y, pChip.rBGAPan.pt表示側終了位置.X, pChip.rBGAPan.pt表示側終了位置.Y, pChip.n総移動時間 );
\r
1261 if( pChip.rBMP != null )
\r
1263 this.actBGA.Start( pChip.nチャンネル番号, pChip.rBMP, null, pChip.rBMP.n幅, pChip.rBMP.n高さ, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 );
\r
1272 if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )
\r
1274 pChip.bHit = true;
\r
1275 if( dTX.listBPM.ContainsKey( pChip.n整数値・内部番号 ) )
\r
1277 this.actPlayInfo.dbBPM = ( dTX.listBPM[ pChip.n整数値・内部番号 ].dbBPM値 * ( ( (double) configIni.n演奏速度 ) / 20.0 ) ) + dTX.BASEBPM;
\r
1293 int num1 = this.nチャンネル0Atoレーン07[ pChip.nチャンネル番号 - 0x11 ];
\r
1294 if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )
\r
1296 pChip.bHit = true;
\r
1297 this.tサウンド再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.DRUMS, dTX.nモニタを考慮した音量( E楽器パート.DRUMS ) );
\r
1302 if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )
\r
1304 pChip.bHit = true;
\r
1305 this.r現在の歓声Chip.Drums = pChip;
\r
1317 if( configIni.bGuitar有効 )
\r
1319 if( configIni.bSudden.Guitar )
\r
1321 pChip.b可視 = pChip.nバーからの距離dot.Guitar < 200;
\r
1323 if( configIni.bHidden.Guitar && ( pChip.nバーからの距離dot.Guitar < 100 ) )
\r
1325 pChip.b可視 = false;
\r
1327 if( !pChip.bHit && pChip.b可視 )
\r
1329 int num6 = configIni.bReverse.Guitar ? ( 0x171 - pChip.nバーからの距離dot.Guitar ) : ( 40 + pChip.nバーからの距離dot.Guitar );
\r
1330 if( ( num6 > 0 ) && ( num6 < 0x199 ) )
\r
1332 int num7 = this.ctチップ模様アニメ.Guitar.n現在の値;
\r
1333 if( pChip.nチャンネル番号 == 0x20 )
\r
1335 if( this.txチップ != null )
\r
1337 this.txチップ.t2D描画( CDTXMania.app.Device, 0x1a, num6 - 4, new Rectangle( 0, 0xc0 + ( ( num7 % 5 ) * 8 ), 0x67, 8 ) );
\r
1340 else if( !configIni.bLeft.Guitar )
\r
1342 Rectangle rectangle = new Rectangle( 0, num7 * 8, 0x20, 8 );
\r
1343 if( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) && ( this.txチップ != null ) )
\r
1345 this.txチップ.t2D描画( CDTXMania.app.Device, 0x1a, num6 - 4, rectangle );
\r
1347 rectangle.X += 0x20;
\r
1348 if( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) && ( this.txチップ != null ) )
\r
1350 this.txチップ.t2D描画( CDTXMania.app.Device, 0x3e, num6 - 4, rectangle );
\r
1352 rectangle.X += 0x20;
\r
1353 if( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) && ( this.txチップ != null ) )
\r
1355 this.txチップ.t2D描画( CDTXMania.app.Device, 0x62, num6 - 4, rectangle );
\r
1360 Rectangle rectangle2 = new Rectangle( 0, num7 * 8, 0x20, 8 );
\r
1361 if( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) && ( this.txチップ != null ) )
\r
1363 this.txチップ.t2D描画( CDTXMania.app.Device, 0x62, num6 - 4, rectangle2 );
\r
1365 rectangle2.X += 0x20;
\r
1366 if( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) && ( this.txチップ != null ) )
\r
1368 this.txチップ.t2D描画( CDTXMania.app.Device, 0x3e, num6 - 4, rectangle2 );
\r
1370 rectangle2.X += 0x20;
\r
1371 if( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) && ( this.txチップ != null ) )
\r
1373 this.txチップ.t2D描画( CDTXMania.app.Device, 0x1a, num6 - 4, rectangle2 );
\r
1378 if( ( configIni.bAutoPlay.Guitar && !pChip.bHit ) && ( pChip.nバーからの距離dot.Guitar < 0 ) )
\r
1380 pChip.bHit = true;
\r
1381 if( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) || ( pChip.nチャンネル番号 == 0x20 ) )
\r
1383 this.actChipFire.Start( 0 );
\r
1385 if( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) || ( pChip.nチャンネル番号 == 0x20 ) )
\r
1387 this.actChipFire.Start( 1 );
\r
1389 if( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) || ( pChip.nチャンネル番号 == 0x20 ) )
\r
1391 this.actChipFire.Start( 2 );
\r
1393 this.tサウンド再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.GUITAR, dTX.nモニタを考慮した音量( E楽器パート.GUITAR ) );
\r
1394 this.r次にくるギターChip = null;
\r
1395 this.tチップのヒット処理( pChip.n発声時刻ms, pChip );
\r
1399 if( !pChip.bHit && ( pChip.nバーからの距離dot.Guitar < 0 ) )
\r
1401 pChip.bHit = true;
\r
1402 this.tサウンド再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.GUITAR, dTX.nモニタを考慮した音量( E楽器パート.GUITAR ) );
\r
1407 if( configIni.bGuitar有効 )
\r
1409 if( configIni.bSudden.Guitar )
\r
1411 pChip.b可視 = pChip.nバーからの距離dot.Guitar < 200;
\r
1413 if( configIni.bHidden.Guitar && ( pChip.nバーからの距離dot.Guitar < 100 ) )
\r
1415 pChip.b可視 = false;
\r
1417 if( !pChip.bHit && pChip.b可視 )
\r
1420 int num11 = configIni.bReverse.Guitar ? ( 0x171 - pChip.nバーからの距離dot.Guitar ) : ( 40 + pChip.nバーからの距離dot.Guitar );
\r
1421 int num12 = num11;
\r
1423 if( ( num12 < ( 0x199 + num10 ) ) && ( num12 > -num10 ) )
\r
1425 int num14 = this.ctWailingチップ模様アニメ.n現在の値;
\r
1426 Rectangle rectangle5 = new Rectangle( 0x60 + ( num14 * 20 ), 0, 20, 50 );
\r
1427 if( num12 < num10 )
\r
1429 rectangle5.Y += num10 - num12;
\r
1430 rectangle5.Height -= num10 - num12;
\r
1431 num13 = num10 - num12;
\r
1433 if( num12 > ( 0x199 - num10 ) )
\r
1435 rectangle5.Height -= num12 - ( 0x199 - num10 );
\r
1437 if( ( rectangle5.Bottom > rectangle5.Top ) && ( this.txチップ != null ) )
\r
1439 this.txチップ.t2D描画( CDTXMania.app.Device, 0x8b, ( num11 - num10 ) + num13, rectangle5 );
\r
1443 if( !pChip.bHit && ( pChip.nバーからの距離dot.Guitar < 0 ) )
\r
1445 pChip.bHit = true;
\r
1446 if( configIni.bAutoPlay.Guitar )
\r
1448 this.actWailingBonus.Start( E楽器パート.GUITAR, this.r現在の歓声Chip.Guitar );
\r
1453 pChip.bHit = true;
\r
1457 if( !pChip.bHit && ( pChip.nバーからの距離dot.Guitar < 0 ) )
\r
1459 pChip.bHit = true;
\r
1460 this.r現在の歓声Chip.Guitar = pChip;
\r
1474 if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )
\r
1476 pChip.bHit = true;
\r
1482 int num20 = pChip.n発声位置 / 0x180;
\r
1483 if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )
\r
1485 pChip.bHit = true;
\r
1486 this.actPlayInfo.n小節番号 = num20 - 1;
\r
1487 if( configIni.bWave再生位置自動調整機能有効 )
\r
1489 dTX.tWave再生位置自動補正();
\r
1492 if( ( pChip.b可視 && configIni.bGuitar有効 ) && ( configIni.eDark != Eダークモード.FULL ) )
\r
1494 int y = configIni.bReverse.Guitar ? ( ( 0x171 - pChip.nバーからの距離dot.Guitar ) - 1 ) : ( ( 40 + pChip.nバーからの距離dot.Guitar ) - 1 );
\r
1495 if( ( dTX.bチップがある.Guitar && ( y > 0 ) ) && ( ( y < 0x199 ) && ( this.txチップ != null ) ) )
\r
1497 this.txチップ.t2D描画( CDTXMania.app.Device, 0x1a, y, new Rectangle( 0, 0xeb, 0x68, 1 ) );
\r
1499 y = configIni.bReverse.Bass ? ( ( 0x171 - pChip.nバーからの距離dot.Bass ) - 1 ) : ( ( 40 + pChip.nバーからの距離dot.Bass ) - 1 );
\r
1500 if( ( dTX.bチップがある.Bass && ( y > 0 ) ) && ( ( y < 0x199 ) && ( this.txチップ != null ) ) )
\r
1502 this.txチップ.t2D描画( CDTXMania.app.Device, 480, y, new Rectangle( 0, 0xeb, 0x68, 1 ) );
\r
1508 if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )
\r
1509 pChip.bHit = true;
\r
1513 if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )
\r
1515 pChip.bHit = true;
\r
1520 if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )
\r
1522 pChip.bHit = true;
\r
1527 if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )
\r
1529 pChip.bHit = true;
\r
1530 if( configIni.bAVI有効 )
\r
1532 switch( pChip.eAVI種別 )
\r
1535 if( pChip.rAVI != null )
\r
1537 this.actAVI.Start( pChip.nチャンネル番号, pChip.rAVI, 0x116, 0x163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, pChip.n発声時刻ms );
\r
1541 case EAVI種別.AVIPAN:
\r
1542 if( pChip.rAVIPan != null )
\r
1544 this.actAVI.Start( pChip.nチャンネル番号, pChip.rAVI, pChip.rAVIPan.sz開始サイズ.Width, pChip.rAVIPan.sz開始サイズ.Height, pChip.rAVIPan.sz終了サイズ.Width, pChip.rAVIPan.sz終了サイズ.Height, pChip.rAVIPan.pt動画側開始位置.X, pChip.rAVIPan.pt動画側開始位置.Y, pChip.rAVIPan.pt動画側終了位置.X, pChip.rAVIPan.pt動画側終了位置.Y, pChip.rAVIPan.pt表示側開始位置.X, pChip.rAVIPan.pt表示側開始位置.Y, pChip.rAVIPan.pt表示側終了位置.X, pChip.rAVIPan.pt表示側終了位置.Y, pChip.n総移動時間, pChip.n発声時刻ms );
\r
1584 if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )
\r
1586 pChip.bHit = true;
\r
1587 if( configIni.bBGM音を発声する )
\r
1589 dTX.tWavの再生停止( this.n最後に再生したBGMの実WAV番号[ pChip.nチャンネル番号 - 0x61 ] );
\r
1590 dTX.tチップの再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, 10, dTX.nモニタを考慮した音量( E楽器パート.UNKNOWN ) );
\r
1591 this.n最後に再生したBGMの実WAV番号[ pChip.nチャンネル番号 - 0x61 ] = pChip.n整数値・内部番号;
\r
1604 if( configIni.bGuitar有効 )
\r
1606 if( configIni.bSudden.Bass )
\r
1608 pChip.b可視 = pChip.nバーからの距離dot.Bass < 200;
\r
1610 if( configIni.bHidden.Bass && ( pChip.nバーからの距離dot.Bass < 100 ) )
\r
1612 pChip.b可視 = false;
\r
1614 if( !pChip.bHit && pChip.b可視 )
\r
1616 int num8 = configIni.bReverse.Bass ? ( 0x171 - pChip.nバーからの距離dot.Bass ) : ( 40 + pChip.nバーからの距離dot.Bass );
\r
1617 if( ( num8 > 0 ) && ( num8 < 0x199 ) )
\r
1619 int num9 = this.ctチップ模様アニメ.Bass.n現在の値;
\r
1620 if( pChip.nチャンネル番号 == 160 )
\r
1622 if( this.txチップ != null )
\r
1624 this.txチップ.t2D描画( CDTXMania.app.Device, 480, num8 - 4, new Rectangle( 0, 0xc0 + ( ( num9 % 5 ) * 8 ), 0x67, 8 ) );
\r
1627 else if( !configIni.bLeft.Bass )
\r
1629 Rectangle rectangle3 = new Rectangle( 0, num9 * 8, 0x20, 8 );
\r
1630 if( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) && ( this.txチップ != null ) )
\r
1632 this.txチップ.t2D描画( CDTXMania.app.Device, 480, num8 - 4, rectangle3 );
\r
1634 rectangle3.X += 0x20;
\r
1635 if( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) && ( this.txチップ != null ) )
\r
1637 this.txチップ.t2D描画( CDTXMania.app.Device, 0x204, num8 - 4, rectangle3 );
\r
1639 rectangle3.X += 0x20;
\r
1640 if( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) && ( this.txチップ != null ) )
\r
1642 this.txチップ.t2D描画( CDTXMania.app.Device, 0x228, num8 - 4, rectangle3 );
\r
1647 Rectangle rectangle4 = new Rectangle( 0, num9 * 8, 0x20, 8 );
\r
1648 if( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) && ( this.txチップ != null ) )
\r
1650 this.txチップ.t2D描画( CDTXMania.app.Device, 0x228, num8 - 4, rectangle4 );
\r
1652 rectangle4.X += 0x20;
\r
1653 if( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) && ( this.txチップ != null ) )
\r
1655 this.txチップ.t2D描画( CDTXMania.app.Device, 0x204, num8 - 4, rectangle4 );
\r
1657 rectangle4.X += 0x20;
\r
1658 if( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) && ( this.txチップ != null ) )
\r
1660 this.txチップ.t2D描画( CDTXMania.app.Device, 480, num8 - 4, rectangle4 );
\r
1665 if( ( configIni.bAutoPlay.Bass && !pChip.bHit ) && ( pChip.nバーからの距離dot.Bass < 0 ) )
\r
1667 pChip.bHit = true;
\r
1668 if( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) || ( pChip.nチャンネル番号 == 160 ) )
\r
1670 this.actChipFire.Start( 3 );
\r
1672 if( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) || ( pChip.nチャンネル番号 == 160 ) )
\r
1674 this.actChipFire.Start( 4 );
\r
1676 if( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) || ( pChip.nチャンネル番号 == 160 ) )
\r
1678 this.actChipFire.Start( 5 );
\r
1680 this.tサウンド再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.BASS, dTX.nモニタを考慮した音量( E楽器パート.BASS ) );
\r
1681 this.r次にくるベースChip = null;
\r
1682 this.tチップのヒット処理( pChip.n発声時刻ms, pChip );
\r
1686 if( !pChip.bHit && ( pChip.nバーからの距離dot.Bass < 0 ) )
\r
1688 pChip.bHit = true;
\r
1689 this.tサウンド再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.BASS, dTX.nモニタを考慮した音量( E楽器パート.BASS ) );
\r
1694 if( configIni.bGuitar有効 )
\r
1696 if( configIni.bSudden.Bass )
\r
1698 pChip.b可視 = pChip.nバーからの距離dot.Bass < 200;
\r
1700 if( configIni.bHidden.Bass && ( pChip.nバーからの距離dot.Bass < 100 ) )
\r
1702 pChip.b可視 = false;
\r
1704 if( !pChip.bHit && pChip.b可視 )
\r
1707 int num16 = configIni.bReverse.Bass ? ( 0x171 - pChip.nバーからの距離dot.Bass ) : ( 40 + pChip.nバーからの距離dot.Bass );
\r
1708 int num17 = num16;
\r
1710 if( ( num17 < ( 0x199 + num15 ) ) && ( num17 > -num15 ) )
\r
1712 int num19 = this.ctWailingチップ模様アニメ.n現在の値;
\r
1713 Rectangle rectangle6 = new Rectangle( 0x60 + ( num19 * 20 ), 0, 20, 50 );
\r
1714 if( num17 < num15 )
\r
1716 rectangle6.Y += num15 - num17;
\r
1717 rectangle6.Height -= num15 - num17;
\r
1718 num18 = num15 - num17;
\r
1720 if( num17 > ( 0x199 - num15 ) )
\r
1722 rectangle6.Height -= num17 - ( 0x199 - num15 );
\r
1724 if( ( rectangle6.Bottom > rectangle6.Top ) && ( this.txチップ != null ) )
\r
1726 this.txチップ.t2D描画( CDTXMania.app.Device, 0x251, ( num16 - num15 ) + num18, rectangle6 );
\r
1730 if( !pChip.bHit && ( pChip.nバーからの距離dot.Bass < 0 ) )
\r
1732 pChip.bHit = true;
\r
1733 if( configIni.bAutoPlay.Bass )
\r
1735 this.actWailingBonus.Start( E楽器パート.BASS, this.r現在の歓声Chip.Bass );
\r
1740 pChip.bHit = true;
\r
1744 if( !pChip.bHit && ( pChip.nバーからの距離dot.Bass < 0 ) )
\r
1746 pChip.bHit = true;
\r
1747 this.r現在の歓声Chip.Bass = pChip;
\r
1761 if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )
\r
1763 pChip.bHit = true;
\r
1768 if( !pChip.bHit && ( pChip.nバーからの距離dot.Guitar < 0 ) )
\r
1770 pChip.bHit = true;
\r
1771 this.r現在の空うちギターChip = pChip;
\r
1772 pChip.nチャンネル番号 = 0x20;
\r
1777 if( !pChip.bHit && ( pChip.nバーからの距離dot.Bass < 0 ) )
\r
1779 pChip.bHit = true;
\r
1780 this.r現在の空うちベースChip = pChip;
\r
1781 pChip.nチャンネル番号 = 160;
\r
1793 if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )
\r
1795 pChip.bHit = true;
\r
1796 if( ( configIni.bBGA有効 && ( pChip.eBGA種別 == EBGA種別.BMP ) ) || ( pChip.eBGA種別 == EBGA種別.BMPTEX ) )
\r
1798 for( int i = 0; i < 8; i++ )
\r
1800 if( this.nBGAスコープチャンネルマップ[ 0, i ] == pChip.nチャンネル番号 )
\r
1802 this.actBGA.ChangeScope( this.nBGAスコープチャンネルマップ[ 1, i ], pChip.rBMP, pChip.rBMPTEX );
\r
1810 if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )
\r
1812 pChip.bHit = true;
\r
1821 private void t進行描画・チップアニメ()
\r
1823 for( int i = 1; i < 3; i++ )
\r
1825 this.ctチップ模様アニメ[ i ].t進行Loop();
\r
1827 this.ctWailingチップ模様アニメ.t進行Loop();
\r
1829 private void t進行描画・チップファイアGB()
\r
1831 this.actChipFire.On進行描画();
\r
1833 private void t進行描画・パネル文字列()
\r
1835 if( ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) )
\r
1837 this.actPanel.t進行描画( 0xb5, 430 );
\r
1840 private bool t進行描画・フェードイン・アウト()
\r
1842 switch( base.eフェーズID )
\r
1844 case CStage.Eフェーズ.共通_フェードイン:
\r
1845 if( this.actFI.On進行描画() != 0 )
\r
1847 base.eフェーズID = CStage.Eフェーズ.共通_通常状態;
\r
1851 case CStage.Eフェーズ.共通_フェードアウト:
\r
1852 case CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト:
\r
1853 if( this.actFO.On進行描画() != 0 )
\r
1859 case CStage.Eフェーズ.演奏_STAGE_CLEAR_フェードアウト:
\r
1860 if( this.actFOClear.On進行描画() == 0 )
\r
1868 private void t進行描画・レーンフラッシュGB()
\r
1870 if( ( ( CDTXMania.ConfigIni.eDark != Eダークモード.HALF ) && ( CDTXMania.ConfigIni.eDark != Eダークモード.FULL ) ) && CDTXMania.ConfigIni.bGuitar有効 )
\r
1872 this.actLaneFlushGB.On進行描画();
\r
1875 private void t進行描画・演奏情報()
\r
1877 if( !CDTXMania.ConfigIni.b演奏情報を表示しない )
\r
1879 this.actPlayInfo.t進行描画( 0xb5, 50 );
\r
1882 private void t進行描画・背景()
\r
1884 if( CDTXMania.ConfigIni.eDark == Eダークモード.OFF )
\r
1886 if( this.tx背景 != null )
\r
1888 this.tx背景.t2D描画( CDTXMania.app.Device, 0, 0 );
\r
1893 CDTXMania.app.Device.Clear( ClearFlags.ZBuffer | ClearFlags.Target, Color.Black, 0f, 0 );
\r
1896 private void t進行描画・判定文字列()
\r
1898 this.actJudgeString.On進行描画();
\r
1900 private void t進行描画・譜面スクロール速度()
\r
1902 this.act譜面スクロール速度.On進行描画();
\r
1904 private void t入力メソッド記憶( E楽器パート part )
\r
1906 if( CDTXMania.Pad.st検知したデバイス.Keyboard )
\r
1908 this.b演奏にキーボードを使った[ (int) part ] = true;
\r
1910 if( CDTXMania.Pad.st検知したデバイス.Joypad )
\r
1912 this.b演奏にジョイパッドを使った[ (int) part ] = true;
\r
1914 if( CDTXMania.Pad.st検知したデバイス.MIDIIN )
\r
1916 this.b演奏にMIDI入力を使った[ (int) part ] = true;
\r
1918 if( CDTXMania.Pad.st検知したデバイス.Mouse )
\r
1920 this.b演奏にマウスを使った[ (int) part ] = true;
\r
1923 private void t入力処理・ギター()
\r
1925 if( CDTXMania.ConfigIni.bGuitar有効 && CDTXMania.DTX.bチップがある.Guitar )
\r
1927 if( CDTXMania.ConfigIni.bAutoPlay.Guitar )
\r
1929 CDTX.CChip chip = this.r次にくるギターChipを更新して返す();
\r
1930 if( chip != null )
\r
1932 if( ( chip.nチャンネル番号 & 4 ) != 0 )
\r
1934 this.actLaneFlushGB.Start( 0 );
\r
1935 this.actRGB.Push( 0 );
\r
1937 if( ( chip.nチャンネル番号 & 2 ) != 0 )
\r
1939 this.actLaneFlushGB.Start( 1 );
\r
1940 this.actRGB.Push( 1 );
\r
1942 if( ( chip.nチャンネル番号 & 1 ) != 0 )
\r
1944 this.actLaneFlushGB.Start( 2 );
\r
1945 this.actRGB.Push( 2 );
\r
1951 if( CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.CY ) && CDTXMania.Pad.b押された( E楽器パート.GUITAR, Eパッド.BD ) )
\r
1953 CDTXMania.ConfigIni.n譜面スクロール速度.Guitar = Math.Min( CDTXMania.ConfigIni.n譜面スクロール速度.Guitar + 1, 0x7cf );
\r
1955 if( CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.CY ) && CDTXMania.Pad.b押された( E楽器パート.GUITAR, Eパッド.HH ) )
\r
1957 CDTXMania.ConfigIni.n譜面スクロール速度.Guitar = Math.Max( CDTXMania.ConfigIni.n譜面スクロール速度.Guitar - 1, 0 );
\r
1959 int num = CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.HH ) ? 4 : 0;
\r
1960 this.t入力メソッド記憶( E楽器パート.GUITAR );
\r
1961 int num2 = CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.SD ) ? 2 : 0;
\r
1962 this.t入力メソッド記憶( E楽器パート.GUITAR );
\r
1963 int num3 = CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.BD ) ? 1 : 0;
\r
1964 this.t入力メソッド記憶( E楽器パート.GUITAR );
\r
1965 int num4 = ( num | num2 ) | num3;
\r
1968 this.actLaneFlushGB.Start( 0 );
\r
1969 this.actRGB.Push( 0 );
\r
1973 this.actLaneFlushGB.Start( 1 );
\r
1974 this.actRGB.Push( 1 );
\r
1978 this.actLaneFlushGB.Start( 2 );
\r
1979 this.actRGB.Push( 2 );
\r
1981 List<STInputEvent> events = CDTXMania.Pad.GetEvents( E楽器パート.GUITAR, Eパッド.HT );
\r
1982 if( ( events != null ) && ( events.Count > 0 ) )
\r
1984 foreach( STInputEvent event2 in events )
\r
1987 if( !event2.b押された )
\r
1991 this.t入力メソッド記憶( E楽器パート.GUITAR );
\r
1992 long nTime = event2.nTimeStamp - CDTXMania.Timer.n前回リセットした時のシステム時刻;
\r
1993 CDTX.CChip pChip = this.r指定時刻に一番近い未ヒットChip( nTime, 0x2f );
\r
1994 E判定 e判定 = this.e指定時刻からChipのJUDGEを返す( nTime, pChip );
\r
1995 if( ( ( pChip != null ) && ( ( pChip.nチャンネル番号 & 15 ) == num4 ) ) && ( e判定 != E判定.Miss ) )
\r
1997 if( ( num != 0 ) || ( num4 == 0 ) )
\r
1999 this.actChipFire.Start( 0 );
\r
2001 if( ( num2 != 0 ) || ( num4 == 0 ) )
\r
2003 this.actChipFire.Start( 1 );
\r
2005 if( ( num3 != 0 ) || ( num4 == 0 ) )
\r
2007 this.actChipFire.Start( 2 );
\r
2009 this.tチップのヒット処理( nTime, pChip );
\r
2010 this.tサウンド再生( pChip, CDTXMania.Timer.nシステム時刻, E楽器パート.GUITAR, CDTXMania.ConfigIni.n手動再生音量, CDTXMania.ConfigIni.b演奏音を強調する.Guitar, e判定 == E判定.Poor );
\r
2011 CDTX.CChip item = this.r指定時刻に一番近い未ヒットChip( nTime, 40, 140 );
\r
2012 if( item != null )
\r
2014 this.queWailing.Guitar.Enqueue( item );
\r
2018 if( ( ( chip4 = this.r現在の空うちギターChip ) != null ) || ( ( chip4 = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, 0x2f ) ) != null ) )
\r
2020 this.tサウンド再生( chip4, CDTXMania.Timer.nシステム時刻, E楽器パート.GUITAR, CDTXMania.ConfigIni.n手動再生音量, CDTXMania.ConfigIni.b演奏音を強調する.Guitar, true );
\r
2022 if( !CDTXMania.ConfigIni.bLight.Guitar )
\r
2024 this.tチップのヒット処理・BadならびにTight時のMiss( E楽器パート.GUITAR );
\r
2028 List<STInputEvent> list2 = CDTXMania.Pad.GetEvents( E楽器パート.GUITAR, Eパッド.LT );
\r
2029 if( ( list2 != null ) && ( list2.Count > 0 ) )
\r
2031 foreach( STInputEvent event3 in list2 )
\r
2034 if( !event3.b押された )
\r
2038 long num6 = event3.nTimeStamp - CDTXMania.Timer.n前回リセットした時のシステム時刻;
\r
2039 while( ( this.queWailing.Guitar.Count > 0 ) && ( ( chip5 = this.queWailing.Guitar.Dequeue() ) != null ) )
\r
2041 if( ( num6 - chip5.n発声時刻ms ) <= 800 )
\r
2043 chip5.bHit = true;
\r
2044 this.actWailingBonus.Start( E楽器パート.GUITAR, this.r現在の歓声Chip.Guitar );
\r
2045 if( !CDTXMania.ConfigIni.bAutoPlay.Guitar )
\r
2047 this.actScore.Set( E楽器パート.DRUMS, this.actScore.Get( E楽器パート.DRUMS ) + ( this.actCombo.n現在のコンボ数.Guitar * 0xbb8L ) );
\r
2056 private void t入力処理・ベース()
\r
2058 if( CDTXMania.ConfigIni.bGuitar有効 && CDTXMania.DTX.bチップがある.Bass )
\r
2060 if( CDTXMania.ConfigIni.bAutoPlay.Bass )
\r
2062 CDTX.CChip chip = this.r次にくるベースChipを更新して返す();
\r
2063 if( chip != null )
\r
2065 if( ( chip.nチャンネル番号 & 4 ) != 0 )
\r
2067 this.actLaneFlushGB.Start( 3 );
\r
2068 this.actRGB.Push( 3 );
\r
2070 if( ( chip.nチャンネル番号 & 2 ) != 0 )
\r
2072 this.actLaneFlushGB.Start( 4 );
\r
2073 this.actRGB.Push( 4 );
\r
2075 if( ( chip.nチャンネル番号 & 1 ) != 0 )
\r
2077 this.actLaneFlushGB.Start( 5 );
\r
2078 this.actRGB.Push( 5 );
\r
2084 if( CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.CY ) && CDTXMania.Pad.b押された( E楽器パート.BASS, Eパッド.BD ) )
\r
2086 CDTXMania.ConfigIni.n譜面スクロール速度.Bass = Math.Min( CDTXMania.ConfigIni.n譜面スクロール速度.Bass + 1, 0x7cf );
\r
2088 if( CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.CY ) && CDTXMania.Pad.b押された( E楽器パート.BASS, Eパッド.HH ) )
\r
2090 CDTXMania.ConfigIni.n譜面スクロール速度.Bass = Math.Max( CDTXMania.ConfigIni.n譜面スクロール速度.Bass - 1, 0 );
\r
2092 int num = CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.HH ) ? 4 : 0;
\r
2093 this.t入力メソッド記憶( E楽器パート.BASS );
\r
2094 int num2 = CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.SD ) ? 2 : 0;
\r
2095 this.t入力メソッド記憶( E楽器パート.BASS );
\r
2096 int num3 = CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.BD ) ? 1 : 0;
\r
2097 this.t入力メソッド記憶( E楽器パート.BASS );
\r
2098 int num4 = ( num | num2 ) | num3;
\r
2101 this.actLaneFlushGB.Start( 3 );
\r
2102 this.actRGB.Push( 3 );
\r
2106 this.actLaneFlushGB.Start( 4 );
\r
2107 this.actRGB.Push( 4 );
\r
2111 this.actLaneFlushGB.Start( 5 );
\r
2112 this.actRGB.Push( 5 );
\r
2114 List<STInputEvent> events = CDTXMania.Pad.GetEvents( E楽器パート.BASS, Eパッド.HT );
\r
2115 if( ( events != null ) && ( events.Count > 0 ) )
\r
2117 foreach( STInputEvent event2 in events )
\r
2120 if( !event2.b押された )
\r
2124 this.t入力メソッド記憶( E楽器パート.BASS );
\r
2125 long nTime = event2.nTimeStamp - CDTXMania.Timer.n前回リセットした時のシステム時刻;
\r
2126 CDTX.CChip pChip = this.r指定時刻に一番近い未ヒットChip( nTime, 0xaf );
\r
2127 E判定 e判定 = this.e指定時刻からChipのJUDGEを返す( nTime, pChip );
\r
2128 if( ( ( pChip != null ) && ( ( pChip.nチャンネル番号 & 15 ) == num4 ) ) && ( e判定 != E判定.Miss ) )
\r
2130 if( ( num != 0 ) || ( num4 == 0 ) )
\r
2132 this.actChipFire.Start( 3 );
\r
2134 if( ( num2 != 0 ) || ( num4 == 0 ) )
\r
2136 this.actChipFire.Start( 4 );
\r
2138 if( ( num3 != 0 ) || ( num4 == 0 ) )
\r
2140 this.actChipFire.Start( 5 );
\r
2142 this.tチップのヒット処理( nTime, pChip );
\r
2143 this.tサウンド再生( pChip, CDTXMania.Timer.nシステム時刻, E楽器パート.BASS, CDTXMania.ConfigIni.n手動再生音量, CDTXMania.ConfigIni.b演奏音を強調する.Bass, e判定 == E判定.Poor );
\r
2144 CDTX.CChip item = this.r指定時刻に一番近い未ヒットChip( nTime, 0xa8, 140 );
\r
2145 if( item != null )
\r
2147 this.queWailing.Bass.Enqueue( item );
\r
2151 if( ( ( chip4 = this.r現在の空うちベースChip ) != null ) || ( ( chip4 = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, 0xaf ) ) != null ) )
\r
2153 this.tサウンド再生( chip4, CDTXMania.Timer.nシステム時刻, E楽器パート.BASS, CDTXMania.ConfigIni.n手動再生音量, CDTXMania.ConfigIni.b演奏音を強調する.Bass, true );
\r
2155 if( !CDTXMania.ConfigIni.bLight.Bass )
\r
2157 this.tチップのヒット処理・BadならびにTight時のMiss( E楽器パート.BASS );
\r
2161 List<STInputEvent> list2 = CDTXMania.Pad.GetEvents( E楽器パート.BASS, Eパッド.LT );
\r
2162 if( ( list2 != null ) && ( list2.Count > 0 ) )
\r
2164 foreach( STInputEvent event3 in list2 )
\r
2167 if( !event3.b押された )
\r
2171 long num6 = event3.nTimeStamp - CDTXMania.Timer.n前回リセットした時のシステム時刻;
\r
2172 while( ( this.queWailing.Bass.Count > 0 ) && ( ( chip5 = this.queWailing.Bass.Dequeue() ) != null ) )
\r
2174 if( ( num6 - chip5.n発声時刻ms ) <= 800 )
\r
2176 chip5.bHit = true;
\r
2177 this.actWailingBonus.Start( E楽器パート.BASS, this.r現在の歓声Chip.Bass );
\r
2178 if( !CDTXMania.ConfigIni.bAutoPlay.Bass )
\r
2180 this.actScore.Set( E楽器パート.DRUMS, this.actScore.Get( E楽器パート.DRUMS ) + ( this.actCombo.n現在のコンボ数.Bass * 0xbb8L ) );
\r
2189 private void t背景テクスチャの生成()
\r
2191 Bitmap image = null;
\r
2194 if( !CDTXMania.ConfigIni.bストイックモード )
\r
2196 string bACKGROUND = null;
\r
2197 if( ( CDTXMania.DTX.BACKGROUND_GR != null ) && ( CDTXMania.DTX.BACKGROUND_GR.Length > 0 ) )
\r
2199 bACKGROUND = CDTXMania.DTX.BACKGROUND_GR;
\r
2201 else if( ( CDTXMania.DTX.BACKGROUND != null ) && ( CDTXMania.DTX.BACKGROUND.Length > 0 ) )
\r
2203 bACKGROUND = CDTXMania.DTX.BACKGROUND;
\r
2205 if( ( bACKGROUND != null ) && ( bACKGROUND.Length > 0 ) )
\r
2207 path = CDTXMania.DTX.strフォルダ名 + bACKGROUND;
\r
2208 if( File.Exists( path ) )
\r
2212 Bitmap bitmap2 = null;
\r
2213 bitmap2 = new Bitmap( path );
\r
2214 if( ( bitmap2.Size.Width == 0 ) && ( bitmap2.Size.Height == 0 ) )
\r
2219 Bitmap bitmap3 = new Bitmap( 640, 480 );
\r
2220 Graphics graphics = Graphics.FromImage( bitmap3 );
\r
2221 for( int i = 0; i < 480; i += bitmap2.Size.Height )
\r
2223 for( int j = 0; j < 640; j += bitmap2.Size.Width )
\r
2225 graphics.DrawImage( bitmap2, j, i, bitmap2.Width, bitmap2.Height );
\r
2228 graphics.Dispose();
\r
2229 bitmap2.Dispose();
\r
2230 image = new Bitmap( CSkin.Path( @"Graphics\\ScreenPlayGuitar background.jpg" ) );
\r
2231 graphics = Graphics.FromImage( image );
\r
2232 ColorMatrix matrix2 = new ColorMatrix();
\r
2233 matrix2.Matrix00 = 1f;
\r
2234 matrix2.Matrix11 = 1f;
\r
2235 matrix2.Matrix22 = 1f;
\r
2236 matrix2.Matrix33 = ( (float) CDTXMania.ConfigIni.n背景の透過度 ) / 255f;
\r
2237 matrix2.Matrix44 = 1f;
\r
2238 ColorMatrix newColorMatrix = matrix2;
\r
2239 ImageAttributes imageAttr = new ImageAttributes();
\r
2240 imageAttr.SetColorMatrix( newColorMatrix );
\r
2241 graphics.DrawImage( bitmap3, new Rectangle( 0, 0, 640, 480 ), 0, 0, 640, 480, GraphicsUnit.Pixel, imageAttr );
\r
2242 imageAttr.Dispose();
\r
2243 graphics.DrawImage( bitmap3, new Rectangle( 0xb5, 50, 0x116, 0x163 ), 0xb5, 50, 0x116, 0x163, GraphicsUnit.Pixel );
\r
2244 graphics.Dispose();
\r
2245 bitmap3.Dispose();
\r
2250 Trace.TraceError( "背景画像の読み込みに失敗しました。({0})", new object[] { path } );
\r
2257 path = CSkin.Path( @"Graphics\ScreenPlayGuitar background.jpg" );
\r
2260 image = new Bitmap( path );
\r
2264 Trace.TraceError( "背景画像の読み込みに失敗しました。({0})", new object[] { path } );
\r
2269 if( ( CDTXMania.DTX.listBMP.Count > 0 ) || ( CDTXMania.DTX.listBMPTEX.Count > 0 ) )
\r
2271 Graphics graphics2 = Graphics.FromImage( image );
\r
2272 graphics2.FillRectangle( Brushes.Black, 0xb5, 50, 0x116, 0x163 );
\r
2273 graphics2.Dispose();
\r
2277 this.tx背景 = new CTexture( CDTXMania.app.Device, image, CDTXMania.TextureFormat );
\r
2279 catch( CTextureCreateFailedException )
\r
2281 Trace.TraceError( "背景テクスチャの生成に失敗しました。" );
\r
2286 private void t判定にあわせてゲージを増減する( E楽器パート part, E判定 e今回の判定 )
\r
2292 num = ( part == E楽器パート.DRUMS ) ? 0.01 : 0.015;
\r
2296 num = ( part == E楽器パート.DRUMS ) ? 0.006 : 0.009;
\r
2300 num = ( part == E楽器パート.DRUMS ) ? 0.002 : 0.003;
\r
2304 num = ( part == E楽器パート.DRUMS ) ? 0.0 : 0.0;
\r
2308 num = ( part == E楽器パート.DRUMS ) ? -0.035 : -0.035;
\r
2309 switch( CDTXMania.ConfigIni.eダメージレベル )
\r
2311 case Eダメージレベル.少ない:
\r
2319 case Eダメージレベル.大きい:
\r
2329 this.actGauge.db現在のゲージ値[ (int) part ] += num;
\r
2331 if( this.actGauge.db現在のゲージ値[ (int) part ] > 1.0 )
\r
2332 this.actGauge.db現在のゲージ値[ (int) part ] = 1.0;
\r
2334 //-----------------
\r