+++ /dev/null
-using System;\r
-using System.Collections.Generic;\r
-using System.Text;\r
-using System.Diagnostics;\r
-using System.Drawing;\r
-using System.IO;\r
-using SharpDX;\r
-using System.Drawing.Text;\r
-using FDK;\r
-\r
-using Color = System.Drawing.Color;\r
-using RectangleF = System.Drawing.RectangleF;\r
-using SlimDXKey = SlimDX.DirectInput.Key;\r
-\r
-namespace DTXMania\r
-{\r
- internal class CStage曲読み込み : CStage\r
- {\r
- private CActFIFOBlack actFO;\r
- private bool b音符を表示する;\r
- private Font ftタイトル表示用フォント;\r
- private long nBGMの総再生時間ms;\r
- private long nBGM再生開始時刻;\r
- private int n音符の表示位置X;\r
- private int n背景の表示位置X;\r
- private int n背景の表示位置Y;\r
- private CSound sd読み込み音;\r
- private string strSTAGEFILE;\r
- private string str曲タイトル;\r
- private CTexture txタイトル;\r
- private CTexture tx音符;\r
- private CTexture tx背景;\r
- private DateTime timeBeginLoad;\r
- private DateTime timeBeginLoadWAV;\r
- private int nWAVcount;\r
- private CTexture txFilename;\r
- private Bitmap bitmapFilename;\r
- private Graphics graphicsFilename;\r
- private Font ftFilename;\r
- private const float fFontSizeFilename = 12.0f;\r
- private const float fFontSizeTitle = 48;\r
-\r
- public CStage曲読み込み()\r
- {\r
- base.eステージID = CStage.Eステージ.曲読み込み;\r
- base.eフェーズID = CStage.Eフェーズ.共通_通常状態;\r
- base.b活性化してない = true;\r
- // base.list子Activities.Add( this.actFI = new CActFIFOBlack() ); // #27787 2012.3.10 yyagi 曲読み込み画面のフェードインの省略\r
- base.list子Activities.Add(this.actFO = new CActFIFOBlack());\r
- }\r
-\r
- public override void On活性化()\r
- {\r
- Trace.TraceInformation("曲読み込みステージを活性化します。");\r
- Trace.Indent();\r
- try\r
- {\r
- this.str曲タイトル = "";\r
- this.strSTAGEFILE = "";\r
- this.b音符を表示する = false;\r
- this.n音符の表示位置X = 0x308;\r
- this.ftタイトル表示用フォント = new Font("MS PGothic", fFontSizeTitle * Scale.Y, GraphicsUnit.Pixel);\r
- this.nBGM再生開始時刻 = -1;\r
- this.nBGMの総再生時間ms = 0;\r
- if (this.sd読み込み音 != null)\r
- {\r
- CDTXMania.Instance.Sound管理.tサウンドを破棄する(this.sd読み込み音);\r
- this.sd読み込み音 = null;\r
- }\r
-\r
- string strDTXファイルパス = (CDTXMania.Instance.bコンパクトモード) ?\r
- CDTXMania.Instance.strコンパクトモードファイル : CDTXMania.Instance.stage選曲.r確定されたスコア.ファイル情報.ファイルの絶対パス;\r
-\r
- CDTX cdtx = new CDTX(strDTXファイルパス, true);\r
- this.str曲タイトル = cdtx.TITLE;\r
- if (((cdtx.STAGEFILE != null) && (cdtx.STAGEFILE.Length > 0)) && (File.Exists(cdtx.strフォルダ名 + cdtx.STAGEFILE) && !CDTXMania.Instance.ConfigIni.bStoicMode))\r
- {\r
- this.strSTAGEFILE = cdtx.strフォルダ名 + cdtx.STAGEFILE;\r
- this.b音符を表示する = false;\r
- }\r
- else\r
- {\r
- this.strSTAGEFILE = CSkin.Path(@"Graphics\\ScreenNowLoading background.jpg");\r
- this.b音符を表示する = true;\r
- }\r
- if (((cdtx.SOUND_NOWLOADING != null) && (cdtx.SOUND_NOWLOADING.Length > 0)) && File.Exists(cdtx.strフォルダ名 + cdtx.SOUND_NOWLOADING))\r
- {\r
- string strNowLoadingサウンドファイルパス = cdtx.strフォルダ名 + cdtx.SOUND_NOWLOADING;\r
- try\r
- {\r
- this.sd読み込み音 = CDTXMania.Instance.Sound管理.tサウンドを生成する(strNowLoadingサウンドファイルパス);\r
- }\r
- catch\r
- {\r
- Trace.TraceError("#SOUND_NOWLOADING に指定されたサウンドファイルの読み込みに失敗しました。({0})", strNowLoadingサウンドファイルパス);\r
- }\r
- }\r
- cdtx.On非活性化();\r
- base.On活性化();\r
- }\r
- finally\r
- {\r
- Trace.TraceInformation("曲読み込みステージの活性化を完了しました。");\r
- Trace.Unindent();\r
- }\r
- }\r
-\r
- private void ReadGhost(string filename, List<int> list) // #35411 2015.08.19 chnmr0 add\r
- {\r
- if (File.Exists(filename))\r
- {\r
- using (FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read))\r
- {\r
- using (BinaryReader br = new BinaryReader(fs))\r
- {\r
- try\r
- {\r
- int cnt = br.ReadInt32();\r
- for (int i = 0; i < cnt; ++i)\r
- {\r
- short lag = br.ReadInt16();\r
- list.Add(lag);\r
- }\r
- }\r
- catch (EndOfStreamException)\r
- {\r
- Trace.TraceInformation("ゴーストデータは正しく読み込まれませんでした。");\r
- list.Clear();\r
- }\r
- }\r
- }\r
- }\r
- }\r
-\r
- public override void On非活性化()\r
- {\r
- Trace.TraceInformation("曲読み込みステージを非活性化します。");\r
- Trace.Indent();\r
- try\r
- {\r
- if (this.ftタイトル表示用フォント != null)\r
- {\r
- this.ftタイトル表示用フォント.Dispose();\r
- this.ftタイトル表示用フォント = null;\r
- }\r
- base.On非活性化();\r
- }\r
- finally\r
- {\r
- Trace.TraceInformation("曲読み込みステージの非活性化を完了しました。");\r
- Trace.Unindent();\r
- }\r
- }\r
- public override void OnManagedリソースの作成()\r
- {\r
- if (!base.b活性化してない)\r
- {\r
- this.tx音符 = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\\ScreenNowLoading onpu.png"), false);\r
- this.tx背景 = TextureFactory.tテクスチャの生成(this.strSTAGEFILE, false);\r
-\r
- if (!this.b音符を表示する && this.tx背景 != null)\r
- {\r
- if ( this.tx背景.sz画像サイズ.Width <= 640 && this.tx背景.sz画像サイズ.Height <= 480 ) // VGAサイズ以下の背景の場合は、単純拡大しFullHD化\r
- {\r
- this.tx背景.vc拡大縮小倍率 = new Vector3( Scale.X, Scale.Y, 1f ); // とりあえずFullHD化\r
- this.n背景の表示位置X = this.n背景の表示位置Y = 0;\r
- }\r
- else // #36373 VGAより大きな画像をSTAGEFILEに指定した場合は、アスペクト比を維持しつつ全画面に収まるように拡大縮小し表示\r
- {\r
- CPreviewMagnifier cmg = new CPreviewMagnifier( CPreviewMagnifier.EPreviewType.PlayingBackground );\r
- cmg.GetMagnifier(this.tx背景.sz画像サイズ.Width, this.tx背景.sz画像サイズ.Height, 1.0f, 1.0f);\r
- this.tx背景.vc拡大縮小倍率 = new Vector3( cmg.magX, cmg.magY, 1f );\r
- this.n背景の表示位置X = cmg.px;\r
- this.n背景の表示位置Y = cmg.py;\r
- }\r
- }\r
- if (this.b音符を表示する)\r
- {\r
- try\r
- {\r
- if ((this.str曲タイトル != null) && (this.str曲タイトル.Length > 0))\r
- {\r
- Bitmap image = new Bitmap(1, 1);\r
- Graphics graphics = Graphics.FromImage(image);\r
- SizeF ef = graphics.MeasureString(this.str曲タイトル, this.ftタイトル表示用フォント);\r
- Size size = new Size((int)Math.Ceiling((double)ef.Width), (int)Math.Ceiling((double)ef.Height));\r
- graphics.Dispose();\r
- image.Dispose();\r
- image = new Bitmap(size.Width, size.Height);\r
- graphics = Graphics.FromImage(image);\r
- graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;\r
- graphics.DrawString(this.str曲タイトル, this.ftタイトル表示用フォント, Brushes.White, (float)0f, (float)0f);\r
- graphics.Dispose();\r
- this.txタイトル = new CTexture(CDTXMania.Instance.Device, image, CDTXMania.Instance.TextureFormat);\r
- this.txタイトル.vc拡大縮小倍率 = new Vector3(0.5f, 0.5f, 1f);\r
- image.Dispose();\r
- this.n音符の表示位置X = ((SampleFramework.GameWindowSize.Width - ((int)(size.Width * this.txタイトル.vc拡大縮小倍率.X))) - ((this.tx音符 != null) ? this.tx音符.sz画像サイズ.Width : 0)) - 2;\r
- }\r
- else\r
- {\r
- this.txタイトル = null;\r
- this.n音符の表示位置X = (SampleFramework.GameWindowSize.Width - ((this.tx音符 != null) ? this.tx音符.sz画像サイズ.Width : 0)) - 2;\r
- }\r
- }\r
- catch (CTextureCreateFailedException)\r
- {\r
- Trace.TraceError("テクスチャの生成に失敗しました。({0})", new object[] { this.strSTAGEFILE });\r
- this.txタイトル = null;\r
- this.tx背景 = null;\r
- }\r
- }\r
- else\r
- {\r
- this.txタイトル = null;\r
- }\r
- base.OnManagedリソースの作成();\r
- }\r
- }\r
- public override void OnManagedリソースの解放()\r
- {\r
- if (!base.b活性化してない)\r
- {\r
- TextureFactory.tテクスチャの解放(ref this.tx背景);\r
- TextureFactory.tテクスチャの解放(ref this.tx音符);\r
- TextureFactory.tテクスチャの解放(ref this.txタイトル);\r
- base.OnManagedリソースの解放();\r
- }\r
- }\r
- public override int On進行描画()\r
- {\r
- string str;\r
-\r
- if (base.b活性化してない)\r
- return 0;\r
-\r
- #region [ 初めての進行描画 ]\r
- //-----------------------------\r
- if (base.b初めての進行描画)\r
- {\r
- Cスコア cスコア1 = CDTXMania.Instance.stage選曲.r確定されたスコア;\r
- if (this.sd読み込み音 != null)\r
- {\r
- if (CDTXMania.Instance.Skin.sound曲読込開始音.b排他 && (CSkin.Cシステムサウンド.r最後に再生した排他システムサウンド != null))\r
- {\r
- CSkin.Cシステムサウンド.r最後に再生した排他システムサウンド.t停止する();\r
- }\r
- this.sd読み込み音.t再生を開始する();\r
- this.nBGM再生開始時刻 = CSound管理.rc演奏用タイマ.n現在時刻;\r
- this.nBGMの総再生時間ms = this.sd読み込み音.n総演奏時間ms;\r
- }\r
- else\r
- {\r
- CDTXMania.Instance.Skin.sound曲読込開始音.t再生する();\r
- this.nBGM再生開始時刻 = CSound管理.rc演奏用タイマ.n現在時刻;\r
- this.nBGMの総再生時間ms = CDTXMania.Instance.Skin.sound曲読込開始音.n長さ_現在のサウンド;\r
- }\r
- // this.actFI.tフェードイン開始(); // #27787 2012.3.10 yyagi 曲読み込み画面のフェードインの省略\r
- base.eフェーズID = CStage.Eフェーズ.共通_フェードイン;\r
- base.b初めての進行描画 = false;\r
-\r
- nWAVcount = 1;\r
- bitmapFilename = new Bitmap(SampleFramework.GameWindowSize.Width, (int)(fFontSizeFilename * Scale.X));\r
- graphicsFilename = Graphics.FromImage(bitmapFilename);\r
- graphicsFilename.TextRenderingHint = TextRenderingHint.AntiAlias;\r
- ftFilename = new Font("MS PGothic", fFontSizeFilename * Scale.X, FontStyle.Bold, GraphicsUnit.Pixel);\r
- }\r
- //-----------------------------\r
- #endregion\r
-\r
- #region [ ESC押下時は選曲画面に戻る ]\r
- if (tキー入力())\r
- {\r
- if (this.sd読み込み音 != null)\r
- {\r
- this.sd読み込み音.tサウンドを停止する();\r
- this.sd読み込み音.t解放する();\r
- }\r
- return (int)E曲読込画面の戻り値.読込中止;\r
- }\r
- #endregion\r
-\r
- #region [ 背景、音符+タイトル表示 ]\r
- //-----------------------------\r
- if (this.tx背景 != null)\r
- this.tx背景.t2D描画(CDTXMania.Instance.Device, this.n背景の表示位置X, this.n背景の表示位置Y);\r
-\r
- if (this.b音符を表示する)\r
- {\r
- int y = SampleFramework.GameWindowSize.Height - (int)(fFontSizeTitle * Scale.Y) + (int)(3 * Scale.X); // 480 - 45;\r
- if (this.tx音符 != null)\r
- {\r
- this.tx音符.t2D描画(\r
- CDTXMania.Instance.Device,\r
- this.n音符の表示位置X,\r
- y\r
- );\r
- }\r
- if (this.txタイトル != null)\r
- {\r
- this.txタイトル.t2D描画(\r
- CDTXMania.Instance.Device,\r
- (int)(SampleFramework.GameWindowSize.Width - (this.txタイトル.sz画像サイズ.Width * this.txタイトル.vc拡大縮小倍率.X)),\r
- y\r
- );\r
- }\r
- }\r
- //-----------------------------\r
- #endregion\r
-\r
- switch (base.eフェーズID)\r
- {\r
- case CStage.Eフェーズ.共通_フェードイン:\r
- // if( this.actFI.On進行描画() != 0 ) // #27787 2012.3.10 yyagi 曲読み込み画面のフェードインの省略\r
- // 必ず一度「CStaeg.Eフェーズ.共通_フェードイン」フェーズを経由させること。\r
- // さもないと、曲読み込みが完了するまで、曲読み込み画面が描画されない。\r
- base.eフェーズID = CStage.Eフェーズ.NOWLOADING_DTXファイルを読み込む;\r
- return (int)E曲読込画面の戻り値.継続;\r
-\r
- case CStage.Eフェーズ.NOWLOADING_DTXファイルを読み込む:\r
- {\r
- timeBeginLoad = DateTime.Now;\r
- TimeSpan span;\r
- str = null;\r
- if (!CDTXMania.Instance.bコンパクトモード)\r
- str = CDTXMania.Instance.stage選曲.r確定されたスコア.ファイル情報.ファイルの絶対パス;\r
- else\r
- str = CDTXMania.Instance.strコンパクトモードファイル;\r
-\r
- CScoreIni ini = new CScoreIni(str + ".score.ini");\r
-\r
- if ((CDTXMania.Instance.DTX != null) && CDTXMania.Instance.DTX.b活性化してる)\r
- CDTXMania.Instance.DTX.On非活性化();\r
-\r
- CDTXMania.Instance.DTX = new CDTX(str, false, ((double)CDTXMania.Instance.ConfigIni.nPlaySpeed) / 20.0, ini.stファイル.BGMAdjust);\r
- Trace.TraceInformation("----曲情報-----------------");\r
- Trace.TraceInformation("TITLE: {0}", CDTXMania.Instance.DTX.TITLE);\r
- Trace.TraceInformation("FILE: {0}", CDTXMania.Instance.DTX.strファイル名の絶対パス);\r
- Trace.TraceInformation("---------------------------");\r
-\r
- // #35411 2015.08.19 chnmr0 add\r
- // Read ghost data by config\r
- // It does not exist a ghost file for 'perfect' actually\r
- STDGBSValue<string> inst = new STDGBSValue<string>();\r
- inst.Drums = "dr";\r
- inst.Guitar = "gt";\r
- inst.Bass = "bs";\r
- if (CDTXMania.Instance.ConfigIni.bIsSwappedGuitarBass)\r
- {\r
- inst.Guitar = "bs";\r
- inst.Bass = "gt";\r
- }\r
-\r
- for (EPart einst = EPart.Drums; einst <= EPart.Bass; ++einst)\r
- {\r
- bool readAutoGhostCond = CDTXMania.Instance.ConfigIni.bIsAutoPlay(einst);\r
-\r
- CDTXMania.Instance.DTX.listTargetGhsotLag[einst] = null;\r
- CDTXMania.Instance.DTX.listAutoGhostLag[einst] = null;\r
-\r
- if (readAutoGhostCond)\r
- {\r
- string[] prefix = { "perfect", "lastplay", "hiskill", "hiscore", "online" };\r
- int indPrefix = (int)CDTXMania.Instance.ConfigIni.eAutoGhost[einst].Value;\r
- string filename = CDTXMania.Instance.DTX.strフォルダ名 + "\\" + CDTXMania.Instance.DTX.strファイル名 + "." + prefix[indPrefix] + "." + inst[einst] + ".ghost";\r
- if (File.Exists(filename))\r
- {\r
- CDTXMania.Instance.DTX.listAutoGhostLag[einst] = new List<int>();\r
- ReadGhost(filename, CDTXMania.Instance.DTX.listAutoGhostLag[einst]);\r
- }\r
- }\r
-\r
- if (CDTXMania.Instance.ConfigIni.eTargetGhost[einst].Value != ETargetGhostData.None)\r
- {\r
- string[] prefix = { "none", "perfect", "lastplay", "hiskill", "hiscore", "online" };\r
- int indPrefix = (int)CDTXMania.Instance.ConfigIni.eTargetGhost[einst].Value;\r
- string filename = CDTXMania.Instance.DTX.strフォルダ名 + "\\" + CDTXMania.Instance.DTX.strファイル名 + "." + prefix[indPrefix] + "." + inst[einst] + ".ghost";\r
- if (File.Exists(filename))\r
- {\r
- CDTXMania.Instance.DTX.listTargetGhsotLag[einst] = new List<int>();\r
- ReadGhost(filename, CDTXMania.Instance.DTX.listTargetGhsotLag[einst]);\r
- }\r
- else if (CDTXMania.Instance.ConfigIni.eTargetGhost[einst] == ETargetGhostData.Perfect)\r
- {\r
- // All perfect\r
- CDTXMania.Instance.DTX.listTargetGhsotLag[einst] = new List<int>();\r
- }\r
- }\r
- }\r
-\r
- // #35411 2015.08.19 chnmr0 add ゴースト機能のためList chip 読み込み後楽器パート出現順インデックスを割り振る\r
- STDGBSValue<int> curCount = new STDGBSValue<int>();\r
- foreach (CChip chip in CDTXMania.Instance.DTX.listChip)\r
- {\r
- if (chip.e楽器パート != EPart.Unknown)\r
- {\r
- chip.n楽器パートでの出現順 = curCount[chip.e楽器パート]++;\r
- }\r
- }\r
-\r
- span = (TimeSpan)(DateTime.Now - timeBeginLoad);\r
- Trace.TraceInformation("DTX読込所要時間: {0}", span.ToString());\r
-\r
- if (CDTXMania.Instance.bコンパクトモード)\r
- CDTXMania.Instance.DTX.MIDIレベル = 1;\r
- else\r
- CDTXMania.Instance.DTX.MIDIレベル = (CDTXMania.Instance.stage選曲.r確定された曲.eノード種別 == C曲リストノード.Eノード種別.SCORE_MIDI) ? CDTXMania.Instance.stage選曲.n現在選択中の曲の難易度 : 0;\r
-\r
- base.eフェーズID = CStage.Eフェーズ.NOWLOADING_WAVファイルを読み込む;\r
- timeBeginLoadWAV = DateTime.Now;\r
- return (int)E曲読込画面の戻り値.継続;\r
- }\r
-\r
- case CStage.Eフェーズ.NOWLOADING_WAVファイルを読み込む:\r
- {\r
- if ( CDTXMania.Instance.DTX.listWAV.Count > 0 ) // #28934 2012.7.7 yyagi (added checking Count)\r
- {\r
- //ShowProgressByFilename(CDTXMania.Instance.DTX.listWAV[nWAVcount].strファイル名); // #36046 進捗表示を追加\r
- \r
- double f進捗率 = nWAVcount * 100.0f / CDTXMania.Instance.DTX.listWAV.Count;\r
- ShowProgressByFilename("" + f進捗率.ToString("0.0") + "% " + nWAVcount + "/" + CDTXMania.Instance.DTX.listWAV.Count + " " + CDTXMania.Instance.DTX.listWAV[nWAVcount].strファイル名);\r
- }\r
- int looptime = (CDTXMania.Instance.ConfigIni.bVSyncWait) ? 3 : 1;\r
- if (CDTXMania.Instance.ConfigIni.bLoadSoundSpeed) looptime = CDTXMania.Instance.DTX.listWAV.Count / 20 + 1; // #36046 ikanick 2016.2.21 ロード高速化 垂直同期の有無に関わらず、1フレームに5%ぐらいずつロードする\r
- for (int i = 0; i < looptime && nWAVcount <= CDTXMania.Instance.DTX.listWAV.Count; i++)\r
- {\r
- if (CDTXMania.Instance.DTX.listWAV[nWAVcount].listこのWAVを使用するチャンネル番号の集合.Count > 0) // #28674 2012.5.8 yyagi\r
- {\r
- CDTXMania.Instance.DTX.tWAVの読み込み(CDTXMania.Instance.DTX.listWAV[nWAVcount]);\r
- }\r
- nWAVcount++;\r
- }\r
- if (nWAVcount > CDTXMania.Instance.DTX.listWAV.Count)\r
- {\r
- TimeSpan span = (TimeSpan)(DateTime.Now - timeBeginLoadWAV);\r
- Trace.TraceInformation("WAV読込所要時間({0,4}): {1}", CDTXMania.Instance.DTX.listWAV.Count, span.ToString());\r
- timeBeginLoadWAV = DateTime.Now;\r
-\r
- if (CDTXMania.Instance.ConfigIni.bDynamicBassMixerManagement)\r
- {\r
- CDTXMania.Instance.DTX.PlanToAddMixerChannel();\r
- }\r
- CDTXMania.Instance.DTX.tギターとベースのランダム化(EPart.Guitar, CDTXMania.Instance.ConfigIni.eRandom.Guitar);\r
- CDTXMania.Instance.DTX.tギターとベースのランダム化(EPart.Bass, CDTXMania.Instance.ConfigIni.eRandom.Bass);\r
-\r
- CDTXMania.Instance.stage演奏画面.On活性化();\r
-\r
- span = (TimeSpan)(DateTime.Now - timeBeginLoadWAV);\r
- Trace.TraceInformation("WAV/譜面後処理時間({0,4}): {1}", (CDTXMania.Instance.DTX.listBMP.Count + CDTXMania.Instance.DTX.listBMPTEX.Count + CDTXMania.Instance.DTX.listAVI.Count), span.ToString());\r
-\r
- base.eフェーズID = CStage.Eフェーズ.NOWLOADING_BMPファイルを読み込む;\r
- }\r
- return (int)E曲読込画面の戻り値.継続;\r
- }\r
-\r
- case CStage.Eフェーズ.NOWLOADING_BMPファイルを読み込む:\r
- {\r
- TimeSpan span;\r
- DateTime timeBeginLoadBMPAVI = DateTime.Now;\r
- if (CDTXMania.Instance.ConfigIni.bBGA)\r
- CDTXMania.Instance.DTX.tBMP_BMPTEXの読み込み();\r
-\r
- if (CDTXMania.Instance.ConfigIni.bAVI)\r
- CDTXMania.Instance.DTX.tAVIの読み込み();\r
- span = (TimeSpan)(DateTime.Now - timeBeginLoadBMPAVI);\r
- 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
-\r
-\r
- if (bitmapFilename != null)\r
- {\r
- bitmapFilename.Dispose();\r
- bitmapFilename = null;\r
- }\r
- if (graphicsFilename != null)\r
- {\r
- graphicsFilename.Dispose();\r
- graphicsFilename = null;\r
- }\r
- if (ftFilename != null)\r
- {\r
- ftFilename.Dispose();\r
- ftFilename = null;\r
- }\r
- CDTXMania.Instance.Timer.t更新();\r
- base.eフェーズID = CStage.Eフェーズ.NOWLOADING_LPを再配置する;\r
- return (int)E曲読込画面の戻り値.継続;\r
- }\r
-\r
- case CStage.Eフェーズ.NOWLOADING_LPを再配置する:\r
- {\r
- TimeSpan span;\r
- DateTime timeReassignLP = DateTime.Now;\r
- CDTXMania.Instance.DTX.ReassignLP();\r
- \r
- span = (TimeSpan) ( DateTime.Now - timeReassignLP );\r
- Trace.TraceInformation( "LP再配置所要時間: {0}", span.ToString() );\r
-\r
- span = (TimeSpan) ( DateTime.Now - timeBeginLoad );\r
- Trace.TraceInformation( "総読込時間: {0}", span.ToString() );\r
-\r
- base.eフェーズID = CStage.Eフェーズ.NOWLOADING_システムサウンドBGMの完了を待つ;\r
- return (int) E曲読込画面の戻り値.継続;\r
- }\r
- case CStage.Eフェーズ.NOWLOADING_システムサウンドBGMの完了を待つ:\r
- {\r
- long nCurrentTime = CDTXMania.Instance.Timer.n現在時刻;\r
- if (nCurrentTime < this.nBGM再生開始時刻)\r
- this.nBGM再生開始時刻 = nCurrentTime;\r
-\r
- // if ( ( nCurrentTime - this.nBGM再生開始時刻 ) > ( this.nBGMの総再生時間ms - 1000 ) )\r
- if ((nCurrentTime - this.nBGM再生開始時刻) >= (this.nBGMの総再生時間ms)) // #27787 2012.3.10 yyagi 1000ms == フェードイン分の時間\r
- {\r
- if (!CDTXMania.Instance.DTXVmode.Enabled)\r
- {\r
- this.actFO.tフェードアウト開始();\r
- }\r
- base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト;\r
- }\r
- return (int)E曲読込画面の戻り値.継続;\r
- }\r
-\r
- case CStage.Eフェーズ.共通_フェードアウト:\r
- if (this.actFO.On進行描画() == 0 && !CDTXMania.Instance.DTXVmode.Enabled) // DTXVモード時は、フェードアウト省略\r
- return 0;\r
-\r
- if (txFilename != null)\r
- {\r
- txFilename.Dispose();\r
- }\r
- if (this.sd読み込み音 != null)\r
- {\r
- this.sd読み込み音.t解放する();\r
- }\r
- return (int)E曲読込画面の戻り値.読込完了;\r
- }\r
- return (int)E曲読込画面の戻り値.継続;\r
- }\r
-\r
- /// <summary>\r
- /// ESC押下時、trueを返す\r
- /// </summary>\r
- /// <returns></returns>\r
- protected bool tキー入力()\r
- {\r
- IInputDevice keyboard = CDTXMania.Instance.Input管理.Keyboard;\r
- if (keyboard.bキーが押された((int)SlimDXKey.Escape)) // escape (exit)\r
- {\r
- return true;\r
- }\r
- return false;\r
- }\r
-\r
-\r
- private void ShowProgressByFilename(string strファイル名と進捗)\r
- {\r
- if (graphicsFilename != null && ftFilename != null)\r
- {\r
- graphicsFilename.Clear(Color.Transparent);\r
- graphicsFilename.DrawString(strファイル名と進捗, ftFilename, Brushes.White, new RectangleF(0, 0, SampleFramework.GameWindowSize.Width, fFontSizeFilename * Scale.X));\r
- if (txFilename != null)\r
- {\r
- txFilename.Dispose();\r
- }\r
- txFilename = new CTexture(CDTXMania.Instance.Device, bitmapFilename, CDTXMania.Instance.TextureFormat);\r
- txFilename.vc拡大縮小倍率 = new Vector3(0.5f, 0.5f, 1f);\r
- txFilename.t2D描画(\r
- CDTXMania.Instance.Device,\r
- 0,\r
- (SampleFramework.GameWindowSize.Height - (int)(txFilename.szテクスチャサイズ.Height * 0.5))\r
- );\r
- }\r
- }\r
-\r
- }\r
-}\r