public override int On進行描画()
        {
            if (base.b活性化してない)
            {
                return(0);
            }

            #region [ 初めての進行描画 ]
            //-----------------------------
            if (base.b初めての進行描画)
            {
                if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan)
                {
                    if (this.sd読み込み音 != null)
                    {
                        if (TJAPlayer3.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
                    {
                        TJAPlayer3.Skin.sound曲読込開始音.t再生する();
                        this.nBGM再生開始時刻   = CSound管理.rc演奏用タイマ.n現在時刻;
                        this.nBGMの総再生時間ms = TJAPlayer3.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描画(TJAPlayer3.app.Device, 0, 0);
            }
            //CDTXMania.act文字コンソール.tPrint( 0, 0, C文字コンソール.Eフォント種別.灰, this.ct曲名表示.n現在の値.ToString() );
            if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan)
            {
                if (TJAPlayer3.Tx.SongLoading_Plate != null)
                {
                    TJAPlayer3.Tx.SongLoading_Plate.bスクリーン合成 = TJAPlayer3.Skin.SongLoading_Plate_ScreenBlend;                     //あまりにも出番が無い
                    TJAPlayer3.Tx.SongLoading_Plate.Opacity  = C変換.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.sz画像サイズ.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.sz画像サイズ.Width, TJAPlayer3.Skin.SongLoading_Plate_Y - (TJAPlayer3.Tx.SongLoading_Plate.sz画像サイズ.Height / 2));
                    }
                    else
                    {
                        TJAPlayer3.Tx.SongLoading_Plate.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.SongLoading_Plate_X - (TJAPlayer3.Tx.SongLoading_Plate.sz画像サイズ.Width / 2), TJAPlayer3.Skin.SongLoading_Plate_Y - (TJAPlayer3.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(TJAPlayer3.stage選曲.r確定されたスコア.譜面情報.strサブタイトル) ? 15 : 0;

                    this.txタイトル.Opacity = C変換.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タイトル.sz画像サイズ.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タイトル.sz画像サイズ.Width * txタイトル.vc拡大縮小倍率.X), TJAPlayer3.Skin.SongLoading_Title_Y - (this.txタイトル.sz画像サイズ.Height / 2) + nサブタイトル補正);
                    }
                    else
                    {
                        this.txタイトル.t2D描画(TJAPlayer3.app.Device, (TJAPlayer3.Skin.SongLoading_Title_X - ((this.txタイトル.sz画像サイズ.Width * txタイトル.vc拡大縮小倍率.X) / 2)), TJAPlayer3.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 (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サブタイトル.sz画像サイズ.Height / 2));
                    }
                    else if (TJAPlayer3.Skin.SongLoading_Title_ReferencePoint == CSkin.ReferencePoint.Right)
                    {
                        this.txサブタイトル.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.SongLoading_SubTitle_X - (this.txサブタイトル.sz画像サイズ.Width * txタイトル.vc拡大縮小倍率.X), TJAPlayer3.Skin.SongLoading_SubTitle_Y - (this.txサブタイトル.sz画像サイズ.Height / 2));
                    }
                    else
                    {
                        this.txサブタイトル.t2D描画(TJAPlayer3.app.Device, (TJAPlayer3.Skin.SongLoading_SubTitle_X - ((this.txサブタイトル.sz画像サイズ.Width * txサブタイトル.vc拡大縮小倍率.X) / 2)), TJAPlayer3.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;
                string str = TJAPlayer3.stage選曲.r確定されたスコア.ファイル情報.ファイルの絶対パス;


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

                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, true);
                    if (TJAPlayer3.ConfigIni.nPlayerCount == 2)
                    {
                        TJAPlayer3.DTX[1] = new CDTX(str, false, 1.0, ini.stファイル.BGMAdjust, 1, true);
                    }

                    Trace.TraceInformation("----曲情報-----------------");
                    Trace.TraceInformation("TITLE: {0}", TJAPlayer3.DTX[0].TITLE);
                    Trace.TraceInformation("FILE: {0}", TJAPlayer3.DTX[0].strファイル名の絶対パス);
                    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)
                    {
                        var pfTitle    = new CPrivateFont();
                        var pfSubTitle = new CPrivateFont();
                        if (!string.IsNullOrEmpty(TJAPlayer3.ConfigIni.FontName))
                        {
                            pfTitle    = new CPrivateFont(new FontFamily(TJAPlayer3.ConfigIni.FontName), 32);
                            pfSubTitle = new CPrivateFont(new FontFamily(TJAPlayer3.ConfigIni.FontName), 19);
                        }

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

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

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

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

                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 && TJAPlayer3.DTX[0].listWAV.Count > 0)                                                      // #28934 2012.7.7 yyagi (added checking Count)
                {
                    ShowProgressByFilename(TJAPlayer3.DTX[0].listWAV[nWAVcount].strファイル名);
                }
                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)
                {
                    ShowProgressByFilename(TJAPlayer3.DTX[0].listWAV[nWAVcount].strファイル名);
                }
                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]);
                        //太鼓チップをランダム化する際、1P後2Pの処理をすぐに行うと、
                        //1Pと酷似した、もしくは全く同じチップが流れてしまうので、
                        //1Pのランダム化後、ある程度時間を空ける。
                        Stopwatch sw = new Stopwatch();
                        sw.Start();
                        for (int i = 0; i < 1;)
                        {
                            if (sw.ElapsedMilliseconds >= 500)
                            {
                                sw.Reset();
                                i++;
                            }
                        }
                    }

                    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)
                {
                    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;
                }
                TJAPlayer3.Timer.t更新();
                //CSound管理.rc演奏用タイマ.t更新();
                base.eフェーズID = CStage.Eフェーズ.NOWLOADING_システムサウンドBGMの完了を待つ;
                return((int)E曲読込画面の戻り値.継続);
            }

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

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

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

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

            #region [ 初めての進行描画 ]
            //-----------------------------
            if (base.b初めての進行描画)
            {
                Cスコア cスコア1 = TJAPlayer3.stage選曲.r確定されたスコア;
                if (this.sd読み込み音 != null)
                {
                    if (TJAPlayer3.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
                {
                    TJAPlayer3.Skin.sound曲読込開始音.t再生する();
                    this.nBGM再生開始時刻   = CSound管理.rc演奏用タイマ.n現在時刻;
                    this.nBGMの総再生時間ms = TJAPlayer3.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

            if (TJAPlayer3.stage選曲.n確定された曲の難易度 != (int)Difficulty.Dan)
            {
                #region [ 背景、音符+タイトル表示 ]
                //-----------------------------
                this.ct曲名表示.t進行();
                if (TJAPlayer3.Tx.SongLoading_BgWait != null)
                {
                    TJAPlayer3.Tx.SongLoading_BgWait.t2D描画(TJAPlayer3.app.Device, 0, 0);
                }
                if (TJAPlayer3.Tx.SongLoading_Chara != null)
                {
                    TJAPlayer3.Tx.SongLoading_Chara.t2D描画(TJAPlayer3.app.Device, 0, 0);
                }
                //CDTXMania.act文字コンソール.tPrint( 0, 0, C文字コンソール.Eフォント種別.灰, this.ct曲名表示.n現在の値.ToString() );

                if (TJAPlayer3.Tx.SongLoading_Plate != null)
                {
                    TJAPlayer3.Tx.SongLoading_Plate.bスクリーン合成 = TJAPlayer3.Skin.SongLoading_Plate_ScreenBlend;                     //あまりにも出番が無い
                    TJAPlayer3.Tx.SongLoading_Plate.Opacity  = 255;
                    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.sz画像サイズ.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.sz画像サイズ.Width, TJAPlayer3.Skin.SongLoading_Plate_Y - (TJAPlayer3.Tx.SongLoading_Plate.sz画像サイズ.Height / 2));
                    }
                    else
                    {
                        TJAPlayer3.Tx.SongLoading_Plate.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.SongLoading_Plate_X - (TJAPlayer3.Tx.SongLoading_Plate.sz画像サイズ.Width / 2), TJAPlayer3.Skin.SongLoading_Plate_Y - (TJAPlayer3.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(TJAPlayer3.stage選曲.r確定されたスコア.譜面情報.strサブタイトル) ? 15 : 0;

                    this.txタイトル.Opacity = 255;
                    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タイトル.sz画像サイズ.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タイトル.sz画像サイズ.Width * txタイトル.vc拡大縮小倍率.X), TJAPlayer3.Skin.SongLoading_Title_Y - (this.txタイトル.sz画像サイズ.Height / 2) + nサブタイトル補正);
                    }
                    else
                    {
                        this.txタイトル.t2D描画(TJAPlayer3.app.Device, (TJAPlayer3.Skin.SongLoading_Title_X - ((this.txタイトル.sz画像サイズ.Width * txタイトル.vc拡大縮小倍率.X) / 2)), TJAPlayer3.Skin.SongLoading_Title_Y - (this.txタイトル.sz画像サイズ.Height / 2) + nサブタイトル補正);
                    }
                }
                if (this.txサブタイトル != null)
                {
                    this.txサブタイトル.Opacity = 255;
                    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サブタイトル.sz画像サイズ.Height / 2));
                    }
                    else if (TJAPlayer3.Skin.SongLoading_Title_ReferencePoint == CSkin.ReferencePoint.Right)
                    {
                        this.txサブタイトル.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.SongLoading_SubTitle_X - (this.txサブタイトル.sz画像サイズ.Width * txタイトル.vc拡大縮小倍率.X), TJAPlayer3.Skin.SongLoading_SubTitle_Y - (this.txサブタイトル.sz画像サイズ.Height / 2));
                    }
                    else
                    {
                        this.txサブタイトル.t2D描画(TJAPlayer3.app.Device, (TJAPlayer3.Skin.SongLoading_SubTitle_X - ((this.txサブタイトル.sz画像サイズ.Width * txサブタイトル.vc拡大縮小倍率.X) / 2)), TJAPlayer3.Skin.SongLoading_SubTitle_Y - (this.txサブタイトル.sz画像サイズ.Height / 2));
                    }
                }
                //-----------------------------
                #endregion
            }
            else
            {
                #region [ 段位時の曲読み込み画面 ]

                TJAPlayer3.Tx.SongLoading_Bg_Dan.t2D描画(TJAPlayer3.app.Device, 0, 0 - (ct待機.n現在の値 <= 600 ? ct待機.n現在の値 / 10f : 60));
                if (TJAPlayer3.stage段位選択.段位リスト.stバー情報[TJAPlayer3.stage段位選択.段位リスト.n現在の選択行].txDanPlate != null)
                {
                    TJAPlayer3.stage段位選択.段位リスト.stバー情報[TJAPlayer3.stage段位選択.段位リスト.n現在の選択行].txDanPlate.Opacity = (int)(ct待機.n現在の値 <= 51 ? (ct待機.n現在の値 / 0.2f) : 255 - (this.ct待機.n現在の値 - 949) / 0.2);
                }
                TJAPlayer3.stage段位選択.段位リスト.stバー情報[TJAPlayer3.stage段位選択.段位リスト.n現在の選択行].txDanPlate?.t2D中心基準描画(TJAPlayer3.app.Device, 1121, 213);

                if (TJAPlayer3.Tx.Tile_Black != null)
                {
                    TJAPlayer3.Tx.Tile_Black.Opacity = (int)(ct待機.n現在の値 <= 51 ? (255 - ct待機.n現在の値 / 0.2f) : (this.ct待機.n現在の値 - 949) / 0.2);
                    for (int i = 0; i <= (SampleFramework.GameWindowSize.Width / 64); i++)                          // #23510 2010.10.31 yyagi: change "clientSize.Width" to "640" to fix FIFO drawing size
                    {
                        for (int j = 0; j <= (SampleFramework.GameWindowSize.Height / 64); j++)                     // #23510 2010.10.31 yyagi: change "clientSize.Height" to "480" to fix FIFO drawing size
                        {
                            TJAPlayer3.Tx.Tile_Black.t2D描画(TJAPlayer3.app.Device, i * 64, j * 64);
                        }
                    }
                }

                #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 (!TJAPlayer3.bコンパクトモード)
                {
                    str = TJAPlayer3.stage選曲.r確定されたスコア.ファイル情報.ファイルの絶対パス;
                }
                else
                {
                    str = TJAPlayer3.strコンパクトモードファイル;
                }

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

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

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

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

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

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

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

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

                            if (!string.IsNullOrEmpty(TJAPlayer3.DTX.List_DanSongs[i].SubTitle))
                            {
                                using (var bmpSongSubTitle = pfSubTitle.DrawPrivateFont(TJAPlayer3.DTX.List_DanSongs[i].SubTitle, subtitleForeColor, subtitleBackColor))
                                {
                                    TJAPlayer3.DTX.List_DanSongs[i].SubTitleTex            = TJAPlayer3.tテクスチャの生成(bmpSongSubTitle, false);
                                    TJAPlayer3.DTX.List_DanSongs[i].SubTitleTex.vc拡大縮小倍率.X = TJAPlayer3.GetSongNameXScaling(ref TJAPlayer3.DTX.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 && TJAPlayer3.DTX.listWAV.Count > 0)                                                         // #28934 2012.7.7 yyagi (added checking Count)
                {
                    ShowProgressByFilename(TJAPlayer3.DTX.listWAV[nWAVcount].strファイル名);
                }
                int looptime = (TJAPlayer3.ConfigIni.b垂直帰線待ちを行う)? 3 : 1;                                        // VSyncWait=ON時は1frame(1/60s)あたり3つ読むようにする
                for (int i = 0; i < looptime && nWAVcount <= TJAPlayer3.DTX.listWAV.Count; i++)
                {
                    if (TJAPlayer3.DTX.listWAV[nWAVcount].listこのWAVを使用するチャンネル番号の集合.Count > 0)                                           // #28674 2012.5.8 yyagi
                    {
                        TJAPlayer3.DTX.tWAVの読み込み(TJAPlayer3.DTX.listWAV[nWAVcount]);
                    }
                    nWAVcount++;
                }
                if (nWAVcount <= TJAPlayer3.DTX.listWAV.Count)
                {
                    ShowProgressByFilename(TJAPlayer3.DTX.listWAV[nWAVcount].strファイル名);
                }
                if (nWAVcount > TJAPlayer3.DTX.listWAV.Count)
                {
                    TimeSpan span = ( TimeSpan )(DateTime.Now - timeBeginLoadWAV);
                    Trace.TraceInformation("WAV読込所要時間({0,4}):     {1}", TJAPlayer3.DTX.listWAV.Count, span.ToString());
                    timeBeginLoadWAV = DateTime.Now;

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

                    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.tAVIの読み込み();
                }
                span = ( TimeSpan )(DateTime.Now - timeBeginLoadBMPAVI);

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

                if (TJAPlayer3.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;
                }
                TJAPlayer3.Timer.t更新();
                //CSound管理.rc演奏用タイマ.t更新();
                base.eフェーズID = CStage.Eフェーズ.NOWLOADING_システムサウンドBGMの完了を待つ;
                return((int)E曲読込画面の戻り値.継続);
            }

            case CStage.Eフェーズ.NOWLOADING_システムサウンドBGMの完了を待つ:
            {
                long nCurrentTime = TJAPlayer3.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 (!TJAPlayer3.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曲読込画面の戻り値.継続);
        }
Example #3
0
        public override int On進行描画()
        {
            if (base.b活性化してない)
            {
                return(0);
            }

            #region [ 初めての進行描画 ]
            //-----------------------------
            if (base.b初めての進行描画)
            {
                if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan)
                {
                    if (this.sd読み込み音 != null)
                    {
                        if (TJAPlayer3.Skin.sound曲読込開始音.b排他 && (CSkin.Cシステムサウンド.r最後に再生した排他システムサウンド != null))
                        {
                            CSkin.Cシステムサウンド.r最後に再生した排他システムサウンド.t停止する();
                        }
                        this.sd読み込み音.t再生を開始する();
                        this.nBGM再生開始時刻   = CSoundManager.rc演奏用タイマ.n現在時刻ms;
                        this.nBGMの総再生時間ms = this.sd読み込み音.n総演奏時間ms;
                    }
                    else
                    {
                        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キー入力())
            {
                if (this.sd読み込み音 != null)
                {
                    this.sd読み込み音.tサウンドを停止する();
                    this.sd読み込み音.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    = C変換.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 = C変換.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 = C変換.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    = C変換.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 = C変換.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 = C変換.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].strファイル名の絶対パス);
                    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曲読込画面の戻り値.継続);
                }

                if (this.sd読み込み音 != null)
                {
                    this.sd読み込み音.t解放する();
                }
                return((int)E曲読込画面の戻り値.読込完了);
            }
            return((int)E曲読込画面の戻り値.継続);
        }
