public override void OnManagedリソースの作成()
 {
     this.arモーション番号     = C変換.ar配列形式のstringをint配列に変換して返す(TJAPlayer3.Skin.Game_Chara_Motion_Normal);
     this.arゴーゴーモーション番号 = C変換.ar配列形式のstringをint配列に変換して返す(TJAPlayer3.Skin.Game_Chara_Motion_GoGo);
     this.arクリアモーション番号  = C変換.ar配列形式のstringをint配列に変換して返す(TJAPlayer3.Skin.Game_Chara_Motion_Clear);
     if (arモーション番号 == null)
     {
         this.arモーション番号 = C変換.ar配列形式のstringをint配列に変換して返す("0,0");
     }
     if (arゴーゴーモーション番号 == null)
     {
         this.arゴーゴーモーション番号 = C変換.ar配列形式のstringをint配列に変換して返す("0,0");
     }
     if (arクリアモーション番号 == null)
     {
         this.arクリアモーション番号 = C変換.ar配列形式のstringをint配列に変換して返す("0,0");
     }
     ctChara_Normal = new CCounter(0, arモーション番号.Length - 1, 10, CSound管理.rc演奏用タイマ);
     ctChara_GoGo   = new CCounter(0, arゴーゴーモーション番号.Length - 1, 10, CSound管理.rc演奏用タイマ);
     ctChara_Clear  = new CCounter(0, arクリアモーション番号.Length - 1, 10, CSound管理.rc演奏用タイマ);
     if (CharaAction_Balloon_Delay != null)
     {
         CharaAction_Balloon_Delay.n現在の値 = CharaAction_Balloon_Delay.n終了値;
     }
     base.OnManagedリソースの作成();
 }
Beispiel #2
0
 public override void OnManagedリソースの作成()
 {
     this.ar踊り子モーション番号 = C変換.ar配列形式のstringをint配列に変換して返す(CDTXMania.Skin.Game_Dancer_Motion);
     if (this.ar踊り子モーション番号 == null)
     {
         ar踊り子モーション番号 = C変換.ar配列形式のstringをint配列に変換して返す("0,0");
     }
     this.ct踊り子モーション = new CCounter(0, this.ar踊り子モーション番号.Length - 1, 0.01, CSound管理.rc演奏用タイマ);
     base.OnManagedリソースの作成();
 }
Beispiel #3
0
        public override void OnManagedリソースの作成()
        {
            if (!this.b活性化してない)
            {
                this.strList    = "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16";
                this.strList_登場 = "0,1,2,3,4,5,6,7,8,8,8,8,8,8,8,8";
                this.strList_退場 = "1,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3";

                this.arモーション番号_通常 = C変換.ar配列形式のstringをint配列に変換して返す(this.strList);
                this.arモーション番号_登場 = C変換.ar配列形式のstringをint配列に変換して返す(this.strList_登場);
                this.arモーション番号_退場 = C変換.ar配列形式のstringをint配列に変換して返す(this.strList_退場);

                this.nテクスチャ枚数_通常   = 16;
                this.nテクスチャ枚数_登場   = 10;
                this.nテクスチャ枚数_退場   = 3;
                this.n現在表示している踊り子数 = 1;

                this.e現在のモーション = new EMotion[5];
                for (int i = 0; i < 5; i++)
                {
                    this.e現在のモーション[i] = EMotion.非表示;
                }

                this.tx踊り子1_通常 = new CTexture[this.nテクスチャ枚数_通常];
                for (int i = 0; i < this.nテクスチャ枚数_通常; i++)
                {
                    this.tx踊り子1_通常[i] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\Dancer\0\dance_1_" + i.ToString() + ".png"));
                }
                this.tx踊り子1_登場 = new CTexture[this.nテクスチャ枚数_登場];
                for (int i = 0; i < this.nテクスチャ枚数_登場; i++)
                {
                    this.tx踊り子1_登場[i] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\Dancer\0\appear_1_" + i.ToString() + ".png"));
                }
                this.tx踊り子1_退場 = new CTexture[this.nテクスチャ枚数_退場];
                for (int i = 0; i < this.nテクスチャ枚数_退場; i++)
                {
                    this.tx踊り子1_退場[i] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\Dancer\0\leave_1_" + i.ToString() + ".png"));
                }

                this.ct通常モーション = new CCounter(0, this.arモーション番号_通常.Length - 1, 0.4, CSound管理.rc演奏用タイマ);
                this.ct登場モーション = new CCounter(0, this.arモーション番号_登場.Length - 1, 0.4, CSound管理.rc演奏用タイマ);

                this.ctモブ = new CCounter(1, 16, 0.025, CSound管理.rc演奏用タイマ);

                this.txフッター = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\Dancer_BG\footer\01.png"));
                this.txモブ   = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\Dancer\mob\1.png"));

                for (int i = 0; i < 5; i++)
                {
                    this.st投げ上げ[i].ct進行 = new CCounter();
                }
                base.OnManagedリソースの作成();
            }
        }
Beispiel #4
0
 public override void OnManagedリソースの作成()
 {
     n = random.Next(1, 6);
     this.ar踊り子モーション番号 = C変換.ar配列形式のstringをint配列に変換して返す(TJAPlayer3.Skin.Game_Dancer_Motion);
     if (this.ar踊り子モーション番号 == null)
     {
         ar踊り子モーション番号 = C変換.ar配列形式のstringをint配列に変換して返す("0,0");
     }
     this.ct踊り子モーション = new CCounter(0, this.ar踊り子モーション番号.Length - 1, 0.01, CSound管理.rc演奏用タイマ);
     this.モーションナンバー  = new CCounter(0, TJAPlayer3.Skin.Game_Dancer_PtnA, TJAPlayer3.Skin.Game_Dancer_Speed, TJAPlayer3.Timer);
     base.OnManagedリソースの作成();
 }
Beispiel #5
0
        /// <summary>
        /// 渡されたgenre.iniのパスから読み込んで設定していく
        /// </summary>
        /// <param name="path">genre.iniの絶対パス</param>
        public CGenreIni(string path)
        {
            StreamReader sr = new StreamReader(path, Encoding.Default);

            string[] strSingleLine = sr.ReadToEnd().Split(new char[] { '\n' }, StringSplitOptions.RemoveEmptyEntries);
            foreach (string s in strSingleLine)
            {
                string str = s.Replace('\t', ' ').TrimStart(new char[] { '\t', ' ' });
                if ((str.Length != 0) && (str[0] != ';'))
                {
                    try
                    {
                        string   strCommand;
                        string   strParam;
                        string[] strArray = str.Split(new char[] { '=' });
                        if (strArray.Length == 2)
                        {
                            strCommand = strArray[0].Trim();
                            strParam   = strArray[1].Trim();

                            #region [ 演奏 ]
                            //-----------------------------
                            if (strCommand == "GenreName")
                            {
                                this.strGenreName = strParam;
                            }
                            else if (strCommand == "GenreColor")
                            {
                                this.cGenreColor = C変換.strColorCodeToColor4(strParam);
                            }
                            else if (strCommand == "FontColor")
                            {
                                this.cFontColor = C変換.strColorCodeToColor4(strParam);
                            }
                            else if (strCommand == "FontOutLineColor")
                            {
                                this.cFontOutLineColor = C変換.strColorCodeToColor4(strParam);
                            }
                            else if (strCommand == "FolderType")
                            {
                                this.nFolderType = C変換.n値を文字列から取得して範囲内に丸めて返す(strParam, 0, 1, 0);
                            }
                            #endregion
                        }
                    }
                    catch (Exception ex)
                    {
                        Trace.TraceError(ex.StackTrace);
                    }
                }
            }
        }
Beispiel #6
0
 public override void OnManagedリソースの作成()
 {
     this.arモーション番号     = C変換.ar配列形式のstringをint配列に変換して返す(CDTXMania.Skin.Game_Chara_Motion_Normal);
     this.arゴーゴーモーション番号 = C変換.ar配列形式のstringをint配列に変換して返す(CDTXMania.Skin.Game_Chara_Motion_GoGo);
     this.arクリアモーション番号  = C変換.ar配列形式のstringをint配列に変換して返す(CDTXMania.Skin.Game_Chara_Motion_Clear);
     if (arモーション番号 == null)
     {
         this.arモーション番号 = C変換.ar配列形式のstringをint配列に変換して返す("0,0");
     }
     if (arゴーゴーモーション番号 == null)
     {
         this.arゴーゴーモーション番号 = C変換.ar配列形式のstringをint配列に変換して返す("0,0");
     }
     if (arクリアモーション番号 == null)
     {
         this.arクリアモーション番号 = C変換.ar配列形式のstringをint配列に変換して返す("0,0");
     }
     ctChara_Normal = new CCounter(0, arモーション番号.Length - 1, 10, CSound管理.rc演奏用タイマ);
     ctChara_GoGo   = new CCounter(0, arゴーゴーモーション番号.Length - 1, 10, CSound管理.rc演奏用タイマ);
     ctChara_Clear  = new CCounter(0, arクリアモーション番号.Length - 1, 10, CSound管理.rc演奏用タイマ);
     base.OnManagedリソースの作成();
 }
Beispiel #7
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曲読込画面の戻り値.継続);
        }
Beispiel #8
0
        public override void OnManagedリソースの作成()
        {
            if (!this.b活性化してない)
            {
                //キャラクター画像を格納しているディレクトリに各モーションの画像がいくつあるかを検索。
                //現在は固定値。
                this.nキャラクター通常モーション枚数      = CDTXMania.ConfigIni.nCharaMotionCount;
                this.nキャラクターゴーゴーモーション枚数    = CDTXMania.ConfigIni.nCharaMotionCount_gogo;
                this.nキャラクタークリアモーション枚数     = CDTXMania.ConfigIni.nCharaMotionCount_clear;
                this.nキャラクターMAX通常モーション枚数   = CDTXMania.ConfigIni.nCharaMotionCount_max;
                this.nキャラクターMAXゴーゴーモーション枚数 = CDTXMania.ConfigIni.nCharaMotionCount_maxgogo;

                this.txキャラクターNormal = new CTexture[this.nキャラクター通常モーション枚数];
                for (int i = 0; i < this.nキャラクター通常モーション枚数; i++)
                {
                    this.txキャラクターNormal[i] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\Chara\Normal_" + i.ToString() + ".png"));
                }

                this.txキャラクターGogo = new CTexture[this.nキャラクターゴーゴーモーション枚数];
                for (int i = 0; i < this.nキャラクターゴーゴーモーション枚数; i++)
                {
                    this.txキャラクターGogo[i] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\Chara\gogo_" + i.ToString() + ".png"));
                }

                if (this.nキャラクタークリアモーション枚数 != 0)
                {
                    this.txキャラクターClear_Normal = new CTexture[this.nキャラクタークリアモーション枚数];
                    for (int i = 0; i < this.nキャラクタークリアモーション枚数; i++)
                    {
                        this.txキャラクターClear_Normal[i] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\Chara\Clear_" + i.ToString() + ".png"));
                    }
                }

                if (this.nキャラクターMAX通常モーション枚数 != 0)
                {
                    this.txキャラクターMax_Normal = new CTexture[this.nキャラクターMAX通常モーション枚数];
                    for (int i = 0; i < this.nキャラクターMAX通常モーション枚数; i++)
                    {
                        this.txキャラクターMax_Normal[i] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\Chara\Max_" + i.ToString() + ".png"));
                    }
                }

                if (this.nキャラクターMAXゴーゴーモーション枚数 != 0)
                {
                    this.txキャラクターMax_Gogo = new CTexture[this.nキャラクターMAXゴーゴーモーション枚数];
                    for (int i = 0; i < this.nキャラクターMAXゴーゴーモーション枚数; i++)
                    {
                        this.txキャラクターMax_Gogo[i] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\Chara\Max_gogo_" + i.ToString() + ".png"));
                    }
                }


                //固定値
                //this.arゴーゴーモーション番号 = new int[]{ 0, 1, 2, 3, 3, 3, 3, 3, 3, 2, 1, 0, 0, 0, 0, 0 };

                //2015.08.05 Config.iniから変更可能にするための実験
                this.strList         = CDTXMania.ConfigIni.strCharaMotionList;
                this.strListGogo     = CDTXMania.ConfigIni.strCharaMotionList_gogo;
                this.strListClear    = CDTXMania.ConfigIni.strCharaMotionList_clear;
                this.strListMAX      = CDTXMania.ConfigIni.strCharaMotionList_max;
                this.strListMAXGogo  = CDTXMania.ConfigIni.strCharaMotionList_maxgogo;
                this.arモーション番号       = C変換.ar配列形式のstringをint配列に変換して返す(this.strList);
                this.arゴーゴーモーション番号   = C変換.ar配列形式のstringをint配列に変換して返す(this.strListGogo);
                this.arクリアモーション番号    = C変換.ar配列形式のstringをint配列に変換して返す(this.strListClear);
                this.ar黄色モーション番号     = C変換.ar配列形式のstringをint配列に変換して返す(this.strListGogo);
                this.ar黄色ゴーゴーモーション番号 = C変換.ar配列形式のstringをint配列に変換して返す(this.strListMAXGogo);

                this.ct通常モーション   = new CCounter(0, this.arモーション番号.Length - 1, 0.02, CSound管理.rc演奏用タイマ);
                this.ctゴーゴーモーション = new CCounter(0, this.arゴーゴーモーション番号.Length - 1, 50, CDTXMania.Timer);
                if (this.nキャラクタークリアモーション枚数 != 0)
                {
                    this.ctクリア通常モーション = new CCounter(0, this.arクリアモーション番号.Length - 1, 50, CDTXMania.Timer);
                }
                if (this.nキャラクターMAX通常モーション枚数 != 0)
                {
                    this.ctMAX通常モーション = new CCounter(0, this.ar黄色モーション番号.Length - 1, 50, CDTXMania.Timer);
                }
                if (this.nキャラクターMAXゴーゴーモーション枚数 != 0)
                {
                    this.ctMAXゴーゴーモーション = new CCounter(0, this.ar黄色ゴーゴーモーション番号.Length - 1, 50, CDTXMania.Timer);
                }

                base.OnManagedリソースの作成();
            }
        }
