예제 #1
0
        public override int On進行描画()
        {
            string str;

            if (base.b活性化してない)
            {
                return(0);
            }

            #region [ 初めての進行描画 ]
            //-----------------------------
            if (base.b初めての進行描画)
            {
                Cスコア cスコア1 = CDTXMania.stage選曲.r確定されたスコア;
                if (this.sd読み込み音 != null)
                {
                    if (CDTXMania.Skin.sound曲読込開始音.b排他 && (CSkin.Cシステムサウンド.r最後に再生した排他システムサウンド != null))
                    {
                        CSkin.Cシステムサウンド.r最後に再生した排他システムサウンド.t停止する();
                    }
                    this.sd読み込み音.t再生を開始する();
                    this.nBGM再生開始時刻   = CSound管理.rc演奏用タイマ.n現在時刻;
                    this.nBGMの総再生時間ms = this.sd読み込み音.n総演奏時間ms;
                }
                else
                {
                    CDTXMania.Skin.sound曲読込開始音.t再生する();
                    this.nBGM再生開始時刻   = CSound管理.rc演奏用タイマ.n現在時刻;
                    this.nBGMの総再生時間ms = CDTXMania.Skin.sound曲読込開始音.n長さ_現在のサウンド;
                }
                //this.actFI.tフェードイン開始();							// #27787 2012.3.10 yyagi 曲読み込み画面のフェードインの省略
                base.eフェーズID   = CStage.Eフェーズ.共通_フェードイン;
                base.b初めての進行描画 = false;

                nWAVcount        = 1;
                bitmapFilename   = new Bitmap(640, 24);
                graphicsFilename = Graphics.FromImage(bitmapFilename);
                graphicsFilename.TextRenderingHint = TextRenderingHint.AntiAlias;
                ftFilename = new Font("MS PGothic", 24f, FontStyle.Bold, GraphicsUnit.Pixel);
            }
            //-----------------------------
            #endregion
            this.ct待機.t進行();



            #region [ ESC押下時は選曲画面に戻る ]
            if (tキー入力())
            {
                if (this.sd読み込み音 != null)
                {
                    this.sd読み込み音.tサウンドを停止する();
                    this.sd読み込み音.t解放する();
                }
                return((int)E曲読込画面の戻り値.読込中止);
            }
            #endregion

            #region [ 背景、音符+タイトル表示 ]
            //-----------------------------
            this.ct曲名表示.t進行();
            if (this.tx背景 != null)
            {
                this.tx背景.t2D描画(CDTXMania.app.Device, 0, 0);
            }
            //CDTXMania.act文字コンソール.tPrint( 0, 0, C文字コンソール.Eフォント種別.灰, this.ct曲名表示.n現在の値.ToString() );

            if (this.txSongnamePlate != null)
            {
                this.txSongnamePlate.bスクリーン合成 = true; //あまりにも出番が無い
                this.txSongnamePlate.n透明度     = C変換.nParsentTo255((this.ct曲名表示.n現在の値 / 30.0));
                this.txSongnamePlate.t2D描画(CDTXMania.app.Device, 640 - (this.txSongnamePlate.sz画像サイズ.Width / 2), 360 - (this.txSongnamePlate.sz画像サイズ.Height / 2));
            }
            //CDTXMania.act文字コンソール.tPrint( 0, 16, C文字コンソール.Eフォント種別.灰, C変換.nParsentTo255( ( this.ct曲名表示.n現在の値 / 30.0 ) ).ToString() );


            int y = 720 - 45;
            if (this.txタイトル != null)
            {
                int nサブタイトル補正 = string.IsNullOrEmpty(CDTXMania.stage選曲.r確定されたスコア.譜面情報.strサブタイトル) ? 15 : 0;

                this.txタイトル.n透明度 = C変換.nParsentTo255((this.ct曲名表示.n現在の値 / 30.0));
                this.txタイトル.t2D描画(CDTXMania.app.Device, (640 - (this.txタイトル.sz画像サイズ.Width / 2)), 340 - (this.txタイトル.sz画像サイズ.Height / 2) + nサブタイトル補正);
            }
            if (this.txサブタイトル != null)
            {
                this.txサブタイトル.n透明度 = C変換.nParsentTo255((this.ct曲名表示.n現在の値 / 30.0));
                this.txサブタイトル.t2D描画(CDTXMania.app.Device, (640 - (this.txサブタイトル.sz画像サイズ.Width / 2)), 390 - (this.txサブタイトル.sz画像サイズ.Height / 2));
            }
            //-----------------------------
            #endregion

            switch (base.eフェーズID)
            {
            case CStage.Eフェーズ.共通_フェードイン:
                //if( this.actFI.On進行描画() != 0 )			    // #27787 2012.3.10 yyagi 曲読み込み画面のフェードインの省略
                // 必ず一度「CStaeg.Eフェーズ.共通_フェードイン」フェーズを経由させること。
                // さもないと、曲読み込みが完了するまで、曲読み込み画面が描画されない。
                base.eフェーズID = CStage.Eフェーズ.NOWLOADING_DTXファイルを読み込む;
                return((int)E曲読込画面の戻り値.継続);

            case CStage.Eフェーズ.NOWLOADING_DTXファイルを読み込む:
            {
                timeBeginLoad = DateTime.Now;
                TimeSpan span;
                str = null;
                if (!CDTXMania.bコンパクトモード)
                {
                    str = CDTXMania.stage選曲.r確定されたスコア.ファイル情報.ファイルの絶対パス;
                }
                else
                {
                    str = CDTXMania.strコンパクトモードファイル;
                }

                CScoreIni ini = new CScoreIni(str + ".score.ini");
                ini.t全演奏記録セクションの整合性をチェックし不整合があればリセットする();

                if ((CDTXMania.DTX != null) && CDTXMania.DTX.b活性化してる)
                {
                    CDTXMania.DTX.On非活性化();
                }

                //if( CDTXMania.DTX == null )
                {
                    CDTXMania.DTX = new CDTX(str, false, ((double)CDTXMania.ConfigIni.n演奏速度) / 20.0, ini.stファイル.BGMAdjust, 0, 0, true);
                    if (CDTXMania.ConfigIni.nPlayerCount == 2)
                    {
                        CDTXMania.DTX_2P = new CDTX(str, false, ((double)CDTXMania.ConfigIni.n演奏速度) / 20.0, ini.stファイル.BGMAdjust, 0, 1, true);
                    }
                    if (File.Exists(CDTXMania.DTX.strフォルダ名 + @"\\set.def"))
                    {
                        CDTXMania.DTX = new CDTX(str, false, ((double)CDTXMania.ConfigIni.n演奏速度) / 20.0, ini.stファイル.BGMAdjust, 0, 1, true);
                        if (CDTXMania.ConfigIni.nPlayerCount == 2)
                        {
                            CDTXMania.DTX_2P = new CDTX(str, false, ((double)CDTXMania.ConfigIni.n演奏速度) / 20.0, ini.stファイル.BGMAdjust, 0, 1, true);
                        }
                    }


                    Trace.TraceInformation("----曲情報-----------------");
                    Trace.TraceInformation("TITLE: {0}", CDTXMania.DTX.TITLE);
                    Trace.TraceInformation("FILE: {0}", CDTXMania.DTX.strファイル名の絶対パス);
                    Trace.TraceInformation("---------------------------");

                    span = (TimeSpan)(DateTime.Now - timeBeginLoad);
                    Trace.TraceInformation("DTX読込所要時間:           {0}", span.ToString());
                }

                //2017.01.28 DD Config.iniに反映しないように変更

                /*
                 * switch( CDTXMania.DTX.nScoreModeTmp )
                 * {
                 *  case 0:
                 *      CDTXMania.ConfigIni.nScoreMode = 0;
                 *      break;
                 *  case 1:
                 *      CDTXMania.ConfigIni.nScoreMode = 1;
                 *      break;
                 *  case 2:
                 *      CDTXMania.ConfigIni.nScoreMode = 2;
                 *      break;
                 *  case -1:
                 *      CDTXMania.ConfigIni.nScoreMode = 1;
                 *      break;
                 * }
                 */

                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ファイルを読み込む:
            {
                if (nWAVcount == 1 && CDTXMania.DTX.listWAV.Count > 0)                                                          // #28934 2012.7.7 yyagi (added checking Count)
                {
                    ShowProgressByFilename(CDTXMania.DTX.listWAV[nWAVcount].strファイル名);
                }
                int looptime = (CDTXMania.ConfigIni.b垂直帰線待ちを行う)? 3 : 1;                                 // VSyncWait=ON時は1frame(1/60s)あたり3つ読むようにする
                for (int i = 0; i < looptime && nWAVcount <= CDTXMania.DTX.listWAV.Count; i++)
                {
                    if (CDTXMania.DTX.listWAV[nWAVcount].listこのWAVを使用するチャンネル番号の集合.Count > 0)                                            // #28674 2012.5.8 yyagi
                    {
                        CDTXMania.DTX.tWAVの読み込み(CDTXMania.DTX.listWAV[nWAVcount]);
                    }
                    nWAVcount++;
                }
                if (nWAVcount <= CDTXMania.DTX.listWAV.Count)
                {
                    ShowProgressByFilename(CDTXMania.DTX.listWAV[nWAVcount].strファイル名);
                }
                if (nWAVcount > CDTXMania.DTX.listWAV.Count)
                {
                    TimeSpan span = ( TimeSpan )(DateTime.Now - timeBeginLoadWAV);
                    Trace.TraceInformation("WAV読込所要時間({0,4}):     {1}", CDTXMania.DTX.listWAV.Count, span.ToString());
                    timeBeginLoadWAV = DateTime.Now;

                    if (CDTXMania.ConfigIni.bDynamicBassMixerManagement)
                    {
                        CDTXMania.DTX.PlanToAddMixerChannel();
                    }
                    CDTXMania.DTX.t太鼓チップのランダム化(CDTXMania.ConfigIni.eRandom.Taiko);

                    CDTXMania.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 (CDTXMania.ConfigIni.bAVI有効)
                {
                    CDTXMania.DTX.tAVIの読み込み();
                }
                span = ( TimeSpan )(DateTime.Now - timeBeginLoadBMPAVI);

                span = ( TimeSpan )(DateTime.Now - timeBeginLoad);
                Trace.TraceInformation("総読込時間:                {0}", span.ToString());

                if (bitmapFilename != null)
                {
                    bitmapFilename.Dispose();
                    bitmapFilename = null;
                }
                if (graphicsFilename != null)
                {
                    graphicsFilename.Dispose();
                    graphicsFilename = null;
                }
                if (ftFilename != null)
                {
                    ftFilename.Dispose();
                    ftFilename = null;
                }
                CDTXMania.Timer.t更新();
                //CSound管理.rc演奏用タイマ.t更新();
                base.eフェーズID = CStage.Eフェーズ.NOWLOADING_システムサウンドBGMの完了を待つ;
                return((int)E曲読込画面の戻り値.継続);
            }

            case CStage.Eフェーズ.NOWLOADING_システムサウンドBGMの完了を待つ:
            {
                long nCurrentTime = CDTXMania.Timer.n現在時刻;
                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 == フェードイン分の時間
                {
                    if (!CDTXMania.DTXVmode.Enabled)
                    {
                    }
                    base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト;
                }
                return((int)E曲読込画面の戻り値.継続);
            }

            case CStage.Eフェーズ.共通_フェードアウト:
                if (this.ct待機.b終了値に達してない)                                       // DTXVモード時は、フェードアウト省略
                {
                    return((int)E曲読込画面の戻り値.継続);
                }

                if (txFilename != null)
                {
                    txFilename.Dispose();
                }
                if (this.sd読み込み音 != null)
                {
                    this.sd読み込み音.t解放する();
                }
                return((int)E曲読込画面の戻り値.読込完了);
            }
            return((int)E曲読込画面の戻り値.継続);
        }
예제 #2
0
        public override int On進行描画()
        {
            string str;

            if (base.b活性化してない)
            {
                return(0);
            }

            #region [ 初めての進行描画 ]
            //-----------------------------
            if (base.b初めての進行描画)
            {
                Cスコア cスコア1 = TJAPlayer4.stage選曲.r確定されたスコア;
                if (this.sd読み込み音 != null)
                {
                    if (TJAPlayer4.Skin.sound曲読込開始音.b排他 && (CSkin.Cシステムサウンド.r最後に再生した排他システムサウンド != null))
                    {
                        CSkin.Cシステムサウンド.r最後に再生した排他システムサウンド.t停止する();
                    }
                    this.sd読み込み音.t再生を開始する();
                    this.nBGM再生開始時刻   = CSound管理.rc演奏用タイマ.n現在時刻;
                    this.nBGMの総再生時間ms = this.sd読み込み音.n総演奏時間ms;
                }
                else
                {
                    TJAPlayer4.Skin.sound曲読込開始音.t再生する();
                    this.nBGM再生開始時刻   = CSound管理.rc演奏用タイマ.n現在時刻;
                    this.nBGMの総再生時間ms = TJAPlayer4.Skin.sound曲読込開始音.n長さ_現在のサウンド;
                }
                //this.actFI.tフェードイン開始();							// #27787 2012.3.10 yyagi 曲読み込み画面のフェードインの省略
                base.eフェーズID   = CStage.Eフェーズ.共通_フェードイン;
                base.b初めての進行描画 = false;

                nWAVcount        = 1;
                bitmapFilename   = new Bitmap(640, 24);
                graphicsFilename = Graphics.FromImage(bitmapFilename);
                graphicsFilename.TextRenderingHint = TextRenderingHint.AntiAlias;
                ftFilename = new Font("MS UI Gothic", 24f, FontStyle.Bold, GraphicsUnit.Pixel);
            }
            //-----------------------------
            #endregion
            this.ct待機.t進行();



            #region [ ESC押下時は選曲画面に戻る ]
            if (tキー入力())
            {
                if (this.sd読み込み音 != null)
                {
                    this.sd読み込み音.tサウンドを停止する();
                    this.sd読み込み音.t解放する();
                }
                return((int)E曲読込画面の戻り値.読込中止);
            }
            #endregion

            #region [ 背景、音符+タイトル表示 ]
            //-----------------------------
            this.ct曲名表示.t進行();
            if (this.tx背景 != null)
            {
                this.tx背景.t2D描画(TJAPlayer4.app.Device, 0, 0);
            }
            //CDTXMania.act文字コンソール.tPrint( 0, 0, C文字コンソール.Eフォント種別.灰, this.ct曲名表示.n現在の値.ToString() );

            if (TJAPlayer4.Tx.SongLoading_Plate != null)
            {
                TJAPlayer4.Tx.SongLoading_Plate.bスクリーン合成 = TJAPlayer4.Skin.SongLoading_Plate_ScreenBlend; //あまりにも出番が無い
                TJAPlayer4.Tx.SongLoading_Plate.Opacity  = C変換.nParsentTo255((this.ct曲名表示.n現在の値 / 30.0));
                if (TJAPlayer4.Skin.SongLoading_Plate_ReferencePoint == CSkin.ReferencePoint.Left)
                {
                    TJAPlayer4.Tx.SongLoading_Plate.t2D描画(TJAPlayer4.app.Device, TJAPlayer4.Skin.SongLoading_Plate_X, TJAPlayer4.Skin.SongLoading_Plate_Y - (TJAPlayer4.Tx.SongLoading_Plate.sz画像サイズ.Height / 2));
                }
                else if (TJAPlayer4.Skin.SongLoading_Plate_ReferencePoint == CSkin.ReferencePoint.Right)
                {
                    TJAPlayer4.Tx.SongLoading_Plate.t2D描画(TJAPlayer4.app.Device, TJAPlayer4.Skin.SongLoading_Plate_X - TJAPlayer4.Tx.SongLoading_Plate.sz画像サイズ.Width, TJAPlayer4.Skin.SongLoading_Plate_Y - (TJAPlayer4.Tx.SongLoading_Plate.sz画像サイズ.Height / 2));
                }
                else
                {
                    TJAPlayer4.Tx.SongLoading_Plate.t2D描画(TJAPlayer4.app.Device, TJAPlayer4.Skin.SongLoading_Plate_X - (TJAPlayer4.Tx.SongLoading_Plate.sz画像サイズ.Width / 2), TJAPlayer4.Skin.SongLoading_Plate_Y - (TJAPlayer4.Tx.SongLoading_Plate.sz画像サイズ.Height / 2));
                }
            }
            //CDTXMania.act文字コンソール.tPrint( 0, 16, C文字コンソール.Eフォント種別.灰, C変換.nParsentTo255( ( this.ct曲名表示.n現在の値 / 30.0 ) ).ToString() );


            int y = 720 - 45;
            if (this.txタイトル != null)
            {
                int nサブタイトル補正 = string.IsNullOrEmpty(TJAPlayer4.stage選曲.r確定されたスコア.譜面情報.strサブタイトル) ? 15 : 0;

                this.txタイトル.Opacity = C変換.nParsentTo255((this.ct曲名表示.n現在の値 / 30.0));
                if (TJAPlayer4.Skin.SongLoading_Title_ReferencePoint == CSkin.ReferencePoint.Left)
                {
                    this.txタイトル.t2D描画(TJAPlayer4.app.Device, TJAPlayer4.Skin.SongLoading_Title_X, TJAPlayer4.Skin.SongLoading_Title_Y - (this.txタイトル.sz画像サイズ.Height / 2) + nサブタイトル補正);
                }
                else if (TJAPlayer4.Skin.SongLoading_Title_ReferencePoint == CSkin.ReferencePoint.Right)
                {
                    this.txタイトル.t2D描画(TJAPlayer4.app.Device, TJAPlayer4.Skin.SongLoading_Title_X - (this.txタイトル.sz画像サイズ.Width * txタイトル.vc拡大縮小倍率.X), TJAPlayer4.Skin.SongLoading_Title_Y - (this.txタイトル.sz画像サイズ.Height / 2) + nサブタイトル補正);
                }
                else
                {
                    this.txタイトル.t2D描画(TJAPlayer4.app.Device, (TJAPlayer4.Skin.SongLoading_Title_X - ((this.txタイトル.sz画像サイズ.Width * txタイトル.vc拡大縮小倍率.X) / 2)), TJAPlayer4.Skin.SongLoading_Title_Y - (this.txタイトル.sz画像サイズ.Height / 2) + nサブタイトル補正);
                }
            }
            if (this.txサブタイトル != null)
            {
                this.txサブタイトル.Opacity = C変換.nParsentTo255((this.ct曲名表示.n現在の値 / 30.0));
                if (TJAPlayer4.Skin.SongLoading_SubTitle_ReferencePoint == CSkin.ReferencePoint.Left)
                {
                    this.txサブタイトル.t2D描画(TJAPlayer4.app.Device, TJAPlayer4.Skin.SongLoading_SubTitle_X, TJAPlayer4.Skin.SongLoading_SubTitle_Y - (this.txサブタイトル.sz画像サイズ.Height / 2));
                }
                else if (TJAPlayer4.Skin.SongLoading_Title_ReferencePoint == CSkin.ReferencePoint.Right)
                {
                    this.txサブタイトル.t2D描画(TJAPlayer4.app.Device, TJAPlayer4.Skin.SongLoading_SubTitle_X - (this.txサブタイトル.sz画像サイズ.Width * txタイトル.vc拡大縮小倍率.X), TJAPlayer4.Skin.SongLoading_SubTitle_Y - (this.txサブタイトル.sz画像サイズ.Height / 2));
                }
                else
                {
                    this.txサブタイトル.t2D描画(TJAPlayer4.app.Device, (TJAPlayer4.Skin.SongLoading_SubTitle_X - ((this.txサブタイトル.sz画像サイズ.Width * txサブタイトル.vc拡大縮小倍率.X) / 2)), TJAPlayer4.Skin.SongLoading_SubTitle_Y - (this.txサブタイトル.sz画像サイズ.Height / 2));
                }
            }
            //-----------------------------
            #endregion

            switch (base.eフェーズID)
            {
            case CStage.Eフェーズ.共通_フェードイン:
                //if( this.actFI.On進行描画() != 0 )			    // #27787 2012.3.10 yyagi 曲読み込み画面のフェードインの省略
                // 必ず一度「CStaeg.Eフェーズ.共通_フェードイン」フェーズを経由させること。
                // さもないと、曲読み込みが完了するまで、曲読み込み画面が描画されない。
                base.eフェーズID = CStage.Eフェーズ.NOWLOADING_DTXファイルを読み込む;
                return((int)E曲読込画面の戻り値.継続);

            case CStage.Eフェーズ.NOWLOADING_DTXファイルを読み込む:
            {
                timeBeginLoad = DateTime.Now;
                TimeSpan span;
                str = null;
                if (!TJAPlayer4.bコンパクトモード)
                {
                    str = TJAPlayer4.stage選曲.r確定されたスコア.ファイル情報.ファイルの絶対パス;
                }
                else
                {
                    str = TJAPlayer4.strコンパクトモードファイル;
                }

                CScoreIni ini = new CScoreIni(str + ".score.ini");
                ini.t全演奏記録セクションの整合性をチェックし不整合があればリセットする();

                if ((TJAPlayer4.DTX[0] != null) && TJAPlayer4.DTX[0].b活性化してる)
                {
                    TJAPlayer4.DTX[0].On非活性化();
                }

                //if( CDTXMania.DTX == null )
                {
                    TJAPlayer4.DTX[0] = new CDTX(str, false, 1.0, ini.stファイル.BGMAdjust, 0, 0, true);
                    if (TJAPlayer4.ConfigIni.nPlayerCount == 2)
                    {
                        TJAPlayer4.DTX[1] = new CDTX(str, false, 1.0, ini.stファイル.BGMAdjust, 0, 1, true);
                    }
                    if (File.Exists(TJAPlayer4.DTX[0].strフォルダ名 + @"\\set.def"))
                    {
                        TJAPlayer4.DTX[0] = new CDTX(str, false, 1.0, ini.stファイル.BGMAdjust, 0, 1, true);
                        if (TJAPlayer4.ConfigIni.nPlayerCount == 2)
                        {
                            TJAPlayer4.DTX[1] = new CDTX(str, false, 1.0, ini.stファイル.BGMAdjust, 0, 1, true);
                        }
                    }

                    Trace.TraceInformation("----曲情報-----------------");
                    Trace.TraceInformation("TITLE: {0}", TJAPlayer4.DTX[0].TITLE);
                    Trace.TraceInformation("FILE: {0}", TJAPlayer4.DTX[0].strファイル名の絶対パス);
                    Trace.TraceInformation("---------------------------");

                    span = (TimeSpan)(DateTime.Now - timeBeginLoad);
                    Trace.TraceInformation("DTX読込所要時間:           {0}", span.ToString());

                    // 段位認定モード用。
                    if (TJAPlayer4.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan && TJAPlayer4.DTX[0].List_DanSongs != null)
                    {
                        var pfTitle    = new CPrivateFont();
                        var pfSubTitle = new CPrivateFont();
                        if (!string.IsNullOrEmpty(TJAPlayer4.ConfigIni.FontName))
                        {
                            pfTitle    = new CPrivateFont(new FontFamily(TJAPlayer4.ConfigIni.FontName), 30);
                            pfSubTitle = new CPrivateFont(new FontFamily(TJAPlayer4.ConfigIni.FontName), 22);
                        }
                        else
                        {
                            pfTitle    = new CPrivateFont(new FontFamily("MS UI Gothic"), 30);
                            pfSubTitle = new CPrivateFont(new FontFamily("MS UI Gothic"), 22);
                        }

                        var titleForeColor    = TJAPlayer4.Skin.Game_DanC_Title_ForeColor;
                        var titleBackColor    = TJAPlayer4.Skin.Game_DanC_Title_BackColor;
                        var subtitleForeColor = TJAPlayer4.Skin.Game_DanC_SubTitle_ForeColor;
                        var subtitleBackColor = TJAPlayer4.Skin.Game_DanC_SubTitle_BackColor;

                        for (int i = 0; i < TJAPlayer4.DTX[0].List_DanSongs.Count; i++)
                        {
                            if (!string.IsNullOrEmpty(TJAPlayer4.DTX[0].List_DanSongs[i].Title))
                            {
                                using (var bmpSongTitle = pfTitle.DrawPrivateFont(TJAPlayer4.DTX[0].List_DanSongs[i].Title, titleForeColor, titleBackColor))
                                {
                                    TJAPlayer4.DTX[0].List_DanSongs[i].TitleTex            = TJAPlayer4.tテクスチャの生成(bmpSongTitle, false);
                                    TJAPlayer4.DTX[0].List_DanSongs[i].TitleTex.vc拡大縮小倍率.X = TJAPlayer4.GetSongNameXScaling(ref TJAPlayer4.DTX[0].List_DanSongs[i].TitleTex, 710);
                                }
                            }

                            if (!string.IsNullOrEmpty(TJAPlayer4.DTX[0].List_DanSongs[i].SubTitle))
                            {
                                using (var bmpSongSubTitle = pfSubTitle.DrawPrivateFont(TJAPlayer4.DTX[0].List_DanSongs[i].SubTitle, subtitleForeColor, subtitleBackColor))
                                {
                                    TJAPlayer4.DTX[0].List_DanSongs[i].SubTitleTex            = TJAPlayer4.tテクスチャの生成(bmpSongSubTitle, false);
                                    TJAPlayer4.DTX[0].List_DanSongs[i].SubTitleTex.vc拡大縮小倍率.X = TJAPlayer4.GetSongNameXScaling(ref TJAPlayer4.DTX[0].List_DanSongs[i].SubTitleTex, 710);
                                }
                            }
                        }

                        pfTitle?.Dispose();
                        pfSubTitle?.Dispose();
                    }
                }

                //2017.01.28 DD Config.iniに反映しないように変更

                /*
                 * switch( CDTXMania.DTX.nScoreModeTmp )
                 * {
                 *  case 0:
                 *      CDTXMania.ConfigIni.nScoreMode = 0;
                 *      break;
                 *  case 1:
                 *      CDTXMania.ConfigIni.nScoreMode = 1;
                 *      break;
                 *  case 2:
                 *      CDTXMania.ConfigIni.nScoreMode = 2;
                 *      break;
                 *  case -1:
                 *      CDTXMania.ConfigIni.nScoreMode = 1;
                 *      break;
                 * }
                 */

                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ファイルを読み込む:
            {
                if (nWAVcount == 1 && TJAPlayer4.DTX[0].listWAV.Count > 0)                                                      // #28934 2012.7.7 yyagi (added checking Count)
                {
                    ShowProgressByFilename(TJAPlayer4.DTX[0].listWAV[nWAVcount].strファイル名);
                }
                int looptime = (TJAPlayer4.ConfigIni.b垂直帰線待ちを行う)? 3 : 1;                                        // VSyncWait=ON時は1frame(1/60s)あたり3つ読むようにする
                for (int i = 0; i < looptime && nWAVcount <= TJAPlayer4.DTX[0].listWAV.Count; i++)
                {
                    if (TJAPlayer4.DTX[0].listWAV[nWAVcount].listこのWAVを使用するチャンネル番号の集合.Count > 0)                                                // #28674 2012.5.8 yyagi
                    {
                        TJAPlayer4.DTX[0].tWAVの読み込み(TJAPlayer4.DTX[0].listWAV[nWAVcount]);
                    }
                    nWAVcount++;
                }
                if (nWAVcount <= TJAPlayer4.DTX[0].listWAV.Count)
                {
                    ShowProgressByFilename(TJAPlayer4.DTX[0].listWAV[nWAVcount].strファイル名);
                }
                if (nWAVcount > TJAPlayer4.DTX[0].listWAV.Count)
                {
                    TimeSpan span = ( TimeSpan )(DateTime.Now - timeBeginLoadWAV);
                    Trace.TraceInformation("WAV読込所要時間({0,4}):     {1}", TJAPlayer4.DTX[0].listWAV.Count, span.ToString());
                    timeBeginLoadWAV = DateTime.Now;

                    if (TJAPlayer4.ConfigIni.bDynamicBassMixerManagement)
                    {
                        TJAPlayer4.DTX[0].PlanToAddMixerChannel();
                    }
                    for (int nPlayer = 0; nPlayer < TJAPlayer4.ConfigIni.nPlayerCount; nPlayer++)
                    {
                        TJAPlayer4.DTX[nPlayer].t太鼓チップのランダム化(TJAPlayer4.ConfigIni.eRandom[nPlayer].Taiko);
                        //太鼓チップをランダム化する際、1P後2Pの処理をすぐに行うと、
                        //1Pと酷似した、もしくは全く同じチップが流れてしまうので、
                        //1Pのランダム化後、ある程度時間を空ける。
                        Stopwatch sw = new Stopwatch();
                        sw.Start();
                        for (int i = 0; i < 1;)
                        {
                            if (sw.ElapsedMilliseconds >= 500)
                            {
                                sw.Reset();
                                i++;
                            }
                        }
                    }
                    TJAPlayer4.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 (TJAPlayer4.ConfigIni.bAVI有効)
                {
                    TJAPlayer4.DTX[0].tAVIの読み込み();
                }
                span = ( TimeSpan )(DateTime.Now - timeBeginLoadBMPAVI);

                span = ( TimeSpan )(DateTime.Now - timeBeginLoad);
                Trace.TraceInformation("総読込時間:                {0}", span.ToString());

                if (TJAPlayer4.ConfigIni.FastRender)
                {
                    var fastRender = new FastRender();
                    fastRender.Render();
                    fastRender = null;
                }


                if (bitmapFilename != null)
                {
                    bitmapFilename.Dispose();
                    bitmapFilename = null;
                }
                if (graphicsFilename != null)
                {
                    graphicsFilename.Dispose();
                    graphicsFilename = null;
                }
                if (ftFilename != null)
                {
                    ftFilename.Dispose();
                    ftFilename = null;
                }
                TJAPlayer4.Timer.t更新();
                //CSound管理.rc演奏用タイマ.t更新();
                base.eフェーズID = CStage.Eフェーズ.NOWLOADING_システムサウンドBGMの完了を待つ;
                return((int)E曲読込画面の戻り値.継続);
            }

            case CStage.Eフェーズ.NOWLOADING_システムサウンドBGMの完了を待つ:
            {
                long nCurrentTime = TJAPlayer4.Timer.n現在時刻;
                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 == フェードイン分の時間
                {
                    if (!TJAPlayer4.DTXVmode.Enabled)
                    {
                    }
                    base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト;
                }
                return((int)E曲読込画面の戻り値.継続);
            }

            case CStage.Eフェーズ.共通_フェードアウト:
                if (this.ct待機.b終了値に達してない)                                       // DTXVモード時は、フェードアウト省略
                {
                    return((int)E曲読込画面の戻り値.継続);
                }

                if (txFilename != null)
                {
                    txFilename.Dispose();
                }
                if (this.sd読み込み音 != null)
                {
                    this.sd読み込み音.t解放する();
                }
                return((int)E曲読込画面の戻り値.読込完了);
            }
            return((int)E曲読込画面の戻り値.継続);
        }