public override int On進行描画() { if (base.b活性化してない) { return(0); } #region [ 初めての進行描画 ] //----------------------------- if (base.b初めての進行描画) { if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan) { TJAPlayer3.Skin.sound曲読込開始音.t再生する(); this.nBGM再生開始時刻 = CSoundManager.rc演奏用タイマ.n現在時刻ms; this.nBGMの総再生時間ms = TJAPlayer3.Skin.sound曲読込開始音.n長さ_現在のサウンド; } //this.actFI.tFadeIn開始(); // #27787 2012.3.10 yyagi 曲読み込み画面のFadeInの省略 base.eフェーズID = CStage.Eフェーズ.共通_FadeIn; base.b初めての進行描画 = false; nWAVcount = 1; } //----------------------------- #endregion this.ct待機.t進行(); #region [ ESC押下時は選曲画面に戻る ] if (tキー入力()) { return((int)E曲読込画面の戻り値.読込中止); } #endregion #region [ 背景、音符+タイトル表示 ] //----------------------------- this.ct曲名表示.t進行(); if (TJAPlayer3.ConfigIni.bEnableSkinV2) { if (TJAPlayer3.Tx.SongLoading_v2_BG != null) { TJAPlayer3.Tx.SongLoading_v2_BG.t2D描画(TJAPlayer3.app.Device, 0, 0); } } else { if (TJAPlayer3.Tx.SongLoading_BG != null) { TJAPlayer3.Tx.SongLoading_BG.t2D描画(TJAPlayer3.app.Device, CTexture.RefPnt.Center, GameWindowSize.Width / 2, GameWindowSize.Height / 2); } } if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan) { if (TJAPlayer3.ConfigIni.bEnableSkinV2) { if (TJAPlayer3.Tx.SongLoading_v2_Plate != null) { TJAPlayer3.Tx.SongLoading_v2_Plate.eBlendMode = TJAPlayer3.Skin.SongLoading_Plate_ScreenBlend ? CTexture.EBlendMode.Screen : CTexture.EBlendMode.Normal; //あまりにも出番が無い TJAPlayer3.Tx.SongLoading_v2_Plate.Opacity = CConvert.nParsentTo255((this.ct曲名表示.n現在の値 / 30.0)); if (TJAPlayer3.Skin.SongLoading_v2_Plate_ReferencePoint == CSkin.ReferencePoint.Left) { TJAPlayer3.Tx.SongLoading_v2_Plate.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.SongLoading_v2_Plate_X, TJAPlayer3.Skin.SongLoading_v2_Plate_Y - (TJAPlayer3.Tx.SongLoading_v2_Plate.szTextureSize.Height / 2)); } else if (TJAPlayer3.Skin.SongLoading_Plate_ReferencePoint == CSkin.ReferencePoint.Right) { TJAPlayer3.Tx.SongLoading_v2_Plate.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.SongLoading_v2_Plate_X - TJAPlayer3.Tx.SongLoading_v2_Plate.szTextureSize.Width, TJAPlayer3.Skin.SongLoading_v2_Plate_Y - (TJAPlayer3.Tx.SongLoading_v2_Plate.szTextureSize.Height / 2)); } else { TJAPlayer3.Tx.SongLoading_v2_Plate.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.SongLoading_v2_Plate_X - (TJAPlayer3.Tx.SongLoading_v2_Plate.szTextureSize.Width / 2), TJAPlayer3.Skin.SongLoading_v2_Plate_Y - (TJAPlayer3.Tx.SongLoading_v2_Plate.szTextureSize.Height / 2)); } } if (this.txタイトル != null) { int nサブタイトル補正 = string.IsNullOrEmpty(TJAPlayer3.stage選曲.r確定されたスコア.譜面情報.strSubTitle) ? 15 : 0; this.txタイトル.Opacity = CConvert.nParsentTo255((this.ct曲名表示.n現在の値 / 30.0)); if (TJAPlayer3.Skin.SongLoading_v2_Title_ReferencePoint == CSkin.ReferencePoint.Left) { this.txタイトル.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.SongLoading_v2_Title_X, TJAPlayer3.Skin.SongLoading_v2_Title_Y - (this.txタイトル.szTextureSize.Height / 2) + nサブタイトル補正); } else if (TJAPlayer3.Skin.SongLoading_v2_Title_ReferencePoint == CSkin.ReferencePoint.Right) { this.txタイトル.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.SongLoading_v2_Title_X - (this.txタイトル.szTextureSize.Width * txタイトル.vcScaling.X), TJAPlayer3.Skin.SongLoading_v2_Title_Y - (this.txタイトル.szTextureSize.Height / 2) + nサブタイトル補正); } else { this.txタイトル.t2D描画(TJAPlayer3.app.Device, (TJAPlayer3.Skin.SongLoading_v2_Title_X - ((this.txタイトル.szTextureSize.Width * txタイトル.vcScaling.X) / 2)), TJAPlayer3.Skin.SongLoading_v2_Title_Y - (this.txタイトル.szTextureSize.Height / 2) + nサブタイトル補正); } } if (this.txサブタイトル != null) { this.txサブタイトル.Opacity = CConvert.nParsentTo255((this.ct曲名表示.n現在の値 / 30.0)); if (TJAPlayer3.Skin.SongLoading_v2_SubTitle_ReferencePoint == CSkin.ReferencePoint.Left) { this.txサブタイトル.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.SongLoading_v2_SubTitle_X, TJAPlayer3.Skin.SongLoading_v2_SubTitle_Y - (this.txサブタイトル.szTextureSize.Height / 2)); } else if (TJAPlayer3.Skin.SongLoading_v2_SubTitle_ReferencePoint == CSkin.ReferencePoint.Right) { this.txサブタイトル.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.SongLoading_v2_SubTitle_X - (this.txサブタイトル.szTextureSize.Width * txタイトル.vcScaling.X), TJAPlayer3.Skin.SongLoading_v2_SubTitle_Y - (this.txサブタイトル.szTextureSize.Height / 2)); } else { this.txサブタイトル.t2D描画(TJAPlayer3.app.Device, (TJAPlayer3.Skin.SongLoading_v2_SubTitle_X - ((this.txサブタイトル.szTextureSize.Width * txサブタイトル.vcScaling.X) / 2)), TJAPlayer3.Skin.SongLoading_v2_SubTitle_Y - (this.txサブタイトル.szTextureSize.Height / 2)); } } } else { if (TJAPlayer3.Tx.SongLoading_Plate != null) { TJAPlayer3.Tx.SongLoading_Plate.eBlendMode = TJAPlayer3.Skin.SongLoading_Plate_ScreenBlend ? CTexture.EBlendMode.Screen : CTexture.EBlendMode.Normal; //あまりにも出番が無い TJAPlayer3.Tx.SongLoading_Plate.Opacity = CConvert.nParsentTo255((this.ct曲名表示.n現在の値 / 30.0)); if (TJAPlayer3.Skin.SongLoading_Plate_ReferencePoint == CSkin.ReferencePoint.Left) { TJAPlayer3.Tx.SongLoading_Plate.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.SongLoading_Plate_X, TJAPlayer3.Skin.SongLoading_Plate_Y - (TJAPlayer3.Tx.SongLoading_Plate.szTextureSize.Height / 2)); } else if (TJAPlayer3.Skin.SongLoading_Plate_ReferencePoint == CSkin.ReferencePoint.Right) { TJAPlayer3.Tx.SongLoading_Plate.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.SongLoading_Plate_X - TJAPlayer3.Tx.SongLoading_Plate.szTextureSize.Width, TJAPlayer3.Skin.SongLoading_Plate_Y - (TJAPlayer3.Tx.SongLoading_Plate.szTextureSize.Height / 2)); } else { TJAPlayer3.Tx.SongLoading_Plate.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.SongLoading_Plate_X - (TJAPlayer3.Tx.SongLoading_Plate.szTextureSize.Width / 2), TJAPlayer3.Skin.SongLoading_Plate_Y - (TJAPlayer3.Tx.SongLoading_Plate.szTextureSize.Height / 2)); } } if (this.txタイトル != null) { int nサブタイトル補正 = string.IsNullOrEmpty(TJAPlayer3.stage選曲.r確定されたスコア.譜面情報.strSubTitle) ? 15 : 0; this.txタイトル.Opacity = CConvert.nParsentTo255((this.ct曲名表示.n現在の値 / 30.0)); if (TJAPlayer3.Skin.SongLoading_Title_ReferencePoint == CSkin.ReferencePoint.Left) { this.txタイトル.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.SongLoading_Title_X, TJAPlayer3.Skin.SongLoading_Title_Y - (this.txタイトル.szTextureSize.Height / 2) + nサブタイトル補正); } else if (TJAPlayer3.Skin.SongLoading_Title_ReferencePoint == CSkin.ReferencePoint.Right) { this.txタイトル.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.SongLoading_Title_X - (this.txタイトル.szTextureSize.Width * txタイトル.vcScaling.X), TJAPlayer3.Skin.SongLoading_Title_Y - (this.txタイトル.szTextureSize.Height / 2) + nサブタイトル補正); } else { this.txタイトル.t2D描画(TJAPlayer3.app.Device, (TJAPlayer3.Skin.SongLoading_Title_X - ((this.txタイトル.szTextureSize.Width * txタイトル.vcScaling.X) / 2)), TJAPlayer3.Skin.SongLoading_Title_Y - (this.txタイトル.szTextureSize.Height / 2) + nサブタイトル補正); } } if (this.txサブタイトル != null) { this.txサブタイトル.Opacity = CConvert.nParsentTo255((this.ct曲名表示.n現在の値 / 30.0)); if (TJAPlayer3.Skin.SongLoading_SubTitle_ReferencePoint == CSkin.ReferencePoint.Left) { this.txサブタイトル.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.SongLoading_SubTitle_X, TJAPlayer3.Skin.SongLoading_SubTitle_Y - (this.txサブタイトル.szTextureSize.Height / 2)); } else if (TJAPlayer3.Skin.SongLoading_SubTitle_ReferencePoint == CSkin.ReferencePoint.Right) { this.txサブタイトル.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.SongLoading_SubTitle_X - (this.txサブタイトル.szTextureSize.Width * txタイトル.vcScaling.X), TJAPlayer3.Skin.SongLoading_SubTitle_Y - (this.txサブタイトル.szTextureSize.Height / 2)); } else { this.txサブタイトル.t2D描画(TJAPlayer3.app.Device, (TJAPlayer3.Skin.SongLoading_SubTitle_X - ((this.txサブタイトル.szTextureSize.Width * txサブタイトル.vcScaling.X) / 2)), TJAPlayer3.Skin.SongLoading_SubTitle_Y - (this.txサブタイトル.szTextureSize.Height / 2)); } } } } //----------------------------- #endregion switch (base.eフェーズID) { case CStage.Eフェーズ.共通_FadeIn: //if( this.actFI.On進行描画() != 0 ) // #27787 2012.3.10 yyagi 曲読み込み画面のFadeInの省略 // 必ず一度「CStaeg.Eフェーズ.共通_FadeIn」フェーズを経由させること。 // さもないと、曲読み込みが完了するまで、曲読み込み画面が描画されない。 base.eフェーズID = CStage.Eフェーズ.NOWLOADING_DTXファイルを読み込む; return((int)E曲読込画面の戻り値.継続); case CStage.Eフェーズ.NOWLOADING_DTXファイルを読み込む: { timeBeginLoad = DateTime.Now; string str = TJAPlayer3.stage選曲.r確定されたスコア.ファイル情報.ファイルの絶対パス; CScoreIni ini = new CScoreIni(str + ".score.ini"); if ((TJAPlayer3.DTX[0] != null) && TJAPlayer3.DTX[0].b活性化してる) { TJAPlayer3.DTX[0].On非活性化(); } //if( CDTXMania.DTX == null ) { TJAPlayer3.DTX[0] = new CDTX(str, false, 1.0, ini.stファイル.BGMAdjust, 0, TJAPlayer3.ConfigIni.nPlayerCount >= 2 && TJAPlayer3.stage選曲.n確定された曲の難易度[0] == TJAPlayer3.stage選曲.n確定された曲の難易度[1]); if (TJAPlayer3.ConfigIni.nPlayerCount == 2) { TJAPlayer3.DTX[1] = new CDTX(str, false, 1.0, ini.stファイル.BGMAdjust, 1, TJAPlayer3.ConfigIni.nPlayerCount >= 2 && TJAPlayer3.stage選曲.n確定された曲の難易度[0] == TJAPlayer3.stage選曲.n確定された曲の難易度[1]); } Trace.TraceInformation("----曲情報-----------------"); Trace.TraceInformation("TITLE: {0}", TJAPlayer3.DTX[0].TITLE); Trace.TraceInformation("FILE: {0}", TJAPlayer3.DTX[0].strFilenameの絶対パス); Trace.TraceInformation("---------------------------"); TimeSpan span = (TimeSpan)(DateTime.Now - timeBeginLoad); Trace.TraceInformation("DTX読込所要時間: {0}", span.ToString()); // 段位認定モード用。 if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan && TJAPlayer3.DTX[0].List_DanSongs != null) { for (int i = 0; i < TJAPlayer3.DTX[0].List_DanSongs.Count; i++) { if (!string.IsNullOrEmpty(TJAPlayer3.DTX[0].List_DanSongs[i].Title)) { using (CPrivateFastFont pfTitle = new CPrivateFastFont(TJAPlayer3.ConfigIni.FontName, 32)) { using (var bmpSongTitle = pfTitle.DrawPrivateFont(TJAPlayer3.DTX[0].List_DanSongs[i].Title, TJAPlayer3.Skin.Game_DanC_Title_ForeColor, TJAPlayer3.Skin.Game_DanC_Title_BackColor, TJAPlayer3.Skin.Font_Edge_Ratio)) { TJAPlayer3.DTX[0].List_DanSongs[i].TitleTex = TJAPlayer3.tCreateTexture(bmpSongTitle); TJAPlayer3.DTX[0].List_DanSongs[i].TitleTex.vcScaling.X = TJAPlayer3.GetSongNameXScaling(ref TJAPlayer3.DTX[0].List_DanSongs[i].TitleTex, 710); } } } if (!string.IsNullOrEmpty(TJAPlayer3.DTX[0].List_DanSongs[i].SubTitle)) { using (CPrivateFastFont pfSubTitle = new CPrivateFastFont(TJAPlayer3.ConfigIni.FontName, 19)) { using (var bmpSongSubTitle = pfSubTitle.DrawPrivateFont(TJAPlayer3.DTX[0].List_DanSongs[i].SubTitle, TJAPlayer3.Skin.Game_DanC_SubTitle_ForeColor, TJAPlayer3.Skin.Game_DanC_SubTitle_BackColor, TJAPlayer3.Skin.Font_Edge_Ratio)) { TJAPlayer3.DTX[0].List_DanSongs[i].SubTitleTex = TJAPlayer3.tCreateTexture(bmpSongSubTitle); TJAPlayer3.DTX[0].List_DanSongs[i].SubTitleTex.vcScaling.X = TJAPlayer3.GetSongNameXScaling(ref TJAPlayer3.DTX[0].List_DanSongs[i].SubTitleTex, 710); } } } } } } base.eフェーズID = CStage.Eフェーズ.NOWLOADING_WAV読み込み待機; timeBeginLoadWAV = DateTime.Now; return((int)E曲読込画面の戻り値.継続); } case CStage.Eフェーズ.NOWLOADING_WAV読み込み待機: { if (this.ct待機.n現在の値 > 260) { base.eフェーズID = CStage.Eフェーズ.NOWLOADING_WAVファイルを読み込む; } return((int)E曲読込画面の戻り値.継続); } case CStage.Eフェーズ.NOWLOADING_WAVファイルを読み込む: { int looptime = (TJAPlayer3.ConfigIni.b垂直帰線待ちを行う)? 3 : 1; // VSyncWait=ON時は1frame(1/60s)あたり3つ読むようにする for (int i = 0; i < looptime && nWAVcount <= TJAPlayer3.DTX[0].listWAV.Count; i++) { if (TJAPlayer3.DTX[0].listWAV[nWAVcount].listこのWAVを使用するチャンネル番号の集合.Count > 0) // #28674 2012.5.8 yyagi { TJAPlayer3.DTX[0].tWAVの読み込み(TJAPlayer3.DTX[0].listWAV[nWAVcount]); } nWAVcount++; } if (nWAVcount > TJAPlayer3.DTX[0].listWAV.Count) { TimeSpan span = ( TimeSpan )(DateTime.Now - timeBeginLoadWAV); Trace.TraceInformation("WAV読込所要時間({0,4}): {1}", TJAPlayer3.DTX[0].listWAV.Count, span.ToString()); timeBeginLoadWAV = DateTime.Now; if (TJAPlayer3.ConfigIni.bDynamicBassMixerManagement) { TJAPlayer3.DTX[0].PlanToAddMixerChannel(); } for (int nPlayer = 0; nPlayer < TJAPlayer3.ConfigIni.nPlayerCount; nPlayer++) { TJAPlayer3.DTX[nPlayer].t太鼓チップのランダム化(TJAPlayer3.ConfigIni.eRandom[nPlayer]); } TJAPlayer3.stage演奏ドラム画面.On活性化(); span = (TimeSpan)(DateTime.Now - timeBeginLoadWAV); base.eフェーズID = CStage.Eフェーズ.NOWLOADING_BMPファイルを読み込む; } return((int)E曲読込画面の戻り値.継続); } case CStage.Eフェーズ.NOWLOADING_BMPファイルを読み込む: { TimeSpan span; DateTime timeBeginLoadBMPAVI = DateTime.Now; if (TJAPlayer3.ConfigIni.bAVI有効) { TJAPlayer3.DTX[0].tAVIの読み込み(); } span = ( TimeSpan )(DateTime.Now - timeBeginLoadBMPAVI); span = ( TimeSpan )(DateTime.Now - timeBeginLoad); Trace.TraceInformation("総読込時間: {0}", span.ToString()); if (TJAPlayer3.ConfigIni.FastRender) { FastRender.Render(); //staticに変更 インスタンス作成不要 } TJAPlayer3.Timer.t更新(); //CSoundManager.rc演奏用タイマ.t更新(); base.eフェーズID = CStage.Eフェーズ.NOWLOADING_システムサウンドBGMの完了を待つ; return((int)E曲読込画面の戻り値.継続); } case CStage.Eフェーズ.NOWLOADING_システムサウンドBGMの完了を待つ: { long nCurrentTime = TJAPlayer3.Timer.n現在時刻ms; if (nCurrentTime < this.nBGM再生開始時刻) { this.nBGM再生開始時刻 = nCurrentTime; } // if ( ( nCurrentTime - this.nBGM再生開始時刻 ) > ( this.nBGMの総再生時間ms - 1000 ) ) if ((nCurrentTime - this.nBGM再生開始時刻) >= (this.nBGMの総再生時間ms)) // #27787 2012.3.10 yyagi 1000ms == FadeIn分の時間 { base.eフェーズID = CStage.Eフェーズ.共通_FadeOut; } return((int)E曲読込画面の戻り値.継続); } case CStage.Eフェーズ.共通_FadeOut: if (this.ct待機.b終了値に達してない) { return((int)E曲読込画面の戻り値.継続); } return((int)E曲読込画面の戻り値.読込完了); } return((int)E曲読込画面の戻り値.継続); }