2 using System.Collections.Generic;
\r
4 using System.Diagnostics;
\r
5 using System.Drawing;
\r
8 using System.Drawing.Text;
\r
13 internal class CStage曲読み込み : CStage
\r
17 public CStage曲読み込み()
\r
19 base.eステージID = CStage.Eステージ.曲読み込み;
\r
20 base.eフェーズID = CStage.Eフェーズ.共通_通常状態;
\r
21 base.b活性化してない = true;
\r
22 // base.list子Activities.Add( this.actFI = new CActFIFOBlack() ); // #27787 2012.3.10 yyagi 曲読み込み画面のフェードインの省略
\r
23 base.list子Activities.Add(this.actFO = new CActFIFOBlack());
\r
29 public override void On活性化()
\r
31 Trace.TraceInformation("曲読み込みステージを活性化します。");
\r
36 this.strSTAGEFILE = "";
\r
37 this.b音符を表示する = false;
\r
38 this.n音符の表示位置X = 0x308;
\r
39 this.ftタイトル表示用フォント = new Font("MS PGothic", fFontSizeTitle * Scale.Y, GraphicsUnit.Pixel);
\r
40 this.nBGM再生開始時刻 = -1;
\r
41 this.nBGMの総再生時間ms = 0;
\r
42 if (this.sd読み込み音 != null)
\r
44 CDTXMania.Instance.Sound管理.tサウンドを破棄する(this.sd読み込み音);
\r
45 this.sd読み込み音 = null;
\r
48 string strDTXファイルパス = (CDTXMania.Instance.bコンパクトモード) ?
\r
49 CDTXMania.Instance.strコンパクトモードファイル : CDTXMania.Instance.stage選曲.r確定されたスコア.ファイル情報.ファイルの絶対パス;
\r
51 CDTX cdtx = new CDTX(strDTXファイルパス, true);
\r
52 this.str曲タイトル = cdtx.TITLE;
\r
53 if (((cdtx.STAGEFILE != null) && (cdtx.STAGEFILE.Length > 0)) && (File.Exists(cdtx.strフォルダ名 + cdtx.STAGEFILE) && !CDTXMania.Instance.ConfigIni.bストイックモード))
\r
55 this.strSTAGEFILE = cdtx.strフォルダ名 + cdtx.STAGEFILE;
\r
56 this.b音符を表示する = false;
\r
60 this.strSTAGEFILE = CSkin.Path(@"Graphics\\ScreenNowLoading background.jpg");
\r
61 this.b音符を表示する = true;
\r
63 if (((cdtx.SOUND_NOWLOADING != null) && (cdtx.SOUND_NOWLOADING.Length > 0)) && File.Exists(cdtx.strフォルダ名 + cdtx.SOUND_NOWLOADING))
\r
65 string strNowLoadingサウンドファイルパス = cdtx.strフォルダ名 + cdtx.SOUND_NOWLOADING;
\r
68 this.sd読み込み音 = CDTXMania.Instance.Sound管理.tサウンドを生成する(strNowLoadingサウンドファイルパス);
\r
72 Trace.TraceError("#SOUND_NOWLOADING に指定されたサウンドファイルの読み込みに失敗しました。({0})", strNowLoadingサウンドファイルパス);
\r
80 Trace.TraceInformation("曲読み込みステージの活性化を完了しました。");
\r
85 private void ReadGhost(string filename, List<int> list) // #35411 2015.08.19 chnmr0 add
\r
87 if (File.Exists(filename))
\r
89 using (FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read))
\r
91 using (BinaryReader br = new BinaryReader(fs))
\r
95 int cnt = br.ReadInt32();
\r
96 for (int i = 0; i < cnt; ++i)
\r
98 short lag = br.ReadInt16();
\r
102 catch (EndOfStreamException)
\r
104 Trace.TraceInformation("ゴーストデータは正しく読み込まれませんでした。");
\r
112 public override void On非活性化()
\r
114 Trace.TraceInformation("曲読み込みステージを非活性化します。");
\r
118 if (this.ftタイトル表示用フォント != null)
\r
120 this.ftタイトル表示用フォント.Dispose();
\r
121 this.ftタイトル表示用フォント = null;
\r
127 Trace.TraceInformation("曲読み込みステージの非活性化を完了しました。");
\r
131 public override void OnManagedリソースの作成()
\r
133 if (!base.b活性化してない)
\r
135 this.tx音符 = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\\ScreenNowLoading onpu.png"), false);
\r
136 this.tx背景 = TextureFactory.tテクスチャの生成(this.strSTAGEFILE, false);
\r
138 if (!this.b音符を表示する && this.tx背景 != null)
\r
140 this.tx背景.vc拡大縮小倍率 = new Vector3(Scale.X, Scale.Y, 1f); // とりあえずFullHD化
\r
146 if ((this.str曲タイトル != null) && (this.str曲タイトル.Length > 0))
\r
148 Bitmap image = new Bitmap(1, 1);
\r
149 Graphics graphics = Graphics.FromImage(image);
\r
150 SizeF ef = graphics.MeasureString(this.str曲タイトル, this.ftタイトル表示用フォント);
\r
151 Size size = new Size((int)Math.Ceiling((double)ef.Width), (int)Math.Ceiling((double)ef.Height));
\r
152 graphics.Dispose();
\r
154 image = new Bitmap(size.Width, size.Height);
\r
155 graphics = Graphics.FromImage(image);
\r
156 graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;
\r
157 graphics.DrawString(this.str曲タイトル, this.ftタイトル表示用フォント, Brushes.White, (float)0f, (float)0f);
\r
158 graphics.Dispose();
\r
159 this.txタイトル = new CTexture(CDTXMania.Instance.Device, image, CDTXMania.Instance.TextureFormat);
\r
160 this.txタイトル.vc拡大縮小倍率 = new Vector3(0.5f, 0.5f, 1f);
\r
162 this.n音符の表示位置X = ((SampleFramework.GameWindowSize.Width - ((int)(size.Width * this.txタイトル.vc拡大縮小倍率.X))) - ((this.tx音符 != null) ? this.tx音符.sz画像サイズ.Width : 0)) - 2;
\r
166 this.txタイトル = null;
\r
167 this.n音符の表示位置X = (SampleFramework.GameWindowSize.Width - ((this.tx音符 != null) ? this.tx音符.sz画像サイズ.Width : 0)) - 2;
\r
170 catch (CTextureCreateFailedException)
\r
172 Trace.TraceError("テクスチャの生成に失敗しました。({0})", new object[] { this.strSTAGEFILE });
\r
173 this.txタイトル = null;
\r
179 this.txタイトル = null;
\r
181 base.OnManagedリソースの作成();
\r
184 public override void OnManagedリソースの解放()
\r
186 if (!base.b活性化してない)
\r
188 TextureFactory.tテクスチャの解放(ref this.tx背景);
\r
189 TextureFactory.tテクスチャの解放(ref this.tx音符);
\r
190 TextureFactory.tテクスチャの解放(ref this.txタイトル);
\r
191 base.OnManagedリソースの解放();
\r
194 public override int On進行描画()
\r
201 #region [ 初めての進行描画 ]
\r
202 //-----------------------------
\r
203 if (base.b初めての進行描画)
\r
205 Cスコア cスコア1 = CDTXMania.Instance.stage選曲.r確定されたスコア;
\r
206 if (this.sd読み込み音 != null)
\r
208 if (CDTXMania.Instance.Skin.sound曲読込開始音.b排他 && (CSkin.Cシステムサウンド.r最後に再生した排他システムサウンド != null))
\r
210 CSkin.Cシステムサウンド.r最後に再生した排他システムサウンド.t停止する();
\r
212 this.sd読み込み音.t再生を開始する();
\r
213 this.nBGM再生開始時刻 = CSound管理.rc演奏用タイマ.n現在時刻;
\r
214 this.nBGMの総再生時間ms = this.sd読み込み音.n総演奏時間ms;
\r
218 CDTXMania.Instance.Skin.sound曲読込開始音.t再生する();
\r
219 this.nBGM再生開始時刻 = CSound管理.rc演奏用タイマ.n現在時刻;
\r
220 this.nBGMの総再生時間ms = CDTXMania.Instance.Skin.sound曲読込開始音.n長さ_現在のサウンド;
\r
222 // this.actFI.tフェードイン開始(); // #27787 2012.3.10 yyagi 曲読み込み画面のフェードインの省略
\r
223 base.eフェーズID = CStage.Eフェーズ.共通_フェードイン;
\r
224 base.b初めての進行描画 = false;
\r
227 bitmapFilename = new Bitmap(SampleFramework.GameWindowSize.Width, (int)(fFontSizeFilename * Scale.X));
\r
228 graphicsFilename = Graphics.FromImage(bitmapFilename);
\r
229 graphicsFilename.TextRenderingHint = TextRenderingHint.AntiAlias;
\r
230 ftFilename = new Font("MS PGothic", fFontSizeFilename * Scale.X, FontStyle.Bold, GraphicsUnit.Pixel);
\r
232 //-----------------------------
\r
235 #region [ ESC押下時は選曲画面に戻る ]
\r
238 if (this.sd読み込み音 != null)
\r
240 this.sd読み込み音.tサウンドを停止する();
\r
241 this.sd読み込み音.t解放する();
\r
243 return (int)E曲読込画面の戻り値.読込中止;
\r
247 #region [ 背景、音符+タイトル表示 ]
\r
248 //-----------------------------
\r
249 if (this.tx背景 != null)
\r
250 this.tx背景.t2D描画(CDTXMania.Instance.Device, 0, 0);
\r
254 int y = SampleFramework.GameWindowSize.Height - (int)(fFontSizeTitle * Scale.Y) + (int)(3 * Scale.X); // 480 - 45;
\r
255 if (this.tx音符 != null)
\r
258 CDTXMania.Instance.Device,
\r
263 if (this.txタイトル != null)
\r
266 CDTXMania.Instance.Device,
\r
267 (int)(SampleFramework.GameWindowSize.Width - (this.txタイトル.sz画像サイズ.Width * this.txタイトル.vc拡大縮小倍率.X)),
\r
272 //-----------------------------
\r
275 switch (base.eフェーズID)
\r
277 case CStage.Eフェーズ.共通_フェードイン:
\r
278 // if( this.actFI.On進行描画() != 0 ) // #27787 2012.3.10 yyagi 曲読み込み画面のフェードインの省略
\r
279 // 必ず一度「CStaeg.Eフェーズ.共通_フェードイン」フェーズを経由させること。
\r
280 // さもないと、曲読み込みが完了するまで、曲読み込み画面が描画されない。
\r
281 base.eフェーズID = CStage.Eフェーズ.NOWLOADING_DTXファイルを読み込む;
\r
282 return (int)E曲読込画面の戻り値.継続;
\r
284 case CStage.Eフェーズ.NOWLOADING_DTXファイルを読み込む:
\r
286 timeBeginLoad = DateTime.Now;
\r
289 if (!CDTXMania.Instance.bコンパクトモード)
\r
290 str = CDTXMania.Instance.stage選曲.r確定されたスコア.ファイル情報.ファイルの絶対パス;
\r
292 str = CDTXMania.Instance.strコンパクトモードファイル;
\r
294 CScoreIni ini = new CScoreIni(str + ".score.ini");
\r
296 if ((CDTXMania.Instance.DTX != null) && CDTXMania.Instance.DTX.b活性化してる)
\r
297 CDTXMania.Instance.DTX.On非活性化();
\r
299 CDTXMania.Instance.DTX = new CDTX(str, false, ((double)CDTXMania.Instance.ConfigIni.n演奏速度) / 20.0, ini.stファイル.BGMAdjust);
\r
300 Trace.TraceInformation("----曲情報-----------------");
\r
301 Trace.TraceInformation("TITLE: {0}", CDTXMania.Instance.DTX.TITLE);
\r
302 Trace.TraceInformation("FILE: {0}", CDTXMania.Instance.DTX.strファイル名の絶対パス);
\r
303 Trace.TraceInformation("---------------------------");
\r
305 // #35411 2015.08.19 chnmr0 add
\r
306 // Read ghost data by config
\r
307 // It does not exist a ghost file for 'perfect' actually
\r
308 STDGBVALUE<string> inst = new STDGBVALUE<string>();
\r
310 inst.Guitar = "gt";
\r
312 if (CDTXMania.Instance.ConfigIni.bIsSwappedGuitarBass)
\r
314 inst.Guitar = "bs";
\r
318 for (E楽器パート einst = E楽器パート.DRUMS; einst <= E楽器パート.BASS; ++einst)
\r
320 bool readAutoGhostCond = false;
\r
321 readAutoGhostCond |= einst == E楽器パート.DRUMS ? CDTXMania.Instance.ConfigIni.bドラムが全部オートプレイである : false;
\r
322 readAutoGhostCond |= einst == E楽器パート.GUITAR ? CDTXMania.Instance.ConfigIni.bギターが全部オートプレイである : false;
\r
323 readAutoGhostCond |= einst == E楽器パート.BASS ? CDTXMania.Instance.ConfigIni.bベースが全部オートプレイである : false;
\r
325 CDTXMania.Instance.DTX.listTargetGhsotLag[einst] = null;
\r
326 CDTXMania.Instance.DTX.listAutoGhostLag[einst] = null;
\r
328 if (readAutoGhostCond)
\r
330 string[] prefix = { "perfect", "lastplay", "hiskill", "hiscore", "online" };
\r
331 int indPrefix = (int)CDTXMania.Instance.ConfigIni.eAutoGhost[einst];
\r
332 string filename = CDTXMania.Instance.DTX.strフォルダ名 + "\\" + CDTXMania.Instance.DTX.strファイル名 + "." + prefix[indPrefix] + "." + inst[einst] + ".ghost";
\r
333 if (File.Exists(filename))
\r
335 CDTXMania.Instance.DTX.listAutoGhostLag[einst] = new List<int>();
\r
336 ReadGhost(filename, CDTXMania.Instance.DTX.listAutoGhostLag[einst]);
\r
340 if (CDTXMania.Instance.ConfigIni.eTargetGhost[einst] != ETargetGhostData.NONE)
\r
342 string[] prefix = { "none", "perfect", "lastplay", "hiskill", "hiscore", "online" };
\r
343 int indPrefix = (int)CDTXMania.Instance.ConfigIni.eTargetGhost[einst];
\r
344 string filename = CDTXMania.Instance.DTX.strフォルダ名 + "\\" + CDTXMania.Instance.DTX.strファイル名 + "." + prefix[indPrefix] + "." + inst[einst] + ".ghost";
\r
345 if (File.Exists(filename))
\r
347 CDTXMania.Instance.DTX.listTargetGhsotLag[einst] = new List<int>();
\r
348 ReadGhost(filename, CDTXMania.Instance.DTX.listTargetGhsotLag[einst]);
\r
350 else if (CDTXMania.Instance.ConfigIni.eTargetGhost[einst] == ETargetGhostData.PERFECT)
\r
353 CDTXMania.Instance.DTX.listTargetGhsotLag[einst] = new List<int>();
\r
358 // #35411 2015.08.19 chnmr0 add ゴースト機能のためList chip 読み込み後楽器パート出現順インデックスを割り振る
\r
359 STDGBVALUE<int> curCount = new STDGBVALUE<int>();
\r
360 foreach (CChip chip in CDTXMania.Instance.DTX.listChip)
\r
362 if (chip.e楽器パート != E楽器パート.UNKNOWN)
\r
364 chip.n楽器パートでの出現順 = curCount[chip.e楽器パート]++;
\r
368 span = (TimeSpan)(DateTime.Now - timeBeginLoad);
\r
369 Trace.TraceInformation("DTX読込所要時間: {0}", span.ToString());
\r
371 if (CDTXMania.Instance.bコンパクトモード)
\r
372 CDTXMania.Instance.DTX.MIDIレベル = 1;
\r
374 CDTXMania.Instance.DTX.MIDIレベル = (CDTXMania.Instance.stage選曲.r確定された曲.eノード種別 == C曲リストノード.Eノード種別.SCORE_MIDI) ? CDTXMania.Instance.stage選曲.n現在選択中の曲の難易度 : 0;
\r
376 base.eフェーズID = CStage.Eフェーズ.NOWLOADING_WAVファイルを読み込む;
\r
377 timeBeginLoadWAV = DateTime.Now;
\r
378 return (int)E曲読込画面の戻り値.継続;
\r
381 case CStage.Eフェーズ.NOWLOADING_WAVファイルを読み込む:
\r
383 if (nWAVcount == 1 && CDTXMania.Instance.DTX.listWAV.Count > 0) // #28934 2012.7.7 yyagi (added checking Count)
\r
385 ShowProgressByFilename(CDTXMania.Instance.DTX.listWAV[nWAVcount].strファイル名);
\r
387 int looptime = (CDTXMania.Instance.ConfigIni.b垂直帰線待ちを行う) ? 3 : 1;
\r
388 if (CDTXMania.Instance.ConfigIni.b曲読み込みを高速化する) looptime = CDTXMania.Instance.DTX.listWAV.Count / 20 + 1; // #xxxxx ikanick 2016.2.21 ロード高速化 垂直同期の有無に関わらず、1フレームに5%ぐらいずつロードする
\r
389 for (int i = 0; i < looptime && nWAVcount <= CDTXMania.Instance.DTX.listWAV.Count; i++)
\r
391 if (CDTXMania.Instance.DTX.listWAV[nWAVcount].listこのWAVを使用するチャンネル番号の集合.Count > 0) // #28674 2012.5.8 yyagi
\r
393 CDTXMania.Instance.DTX.tWAVの読み込み(CDTXMania.Instance.DTX.listWAV[nWAVcount]);
\r
397 if (nWAVcount <= CDTXMania.Instance.DTX.listWAV.Count)
\r
399 double f進捗率 = nWAVcount * 100.0f / CDTXMania.Instance.DTX.listWAV.Count;
\r
400 ShowProgressByFilename("" + f進捗率.ToString("0.0") + "% " + nWAVcount + "/" + CDTXMania.Instance.DTX.listWAV.Count + " " + CDTXMania.Instance.DTX.listWAV[nWAVcount].strファイル名);
\r
402 if (nWAVcount > CDTXMania.Instance.DTX.listWAV.Count)
\r
404 TimeSpan span = (TimeSpan)(DateTime.Now - timeBeginLoadWAV);
\r
405 Trace.TraceInformation("WAV読込所要時間({0,4}): {1}", CDTXMania.Instance.DTX.listWAV.Count, span.ToString());
\r
406 timeBeginLoadWAV = DateTime.Now;
\r
408 if (CDTXMania.Instance.ConfigIni.bDynamicBassMixerManagement)
\r
410 CDTXMania.Instance.DTX.PlanToAddMixerChannel();
\r
412 CDTXMania.Instance.DTX.tギターとベースのランダム化(E楽器パート.GUITAR, CDTXMania.Instance.ConfigIni.eRandom.Guitar);
\r
413 CDTXMania.Instance.DTX.tギターとベースのランダム化(E楽器パート.BASS, CDTXMania.Instance.ConfigIni.eRandom.Bass);
\r
415 CDTXMania.Instance.stage演奏画面.On活性化();
\r
417 span = (TimeSpan)(DateTime.Now - timeBeginLoadWAV);
\r
418 Trace.TraceInformation("WAV/譜面後処理時間({0,4}): {1}", (CDTXMania.Instance.DTX.listBMP.Count + CDTXMania.Instance.DTX.listBMPTEX.Count + CDTXMania.Instance.DTX.listAVI.Count), span.ToString());
\r
420 base.eフェーズID = CStage.Eフェーズ.NOWLOADING_BMPファイルを読み込む;
\r
422 return (int)E曲読込画面の戻り値.継続;
\r
425 case CStage.Eフェーズ.NOWLOADING_BMPファイルを読み込む:
\r
428 DateTime timeBeginLoadBMPAVI = DateTime.Now;
\r
429 if (CDTXMania.Instance.ConfigIni.bBGA有効)
\r
430 CDTXMania.Instance.DTX.tBMP_BMPTEXの読み込み();
\r
432 if (CDTXMania.Instance.ConfigIni.bAVI有効)
\r
433 CDTXMania.Instance.DTX.tAVIの読み込み();
\r
434 span = (TimeSpan)(DateTime.Now - timeBeginLoadBMPAVI);
\r
435 Trace.TraceInformation("BMP/AVI読込所要時間({0,4}): {1}", (CDTXMania.Instance.DTX.listBMP.Count + CDTXMania.Instance.DTX.listBMPTEX.Count + CDTXMania.Instance.DTX.listAVI.Count), span.ToString());
\r
437 span = (TimeSpan)(DateTime.Now - timeBeginLoad);
\r
438 Trace.TraceInformation("総読込時間: {0}", span.ToString());
\r
440 if (bitmapFilename != null)
\r
442 bitmapFilename.Dispose();
\r
443 bitmapFilename = null;
\r
445 if (graphicsFilename != null)
\r
447 graphicsFilename.Dispose();
\r
448 graphicsFilename = null;
\r
450 if (ftFilename != null)
\r
452 ftFilename.Dispose();
\r
455 CDTXMania.Instance.Timer.t更新();
\r
456 base.eフェーズID = CStage.Eフェーズ.NOWLOADING_システムサウンドBGMの完了を待つ;
\r
457 return (int)E曲読込画面の戻り値.継続;
\r
460 case CStage.Eフェーズ.NOWLOADING_システムサウンドBGMの完了を待つ:
\r
462 long nCurrentTime = CDTXMania.Instance.Timer.n現在時刻;
\r
463 if (nCurrentTime < this.nBGM再生開始時刻)
\r
464 this.nBGM再生開始時刻 = nCurrentTime;
\r
466 // if ( ( nCurrentTime - this.nBGM再生開始時刻 ) > ( this.nBGMの総再生時間ms - 1000 ) )
\r
467 if ((nCurrentTime - this.nBGM再生開始時刻) >= (this.nBGMの総再生時間ms)) // #27787 2012.3.10 yyagi 1000ms == フェードイン分の時間
\r
469 if (!CDTXMania.Instance.DTXVmode.Enabled)
\r
471 this.actFO.tフェードアウト開始();
\r
473 base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト;
\r
475 return (int)E曲読込画面の戻り値.継続;
\r
478 case CStage.Eフェーズ.共通_フェードアウト:
\r
479 if (this.actFO.On進行描画() == 0 && !CDTXMania.Instance.DTXVmode.Enabled) // DTXVモード時は、フェードアウト省略
\r
482 if (txFilename != null)
\r
484 txFilename.Dispose();
\r
486 if (this.sd読み込み音 != null)
\r
488 this.sd読み込み音.t解放する();
\r
490 return (int)E曲読込画面の戻り値.読込完了;
\r
492 return (int)E曲読込画面の戻り値.継続;
\r
498 /// <returns></returns>
\r
499 protected bool tキー入力()
\r
501 IInputDevice keyboard = CDTXMania.Instance.Input管理.Keyboard;
\r
502 if (keyboard.bキーが押された((int)SlimDX.DirectInput.Key.Escape)) // escape (exit)
\r
510 private void ShowProgressByFilename(string strファイル名と進捗)
\r
512 if (graphicsFilename != null && ftFilename != null)
\r
514 graphicsFilename.Clear(Color.Transparent);
\r
515 graphicsFilename.DrawString(strファイル名と進捗, ftFilename, Brushes.White, new RectangleF(0, 0, SampleFramework.GameWindowSize.Width, fFontSizeFilename * Scale.X));
\r
516 if (txFilename != null)
\r
518 txFilename.Dispose();
\r
520 txFilename = new CTexture(CDTXMania.Instance.Device, bitmapFilename, CDTXMania.Instance.TextureFormat);
\r
521 txFilename.vc拡大縮小倍率 = new Vector3(0.5f, 0.5f, 1f);
\r
523 CDTXMania.Instance.Device,
\r
525 (SampleFramework.GameWindowSize.Height - (int)(txFilename.szテクスチャサイズ.Height * 0.5))
\r
532 #region [ private ]
\r
533 //-----------------
\r
534 // private CActFIFOBlack actFI;
\r
535 private CActFIFOBlack actFO;
\r
536 private bool b音符を表示する;
\r
537 private Font ftタイトル表示用フォント;
\r
538 private long nBGMの総再生時間ms;
\r
539 private long nBGM再生開始時刻;
\r
540 private int n音符の表示位置X;
\r
541 private CSound sd読み込み音;
\r
542 private string strSTAGEFILE;
\r
543 private string str曲タイトル;
\r
544 private CTexture txタイトル;
\r
545 private CTexture tx音符;
\r
546 private CTexture tx背景;
\r
547 private DateTime timeBeginLoad;
\r
548 private DateTime timeBeginLoadWAV;
\r
549 private int nWAVcount;
\r
550 private CTexture txFilename;
\r
551 private Bitmap bitmapFilename;
\r
552 private Graphics graphicsFilename;
\r
553 private Font ftFilename;
\r
554 private const float fFontSizeFilename = 12.0f;
\r
555 private const float fFontSizeTitle = 48;
\r
556 //-----------------
\r