Beispiel #9
0
        public override int On進行描画()
        {
            if (TJAPlayer3.ConfigIni.eGameMode == EGame.完走叩ききりまショー || TJAPlayer3.ConfigIni.eGameMode == EGame.完走叩ききりまショー激辛)
            {
                //if( this.st叩ききりまショー.b最初のチップが叩かれた == true )//&&
                //CDTXMania.stage演奏ドラム画面.r検索範囲内にチップがあるか調べる( CSound管理.rc演奏用タイマ.n現在時刻ms, 0, 3000 ) )
                //this.st叩ききりまショー.ct残り時間.t進行();
                //else
                //{
                //    this.st叩ききりまショー.ct残り時間.n現在の値 = this.st叩ききりまショー.ct残り時間.n現在の値;
                //}


                //if( !this.st叩ききりまショー.ct残り時間.b停止中 )
                if (this.st叩ききりまショー.bタイマー使用中)
                {
                    if (!this.st叩ききりまショー.ct残り時間.b停止中 || this.st叩ききりまショー.b加算アニメ中 == true)
                    {
                        this.st叩ききりまショー.ct残り時間.t進行();
                        if (!TJAPlayer3.stage演奏ドラム画面.r検索範囲内にチップがあるか調べる((long)(CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)), 0, 5000, 0) || this.st叩ききりまショー.b加算アニメ中 == true)
                        {
                            this.st叩ききりまショー.bタイマー使用中 = false;
                            this.st叩ききりまショー.ct残り時間.t停止();
                        }
                    }
                }

                if (!this.st叩ききりまショー.bタイマー使用中 && this.st叩ききりまショー.b加算アニメ中 == false)
                {
                    if ((this.st叩ききりまショー.b最初のチップが叩かれた == true && (TJAPlayer3.stage演奏ドラム画面.r検索範囲内にチップがあるか調べる(CSound管理.rc演奏用タイマ.n現在時刻ms, 0, 2000, 0))))
                    {
                        this.st叩ききりまショー.bタイマー使用中 = true;
                        int nCount = this.st叩ききりまショー.ct残り時間.n現在の値;
                        this.st叩ききりまショー.ct残り時間       = new CCounter(0, 25000, 1, TJAPlayer3.Timer);
                        this.st叩ききりまショー.ct針アニメ       = new CCounter(0, 1000, 1, TJAPlayer3.Timer);
                        this.st叩ききりまショー.ct残り時間.n現在の値 = nCount;
                    }
                }


                if ((this.st叩ききりまショー.ct残り時間.n現在の値 >= 20000) && this.st叩ききりまショー.ct残り時間.n現在の値 != 25000)
                {
                    this.t叩ききりまショー_評価をして残り時間を延長する();
                }

                if (TJAPlayer3.Tx.Tile_Black != null)
                {
                    if (this.st叩ききりまショー.ct残り時間.n現在の値 >= 22000 && this.st叩ききりまショー.ct残り時間.n現在の値 < 23000)
                    {
                        TJAPlayer3.Tx.Tile_Black.Opacity = 64;
                    }
                    else if (this.st叩ききりまショー.ct残り時間.n現在の値 >= 23000 && this.st叩ききりまショー.ct残り時間.n現在の値 < 24000)
                    {
                        TJAPlayer3.Tx.Tile_Black.Opacity = 128;
                    }
                    else if (this.st叩ききりまショー.ct残り時間.n現在の値 >= 24000)
                    {
                        TJAPlayer3.Tx.Tile_Black.Opacity = 192;
                    }
                    else
                    {
                        TJAPlayer3.Tx.Tile_Black.Opacity = 0;
                    }

                    for (int i = 0; i <= (GameWindowSize.Width / 64); i++)
                    {
                        for (int j = 0; j <= (GameWindowSize.Height / 64); j++)
                        {
                            TJAPlayer3.Tx.Tile_Black.t2D描画(TJAPlayer3.app.Device, i * 64, j * 64);
                        }
                    }
                }

                //CDTXMania.act文字コンソール.tPrint( 100, 0, C文字コンソール.Eフォント種別.白, ( 25 - this.st叩ききりまショー.ct残り時間.n現在の値 ).ToString() );
                //CDTXMania.act文字コンソール.tPrint( 100, 16, C文字コンソール.Eフォント種別.白, this.st叩ききりまショー.n区間ノート数.ToString() );
                //CDTXMania.act文字コンソール.tPrint( 100, 16 * 2, C文字コンソール.Eフォント種別.白, this.st叩ききりまショー.n現在通過したノート数.ToString() );
                //CDTXMania.act文字コンソール.tPrint( 100, 16 * 3, C文字コンソール.Eフォント種別.白, this.st叩ききりまショー.nヒット数_MISS.ToString() );
                //CDTXMania.act文字コンソール.tPrint( 100, 16 * 4, C文字コンソール.Eフォント種別.白, this.st叩ききりまショー.n最小ズレ時間.ToString() );
                //CDTXMania.act文字コンソール.tPrint( 100, 16 * 5, C文字コンソール.Eフォント種別.白, this.st叩ききりまショー.n最大ズレ時間.ToString() );
                //CDTXMania.act文字コンソール.tPrint( 100, 16 * 6, C文字コンソール.Eフォント種別.白, this.st叩ききりまショー.n全体最大ズレ時間.ToString() );
                //CDTXMania.act文字コンソール.tPrint( 100, 16 * 7, C文字コンソール.Eフォント種別.白, this.st叩ききりまショー.n最大コンボ.ToString() );
                //CDTXMania.act文字コンソール.tPrint( 100, 16 * 7, C文字コンソール.Eフォント種別.白, this.st叩ききりまショー.ct加算審査中.n現在の値.ToString() );

                #region [ 残り時間描画 ]
                if (TJAPlayer3.Tx.Taiko_Combo != null)
                {
                    if (TJAPlayer3.Tx.GameMode_Timer_Frame != null)
                    {
                        TJAPlayer3.Tx.GameMode_Timer_Frame.t2D描画(TJAPlayer3.app.Device, 230, 84);
                    }
                    this.st叩ききりまショー.ct針アニメ.t進行Loop();

                    int   nCenterX = 230;
                    int   nCerterY = 84;
                    float fRotate  = -C変換.DegreeToRadian(360.0f * (this.st叩ききりまショー.ct針アニメ.n現在の値 / 1000.0f));
                    if (this.st叩ききりまショー.b加算アニメ中 == true)
                    {
                        fRotate = C変換.DegreeToRadian(360.0f * (this.st叩ききりまショー.ct針アニメ.n現在の値 / (float)this.st叩ききりまショー.n延長アニメ速度));
                    }

                    Matrix4x4 mat = Matrix4x4.Identity;
                    if (this.st叩ききりまショー.b最初のチップが叩かれた)
                    {
                        mat *= Matrix4x4.CreateRotationZ(fRotate);
                        mat *= Matrix4x4.CreateTranslation(280 - 640, -(134 - 360), 0);
                    }
                    else
                    {
                        mat *= Matrix4x4.CreateTranslation(280 - 640, -(134 - 360), 0);
                    }

                    TJAPlayer3.Tx.GameMode_Timer_Tick.t3D描画(TJAPlayer3.app.Device, mat);

                    string str表示する残り時間 = (this.st叩ききりまショー.ct残り時間.n現在の値 < 1000) ? "25" : ((26000 - this.st叩ききりまショー.ct残り時間.n現在の値) / 1000).ToString();
                    this.t小文字表示(230 + (str表示する残り時間.Length * TJAPlayer3.Skin.Game_Taiko_Combo_Size[0] / 4), 84 + TJAPlayer3.Tx.GameMode_Timer_Frame.szテクスチャサイズ.Height / 2, string.Format("{0,2:#0}", str表示する残り時間));
                }

                if (!this.st叩ききりまショー.ct加算審査中.b停止中)
                {
                    if (!this.st叩ききりまショー.ct加算審査中.b停止中)
                    {
                        this.st叩ききりまショー.ct加算審査中.t進行();
                        if (this.st叩ききりまショー.ct加算審査中.b終了値に達した)
                        {
                            this.st叩ききりまショー.ct加算審査中.t停止();
                            this.st叩ききりまショー.b加算アニメ中 = false;
                            this.t加算時間描画_Start();
                        }
                    }
                }
                if (!this.st叩ききりまショー.ct加算時間表示.b停止中)
                {
                    if (!this.st叩ききりまショー.ct加算時間表示.b停止中)
                    {
                        this.st叩ききりまショー.ct加算時間表示.t進行();
                        if (this.st叩ききりまショー.ct加算時間表示.b終了値に達した)
                        {
                            this.st叩ききりまショー.ct加算時間表示.t停止();
                        }
                    }
                    this.t加算時間描画(this.n前回の延長時間);
                }
                #endregion
            }
            return(0);
        }
