Ejemplo n.º 1
0
        public override int On進行描画()
        {
            if (!base.b活性化してない)
            {
                if (base.b初めての進行描画)
                {
                    this.list進行文字列.Add("DTXManiaXG Ver.K powered by YAMAHA Silent Session Drums\n");
                    this.list進行文字列.Add("Product by.kairera0467\n");
                    this.list進行文字列.Add("Release: " + CDTXMania.VERSION + " [" + System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString() + "]");

                    this.list進行文字列.Add("");
                    this.list進行文字列.Add("TJAPlayer3 forked TJAPlayer2 forPC(kairera0467)");
                    this.list進行文字列.Add("TJAPlayer3 edited by AioiLight(@aioilight)");
                    this.list進行文字列.Add("");

                    es = new CEnumSongs();
                    es.StartEnumFromCache();                                                                                                    // 曲リスト取得(別スレッドで実行される)
                    base.b初めての進行描画 = false;
                    return(0);
                }

                // CSongs管理 s管理 = CDTXMania.Songs管理;

                //if( this.tx背景 != null )
                //	this.tx背景.t2D描画( CDTXMania.app.Device, 0, 0 );

                #region [ this.str現在進行中 の決定 ]
                //-----------------
                switch (base.eフェーズID)
                {
                case CStage.Eフェーズ.起動0_システムサウンドを構築:
                    this.str現在進行中 = "SYSTEM SOUND...";
                    break;

                case CStage.Eフェーズ.起動00_songlistから曲リストを作成する:
                    this.str現在進行中 = "SONG LIST...";
                    break;

                case CStage.Eフェーズ.起動1_SongsDBからスコアキャッシュを構築:
                    this.str現在進行中 = "SONG DATABASE...";
                    break;

                case CStage.Eフェーズ.起動2_曲を検索してリストを作成する:
                    this.str現在進行中 = string.Format("{0} ... {1}", "Enumerating songs", es.Songs管理.n検索されたスコア数);
                    break;

                case CStage.Eフェーズ.起動3_スコアキャッシュをリストに反映する:
                    this.str現在進行中 = string.Format("{0} ... {1}/{2}", "Loading score properties from songs.db", es.Songs管理.nスコアキャッシュから反映できたスコア数, es.Songs管理.n検索されたスコア数);
                    break;

                case CStage.Eフェーズ.起動4_スコアキャッシュになかった曲をファイルから読み込んで反映する:
                    this.str現在進行中 = string.Format("{0} ... {1}/{2}", "Loading score properties from files", es.Songs管理.nファイルから反映できたスコア数, es.Songs管理.n検索されたスコア数 - es.Songs管理.nスコアキャッシュから反映できたスコア数);
                    break;

                case CStage.Eフェーズ.起動5_曲リストへ後処理を適用する:
                    this.str現在進行中 = string.Format("{0} ... ", "Building songlists");
                    break;

                case CStage.Eフェーズ.起動6_スコアキャッシュをSongsDBに出力する:
                    this.str現在進行中 = string.Format("{0} ... ", "Saving songs.db");
                    break;

                case CStage.Eフェーズ.起動7_完了:
                    this.list進行文字列.Add("LOADING TEXTURES...");
                    CDTXMania.Tx.LoadTexture();
                    this.list進行文字列.Add("LOADING TEXTURES...OK");
                    this.str現在進行中 = "Setup done.";
                    break;
                }
                //-----------------
                #endregion
                #region [ this.list進行文字列+this.現在進行中 の表示 ]
                //-----------------
                lock (this.list進行文字列)
                {
                    int x = 320;
                    int y = 20;
                    foreach (string str in this.list進行文字列)
                    {
                        CDTXMania.act文字コンソール.tPrint(x, y, C文字コンソール.Eフォント種別.白, str);
                        y += 24;
                    }
                    CDTXMania.act文字コンソール.tPrint(x, y, C文字コンソール.Eフォント種別.白, this.str現在進行中);
                }
                //-----------------
                #endregion

                if (es != null && es.IsSongListEnumCompletelyDone)                                      // 曲リスト作成が終わったら
                {
                    CDTXMania.Songs管理 = (es != null) ? es.Songs管理 : null;                               // 最後に、曲リストを拾い上げる
                    return(1);
                }
            }
            return(0);
        }