Example #4
0
        public override int On進行描画()
        {
            if (base.b活性化してない)
            {
                return(0);
            }

            #region [ 初めての進行描画 ]
            //-----------------------------
            if (base.b初めての進行描画)
            {
                Cスコア cスコア1 = TJAPlayer3.stage選曲.r確定されたスコア;
                if (this.sd読み込み音 != null)
                {
                    if (TJAPlayer3.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
                {
                    TJAPlayer3.Skin.sound曲読込開始音.t再生する();
                    this.nBGM再生開始時刻   = CSound管理.rc演奏用タイマ.n現在時刻;
                    this.nBGMの総再生時間ms = TJAPlayer3.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(FontUtilities.FallbackFontName, 24f, FontStyle.Bold, GraphicsUnit.Pixel);
            }
            //-----------------------------
            #endregion
            this.ct待機.t進行();
            ctどんちゃん.t進行();

            double 回転値 = 180.0;
            double Don = Math.Sin(this.ctどんちゃん.n現在の値 * Math.PI / (this.ctどんちゃん.n終了値 * 180.0 / 回転値)) * 160;
            #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描画(TJAPlayer3.app.Device, 0, 0);


                TJAPlayer3.Tx.SongLoading_FadeIn.Opacity = (int)((this.ctどんちゃん.n現在の値 / 3) * 2.55);
                TJAPlayer3.Tx.SongLoading_FadeIn.t2D描画(TJAPlayer3.app.Device, 940 - ctどんちゃん.n現在の値, (int)(0 - Don), new Rectangle(640, 0, 640, 720));
                TJAPlayer3.Tx.SongLoading_FadeIn.t2D描画(TJAPlayer3.app.Device, -300 + ctどんちゃん.n現在の値, (int)(0 - Don), new Rectangle(0, 0, 640, 720));
            }
            //CDTXMania.act文字コンソール.tPrint( 0, 0, C文字コンソール.Eフォント種別.灰, this.ct曲名表示.n現在の値.ToString() );

            if (TJAPlayer3.Tx.SongLoading_Plate != null)
            {
                TJAPlayer3.Tx.SongLoading_Plate.bスクリーン合成 = TJAPlayer3.Skin.SongLoading_Plate_ScreenBlend;                 //あまりにも出番が無い
                TJAPlayer3.Tx.SongLoading_Plate.Opacity  = C変換.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_XY[0], TJAPlayer3.Skin.SongLoading_Plate_XY[1] - (TJAPlayer3.Tx.SongLoading_Plate.sz画像サイズ.Height / 2));
                }
                else if (TJAPlayer3.Skin.SongLoading_Plate_ReferencePoint == CSkin.ReferencePoint.Right)
                {
                    TJAPlayer3.Tx.SongLoading_Plate.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.SongLoading_Plate_XY[0] - TJAPlayer3.Tx.SongLoading_Plate.sz画像サイズ.Width, TJAPlayer3.Skin.SongLoading_Plate_XY[1] - (TJAPlayer3.Tx.SongLoading_Plate.sz画像サイズ.Height / 2));
                }
                else
                {
                    TJAPlayer3.Tx.SongLoading_Plate.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.SongLoading_Plate_XY[0] - (TJAPlayer3.Tx.SongLoading_Plate.sz画像サイズ.Width / 2), TJAPlayer3.Skin.SongLoading_Plate_XY[1] - (TJAPlayer3.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(TJAPlayer3.stage選曲.r確定されたスコア.譜面情報.strサブタイトル) ? 15 : 0;

                this.txタイトル.Opacity = C変換.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_XY[0], TJAPlayer3.Skin.SongLoading_Title_XY[1] - (this.txタイトル.sz画像サイズ.Height / 2) + nサブタイトル補正);
                }
                else if (TJAPlayer3.Skin.SongLoading_Title_ReferencePoint == CSkin.ReferencePoint.Right)
                {
                    this.txタイトル.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.SongLoading_Title_XY[0] - (this.txタイトル.sz画像サイズ.Width * txタイトル.vc拡大縮小倍率.X), TJAPlayer3.Skin.SongLoading_Title_XY[1] - (this.txタイトル.sz画像サイズ.Height / 2) + nサブタイトル補正);
                }
                else
                {
                    this.txタイトル.t2D描画(TJAPlayer3.app.Device, (TJAPlayer3.Skin.SongLoading_Title_XY[0] - ((this.txタイトル.sz画像サイズ.Width * txタイトル.vc拡大縮小倍率.X) / 2)), TJAPlayer3.Skin.SongLoading_Title_XY[1] - (this.txタイトル.sz画像サイズ.Height / 2) + nサブタイトル補正);
                }
            }
            if (this.txサブタイトル != null)
            {
                this.txサブタイトル.Opacity = C変換.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_XY[0], TJAPlayer3.Skin.SongLoading_SubTitle_XY[1] - (this.txサブタイトル.sz画像サイズ.Height / 2));
                }
                else if (TJAPlayer3.Skin.SongLoading_Title_ReferencePoint == CSkin.ReferencePoint.Right)
                {
                    this.txサブタイトル.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.SongLoading_SubTitle_XY[0] - (this.txサブタイトル.sz画像サイズ.Width * txタイトル.vc拡大縮小倍率.X), TJAPlayer3.Skin.SongLoading_SubTitle_XY[1] - (this.txサブタイトル.sz画像サイズ.Height / 2));
                }
                else
                {
                    this.txサブタイトル.t2D描画(TJAPlayer3.app.Device, (TJAPlayer3.Skin.SongLoading_SubTitle_XY[0] - ((this.txサブタイトル.sz画像サイズ.Width * txサブタイトル.vc拡大縮小倍率.X) / 2)), TJAPlayer3.Skin.SongLoading_SubTitle_XY[1] - (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;
                var str = TJAPlayer3.stage選曲.r確定されたスコア.ファイル情報.ファイルの絶対パス;

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

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

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

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

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

                    // 段位認定モード用。
                    if (TJAPlayer3.stage選曲.n確定された曲の難易度 == (int)Difficulty.Dan && TJAPlayer3.DTX.List_DanSongs != null)
                    {
                        var fontFamily = FontUtilities.GetFontFamilyOrFallback(TJAPlayer3.ConfigIni.FontName);
                        using (var pfTitle = new CPrivateFont(fontFamily, 30))
                            using (var pfSubTitle = new CPrivateFont(fontFamily, 22))
                            {
                                var titleForeColor    = TJAPlayer3.Skin.Game_DanC_Title_ForeColor;
                                var titleBackColor    = TJAPlayer3.Skin.Game_DanC_Title_BackColor;
                                var subtitleForeColor = TJAPlayer3.Skin.Game_DanC_SubTitle_ForeColor;
                                var subtitleBackColor = TJAPlayer3.Skin.Game_DanC_SubTitle_BackColor;

                                foreach (var danSong in TJAPlayer3.DTX.List_DanSongs)
                                {
                                    if (!string.IsNullOrEmpty(danSong.Title))
                                    {
                                        using (var bmpSongTitle = pfTitle.DrawPrivateFont(danSong.Title, titleForeColor, titleBackColor))
                                        {
                                            danSong.TitleTex            = TJAPlayer3.tテクスチャの生成(bmpSongTitle, false);
                                            danSong.TitleTex.vc拡大縮小倍率.X = TJAPlayer3.GetSongNameXScaling(ref danSong.TitleTex, 710);
                                        }
                                    }

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

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

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

                    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.tAVIの読み込み();
                }
                span = (TimeSpan)(DateTime.Now - timeBeginLoadBMPAVI);

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

                if (TJAPlayer3.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;
                }
                TJAPlayer3.Timer.t更新();
                //CSound管理.rc演奏用タイマ.t更新();
                base.eフェーズID = CStage.Eフェーズ.NOWLOADING_システムサウンドBGMの完了を待つ;
                return((int)E曲読込画面の戻り値.継続);
            }

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

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

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

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

            #region [ 初めての進行描画 ]
            //-----------------------------
            if (base.b初めての進行描画)
            {
                Cスコア cスコア1 = TJAPlayer3.stage選曲.r確定されたスコア;
                if (this.sd読み込み音 != null)
                {
                    if (TJAPlayer3.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
                {
                    TJAPlayer3.Skin.sound曲読込開始音.t再生する();
                    this.nBGM再生開始時刻   = CSound管理.rc演奏用タイマ.n現在時刻;
                    this.nBGMの総再生時間ms = TJAPlayer3.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 [ 背景、音符+タイトル表示 ]
            //-----------------------------
            if (TJAPlayer3.stage選曲.n現在選択中の曲の難易度 == (int)Difficulty.Dan)
            {
                if (this.tx段位背景 != null)
                {
                    this.tx段位背景.t2D描画(TJAPlayer3.app.Device, 0, 0);
                }
            }
            if (TJAPlayer3.stage選曲.n現在選択中の曲の難易度 != (int)Difficulty.Dan)
            {
                this.ct曲名表示.t進行();
                if (this.tx背景 != null)
                {
                    this.tx背景.t2D描画(TJAPlayer3.app.Device, 0, 0);
                }
                if (TJAPlayer3.Tx.SongLoading_Plate != null)
                {
                    TJAPlayer3.Tx.SongLoading_Plate.bスクリーン合成 = TJAPlayer3.Skin.SongLoading_Plate_ScreenBlend; //あまりにも出番が無い
                    TJAPlayer3.Tx.SongLoading_Plate.n透明度     = C変換.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.sz画像サイズ.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.sz画像サイズ.Width, TJAPlayer3.Skin.SongLoading_Plate_Y - (TJAPlayer3.Tx.SongLoading_Plate.sz画像サイズ.Height / 2));
                    }
                    else
                    {
                        TJAPlayer3.Tx.SongLoading_Plate.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.SongLoading_Plate_X - (TJAPlayer3.Tx.SongLoading_Plate.sz画像サイズ.Width / 2), TJAPlayer3.Skin.SongLoading_Plate_Y - (TJAPlayer3.Tx.SongLoading_Plate.sz画像サイズ.Height / 2));
                    }
                }


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

                    this.txタイトル.n透明度 = C変換.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タイトル.sz画像サイズ.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タイトル.sz画像サイズ.Width * txタイトル.vc拡大縮小倍率.X), TJAPlayer3.Skin.SongLoading_Title_Y - (this.txタイトル.sz画像サイズ.Height / 2) + nサブタイトル補正);
                    }
                    else
                    {
                        this.txタイトル.t2D描画(TJAPlayer3.app.Device, (TJAPlayer3.Skin.SongLoading_Title_X - ((this.txタイトル.sz画像サイズ.Width * txタイトル.vc拡大縮小倍率.X) / 2)), TJAPlayer3.Skin.SongLoading_Title_Y - (this.txタイトル.sz画像サイズ.Height / 2) + nサブタイトル補正);
                    }
                }

                if (this.txサブタイトル != null)
                {
                    this.txサブタイトル.n透明度 = C変換.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サブタイトル.sz画像サイズ.Height / 2));
                    }
                    else if (TJAPlayer3.Skin.SongLoading_Title_ReferencePoint == CSkin.ReferencePoint.Right)
                    {
                        this.txサブタイトル.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.SongLoading_SubTitle_X - (this.txサブタイトル.sz画像サイズ.Width * txタイトル.vc拡大縮小倍率.X), TJAPlayer3.Skin.SongLoading_SubTitle_Y - (this.txサブタイトル.sz画像サイズ.Height / 2));
                    }
                    else
                    {
                        this.txサブタイトル.t2D描画(TJAPlayer3.app.Device, (TJAPlayer3.Skin.SongLoading_SubTitle_X - ((this.txサブタイトル.sz画像サイズ.Width * txサブタイトル.vc拡大縮小倍率.X) / 2)), TJAPlayer3.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 (!TJAPlayer3.bコンパクトモード)
                {
                    str = TJAPlayer3.stage選曲.r確定されたスコア.ファイル情報.ファイルの絶対パス;
                }
                else
                {
                    str = TJAPlayer3.strコンパクトモードファイル;
                }

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

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

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

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

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

                    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.tAVIの読み込み();
                }
                span = ( TimeSpan )(DateTime.Now - timeBeginLoadBMPAVI);

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

                if (TJAPlayer3.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;
                }
                TJAPlayer3.Timer.t更新();
                //CSound管理.rc演奏用タイマ.t更新();
                base.eフェーズID = CStage.Eフェーズ.NOWLOADING_システムサウンドBGMの完了を待つ;
                return((int)E曲読込画面の戻り値.継続);
            }

            case CStage.Eフェーズ.NOWLOADING_システムサウンドBGMの完了を待つ:
            {
                long nCurrentTime = TJAPlayer3.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 (!TJAPlayer3.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曲読込画面の戻り値.継続);
        }