Beispiel #10
0
        private void t文字列から読み込み(string strAllSettings)          // 2011.4.13 yyagi; refactored to make initial KeyConfig easier.
        {
            string[] delimiter     = { "\n" };
            string[] strSingleLine = strAllSettings.Split(delimiter, StringSplitOptions.RemoveEmptyEntries);
            foreach (string s in strSingleLine)
            {
                string str = s.Replace('\t', ' ').TrimStart(new char[] { '\t', ' ' });
                if ((str.Length != 0) && (str[0] != ';'))
                {
                    try
                    {
                        string   strCommand;
                        string   strParam;
                        string[] strArray = str.Split(new char[] { '=' });
                        if (strArray.Length == 2)
                        {
                            strCommand = strArray[0].Trim();
                            strParam   = strArray[1].Trim();

                            #region [ 演奏 ]
                            //-----------------------------
                            if (strCommand == "ScrollFieldP1Y")
                            {
                                this.nScrollFieldY[0] = C変換.n値を文字列から取得して返す(strParam, 192);
                            }
                            else if (strCommand == "ScrollFieldP2Y")
                            {
                                this.nScrollFieldY[1] = C変換.n値を文字列から取得して返す(strParam, 192);
                            }
                            else if (strCommand == "SENotesP1Y")
                            {
                                this.nSENotesY[0] = C変換.n値を文字列から取得して返す(strParam, this.nSENotesY[0]);
                            }
                            else if (strCommand == "SENotesP2Y")
                            {
                                this.nSENotesY[1] = C変換.n値を文字列から取得して返す(strParam, this.nSENotesY[1]);
                            }
                            else if (strCommand == "JudgePointP1Y")
                            {
                                this.nJudgePointY[0] = C変換.n値を文字列から取得して返す(strParam, this.nJudgePointY[0]);
                            }
                            else if (strCommand == "JudgePointP2Y")
                            {
                                this.nJudgePointY[1] = C変換.n値を文字列から取得して返す(strParam, this.nJudgePointY[1]);
                            }

                            else if (strCommand == "PlayerCharacterP1X")
                            {
                                this.nPlayerCharacterX[0] = C変換.n値を文字列から取得して返す(strParam, 0);
                            }
                            else if (strCommand == "PlayerCharacterP1Y")
                            {
                                this.nPlayerCharacterY[0] = C変換.n値を文字列から取得して返す(strParam, 0);
                            }
                            else if (strCommand == "CourseSymbolP1X")
                            {
                                this.nCourseSymbolX[0] = C変換.n値を文字列から取得して返す(strParam, this.nCourseSymbolX[0]);
                            }
                            else if (strCommand == "CourseSymbolP1Y")
                            {
                                this.nCourseSymbolY[0] = C変換.n値を文字列から取得して返す(strParam, this.nCourseSymbolY[0]);
                            }

                            else if (strCommand == "DiffDispMode")
                            {
                                this.eDiffDispMode = (E難易度表示タイプ)C変換.n値を文字列から取得して範囲内に丸めて返す(strParam, 0, 2, (int)this.eDiffDispMode);
                            }
                            else if (strCommand == "NowStageDisp")
                            {
                                this.b現在のステージ数を表示しない = C変換.bONorOFF(strParam[0]);
                            }
                            else if (strCommand == "AddScoreColorP1")
                            {
                                string[] arColor = strParam.Split(',');
                                if (arColor.Length == 3)
                                {
                                    this.cScoreColor1P = C変換.n255ToColor4(Convert.ToInt16(arColor[0]), Convert.ToInt16(arColor[1]), Convert.ToInt16(arColor[2]));
                                }
                            }
                            else if (strCommand == "AddScoreColorP2")
                            {
                                string[] arColor = strParam.Split(',');
                                if (arColor.Length == 3)
                                {
                                    this.cScoreColor2P = C変換.n255ToColor4(Convert.ToInt16(arColor[0]), Convert.ToInt16(arColor[1]), Convert.ToInt16(arColor[2]));
                                }
                            }

                            //-----------------------------
                            #endregion
                            #region [ 成績発表 ]
                            //-----------------------------
                            else if (strCommand == "ResultPanelP1X")
                            {
                                this.nResultPanelP1X = C変換.n値を文字列から取得して返す(strParam, 515);
                            }
                            else if (strCommand == "ResultPanelP1Y")
                            {
                                this.nResultPanelP1Y = C変換.n値を文字列から取得して返す(strParam, 75);
                            }
                            else if (strCommand == "ResultPanelP2X")
                            {
                                this.nResultPanelP2X = C変換.n値を文字列から取得して返す(strParam, 515);
                            }
                            else if (strCommand == "ResultPanelP2Y")
                            {
                                this.nResultPanelP2Y = C変換.n値を文字列から取得して返す(strParam, 75);
                            }
                            else if (strCommand == "ResultScoreP1X")
                            {
                                this.nResultScoreP1X = C変換.n値を文字列から取得して返す(strParam, 582);
                            }
                            else if (strCommand == "ResultScoreP1Y")
                            {
                                this.nResultScoreP1Y = C変換.n値を文字列から取得して返す(strParam, 252);
                            }
                            //-----------------------------
                            #endregion
                            #region [ その他 ]
                            #endregion
                        }
                        continue;
                    }
                    catch (Exception exception)
                    {
                        Trace.TraceError(exception.Message);
                        continue;
                    }
                }
            }
        }
        /// <summary>
        /// 指定された .score.ini を読み込む。内容の真偽は判定しない。
        /// </summary>
        /// <param name="iniファイル名">読み込む .score.ini ファイルを指定します(絶対パスが安全)。</param>
        public void t読み込み(string iniファイル名)
        {
            this.iniファイルのあるフォルダ名 = Path.GetDirectoryName(iniファイル名);
            this.iniファイル名        = Path.GetFileName(iniファイル名);

            Eセクション種別 section = Eセクション種別.Unknown;

            if (File.Exists(iniファイル名))
            {
                string       str;
                Encoding     inienc = TJAPlayer3.JudgeTextEncoding.JudgeFileEncoding(iniファイル名);
                StreamReader reader = new StreamReader(iniファイル名, inienc);
                while ((str = reader.ReadLine()) != null)
                {
                    str = str.Replace('\t', ' ').TrimStart(new char[] { '\t', ' ' });
                    if ((str.Length != 0) && (str[0] != ';'))
                    {
                        try
                        {
                            string item;
                            string para;
                            C演奏記録  c演奏記録;
                            #region [ section ]
                            if (str[0] == '[')
                            {
                                StringBuilder builder = new StringBuilder(0x20);
                                int           num     = 1;
                                while ((num < str.Length) && (str[num] != ']'))
                                {
                                    builder.Append(str[num++]);
                                }
                                string str2 = builder.ToString();
                                if (str2.Equals("File"))
                                {
                                    section = Eセクション種別.File;
                                }
                                else if (str2.Equals("HiScore.Drums"))
                                {
                                    section = Eセクション種別.HiScoreDrums;
                                }
                                else if (str2.Equals("HiSkill.Drums"))
                                {
                                    section = Eセクション種別.HiSkillDrums;
                                }
                                // #23595 2011.1.9 ikanick
                                else if (str2.Equals("LastPlay.Drums"))
                                {
                                    section = Eセクション種別.LastPlayDrums;
                                }
                                //----------------------------------------------------
                                else
                                {
                                    section = Eセクション種別.Unknown;
                                }
                            }
                            #endregion
                            else
                            {
                                string[] strArray = str.Split(new char[] { '=' });
                                if (strArray.Length == 2)
                                {
                                    item = strArray[0].Trim();
                                    para = strArray[1].Trim();
                                    switch (section)
                                    {
                                    case Eセクション種別.File:
                                    {
                                        if (!item.Equals("Title"))
                                        {
                                            goto Label_01C7;
                                        }
                                        this.stファイル.Title = para;
                                        continue;
                                    }

                                    case Eセクション種別.HiScoreDrums:
                                    case Eセクション種別.HiSkillDrums:
                                    case Eセクション種別.LastPlayDrums:                                            // #23595 2011.1.9 ikanick
                                    {
                                        c演奏記録 = this.stセクション[(int)section];
                                        if (!item.Equals("Score"))
                                        {
                                            goto Label_03B9;
                                        }
                                        c演奏記録.nスコア = long.Parse(para);


                                        continue;
                                    }
                                    }
                                }
                            }
                            continue;
                            #region [ File section ]
Label_01C7:
                            if (item.Equals("Name"))
                            {
                                this.stファイル.Name = para;
                            }
                            else if (item.Equals("Hash"))
                            {
                                this.stファイル.Hash = para;
                            }
                            else if (item.Equals("PlayCountDrums"))
                            {
                                this.stファイル.PlayCountDrums = C変換.n値を文字列から取得して範囲内に丸めて返す(para, 0, 99999999, 0);
                            }
                            // #23596 10.11.16 add ikanick------------------------------------/
                            else if (item.Equals("ClearCountDrums"))
                            {
                                this.stファイル.ClearCountDrums = C変換.n値を文字列から取得して範囲内に丸めて返す(para, 0, 99999999, 0);
                            }
                            // #24459 2011.2.24 yyagi-----------------------------------------/
                            else if (item.Equals("BestRankDrums"))
                            {
                                this.stファイル.BestRank = C変換.n値を文字列から取得して範囲内に丸めて返す(para, (int)ERANK.SS, (int)ERANK.E, (int)ERANK.UNKNOWN);
                            }
                            //----------------------------------------------------------------/
                            else if (item.Equals("History0"))
                            {
                                this.stファイル.History[0] = para;
                            }
                            else if (item.Equals("History1"))
                            {
                                this.stファイル.History[1] = para;
                            }
                            else if (item.Equals("History2"))
                            {
                                this.stファイル.History[2] = para;
                            }
                            else if (item.Equals("History3"))
                            {
                                this.stファイル.History[3] = para;
                            }
                            else if (item.Equals("History4"))
                            {
                                this.stファイル.History[4] = para;
                            }
                            else if (item.Equals("HistoryCount"))
                            {
                                this.stファイル.HistoryCount = C変換.n値を文字列から取得して範囲内に丸めて返す(para, 0, 99999999, 0);
                            }
                            else if (item.Equals("BGMAdjust"))
                            {
                                this.stファイル.BGMAdjust = C変換.n値を文字列から取得して返す(para, 0);
                            }
                            continue;
                            #endregion
                            #region [ Score section ]
Label_03B9:
                            if (item.Equals("HiScore1"))
                            {
                                c演奏記録.nハイスコア[0] = int.Parse(para);
                            }
                            else if (item.Equals("HiScore2"))
                            {
                                c演奏記録.nハイスコア[1] = int.Parse(para);
                            }
                            else if (item.Equals("HiScore3"))
                            {
                                c演奏記録.nハイスコア[2] = int.Parse(para);
                            }
                            else if (item.Equals("HiScore4"))
                            {
                                c演奏記録.nハイスコア[3] = int.Parse(para);
                            }
                            else if (item.Equals("HiScore5"))
                            {
                                c演奏記録.nハイスコア[4] = int.Parse(para);
                            }
                            else if (item.Equals("HiScore6"))
                            {
                                c演奏記録.nハイスコア[5] = int.Parse(para);
                            }
                            else if (item.Equals("HiScore7"))
                            {
                                c演奏記録.nハイスコア[6] = int.Parse(para);
                            }
                            if (item.Equals("PlaySkill"))
                            {
                                try
                                {
                                    c演奏記録.db演奏型スキル値 = (double)decimal.Parse(para);
                                }
                                catch
                                {
                                    c演奏記録.db演奏型スキル値 = 0.0;
                                }
                            }
                            else if (item.Equals("Skill"))
                            {
                                try
                                {
                                    c演奏記録.dbゲーム型スキル値 = (double)decimal.Parse(para);
                                }
                                catch
                                {
                                    c演奏記録.dbゲーム型スキル値 = 0.0;
                                }
                            }
                            else if (item.Equals("Perfect"))
                            {
                                c演奏記録.nPerfect数 = int.Parse(para);
                            }
                            else if (item.Equals("Great"))
                            {
                                c演奏記録.nGreat数 = int.Parse(para);
                            }
                            else if (item.Equals("Good"))
                            {
                                c演奏記録.nGood数 = int.Parse(para);
                            }
                            else if (item.Equals("Poor"))
                            {
                                c演奏記録.nPoor数 = int.Parse(para);
                            }
                            else if (item.Equals("Miss"))
                            {
                                c演奏記録.nMiss数 = int.Parse(para);
                            }
                            else if (item.Equals("Roll"))
                            {
                                c演奏記録.n連打数 = int.Parse(para);
                            }
                            else if (item.Equals("MaxCombo"))
                            {
                                c演奏記録.n最大コンボ数 = int.Parse(para);
                            }
                            else if (item.Equals("TotalChips"))
                            {
                                c演奏記録.n全チップ数 = int.Parse(para);
                            }
                            else if (item.Equals("Risky"))
                            {
                                c演奏記録.nRisky = int.Parse(para);
                            }
                            else if (item.Equals("TightDrums"))
                            {
                                c演奏記録.bTight = C変換.bONorOFF(para[0]);
                            }
                            #endregion
                            else
                            {
                                #region [ ScrollSpeedDrums ]
                                if (item.Equals("ScrollSpeedDrums"))
                                {
                                    c演奏記録.f譜面スクロール速度 = (float)decimal.Parse(para);
                                }
                                #endregion
                                #region [ PlaySpeed ]
                                else if (item.Equals("PlaySpeed"))
                                {
                                    string[] strArray2 = para.Split(new char[] { '/' });
                                    if (strArray2.Length == 2)
                                    {
                                        c演奏記録.n演奏速度分子 = int.Parse(strArray2[0]);
                                        c演奏記録.n演奏速度分母 = int.Parse(strArray2[1]);
                                    }
                                }
                                #endregion
                                else
                                {
                                    #region [ Drums ]
                                    if (item.Equals("Drums"))
                                    {
                                        c演奏記録.bDrums有効 = C変換.bONorOFF(para[0]);
                                    }
                                    #endregion
                                    #region [ StageFailed ]
                                    else if (item.Equals("StageFailed"))
                                    {
                                        c演奏記録.bSTAGEFAILED有効 = C変換.bONorOFF(para[0]);
                                    }
                                    #endregion
                                    else
                                    {
                                        #region [ DamageLevel ]
                                        if (item.Equals("DamageLevel"))
                                        {
                                            switch (int.Parse(para))
                                            {
                                            case 0:
                                            {
                                                c演奏記録.eダメージレベル = Eダメージレベル.少ない;
                                                continue;
                                            }

                                            case 1:
                                            {
                                                c演奏記録.eダメージレベル = Eダメージレベル.普通;
                                                continue;
                                            }

                                            case 2:
                                            {
                                                c演奏記録.eダメージレベル = Eダメージレベル.大きい;
                                                continue;
                                            }
                                            }
                                            throw new Exception("DamageLevel の値が無効です。");
                                        }
                                        #endregion
                                        if (item.Equals("UseKeyboard"))
                                        {
                                            c演奏記録.b演奏にキーボードを使用した = C変換.bONorOFF(para[0]);
                                        }
                                        else if (item.Equals("UseMIDIIN"))
                                        {
                                            c演奏記録.b演奏にMIDI入力を使用した = C変換.bONorOFF(para[0]);
                                        }
                                        else if (item.Equals("UseJoypad"))
                                        {
                                            c演奏記録.b演奏にジョイパッドを使用した = C変換.bONorOFF(para[0]);
                                        }
                                        else if (item.Equals("UseMouse"))
                                        {
                                            c演奏記録.b演奏にマウスを使用した = C変換.bONorOFF(para[0]);
                                        }
                                        else if (item.Equals("PerfectRange"))
                                        {
                                            c演奏記録.nPerfectになる範囲ms = int.Parse(para);
                                        }
                                        else if (item.Equals("GreatRange"))
                                        {
                                            c演奏記録.nGreatになる範囲ms = int.Parse(para);
                                        }
                                        else if (item.Equals("GoodRange"))
                                        {
                                            c演奏記録.nGoodになる範囲ms = int.Parse(para);
                                        }
                                        else if (item.Equals("PoorRange"))
                                        {
                                            c演奏記録.nPoorになる範囲ms = int.Parse(para);
                                        }
                                        else if (item.Equals("DTXManiaVersion"))
                                        {
                                            c演奏記録.strDTXManiaのバージョン = para;
                                        }
                                        else if (item.Equals("DateTime"))
                                        {
                                            c演奏記録.最終更新日時 = para;
                                        }
                                        else if (item.Equals("Hash"))
                                        {
                                            c演奏記録.Hash = para;
                                        }
                                        else if (item.Equals("9LaneMode"))
                                        {
                                            c演奏記録.レーン9モード = C変換.bONorOFF(para[0]);
                                        }
                                        else if (item.Equals("HiScore1"))
                                        {
                                            c演奏記録.nハイスコア[0] = int.Parse(para);
                                        }
                                        else if (item.Equals("HiScore2"))
                                        {
                                            c演奏記録.nハイスコア[1] = int.Parse(para);
                                        }
                                        else if (item.Equals("HiScore3"))
                                        {
                                            c演奏記録.nハイスコア[2] = int.Parse(para);
                                        }
                                        else if (item.Equals("HiScore4"))
                                        {
                                            c演奏記録.nハイスコア[3] = int.Parse(para);
                                        }
                                        else if (item.Equals("HiScore5"))
                                        {
                                            c演奏記録.nハイスコア[4] = int.Parse(para);
                                        }
                                        else if (item.Equals("HiScore6"))
                                        {
                                            c演奏記録.nハイスコア[5] = int.Parse(para);
                                        }
                                        else if (item.Equals("HiScore7"))
                                        {
                                            c演奏記録.nハイスコア[6] = int.Parse(para);
                                        }
                                        else if (item.Equals("Crown1"))
                                        {
                                            c演奏記録.n王冠[0] = int.Parse(para);
                                        }
                                        else if (item.Equals("Crown2"))
                                        {
                                            c演奏記録.n王冠[1] = int.Parse(para);
                                        }
                                        else if (item.Equals("Crown3"))
                                        {
                                            c演奏記録.n王冠[2] = int.Parse(para);
                                        }
                                        else if (item.Equals("Crown4"))
                                        {
                                            c演奏記録.n王冠[3] = int.Parse(para);
                                        }
                                        else if (item.Equals("Crown5"))
                                        {
                                            c演奏記録.n王冠[4] = int.Parse(para);
                                        }
                                        else if (item.Equals("Crown6"))
                                        {
                                            c演奏記録.n王冠[5] = int.Parse(para);
                                        }
                                        else if (item.Equals("Crown7"))
                                        {
                                            c演奏記録.n王冠[6] = int.Parse(para);
                                        }
                                    }
                                }
                            }
                            continue;
                        }
                        catch (Exception exception)
                        {
                            Trace.TraceError(exception.ToString());
                            Trace.TraceError("読み込みを中断します。({0})", iniファイル名);
                            break;
                        }
                    }
                }
                reader.Close();
            }
        }