Ejemplo n.º 2
0
        public override int OnUpdateAndDraw()
        {
            if (!base.bNotActivated)
            {
                if (base.bJustStartedUpdate)
                {
                    this.list進行文字列.Add("DTXMania powered by YAMAHA Silent Session Drums\n");
                    this.list進行文字列.Add("Release: " + CDTXMania.VERSION + " [" + System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString() + "]");

                    es = new CEnumSongs();
                    es.StartEnumFromCache();                                                                                                    // 曲リスト取得(別スレッドで実行される)
                    base.bJustStartedUpdate = false;
                    return(0);
                }

                // CSongManager s管理 = CDTXMania.SongManager;

                if (this.tx背景 != null)
                {
                    this.tx背景.tDraw2D(CDTXMania.app.Device, 0, 0);
                }

                #region [ this.str現在進行中 の決定 ]
                //-----------------
                switch (base.ePhaseID)
                {
                case CStage.EPhase.起動0_システムサウンドを構築:
                    this.str現在進行中 = "Loading system sounds ... ";
                    break;

                case CStage.EPhase.起動00_songlistから曲リストを作成する:
                    this.str現在進行中 = "Loading songlist.db ... ";
                    break;

                case CStage.EPhase.起動1_SongsDBからスコアキャッシュを構築:
                    this.str現在進行中 = "Loading songs.db ... ";
                    break;

                case CStage.EPhase.起動2_曲を検索してリストを作成する:
                    this.str現在進行中 = string.Format("{0} ... {1}", "Enumerating songs", es.Songs管理.nNbScoresFound);
                    break;

                case CStage.EPhase.起動3_スコアキャッシュをリストに反映する:
                    this.str現在進行中 = string.Format("{0} ... {1}/{2}", "Loading score properties from songs.db", es.Songs管理.nNbScoresFromScoreCache, es.Songs管理.nNbScoresFound);
                    break;

                case CStage.EPhase.起動4_スコアキャッシュになかった曲をファイルから読み込んで反映する:
                    this.str現在進行中 = string.Format("{0} ... {1}/{2}", "Loading score properties from files", es.Songs管理.nNbScoresFromFile, es.Songs管理.nNbScoresFound - es.Songs管理.nNbScoresFromScoreCache);
                    break;

                case CStage.EPhase.起動5_曲リストへ後処理を適用する:
                    this.str現在進行中 = string.Format("{0} ... ", "Building songlists");
                    break;

                case CStage.EPhase.起動6_スコアキャッシュをSongsDBに出力する:
                    this.str現在進行中 = string.Format("{0} ... ", "Saving songs.db");
                    break;

                case CStage.EPhase.起動7_完了:
                    this.str現在進行中 = "Setup done.";
                    break;
                }
                //-----------------
                #endregion
                #region [ this.list進行文字列+this.現在進行中 の表示 ]
                //-----------------
                lock (this.list進行文字列)
                {
                    int x = 0;
                    int y = 0;
                    foreach (string str in this.list進行文字列)
                    {
                        CDTXMania.actDisplayString.tPrint(x, y, CCharacterConsole.EFontType.AshThin, str);
                        y += 14;
                    }
                    CDTXMania.actDisplayString.tPrint(x, y, CCharacterConsole.EFontType.AshThin, this.str現在進行中);
                }
                //-----------------
                #endregion

                if (es != null && es.IsSongListEnumCompletelyDone)                                              // 曲リスト作成が終わったら
                {
                    CDTXMania.SongManager = (es != null) ? es.Songs管理 : null;                                   // 最後に、曲リストを拾い上げる
                    return(1);
                }
            }
            return(0);
        }