Beispiel #12
0
        public override void OnManagedリソースの作成()
        {
            this.n踊り子モーション枚数 = CDTXMania.ConfigIni.nDancerMotionCount;
            this.str踊り子リスト   = CDTXMania.ConfigIni.strDancerMotionList;

            this.ar踊り子モーション番号 = C変換.ar配列形式のstringをint配列に変換して返す(str踊り子リスト);

            //this.tx踊り子_1 = new CTexture[this.n踊り子モーション枚数];
            //this.tx踊り子_2 = new CTexture[this.n踊り子モーション枚数];
            //this.tx踊り子_3 = new CTexture[this.n踊り子モーション枚数];
            //this.tx踊り子_4 = new CTexture[this.n踊り子モーション枚数];
            //this.tx踊り子_5 = new CTexture[this.n踊り子モーション枚数];
            //for (int i = 0; i < this.n踊り子モーション枚数; i++)
            //{
            //    this.tx踊り子_1[i] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\Dancer\0\" + i.ToString() + ".png"));
            //    this.tx踊り子_2[i] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\Dancer\1\" + i.ToString() + ".png"));
            //    this.tx踊り子_3[i] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\Dancer\2\" + i.ToString() + ".png"));
            //    this.tx踊り子_4[i] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\Dancer\3\" + i.ToString() + ".png"));
            //    this.tx踊り子_5[i] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\Dancer\4\" + i.ToString() + ".png"));

            //}

            this.ct踊り子モーション = new CCounter(0, this.ar踊り子モーション番号.Length - 1, 0.01, CSound管理.rc演奏用タイマ);
            //this.strList = "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16";
            //this.strList_登場 = "0,1,2,3,4,5,6,7,8,8,8,8,8,8,8,8";
            //this.strList_退場 = "1,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3";

            //this.arモーション番号_通常 = C変換.ar配列形式のstringをint配列に変換して返す( this.strList );
            //this.arモーション番号_登場 = C変換.ar配列形式のstringをint配列に変換して返す( this.strList_登場 );
            //this.arモーション番号_退場 = C変換.ar配列形式のstringをint配列に変換して返す( this.strList_退場 );

            //this.nテクスチャ枚数_通常 = 16;
            //this.nテクスチャ枚数_登場 = 10;
            //this.nテクスチャ枚数_退場 = 3;
            //this.n現在表示している踊り子数 = 1;

            //this.e現在のモーション = new EMotion[ 5 ];
            //for( int i = 0; i < 5; i++ )
            //{
            //    this.e現在のモーション[ i ] = EMotion.非表示;
            //}

            /*this.tx踊り子1_通常 = new CTexture[ this.nテクスチャ枚数_通常 ];
             * for( int i = 0; i < this.nテクスチャ枚数_通常; i++ )
             * {
             *  this.tx踊り子1_通常[ i ] = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\Dancer\0\dance_1_" + i.ToString() + ".png" ) );
             * }
             * this.tx踊り子1_登場 = new CTexture[ this.nテクスチャ枚数_登場 ];
             * for( int i = 0; i < this.nテクスチャ枚数_登場; i++ )
             * {
             *  this.tx踊り子1_登場[ i ] = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\Dancer\0\appear_1_" + i.ToString() + ".png" ) );
             * }
             * this.tx踊り子1_退場 = new CTexture[ this.nテクスチャ枚数_退場 ];
             * for( int i = 0; i < this.nテクスチャ枚数_退場; i++ )
             * {
             *  this.tx踊り子1_退場[ i ] = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\Dancer\0\leave_1_" + i.ToString() + ".png" ) );
             * } */

            // this.ct通常モーション = new CCounter( 0, this.arモーション番号_通常.Length - 1, 0.4, CSound管理.rc演奏用タイマ );
            //this.ct登場モーション = new CCounter( 0, this.arモーション番号_登場.Length - 1, 0.4, CSound管理.rc演奏用タイマ );

            //this.ctモブ = new CCounter( 1, 16, 0.025, CSound管理.rc演奏用タイマ );

            //this.txフッター = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\Dancer_BG\footer\01.png" ) );
            //this.txモブ = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\Dancer\mob\1.png" ) );

            //for( int i = 0; i < 5; i++ )
            //{
            //    this.st投げ上げ[ i ].ct進行 = new CCounter();
            //}
            base.OnManagedリソースの作成();
        }
Beispiel #13
0
        public override int On進行描画()
        {
            if (!base.b活性化してない)
            {
                //for( int i = 0; i < 64; i++ )
                //{
                //    if( this.st連打キャラ[i].b使用中 )
                //    {
                //        this.st連打キャラ[i].n前回のValue = this.st連打キャラ[i].ct進行.n現在の値;
                //        this.st連打キャラ[i].ct進行.t進行();
                //        if (this.st連打キャラ[i].ct進行.b終了値に達した)
                //        {
                //            this.st連打キャラ[i].ct進行.t停止();
                //            this.st連打キャラ[i].b使用中 = false;
                //        }
                //        for (int n = this.st連打キャラ[i].n前回のValue; n < this.st連打キャラ[i].ct進行.n現在の値; n++)
                //        {
                //            this.st連打キャラ[i].fX += this.st連打キャラ[i].fX加速度;
                //            this.st連打キャラ[i].fY -= this.st連打キャラ[i].fY加速度;
                //        }

                //        if(CDTXMania.Tx.Effects_Roll[ this.st連打キャラ[ i ].nColor ] != null )
                //        {
                //            CDTXMania.Tx.Effects_Roll[ this.st連打キャラ[ i ].nColor ].t2D描画( CDTXMania.app.Device, (int)this.st連打キャラ[i].fX, (int)this.st連打キャラ[i].fY, new Rectangle( this.st連打キャラ[i].nColor * 0, 0, 128, 128 ) );
                //        }
                //    }

                //}
                for (int i = 0; i < 128; i++)
                {
                    if (RollCharas[i].IsUsing)
                    {
                        RollCharas[i].ct針アニメ.t進行Loop();
                        float fRotate = -C変換.DegreeToRadian(360.0f * (this.RollCharas[i].ct針アニメ.n現在の値 / 1000.0f));

                        SlimDX.Matrix mat = SlimDX.Matrix.Identity;
                        if (RollCharas[i].IsUsing == true)
                        {
                            mat *= SlimDX.Matrix.RotationZ(fRotate);
                            mat *= SlimDX.Matrix.Translation(RollCharas[i].X - 960, RollCharas[i].Y - 500, 0);
                        }
                        else
                        {
                            mat *= SlimDX.Matrix.Translation(RollCharas[i].X - 960, RollCharas[i].Y - 500, 0);
                        }
                        TJAPlayer3.Tx.Effects_Roll[RollCharas[i].Type]?.t3D描画(TJAPlayer3.app.Device, mat);

                        RollCharas[i].OldValue = RollCharas[i].Counter.n現在の値;
                        RollCharas[i].Counter.t進行();
                        if (RollCharas[i].Counter.b終了値に達した)
                        {
                            RollCharas[i].Counter.t停止();
                            RollCharas[i].IsUsing = false;
                        }
                        for (int l = RollCharas[i].OldValue; l < RollCharas[i].Counter.n現在の値; l++)
                        {
                            RollCharas[i].X += RollCharas[i].XAdd;
                            RollCharas[i].Y += 0;
                        }
                        // 画面外にいたら描画をやめさせる
                        if (RollCharas[i].X < 0 - TJAPlayer3.Tx.Effects_Roll[RollCharas[i].Type].szテクスチャサイズ.Width || RollCharas[i].X > 1920)
                        {
                            RollCharas[i].Counter.t停止();
                            RollCharas[i].IsUsing = false;
                        }
                        if (RollCharas[i].Y < 0 - TJAPlayer3.Tx.Effects_Roll[RollCharas[i].Type].szテクスチャサイズ.Height || RollCharas[i].Y > 1080)
                        {
                            RollCharas[i].Counter.t停止();
                            RollCharas[i].IsUsing = false;
                        }
                    }
                }
            }
            return(0);
        }
        public override void OnManagedリソースの作成()
        {
            ctChara_Normal = new CCounter[2];
            ctChara_GoGo   = new CCounter[2];
            ctChara_Clear  = new CCounter[2];

            this.ctキャラクターアクション_10コンボ       = new CCounter[2];
            this.ctキャラクターアクション_10コンボMAX    = new CCounter[2];
            this.ctキャラクターアクション_ゴーゴースタート    = new CCounter[2];
            this.ctキャラクターアクション_ゴーゴースタートMAX = new CCounter[2];
            this.ctキャラクターアクション_ノルマ         = new CCounter[2];
            this.ctキャラクターアクション_魂MAX        = new CCounter[2];

            CharaAction_Balloon_Breaking = new CCounter[2];
            CharaAction_Balloon_Broke    = new CCounter[2];
            CharaAction_Balloon_Miss     = new CCounter[2];
            CharaAction_Balloon_Delay    = new CCounter[2];

            this.arモーション番号     = new int[2][];
            this.arゴーゴーモーション番号 = new int[2][];
            this.arクリアモーション番号  = new int[2][];

            for (int nPlayer = 0; nPlayer < TJAPlayer3.ConfigIni.nPlayerCount; nPlayer++)
            {
                this.arモーション番号[nPlayer]     = C変換.ar配列形式のstringをint配列に変換して返す(TJAPlayer3.Skin.Game_Chara_Motion_Normal[nPlayer]);
                this.arゴーゴーモーション番号[nPlayer] = C変換.ar配列形式のstringをint配列に変換して返す(TJAPlayer3.Skin.Game_Chara_Motion_GoGo[nPlayer]);
                this.arクリアモーション番号[nPlayer]  = C変換.ar配列形式のstringをint配列に変換して返す(TJAPlayer3.Skin.Game_Chara_Motion_Clear[nPlayer]);
                if (arモーション番号[nPlayer] == null)
                {
                    this.arモーション番号[nPlayer] = C変換.ar配列形式のstringをint配列に変換して返す("0,0");
                }
                if (arゴーゴーモーション番号[nPlayer] == null)
                {
                    this.arゴーゴーモーション番号[nPlayer] = C変換.ar配列形式のstringをint配列に変換して返す("0,0");
                }
                if (arクリアモーション番号[nPlayer] == null)
                {
                    this.arクリアモーション番号[nPlayer] = C変換.ar配列形式のstringをint配列に変換して返す("0,0");
                }

                ctChara_Normal[nPlayer]                 = new CCounter();
                ctChara_GoGo[nPlayer]                   = new CCounter();
                ctChara_Clear[nPlayer]                  = new CCounter();
                this.ctキャラクターアクション_10コンボ[nPlayer]       = new CCounter();
                this.ctキャラクターアクション_10コンボMAX[nPlayer]    = new CCounter();
                this.ctキャラクターアクション_ゴーゴースタート[nPlayer]    = new CCounter();
                this.ctキャラクターアクション_ゴーゴースタートMAX[nPlayer] = new CCounter();
                this.ctキャラクターアクション_ノルマ[nPlayer]         = new CCounter();
                this.ctキャラクターアクション_魂MAX[nPlayer]        = new CCounter();
                CharaAction_Balloon_Breaking[nPlayer]   = new CCounter();
                CharaAction_Balloon_Broke[nPlayer]      = new CCounter();
                CharaAction_Balloon_Miss[nPlayer]       = new CCounter();
                CharaAction_Balloon_Delay[nPlayer]      = new CCounter();

                ctChara_Normal[nPlayer] = new CCounter(0, arモーション番号.Length - 1, 10, CSound管理.rc演奏用タイマ);
                ctChara_GoGo[nPlayer]   = new CCounter(0, arゴーゴーモーション番号.Length - 1, 10, CSound管理.rc演奏用タイマ);
                ctChara_Clear[nPlayer]  = new CCounter(0, arクリアモーション番号.Length - 1, 10, CSound管理.rc演奏用タイマ);
                if (CharaAction_Balloon_Delay[nPlayer] != null)
                {
                    CharaAction_Balloon_Delay[nPlayer].n現在の値 = CharaAction_Balloon_Delay[nPlayer].n終了値;
                }
            }
            base.OnManagedリソースの作成();
        }
Beispiel #15
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曲読込画面の戻り値.継続);
        }
        public override int On進行描画()
        {
            string str;

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

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

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



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

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

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


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

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

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

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

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

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

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


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

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

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

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

                base.eフェーズID     = CStage.Eフェーズ.NOWLOADING_WAV読み込み待機;
                timeBeginLoadWAV = DateTime.Now;
                return((int)E曲読込画面の戻り値.継続);
            }

            case CStage.Eフェーズ.NOWLOADING_WAV読み込み待機:
            {
                if (this.ct待機.n現在の値 > 260)
                {
                    base.eフェーズID = CStage.Eフェーズ.NOWLOADING_WAVファイルを読み込む;
                }
                return((int)E曲読込画面の戻り値.継続);
            }

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

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

                    CDTXMania.stage演奏ドラム画面.On活性化();

                    span = (TimeSpan)(DateTime.Now - timeBeginLoadWAV);

                    base.eフェーズID = CStage.Eフェーズ.NOWLOADING_BMPファイルを読み込む;
                }
                return((int)E曲読込画面の戻り値.継続);
            }

            case CStage.Eフェーズ.NOWLOADING_BMPファイルを読み込む:
            {
                TimeSpan span;
                DateTime timeBeginLoadBMPAVI = DateTime.Now;

                if (CDTXMania.ConfigIni.bAVI有効)
                {
                    CDTXMania.DTX.tAVIの読み込み();
                }
                span = ( TimeSpan )(DateTime.Now - timeBeginLoadBMPAVI);

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

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

            case CStage.Eフェーズ.NOWLOADING_システムサウンドBGMの完了を待つ:
            {
                long nCurrentTime = CDTXMania.Timer.n現在時刻;
                if (nCurrentTime < this.nBGM再生開始時刻)
                {
                    this.nBGM再生開始時刻 = nCurrentTime;
                }

//						if ( ( nCurrentTime - this.nBGM再生開始時刻 ) > ( this.nBGMの総再生時間ms - 1000 ) )
                if ((nCurrentTime - this.nBGM再生開始時刻) >= (this.nBGMの総再生時間ms))                                            // #27787 2012.3.10 yyagi 1000ms == フェードイン分の時間
                {
                    if (!CDTXMania.DTXVmode.Enabled)
                    {
                    }
                    base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト;
                }
                return((int)E曲読込画面の戻り値.継続);
            }

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

                if (txFilename != null)
                {
                    txFilename.Dispose();
                }
                if (this.sd読み込み音 != null)
                {
                    this.sd読み込み音.t解放する();
                }
                return((int)E曲読込画面の戻り値.読込完了);
            }
            return((int)E曲読込画面の戻り値.継続);
        }
Beispiel #17
0
        public override int On進行描画()
        {
            if (TJAPlayer3.ConfigIni.eGameMode == EGame.完走叩ききりまショー || TJAPlayer3.ConfigIni.eGameMode == EGame.完走叩ききりまショー激辛)
            {
                //if( this.st叩ききりまショー.b最初のチップが叩かれた == true )//&&
                //CDTXMania.stage演奏ドラム画面.r検索範囲内にチップがあるか調べる( CSound管理.rc演奏用タイマ.n現在時刻ms, 0, 3000 ) )
                //this.st叩ききりまショー.ct残り時間.t進行();
                //else
                //{
                //    this.st叩ききりまショー.ct残り時間.n現在の値 = this.st叩ききりまショー.ct残り時間.n現在の値;
                //}


                //if( !this.st叩ききりまショー.ct残り時間.b停止中 )
                if (this.st叩ききりまショー.bタイマー使用中)
                {
                    if (!this.st叩ききりまショー.ct残り時間.b停止中 || this.st叩ききりまショー.b加算アニメ中 == true)
                    {
                        this.st叩ききりまショー.ct残り時間.t進行();
                        if (!TJAPlayer3.stage演奏ドラム画面.r検索範囲内にチップがあるか調べる(CSound管理.rc演奏用タイマ.n現在時刻ms, 0, 5000, 0) || this.st叩ききりまショー.b加算アニメ中 == true)
                        {
                            this.st叩ききりまショー.bタイマー使用中 = false;
                            this.st叩ききりまショー.ct残り時間.t停止();
                        }
                    }
                }



                if ((this.st叩ききりまショー.ct残り時間.n現在の値 >= 20000) && this.st叩ききりまショー.ct残り時間.n現在の値 != 25000)
                {
                    this.t叩ききりまショー_評価をして残り時間を延長する();
                }

                if (TJAPlayer3.Tx.Tile_Black != null)
                {
                    if (this.st叩ききりまショー.ct残り時間.n現在の値 >= 22000 && this.st叩ききりまショー.ct残り時間.n現在の値 < 23000)
                    {
                        TJAPlayer3.Tx.Tile_Black.Opacity = 64;
                    }
                    else if (this.st叩ききりまショー.ct残り時間.n現在の値 >= 23000 && this.st叩ききりまショー.ct残り時間.n現在の値 < 24000)
                    {
                        TJAPlayer3.Tx.Tile_Black.Opacity = 128;
                    }
                    else if (this.st叩ききりまショー.ct残り時間.n現在の値 >= 24000)
                    {
                        TJAPlayer3.Tx.Tile_Black.Opacity = 192;
                    }
                    else
                    {
                        TJAPlayer3.Tx.Tile_Black.Opacity = 0;
                    }

                    for (int i = 0; i <= (SampleFramework.GameWindowSize.Width / 64); i++)
                    {
                        for (int j = 0; j <= (SampleFramework.GameWindowSize.Height / 64); j++)
                        {
                            TJAPlayer3.Tx.Tile_Black.t2D描画(TJAPlayer3.app.Device, i * 64, j * 64);
                        }
                    }
                }

                //CDTXMania.act文字コンソール.tPrint( 100, 0, C文字コンソール.Eフォント種別.白, ( 25 - this.st叩ききりまショー.ct残り時間.n現在の値 ).ToString() );
                //CDTXMania.act文字コンソール.tPrint( 100, 16, C文字コンソール.Eフォント種別.白, this.st叩ききりまショー.n区間ノート数.ToString() );
                //CDTXMania.act文字コンソール.tPrint( 100, 16 * 2, C文字コンソール.Eフォント種別.白, this.st叩ききりまショー.n現在通過したノート数.ToString() );
                //CDTXMania.act文字コンソール.tPrint( 100, 16 * 3, C文字コンソール.Eフォント種別.白, this.st叩ききりまショー.nヒット数_MISS.ToString() );
                //CDTXMania.act文字コンソール.tPrint( 100, 16 * 4, C文字コンソール.Eフォント種別.白, this.st叩ききりまショー.n最小ズレ時間.ToString() );
                //CDTXMania.act文字コンソール.tPrint( 100, 16 * 5, C文字コンソール.Eフォント種別.白, this.st叩ききりまショー.n最大ズレ時間.ToString() );
                //CDTXMania.act文字コンソール.tPrint( 100, 16 * 6, C文字コンソール.Eフォント種別.白, this.st叩ききりまショー.n全体最大ズレ時間.ToString() );
                //CDTXMania.act文字コンソール.tPrint( 100, 16 * 7, C文字コンソール.Eフォント種別.白, this.st叩ききりまショー.n最大コンボ.ToString() );
                //CDTXMania.act文字コンソール.tPrint( 100, 16 * 7, C文字コンソール.Eフォント種別.白, this.st叩ききりまショー.ct加算審査中.n現在の値.ToString() );

                #region [ 残り時間描画 ]
                if (TJAPlayer3.Tx.GameMode_Timer_Frame != null)
                {
                    TJAPlayer3.Tx.GameMode_Timer_Frame.t2D描画(TJAPlayer3.app.Device, 230, 84);
                }
                this.st叩ききりまショー.ct針アニメ.t進行Loop();

                float fRotate = -C変換.DegreeToRadian(360.0f * (this.st叩ききりまショー.ct針アニメ.n現在の値 / 1000.0f));

                SlimDX.Matrix mat = SlimDX.Matrix.Identity;
                if (this.st叩ききりまショー.b最初のチップが叩かれた)
                {
                    mat *= SlimDX.Matrix.RotationZ(fRotate);
                    mat *= SlimDX.Matrix.Translation(280 - 640, -(134 - 400), 0);
                }
                else
                {
                    mat *= SlimDX.Matrix.Translation(280 - 640, -(134 - 400), 0);
                }

                TJAPlayer3.Tx.GameMode_Timer_Tick.t3D描画(TJAPlayer3.app.Device, mat);


                #endregion
            }
            return(0);
        }
        public override int On進行描画()
        {
            if (!base.b活性化してない)
            {
                #region [ 初めての進行描画 ]
                //---------------------
                if (base.b初めての進行描画)
                {
                    if (TJAPlayer3.r直前のステージ == TJAPlayer3.stage起動)
                    {
                        this.actFIfromSetup.tフェードイン開始();
                        base.eフェーズID = CStage.Eフェーズ.タイトル_起動画面からのフェードイン;
                    }
                    else
                    {
                        this.actFI.tフェードイン開始();
                        base.eフェーズID = CStage.Eフェーズ.共通_フェードイン;
                    }
                    this.ctカーソルフラッシュ用.t開始(0, 700, 5, TJAPlayer3.Timer);
                    this.ctカーソルフラッシュ用.n現在の値 = 100;
                    base.b初めての進行描画          = false;
                }
                //---------------------
                #endregion

                // 進行

                #region [ カーソル上移動 ]
                //---------------------
                if (this.ct上移動用.b進行中)
                {
                    this.ct上移動用.t進行();
                    if (this.ct上移動用.b終了値に達した)
                    {
                        this.ct上移動用.t停止();
                    }
                }
                //---------------------
                #endregion
                #region [ カーソル下移動 ]
                //---------------------
                if (this.ct下移動用.b進行中)
                {
                    this.ct下移動用.t進行();
                    if (this.ct下移動用.b終了値に達した)
                    {
                        this.ct下移動用.t停止();
                    }
                }
                //---------------------
                #endregion
                #region [ カーソルフラッシュ ]
                //---------------------
                this.ctカーソルフラッシュ用.t進行Loop();
                //---------------------
                #endregion



                // 描画

                if (TJAPlayer3.Tx.Title_Background != null)
                {
                    TJAPlayer3.Tx.Title_Background.t2D描画(TJAPlayer3.app.Device, 0, 0);
                }
                if (this.ctbgm.n現在の値 == 249)
                {
                    TJAPlayer3.Skin.bgmたたいてスタート.t再生する();
                }
                if (this.blstage == false)
                {
                    if (TJAPlayer3.Tx.Title_PRESS != null)
                    {
                        TJAPlayer3.Tx.Title_PRESS.t2D描画(TJAPlayer3.app.Device, 0, 0);
                    }
                    if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)Key.Return))
                    {
                        this.blstage = true;
                        this.ct移動用.t開始(0, 100, 2, TJAPlayer3.Timer);
                        this.ctbgm.n現在の値 = 0;
                        this.ctbgm.t停止();
                        TJAPlayer3.Skin.bgmたたいてスタート.t停止する();
                    }
                    if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)Key.P))
                    {
                        this.blpass = true;
                        this.ct移動用.t開始(0, 100, 2, TJAPlayer3.Timer);
                        this.ct待機用.t開始(0, 100, 10, TJAPlayer3.Timer);
                        this.ctbgm.n現在の値 = 0;
                        this.ctbgm.t停止();
                        TJAPlayer3.Skin.bgmたたいてスタート.t停止する();
                    }
                }
                if (this.blstage == true)
                {
                    if (TJAPlayer3.Tx.Title_Background != null)
                    {
                        TJAPlayer3.Tx.Title_Background.t2D描画(TJAPlayer3.app.Device, 0, 0);
                    }

                    if (TJAPlayer3.Tx.NamePlate[0] != null)
                    {
                        TJAPlayer3.Tx.NamePlate[0].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.SongSelect_NamePlate_X[0] - 100 + this.ct移動用.n現在の値, TJAPlayer3.Skin.SongSelect_NamePlate_Y[0]);
                    }
                    // キー入力

                    if (base.eフェーズID == CStage.Eフェーズ.共通_通常状態 &&                         // 通常状態、かつ
                        TJAPlayer3.act現在入力を占有中のプラグイン == null)                           // プラグインの入力占有がない
                    {
                        if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)Key.Escape))
                        {
                            return((int)E戻り値.EXIT);
                        }

                        this.ctキー反復用.Up.tキー反復(TJAPlayer3.Input管理.Keyboard.bキーが押されている((int)SlimDX.DirectInput.Key.UpArrow), new CCounter.DGキー処理(this.tカーソルを上へ移動する));
                        this.ctキー反復用.R.tキー反復(TJAPlayer3.Pad.b押されているGB(Eパッド.HH), new CCounter.DGキー処理(this.tカーソルを上へ移動する));
                        if (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.SD))
                        {
                            this.tカーソルを上へ移動する();
                        }

                        this.ctキー反復用.Down.tキー反復(TJAPlayer3.Input管理.Keyboard.bキーが押されている((int)SlimDX.DirectInput.Key.DownArrow), new CCounter.DGキー処理(this.tカーソルを下へ移動する));
                        this.ctキー反復用.B.tキー反復(TJAPlayer3.Pad.b押されているGB(Eパッド.BD), new CCounter.DGキー処理(this.tカーソルを下へ移動する));
                        if (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LT))
                        {
                            this.tカーソルを下へ移動する();
                        }

                        if (TJAPlayer3.Tx.Title_Menu != null)
                        {
                            int x = MENU_X;
                            int y = MENU_Y + (this.n現在のカーソル行 * MENU_H);
                            if (this.ct上移動用.b進行中)
                            {
                                y += (int)((double)MENU_H / 2 * (Math.Cos(Math.PI * (((double)this.ct上移動用.n現在の値) / 100.0)) + 1.0));
                            }
                            else if (this.ct下移動用.b進行中)
                            {
                                y -= (int)((double)MENU_H / 2 * (Math.Cos(Math.PI * (((double)this.ct下移動用.n現在の値) / 100.0)) + 1.0));
                            }
                            if (this.ctカーソルフラッシュ用.n現在の値 <= 100)
                            {
                                float nMag = (float)(1.0 + ((((double)this.ctカーソルフラッシュ用.n現在の値) / 100.0) * 0.5));
                                TJAPlayer3.Tx.Title_Menu.vc拡大縮小倍率.X = nMag;
                                TJAPlayer3.Tx.Title_Menu.vc拡大縮小倍率.Y = nMag;
                                TJAPlayer3.Tx.Title_Menu.Opacity    = (int)(255.0 * (1.0 - (((double)this.ctカーソルフラッシュ用.n現在の値) / 100.0)));
                                int x_magnified = x + ((int)((MENU_W * (1.0 - nMag)) / 2.0));
                                int y_magnified = y + ((int)((MENU_H * (1.0 - nMag)) / 2.0));
                                TJAPlayer3.Tx.Title_Menu.t2D描画(TJAPlayer3.app.Device, x_magnified, y_magnified, new Rectangle(0, MENU_H * 5, MENU_W, MENU_H));
                            }
                            TJAPlayer3.Tx.Title_Menu.vc拡大縮小倍率.X = 1f;
                            TJAPlayer3.Tx.Title_Menu.vc拡大縮小倍率.Y = 1f;
                            TJAPlayer3.Tx.Title_Menu.Opacity    = 0xff;
                            TJAPlayer3.Tx.Title_Menu.t2D描画(TJAPlayer3.app.Device, x, y, new Rectangle(0, MENU_H * 4, MENU_W, MENU_H));
                        }
                        if (TJAPlayer3.Tx.Title_Menu != null)
                        {
                            //this.txメニュー.t2D描画( CDTXMania.app.Device, 0xce, 0xcb, new Rectangle( 0, 0, MENU_W, MWNU_H ) );
                            // #24525 2011.3.16 yyagi: "OPTION"を省いて描画。従来スキンとの互換性確保のため。
                            TJAPlayer3.Tx.Title_Menu.t2D描画(TJAPlayer3.app.Device, MENU_X, MENU_Y, new Rectangle(0, 0, MENU_W, MENU_H));
                            TJAPlayer3.Tx.Title_Menu.t2D描画(TJAPlayer3.app.Device, MENU_X, MENU_Y + MENU_H, new Rectangle(0, MENU_H * 2, MENU_W, MENU_H * 2));
                        }
                        if (this.ct移動用.b終了値に達した)
                        {
                            if ((TJAPlayer3.Pad.b押されたDGB(Eパッド.CY) || TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RD)) || (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LC) || (TJAPlayer3.ConfigIni.bEnterがキー割り当てのどこにも使用されていない && TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDX.DirectInput.Key.Return))))
                            {
                                if ((this.n現在のカーソル行 == (int)E戻り値.GAMESTART - 1) && TJAPlayer3.Skin.soundゲーム開始音.b読み込み成功)
                                {
                                    TJAPlayer3.Skin.soundゲーム開始音.t再生する();
                                }
                                else
                                {
                                    TJAPlayer3.Skin.sound決定音.t再生する();
                                }
                                if (this.n現在のカーソル行 == (int)E戻り値.EXIT - 1)
                                {
                                    return((int)E戻り値.EXIT);
                                }
                                this.actFO.tフェードアウト開始();
                                base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト;
                            }
                        }
                    }
                }
                if (this.blpass == true)
                {
                    if (TJAPlayer3.Tx.Title_pass_0 != null)
                    {
                        TJAPlayer3.Tx.Title_pass_0.t2D描画(TJAPlayer3.app.Device, 0, 0);
                    }
                    if (this.ct待機用.b終了値に達した)
                    {
                        if (TJAPlayer3.Tx.Title_pass_1 != null)
                        {
                            TJAPlayer3.Tx.Title_pass_1.t2D描画(TJAPlayer3.app.Device, 0, 0);
                        }
                        this.ct待機用後.t進行();
                        this.使えないんで = true;
                    }
                    if (this.ct待機用.n現在の値 == 99)
                    {
                        TJAPlayer3.Skin.bgmぴこん.t再生する();
                    }
                }
                if (this.ct待機用.n現在の値 == 99)
                {
                    this.ct待機用後.t開始(0, 100, 20, TJAPlayer3.Timer);
                }
                if (this.使えないんで == true)
                {
                    if (this.ct待機用後.b終了値に達した)
                    {
                        this.blpass       = false;
                        this.blpassok     = true;
                        this.ct待機用後.n現在の値 = 0;
                    }
                }
                if (this.ct待機用後.n現在の値 == 99)
                {
                    this.ct移動用.t開始(0, 100, 2, TJAPlayer3.Timer);
                }
                if (this.blpassok == true)
                {
                    if (TJAPlayer3.Tx.Title_pass_2 != null)
                    {
                        TJAPlayer3.Tx.Title_pass_2.t2D描画(TJAPlayer3.app.Device, 0, 0);
                    }
                    if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)Key.K))
                    {
                        this.blカーソル = true;
                        TJAPlayer3.Skin.soundカーソル移動音.t再生する();
                    }
                    if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)Key.D))
                    {
                        this.blカーソル = false;
                        TJAPlayer3.Skin.soundカーソル移動音.t再生する();
                    }
                    if (this.blカーソル == true)
                    {
                        if (TJAPlayer3.Tx.Title_no != null)
                        {
                            TJAPlayer3.Tx.Title_no.t2D描画(TJAPlayer3.app.Device, 0, 0);
                        }
                        if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)Key.F))
                        {
                            TJAPlayer3.Skin.sound決定音.t再生する();
                            this.blpassok = false;
                        }
                        if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)Key.J))
                        {
                            TJAPlayer3.Skin.sound決定音.t再生する();
                            this.blpassok = false;
                        }
                    }
                    if (this.blカーソル == false)
                    {
                        if (TJAPlayer3.Tx.Title_yes != null)
                        {
                            TJAPlayer3.Tx.Title_yes.t2D描画(TJAPlayer3.app.Device, 0, 0);
                        }
                        if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)Key.F))
                        {
                            this.blstage  = true;
                            this.blpassok = false;
                            TJAPlayer3.Skin.soundこれで始める.t再生する();
                            this.ct移動用.t開始(0, 100, 2, TJAPlayer3.Timer);
                        }
                        if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)Key.J))
                        {
                            this.blstage  = true;
                            this.blpassok = false;
                            TJAPlayer3.Skin.soundこれで始める.t再生する();
                            this.ct移動用.t開始(0, 100, 2, TJAPlayer3.Timer);
                        }
                    }
                }
                if (TJAPlayer3.Tx.Title_base != null)
                {
                    TJAPlayer3.Tx.Title_base.t2D描画(TJAPlayer3.app.Device, 0, 0);
                }
                if (this.don == true)
                {
                    if (TJAPlayer3.Tx.Title_don != null)
                    {
                        TJAPlayer3.Tx.Title_don.t2D描画(TJAPlayer3.app.Device, 0, 0);
                    }
                }
                if (this.ka == true)
                {
                    if (TJAPlayer3.Tx.Title_ka != null)
                    {
                        TJAPlayer3.Tx.Title_ka.t2D描画(TJAPlayer3.app.Device, 0, 0);
                    }
                }
                if (this.ct操作説明.n現在の値 == 0)
                {
                    this.ka  = false;
                    this.don = true;
                }
                if (this.ct操作説明.n現在の値 == 499)
                {
                    this.don = false;
                    this.ka  = true;
                }
                this.ct移動用.t進行();
                this.ct待機用.t進行();
                this.ctbgm.t進行Loop();
                this.ct操作説明.t進行Loop();
                this.ct点滅.t進行Loop();
                TJAPlayer3.Tx.NamePlate[0].Opacity = C変換.nParsentTo255((this.ct移動用.n現在の値 / 100.0));
                TJAPlayer3.Tx.Title_pass_2.Opacity = C変換.nParsentTo255((this.ct移動用.n現在の値 / 100.0));
                TJAPlayer3.Tx.Title_PRESS.Opacity  = (int)(176.0 + 80.0 * Math.Sin((double)(2 * Math.PI * this.ct点滅.n現在の値 * 2 / 100.0)));
                TJAPlayer3.Tx.Title_don.Opacity    = (int)(176.0 + 80.0 * Math.Sin((double)(2 * Math.PI * this.ct点滅.n現在の値 * 2 / 100.0)));
                TJAPlayer3.Tx.Title_ka.Opacity     = (int)(176.0 + 80.0 * Math.Sin((double)(2 * Math.PI * this.ct点滅.n現在の値 * 2 / 100.0)));
                TJAPlayer3.Tx.Title_pass_0.Opacity = C変換.nParsentTo255((this.ct移動用.n現在の値 / 100.0));


                CStage.Eフェーズ eフェーズid = base.eフェーズID;
                switch (eフェーズid)
                {
                case CStage.Eフェーズ.共通_フェードイン:
                    if (this.actFI.On進行描画() != 0)
                    {
                        TJAPlayer3.Skin.soundタイトル音.t再生する();

                        base.eフェーズID = CStage.Eフェーズ.共通_通常状態;
                    }
                    break;

                case CStage.Eフェーズ.共通_フェードアウト:
                    if (this.actFO.On進行描画() == 0)
                    {
                        break;
                    }
                    base.eフェーズID = CStage.Eフェーズ.共通_終了状態;
                    switch (this.n現在のカーソル行)
                    {
                    case (int)E戻り値.GAMESTART - 1:
                        return((int)E戻り値.GAMESTART);

                    case (int)E戻り値.CONFIG - 1:
                        return((int)E戻り値.CONFIG);

                    case (int)E戻り値.EXIT - 1:
                        return((int)E戻り値.EXIT);
                        //return ( this.n現在のカーソル行 + 1 );
                    }
                    break;

                case CStage.Eフェーズ.タイトル_起動画面からのフェードイン:
                    if (this.actFIfromSetup.On進行描画() != 0)
                    {
                        TJAPlayer3.Skin.soundタイトル音.t再生する();

                        base.eフェーズID = CStage.Eフェーズ.共通_通常状態;
                    }
                    break;
                }
            }
            return(0);
        }
        public override int On進行描画()
        {
            if (CDTXMania.ConfigIni.eGameMode == EGame.完走叩ききりまショー || CDTXMania.ConfigIni.eGameMode == EGame.完走叩ききりまショー激辛)
            {
                //if( this.st叩ききりまショー.b最初のチップが叩かれた == true )//&&
                //CDTXMania.stage演奏ドラム画面.r検索範囲内にチップがあるか調べる( CSound管理.rc演奏用タイマ.n現在時刻ms, 0, 3000 ) )
                //this.st叩ききりまショー.ct残り時間.t進行();
                //else
                //{
                //    this.st叩ききりまショー.ct残り時間.n現在の値 = this.st叩ききりまショー.ct残り時間.n現在の値;
                //}


                //if( !this.st叩ききりまショー.ct残り時間.b停止中 )
                if (this.st叩ききりまショー.bタイマー使用中)
                {
                    if (!this.st叩ききりまショー.ct残り時間.b停止中 || this.st叩ききりまショー.b加算アニメ中 == true)
                    {
                        this.st叩ききりまショー.ct残り時間.t進行();
                        if (!CDTXMania.stage演奏ドラム画面.r検索範囲内にチップがあるか調べる(CSound管理.rc演奏用タイマ.n現在時刻ms, 0, 5000, 0) || this.st叩ききりまショー.b加算アニメ中 == true)
                        {
                            this.st叩ききりまショー.bタイマー使用中 = false;
                            this.st叩ききりまショー.ct残り時間.t停止();
                        }
                    }
                }

                if (!this.st叩ききりまショー.bタイマー使用中 && this.st叩ききりまショー.b加算アニメ中 == false)
                {
                    if ((this.st叩ききりまショー.b最初のチップが叩かれた == true && (CDTXMania.stage演奏ドラム画面.r検索範囲内にチップがあるか調べる(CSound管理.rc演奏用タイマ.n現在時刻ms, 0, 2000, 0))))
                    {
                        this.st叩ききりまショー.bタイマー使用中 = true;
                        int nCount = this.st叩ききりまショー.ct残り時間.n現在の値;
                        this.st叩ききりまショー.ct残り時間       = new CCounter(0, 25000, 1, CDTXMania.Timer);
                        this.st叩ききりまショー.ct針アニメ       = new CCounter(0, 1000, 1, CDTXMania.Timer);
                        this.st叩ききりまショー.ct残り時間.n現在の値 = nCount;
                    }
                }


                if ((this.st叩ききりまショー.ct残り時間.n現在の値 >= 20000) && this.st叩ききりまショー.ct残り時間.n現在の値 != 25000)
                {
                    this.t叩ききりまショー_評価をして残り時間を延長する();
                }

                if (this.tx背景黒 != null)
                {
                    if (this.st叩ききりまショー.ct残り時間.n現在の値 >= 22000 && this.st叩ききりまショー.ct残り時間.n現在の値 < 23000)
                    {
                        this.tx背景黒.n透明度 = 64;
                    }
                    else if (this.st叩ききりまショー.ct残り時間.n現在の値 >= 23000 && this.st叩ききりまショー.ct残り時間.n現在の値 < 24000)
                    {
                        this.tx背景黒.n透明度 = 128;
                    }
                    else if (this.st叩ききりまショー.ct残り時間.n現在の値 >= 24000)
                    {
                        this.tx背景黒.n透明度 = 192;
                    }
                    else
                    {
                        this.tx背景黒.n透明度 = 0;
                    }

                    for (int i = 0; i <= (SampleFramework.GameWindowSize.Width / 64); i++)
                    {
                        for (int j = 0; j <= (SampleFramework.GameWindowSize.Height / 64); j++)
                        {
                            this.tx背景黒.t2D描画(CDTXMania.app.Device, i * 64, j * 64);
                        }
                    }
                }

                //CDTXMania.act文字コンソール.tPrint( 100, 0, C文字コンソール.Eフォント種別.白, ( 25 - this.st叩ききりまショー.ct残り時間.n現在の値 ).ToString() );
                //CDTXMania.act文字コンソール.tPrint( 100, 16, C文字コンソール.Eフォント種別.白, this.st叩ききりまショー.n区間ノート数.ToString() );
                //CDTXMania.act文字コンソール.tPrint( 100, 16 * 2, C文字コンソール.Eフォント種別.白, this.st叩ききりまショー.n現在通過したノート数.ToString() );
                //CDTXMania.act文字コンソール.tPrint( 100, 16 * 3, C文字コンソール.Eフォント種別.白, this.st叩ききりまショー.nヒット数_MISS.ToString() );
                //CDTXMania.act文字コンソール.tPrint( 100, 16 * 4, C文字コンソール.Eフォント種別.白, this.st叩ききりまショー.n最小ズレ時間.ToString() );
                //CDTXMania.act文字コンソール.tPrint( 100, 16 * 5, C文字コンソール.Eフォント種別.白, this.st叩ききりまショー.n最大ズレ時間.ToString() );
                //CDTXMania.act文字コンソール.tPrint( 100, 16 * 6, C文字コンソール.Eフォント種別.白, this.st叩ききりまショー.n全体最大ズレ時間.ToString() );
                //CDTXMania.act文字コンソール.tPrint( 100, 16 * 7, C文字コンソール.Eフォント種別.白, this.st叩ききりまショー.n最大コンボ.ToString() );
                //CDTXMania.act文字コンソール.tPrint( 100, 16 * 7, C文字コンソール.Eフォント種別.白, this.st叩ききりまショー.ct加算審査中.n現在の値.ToString() );

                #region [ 残り時間描画 ]
                if (this.tx残り時間数字 != null)
                {
                    if (this.txタイマー枠 != null)
                    {
                        this.txタイマー枠.t2D描画(CDTXMania.app.Device, 230, 84);
                    }
                    this.st叩ききりまショー.ct針アニメ.t進行Loop();

                    int   nCenterX = 230;
                    int   nCerterY = 84;
                    float fRotate  = -C変換.DegreeToRadian(360.0f * (this.st叩ききりまショー.ct針アニメ.n現在の値 / 1000.0f));
                    if (this.st叩ききりまショー.b加算アニメ中 == true)
                    {
                        fRotate = C変換.DegreeToRadian(360.0f * (this.st叩ききりまショー.ct針アニメ.n現在の値 / (float)this.st叩ききりまショー.n延長アニメ速度));
                    }

                    SlimDX.Matrix mat = SlimDX.Matrix.Identity;
                    if (this.st叩ききりまショー.b最初のチップが叩かれた)
                    {
                        mat *= SlimDX.Matrix.RotationZ(fRotate);
                        mat *= SlimDX.Matrix.Translation(280 - 640, -(134 - 360), 0);
                    }
                    else
                    {
                        mat *= SlimDX.Matrix.Translation(280 - 640, -(134 - 360), 0);
                    }

                    this.txタイマー針.t3D描画(CDTXMania.app.Device, mat);

                    string str表示する残り時間 = (this.st叩ききりまショー.ct残り時間.n現在の値 < 1000) ? "25" : ((26000 - this.st叩ききりまショー.ct残り時間.n現在の値) / 1000).ToString();
                    this.t小文字表示(236, 100, string.Format("{0,2:#0}", str表示する残り時間));
                }

                if (!this.st叩ききりまショー.ct加算審査中.b停止中)
                {
                    if (!this.st叩ききりまショー.ct加算審査中.b停止中)
                    {
                        this.st叩ききりまショー.ct加算審査中.t進行();
                        if (this.st叩ききりまショー.ct加算審査中.b終了値に達した)
                        {
                            this.st叩ききりまショー.ct加算審査中.t停止();
                            this.st叩ききりまショー.b加算アニメ中 = false;
                            this.t加算時間描画_Start();
                        }
                    }
                }
                if (!this.st叩ききりまショー.ct加算時間表示.b停止中)
                {
                    if (!this.st叩ききりまショー.ct加算時間表示.b停止中)
                    {
                        this.st叩ききりまショー.ct加算時間表示.t進行();
                        if (this.st叩ききりまショー.ct加算時間表示.b終了値に達した)
                        {
                            this.st叩ききりまショー.ct加算時間表示.t停止();
                        }
                    }
                    this.t加算時間描画(this.n前回の延長時間);
                }
                #endregion
            }
            return(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再生開始時刻   = 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 void OnManagedリソースの作成()
        {
            //キャラクター画像を格納しているディレクトリに各モーションの画像がいくつあるかを検索。
            //現在は固定値。
            this.nキャラクター通常モーション枚数      = CDTXMania.ConfigIni.nCharaMotionCount;
            this.nキャラクターゴーゴーモーション枚数    = CDTXMania.ConfigIni.nCharaMotionCount_gogo;
            this.nキャラクタークリアモーション枚数     = CDTXMania.ConfigIni.nCharaMotionCount_clear;
            this.nキャラクターMAX通常モーション枚数   = CDTXMania.ConfigIni.nCharaMotionCount_max;
            this.nキャラクターMAXゴーゴーモーション枚数 = CDTXMania.ConfigIni.nCharaMotionCount_maxgogo;

            // ↓踊り子・モブ↓
            //this.n踊り子モーション枚数 = 28;
            this.nモブモーション枚数 = 30;

            //this.str踊り子リスト = "0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27";//,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1";
            this.strモブ = "0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0";

            //this.ar踊り子モーション番号 = C変換.ar配列形式のstringをint配列に変換して返す(str踊り子リスト);
            this.arモブモーション番号 = C変換.ar配列形式のstringをint配列に変換して返す(strモブ);

            //this.tx踊り子_1 = new CTexture[this.n踊り子モーション枚数];
            //for (int i = 0; i < this.n踊り子モーション枚数; i++)
            //{
            //    this.tx踊り子_1[i] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\Dancer\0\" + i.ToString() + ".png"));
            //}
            //this.tx踊り子_2 = new CTexture[this.n踊り子モーション枚数];
            //for (int i = 0; i < this.n踊り子モーション枚数; i++)
            //{
            //    this.tx踊り子_2[i] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\Dancer\1\" + i.ToString() + ".png"));
            //}
            //this.tx踊り子_3 = new CTexture[this.n踊り子モーション枚数];
            //for (int i = 0; i < this.n踊り子モーション枚数; i++)
            //{
            //    this.tx踊り子_3[i] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\Dancer\2\" + i.ToString() + ".png"));
            //}
            //this.tx踊り子_4 = new CTexture[this.n踊り子モーション枚数];
            //for (int i = 0; i < this.n踊り子モーション枚数; i++)
            //{
            //    this.tx踊り子_4[i] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\Dancer\3\" + i.ToString() + ".png"));
            //}
            //this.tx踊り子_5 = new CTexture[this.n踊り子モーション枚数];
            //for (int i = 0; i < this.n踊り子モーション枚数; i++)
            //{
            //    this.tx踊り子_5[i] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\Dancer\4\" + i.ToString() + ".png"));
            //}
            //this.txモブ = new CTexture[this.nモブモーション枚数];
            //for (int i = 0; i < this.nモブモーション枚数; i++)
            //{
            //    this.txモブ[i] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\Dancer\mob\" + i.ToString() + ".png"));
            //}

            //this.txフッター = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\Dancer_BG\footer\01.png"));
            //// ↑踊り子・モブ↑

            //this.txキャラクターNormal = new CTexture[ this.nキャラクター通常モーション枚数 ];
            //for( int i = 0; i < this.nキャラクター通常モーション枚数; i++ )
            //{
            //    this.txキャラクターNormal[ i ] = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\Chara\Normal\" + i.ToString() + ".png" ) );
            //}

            //this.txキャラクターGogo = new CTexture[ this.nキャラクターゴーゴーモーション枚数 ];
            //for( int i = 0; i < this.nキャラクターゴーゴーモーション枚数; i++ )
            //{
            //    this.txキャラクターGogo[ i ] = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\Chara\GoGo\" + i.ToString() + ".png" ) );
            //}

            //if( this.nキャラクタークリアモーション枚数 != 0 )
            //{
            //    this.txキャラクターClear_Normal = new CTexture[ this.nキャラクタークリアモーション枚数 ];
            //    for( int i = 0; i < this.nキャラクタークリアモーション枚数; i++ )
            //    {
            //        this.txキャラクターClear_Normal[ i ] = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\Chara\Clear\" + i.ToString() + ".png" ) );
            //    }
            //}

            //if( this.nキャラクターMAX通常モーション枚数 != 0 )
            //{
            //    this.txキャラクターMax_Normal = new CTexture[ this.nキャラクターMAX通常モーション枚数 ];
            //    for( int i = 0; i < this.nキャラクターMAX通常モーション枚数; i++ )
            //    {
            //        this.txキャラクターMax_Normal[ i ] = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\Chara\Clear_Max\" + i.ToString() + ".png" ) );
            //    }
            //}

            //if( this.nキャラクターMAXゴーゴーモーション枚数 != 0 )
            //{
            //    this.txキャラクターMax_Gogo = new CTexture[ this.nキャラクターMAXゴーゴーモーション枚数 ];
            //    for( int i = 0; i < this.nキャラクターMAXゴーゴーモーション枚数; i++ )
            //    {
            //        this.txキャラクターMax_Gogo[ i ] = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\Chara\GoGo_Max\" + i.ToString() + ".png" ) );
            //    }
            //}

            // ↓マイどんアクション↓
            this.nキャラクターアクション_10コンボ枚数       = CDTXMania.ConfigIni.nCharaAction_10combo;
            this.nキャラクターアクション_10コンボMAX枚数    = CDTXMania.ConfigIni.nCharaAction_10combo_max;
            this.nキャラクターアクション_ゴーゴースタート枚数    = CDTXMania.ConfigIni.nCharaAction_gogostart;
            this.nキャラクターアクション_ゴーゴースタートMAX枚数 = CDTXMania.ConfigIni.nCharaAction_gogostart_max;
            this.nキャラクターアクション_ノルマ枚数         = CDTXMania.ConfigIni.nCharaAction_clearstart;
            this.nキャラクターアクション_魂MAX枚数        = CDTXMania.ConfigIni.nCharaAction_fullgauge;

            //if (this.nキャラクターアクション_10コンボ枚数 != 0)
            //{
            //    this.txキャラクターアクション_10コンボ = new CTexture[this.nキャラクターアクション_10コンボ枚数];
            //    for(int i = 0; i < this.nキャラクターアクション_10コンボ枚数; i++)
            //    {
            //        this.txキャラクターアクション_10コンボ[i] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\Chara\10combo\" + i.ToString() + ".png"));
            //    }
            //}
            //if (this.nキャラクターアクション_10コンボMAX枚数 != 0)
            //{
            //    this.txキャラクターアクション_10コンボMAX = new CTexture[this.nキャラクターアクション_10コンボMAX枚数];
            //    for (int i = 0; i < this.nキャラクターアクション_10コンボMAX枚数; i++)
            //    {
            //        this.txキャラクターアクション_10コンボMAX[i] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\Chara\10combo_Max\" + i.ToString() + ".png"));
            //    }
            //}
            //if (this.nキャラクターアクション_ゴーゴースタート枚数 != 0)
            //{
            //    this.txキャラクターアクション_ゴーゴースタート = new CTexture[this.nキャラクターアクション_ゴーゴースタート枚数];
            //    for (int i = 0; i < this.nキャラクターアクション_ゴーゴースタート枚数; i++)
            //    {
            //        this.txキャラクターアクション_ゴーゴースタート[i] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\Chara\GoGoStart\" + i.ToString() + ".png"));
            //    }
            //}
            //if (this.nキャラクターアクション_ゴーゴースタートMAX枚数 != 0)
            //{
            //    this.txキャラクターアクション_ゴーゴースタートMAX = new CTexture[this.nキャラクターアクション_ゴーゴースタートMAX枚数];
            //    for (int i = 0; i < this.nキャラクターアクション_ゴーゴースタートMAX枚数; i++)
            //    {
            //        this.txキャラクターアクション_ゴーゴースタートMAX[i] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\Chara\GoGoStart_Max\" + i.ToString() + ".png"));
            //    }
            //}
            //if (this.nキャラクターアクション_ノルマ枚数 != 0)
            //{
            //    this.txキャラクターアクション_ノルマ = new CTexture[this.nキャラクターアクション_ノルマ枚数];
            //    for (int i = 0; i < this.nキャラクターアクション_ノルマ枚数; i++)
            //    {
            //        this.txキャラクターアクション_ノルマ[i] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\Chara\ClearStart\" + i.ToString() + ".png"));
            //    }
            //}
            //if (this.nキャラクターアクション_魂MAX枚数 != 0)
            //{
            //    this.txキャラクターアクション_魂MAX = new CTexture[this.nキャラクターアクション_魂MAX枚数];
            //    for (int i = 0; i < this.nキャラクターアクション_魂MAX枚数; i++)
            //    {
            //        this.txキャラクターアクション_魂MAX[i] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\Chara\FullGauge\" + i.ToString() + ".png"));
            //    }
            //}
            // ↑マイどんアクション↑


            //固定値
            //this.arゴーゴーモーション番号 = new int[]{ 0, 1, 2, 3, 3, 3, 3, 3, 3, 2, 1, 0, 0, 0, 0, 0 };

            //2015.08.05 Config.iniから変更可能にするための実験
            this.strList         = CDTXMania.ConfigIni.strCharaMotionList;
            this.strListGogo     = CDTXMania.ConfigIni.strCharaMotionList_gogo;
            this.strListClear    = CDTXMania.ConfigIni.strCharaMotionList_clear;
            this.strListMAX      = CDTXMania.ConfigIni.strCharaMotionList_max;
            this.strListMAXGogo  = CDTXMania.ConfigIni.strCharaMotionList_maxgogo;
            this.arモーション番号       = C変換.ar配列形式のstringをint配列に変換して返す(this.strList);
            this.arゴーゴーモーション番号   = C変換.ar配列形式のstringをint配列に変換して返す(this.strListGogo);
            this.arクリアモーション番号    = C変換.ar配列形式のstringをint配列に変換して返す(this.strListClear);
            this.ar黄色モーション番号     = C変換.ar配列形式のstringをint配列に変換して返す(this.strListClear);
            this.ar黄色ゴーゴーモーション番号 = C変換.ar配列形式のstringをint配列に変換して返す(this.strListMAXGogo);

            this.ct通常モーション   = new CCounter(0, this.arモーション番号.Length - 1, 0.02, CSound管理.rc演奏用タイマ);
            this.ctゴーゴーモーション = new CCounter(0, this.arゴーゴーモーション番号.Length - 1, 50, CDTXMania.Timer);
            if (this.nキャラクタークリアモーション枚数 != 0)
            {
                this.ctクリア通常モーション = new CCounter(0, this.arクリアモーション番号.Length - 1, 50, CDTXMania.Timer);
            }
            if (this.nキャラクターMAX通常モーション枚数 != 0)
            {
                this.ctMAX通常モーション = new CCounter(0, this.ar黄色モーション番号.Length - 1, 50, CDTXMania.Timer);
            }
            if (this.nキャラクターMAXゴーゴーモーション枚数 != 0)
            {
                this.ctMAXゴーゴーモーション = new CCounter(0, this.ar黄色ゴーゴーモーション番号.Length - 1, 50, CDTXMania.Timer);
            }
            //this.ct踊り子モーション = new CCounter(0, this.ar踊り子モーション番号.Length - 1, 0.04, CSound管理.rc演奏用タイマ);
            this.ctモブモーション = new CCounter(0, this.arモブモーション番号.Length - 1, 0.04, CSound管理.rc演奏用タイマ);

            base.OnManagedリソースの作成();
        }