예제 #1
0
        public override int On進行描画()
        {
            if (!base.b活性化してない)
            {
                #region [ 初めての進行描画 ]
                //---------------------
                if (base.b初めての進行描画)
                {
                    if (TJAPlayer3.r直前のステージ == TJAPlayer3.stageStartUp)
                    {
                        this.actFI.tFadeIn開始();
                        base.eフェーズID = CStage.Eフェーズ.タイトル_起動画面からのFadeIn;
                    }
                    else
                    {
                        this.actFI.tFadeIn開始();
                        base.eフェーズID = CStage.Eフェーズ.共通_FadeIn;
                    }
                    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

                // キー入力

                if (base.eフェーズID == CStage.Eフェーズ.共通_通常状態)                        // 通常状態
                {
                    if (TJAPlayer3.InputManager.Keyboard.bIsKeyPressed((int)SlimDXKeys.Key.Escape))
                    {
                        return((int)E戻り値.EXIT);
                    }

                    if (TJAPlayer3.InputManager.Keyboard.bIsKeyPressed((int)SlimDXKeys.Key.UpArrow) || TJAPlayer3.InputManager.Keyboard.bIsKeyPressed((int)SlimDXKeys.Key.LeftArrow) || TJAPlayer3.Pad.bPressed(EPad.LBlue) || TJAPlayer3.Pad.bPressed(EPad.LBlue2P) && TJAPlayer3.ConfigIni.nPlayerCount >= 2)
                    {
                        this.tカーソルを上へ移動する();
                    }

                    if (TJAPlayer3.InputManager.Keyboard.bIsKeyPressed((int)SlimDXKeys.Key.DownArrow) || TJAPlayer3.InputManager.Keyboard.bIsKeyPressed((int)SlimDXKeys.Key.RightArrow) || TJAPlayer3.Pad.bPressed(EPad.RBlue) || TJAPlayer3.Pad.bPressed(EPad.RBlue2P) && TJAPlayer3.ConfigIni.nPlayerCount >= 2)
                    {
                        this.tカーソルを下へ移動する();
                    }

                    if (((TJAPlayer3.ConfigIni.bEnterがキー割り当てのどこにも使用されていない && TJAPlayer3.InputManager.Keyboard.bIsKeyPressed((int)SlimDXKeys.Key.Return)) || TJAPlayer3.Pad.bPressed(EPad.LRed) || TJAPlayer3.Pad.bPressed(EPad.RRed) || (TJAPlayer3.Pad.bPressed(EPad.LRed2P) || TJAPlayer3.Pad.bPressed(EPad.RRed2P)) && TJAPlayer3.ConfigIni.nPlayerCount >= 2))
                    {
                        if ((this.n現在のカーソル行 == (int)E戻り値.GAMESTART - 1) && TJAPlayer3.Skin.soundゲーム開始音.b読み込み成功)
                        {
                            if (!((TJAPlayer3.InputManager.Keyboard.bIsKeyDown((int)SlimDXKeys.Key.LeftControl) || TJAPlayer3.InputManager.Keyboard.bIsKeyDown((int)SlimDXKeys.Key.RightControl)) && TJAPlayer3.InputManager.Keyboard.bIsKeyDown((int)SlimDXKeys.Key.A)))
                            {
                                TJAPlayer3.Skin.soundゲーム開始音.t再生する();
                            }
                        }
                        else
                        {
                            TJAPlayer3.Skin.sound決定音.t再生する();
                        }
                        if (this.n現在のカーソル行 == (int)E戻り値.EXIT - 1)
                        {
                            return((int)E戻り値.EXIT);
                        }
                        this.actFO.tFadeOut開始();
                        base.eフェーズID = CStage.Eフェーズ.共通_FadeOut;
                    }
                    //					if ( CDTXMania.InputManager.Keyboard.bIsKeyPressed( (int) Key.Space ) )
                    //						Trace.TraceInformation( "DTXMania Title: SPACE key registered. " + CDTXMania.ct.nシステム時刻 );
                }

                // 描画

                if (TJAPlayer3.Tx.Title_Background != null)
                {
                    TJAPlayer3.Tx.Title_Background.t2D描画(TJAPlayer3.app.Device, 0, 0);
                }

                #region [ バージョン表示 ]
                //string strVersion = "KTT:J:A:I:2017072200";
                string       strCreator = "https://github.com/Mr-Ojii/TJAPlayer3";
                AssemblyName asmApp     = Assembly.GetExecutingAssembly().GetName();
#if DEBUG
                TJAPlayer3.act文字コンソール.tPrint(4, 44, C文字コンソール.EFontType.白, "DEBUG BUILD");
#endif
                TJAPlayer3.act文字コンソール.tPrint(4, 4, C文字コンソール.EFontType.白, asmApp.Name + " Ver." + TJAPlayer3.VERSION + " (" + strCreator + ")");
                TJAPlayer3.act文字コンソール.tPrint(4, 24, C文字コンソール.EFontType.白, "Skin:" + TJAPlayer3.Skin.Skin_Name + " Ver." + TJAPlayer3.Skin.Skin_Version + " (" + TJAPlayer3.Skin.Skin_Creator + ")");
                //CDTXMania.act文字コンソール.tPrint(4, 24, C文字コンソール.EFontType.白, strSubTitle);
                TJAPlayer3.act文字コンソール.tPrint(4, (720 - 24), C文字コンソール.EFontType.白, "TJAPlayer3-f forked TJAPlayer3(AioiLight) forked TJAPlayer2 forPC(kairera0467)");
                #endregion


                if (TJAPlayer3.Tx.Title_InBar != null && TJAPlayer3.Tx.Title_AcBar != null)
                {
                    for (int i = 0; i < 3; i++)
                    {
                        TJAPlayer3.Tx.Title_InBar.t2D描画(TJAPlayer3.app.Device, MENU_XT[i] - TJAPlayer3.Tx.Title_InBar.szTextureSize.Width / 2, MENU_YT);
                    }

                    if (this.ct下移動用.b進行中)
                    {
                        TJAPlayer3.Tx.Title_AcBar.vcScaling.X = this.ct下移動用.n現在の値 * 0.01f;
                        TJAPlayer3.Tx.Title_AcBar.t2D描画(TJAPlayer3.app.Device, MENU_XT[this.n現在のカーソル行] - TJAPlayer3.Tx.Title_AcBar.szTextureSize.Width / 2 * this.ct下移動用.n現在の値 * 0.01f, MENU_YT);
                    }
                    else if (this.ct上移動用.b進行中)
                    {
                        TJAPlayer3.Tx.Title_AcBar.vcScaling.X = this.ct上移動用.n現在の値 * 0.01f;
                        TJAPlayer3.Tx.Title_AcBar.t2D描画(TJAPlayer3.app.Device, MENU_XT[this.n現在のカーソル行] - TJAPlayer3.Tx.Title_AcBar.szTextureSize.Width / 2 * this.ct上移動用.n現在の値 * 0.01f, MENU_YT);
                    }
                    else
                    {
                        TJAPlayer3.Tx.Title_AcBar.vcScaling.X = 1.0f;
                        TJAPlayer3.Tx.Title_AcBar.t2D描画(TJAPlayer3.app.Device, MENU_XT[this.n現在のカーソル行] - TJAPlayer3.Tx.Title_AcBar.szTextureSize.Width / 2, MENU_YT);
                    }

                    for (int i = 0; i < 3; i++)
                    {
                        if (i != this.n現在のカーソル行)
                        {
                            texttexture[i].t2D描画(TJAPlayer3.app.Device, MENU_XT[i] - texttexture[i].szTextureSize.Width / 2, MENU_YT + 30);
                        }
                        else
                        {
                            texttexture[i + 3].t2D描画(TJAPlayer3.app.Device, MENU_XT[i] - texttexture[i + 3].szTextureSize.Width / 2, MENU_YT + 30);
                        }
                    }
                }

                // URLの座標が押されたらブラウザで開いてやる 兼 マウスクリックのテスト
                // クライアント領域内のカーソル座標を取得する。
                // point.X、point.Yは負の値になることもある。
                var point = TJAPlayer3.app.PointToClient(new Point(OpenTK.Input.Mouse.GetCursorState().X, OpenTK.Input.Mouse.GetCursorState().Y));
                // クライアント領域の横幅を取得して、1280で割る。もちろんdouble型。
                var scaling = 1.000 * TJAPlayer3.app.ClientSize.Width / 1280;
                if (TJAPlayer3.InputManager.Mouse.bIsKeyPressed((int)SlimDXKeys.Mouse.Left))
                {
                    if (point.X >= 180 * scaling && point.X <= 490 * scaling && point.Y >= 0 && point.Y <= 20 * scaling)
                    {
                        CWebOpen.Open(strCreator);
                    }
                }


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

                case CStage.Eフェーズ.共通_FadeOut:
                    if (this.actFO.On進行描画() == 0)
                    {
                        break;
                    }
                    base.eフェーズID = CStage.Eフェーズ.共通_終了状態;
                    switch (this.n現在のカーソル行)
                    {
                    case (int)E戻り値.GAMESTART - 1:
                        if (!((TJAPlayer3.InputManager.Keyboard.bIsKeyDown((int)SlimDXKeys.Key.LeftControl) || TJAPlayer3.InputManager.Keyboard.bIsKeyDown((int)SlimDXKeys.Key.RightControl)) && TJAPlayer3.InputManager.Keyboard.bIsKeyDown((int)SlimDXKeys.Key.A)))
                        {
                            return((int)E戻り値.GAMESTART);
                        }
                        else
                        {
                            return((int)E戻り値.MAINTENANCE);
                        }

                    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フェーズ.タイトル_起動画面からのFadeIn:
                    if (this.actFI.On進行描画() != 0)
                    {
                        TJAPlayer3.Skin.soundタイトル音.t再生する();
                        base.eフェーズID = CStage.Eフェーズ.共通_通常状態;
                    }
                    break;
                }
            }
            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 (!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 (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.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 (TJAPlayer3.stage選曲.act曲リスト.r現在選択中の曲 != null)
                        {
                            if ((this.n現在のカーソル行 == (int)E戻り値.GAMESTART - 1))
                            {
                                TJAPlayer3.Skin.soundタイトル音.t停止する();
                                TJAPlayer3.Skin.soundタイトルスタート音.t停止する();
                                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 ( CDTXMania.Input管理.Keyboard.bキーが押された( (int) Key.Space ) )
//						Trace.TraceInformation( "DTXMania Title: SPACE key registered. " + CDTXMania.ct.nシステム時刻 );
                }

                // 描画

                if (!TJAPlayer3.Skin.soundタイトルスタート音.b再生中 && (base.eフェーズID == CStage.Eフェーズ.共通_通常状態))
                {
                    if (!b曲再生)
                    {
                        TJAPlayer3.Skin.soundタイトル音.t再生する();
                        b曲再生 = true;
                    }
                }
                else
                {
                    TJAPlayer3.Skin.soundタイトル音.n位置_現在のサウンド = 0;
                }

                if (TJAPlayer3.Tx.Title_Background != null)
                {
                    TJAPlayer3.Tx.Title_Background.t2D描画(TJAPlayer3.app.Device, 0, 0);
                }

                #region [ バージョン表示 ]
                //string strVersion = "KTT:J:A:I:2017072200";
                string       strCreator = "https://github.com/TJAPlayer3-Develop/TJAPlayer3-Develop";
                AssemblyName asmApp     = Assembly.GetExecutingAssembly().GetName();
#if DEBUG
                TJAPlayer3.act文字コンソール.tPrint(4, 44, C文字コンソール.Eフォント種別.白, "DEBUG BUILD");
#endif
                TJAPlayer3.act文字コンソール.tPrint(4, (720 - 24), C文字コンソール.Eフォント種別.白, "TJAPlayer3-Develop Forked by touhou-renren(@ren43723591)");
                #endregion

                TJAPlayer3.NamePlate.tNamePlateDraw(0, 0);

                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));
                }

                // URLの座標が押されたらブラウザで開いてやる 兼 マウスクリックのテスト
                // クライアント領域内のカーソル座標を取得する。
                // point.X、point.Yは負の値になることもある。
                var point = TJAPlayer3.app.Window.PointToClient(System.Windows.Forms.Cursor.Position);
                // クライアント領域の横幅を取得して、1280で割る。もちろんdouble型。
                var scaling = 1.000 * TJAPlayer3.app.Window.ClientSize.Width / 1280;
                if (TJAPlayer3.Input管理.Mouse.bキーが押された((int)MouseObject.Button1))
                {
                    if (point.X >= 0 * scaling && point.X <= 190 * scaling && point.Y >= 700 && point.Y <= 720 * scaling)
                    {
                        System.Diagnostics.Process.Start(strCreator);
                    }
                }

                //CDTXMania.act文字コンソール.tPrint(0, 80, C文字コンソール.Eフォント種別.白, point.X.ToString());
                //CDTXMania.act文字コンソール.tPrint(0, 100, C文字コンソール.Eフォント種別.白, point.Y.ToString());
                //CDTXMania.act文字コンソール.tPrint(0, 120, C文字コンソール.Eフォント種別.白, scaling.ToString());


                CStage.Eフェーズ eフェーズid = base.eフェーズID;
                switch (eフェーズid)
                {
                case CStage.Eフェーズ.共通_フェードイン:
                    if (this.actFI.On進行描画() != 0)
                    {
                        b曲再生         = false;
                        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)
                    {
                        base.eフェーズID = CStage.Eフェーズ.共通_通常状態;
                    }
                    break;
                }
            }
            return(0);
        }
예제 #4
0
        public override int On進行描画()
        {
            if (!base.b活性化してない)
            {
                #region [ 初めての進行描画 ]
                //---------------------
                if (base.b初めての進行描画)
                {
                    if (CDTXMania.r直前のステージ == CDTXMania.stage起動)
                    {
                        this.actFIfromSetup.tフェードイン開始();
                        base.eフェーズID = CStage.Eフェーズ.タイトル_起動画面からのフェードイン;
                    }
                    else
                    {
                        this.actFI.tフェードイン開始();
                        base.eフェーズID = CStage.Eフェーズ.共通_フェードイン;
                    }
                    this.ctカーソルフラッシュ用.t開始(0, 700, 5, CDTXMania.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 (base.eフェーズID == CStage.Eフェーズ.共通_通常状態 &&                             // 通常状態、かつ
                    CDTXMania.act現在入力を占有中のプラグイン == null)                                // プラグインの入力占有がない
                {
                    if (CDTXMania.Input管理.Keyboard.bキーが押された((int)Key.Escape))
                    {
                        return((int)E戻り値.EXIT);
                    }

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

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

                    if ((CDTXMania.Pad.b押されたDGB(Eパッド.CY) || CDTXMania.Pad.b押された(E楽器パート.DRUMS, Eパッド.RD)) || (CDTXMania.Pad.b押された(E楽器パート.DRUMS, Eパッド.LC) || (CDTXMania.ConfigIni.bEnterがキー割り当てのどこにも使用されていない && CDTXMania.Input管理.Keyboard.bキーが押された((int)SlimDX.DirectInput.Key.Return))))
                    {
                        if ((this.n現在のカーソル行 == (int)E戻り値.GAMESTART - 1) && CDTXMania.Skin.soundゲーム開始音.b読み込み成功)
                        {
                            CDTXMania.Skin.soundゲーム開始音.t再生する();
                        }
                        else
                        {
                            CDTXMania.Skin.sound決定音.t再生する();
                        }
                        if (this.n現在のカーソル行 == (int)E戻り値.EXIT - 1)
                        {
                            return((int)E戻り値.EXIT);
                        }
                        this.actFO.tフェードアウト開始();
                        base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト;
                    }
//					if ( CDTXMania.Input管理.Keyboard.bキーが押された( (int) Key.Space ) )
//						Trace.TraceInformation( "DTXMania Title: SPACE key registered. " + CDTXMania.ct.nシステム時刻 );
                }

                // 描画

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

                #region [ バージョン表示 ]
                string strVersion = "KTT:J:A:I:2017072200";
#if DEBUG
                strVersion += "  DEBUG";
#endif
                CDTXMania.act文字コンソール.tPrint(8, 8, C文字コンソール.Eフォント種別.白, strVersion);
                #endregion

                if (this.txメニュー != 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));
                        this.txメニュー.vc拡大縮小倍率.X = nMag;
                        this.txメニュー.vc拡大縮小倍率.Y = nMag;
                        this.txメニュー.n透明度       = (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));
                        this.txメニュー.t2D描画(CDTXMania.app.Device, x_magnified, y_magnified, new Rectangle(0, MENU_H * 5, MENU_W, MENU_H));
                    }
                    this.txメニュー.vc拡大縮小倍率.X = 1f;
                    this.txメニュー.vc拡大縮小倍率.Y = 1f;
                    this.txメニュー.n透明度       = 0xff;
                    this.txメニュー.t2D描画(CDTXMania.app.Device, x, y, new Rectangle(0, MENU_H * 4, MENU_W, MENU_H));
                }
                if (this.txメニュー != null)
                {
                    //this.txメニュー.t2D描画( CDTXMania.app.Device, 0xce, 0xcb, new Rectangle( 0, 0, MENU_W, MWNU_H ) );
                    // #24525 2011.3.16 yyagi: "OPTION"を省いて描画。従来スキンとの互換性確保のため。
                    this.txメニュー.t2D描画(CDTXMania.app.Device, MENU_X, MENU_Y, new Rectangle(0, 0, MENU_W, MENU_H));
                    this.txメニュー.t2D描画(CDTXMania.app.Device, MENU_X, MENU_Y + MENU_H, new Rectangle(0, MENU_H * 2, MENU_W, MENU_H * 2));
                }
                CStage.Eフェーズ eフェーズid = base.eフェーズID;
                switch (eフェーズid)
                {
                case CStage.Eフェーズ.共通_フェードイン:
                    if (this.actFI.On進行描画() != 0)
                    {
                        CDTXMania.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)
                    {
                        CDTXMania.Skin.soundタイトル音.t再生する();
                        base.eフェーズID = CStage.Eフェーズ.共通_通常状態;
                    }
                    break;
                }
            }
            return(0);
        }
예제 #5
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 (base.eフェーズID == CStage.Eフェーズ.共通_通常状態)                   // 通常状態
                {
                    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.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 ( CDTXMania.Input管理.Keyboard.bキーが押された( (int) Key.Space ) )
                    //						Trace.TraceInformation( "DTXMania Title: SPACE key registered. " + CDTXMania.ct.nシステム時刻 );
                }

                // 描画

                if (TJAPlayer3.Tx.Title_Background != null)
                {
                    TJAPlayer3.Tx.Title_Background.t2D描画(TJAPlayer3.app.Device, 0, 0);
                }

                #region [ バージョン表示 ]
                const string repositoryUrl = "https://github.com/KabanFriends/TJAPlayer3";
#if DEBUG
                TJAPlayer3.act文字コンソール.tPrint(4, 44, C文字コンソール.Eフォント種別.白, "DEBUG BUILD");
#endif
                TJAPlayer3.act文字コンソール.tPrint(4, 4, C文字コンソール.Eフォント種別.白, $"{TJAPlayer3.AppDisplayNameWithInformationalVersion} ({repositoryUrl};Fork of twopointzero/TJAPlayer3)");
                TJAPlayer3.act文字コンソール.tPrint(4, 24, C文字コンソール.Eフォント種別.白, "Skin:" + TJAPlayer3.Skin.Skin_Name + " Ver." + TJAPlayer3.Skin.Skin_Version + " (" + TJAPlayer3.Skin.Skin_Creator + ")");
                //CDTXMania.act文字コンソール.tPrint(4, 24, C文字コンソール.Eフォント種別.白, strSubTitle);
                TJAPlayer3.act文字コンソール.tPrint(4, (720 - 24), C文字コンソール.Eフォント種別.白, $"{TJAPlayer3.AppDisplayName} is open source software under the MIT license. See README for acknowledgments.");
                #endregion


                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));
                }

                // URLの座標が押されたらブラウザで開いてやる 兼 マウスクリックのテスト
                // クライアント領域内のカーソル座標を取得する。
                // point.X、point.Yは負の値になることもある。
                var point = TJAPlayer3.app.Window.PointToClient(System.Windows.Forms.Cursor.Position);
                // クライアント領域の横幅を取得して、1280で割る。もちろんdouble型。
                var scaling = 1.000 * TJAPlayer3.app.Window.ClientSize.Width / 1280;
                if (TJAPlayer3.Input管理.Mouse.bキーが押された((int)MouseObject.Button1))
                {
                    if (point.X >= 180 * scaling && point.X <= 490 * scaling && point.Y >= 0 && point.Y <= 20 * scaling)
                    {
                        System.Diagnostics.Process.Start(repositoryUrl);
                    }
                }

                //CDTXMania.act文字コンソール.tPrint(0, 80, C文字コンソール.Eフォント種別.白, point.X.ToString());
                //CDTXMania.act文字コンソール.tPrint(0, 100, C文字コンソール.Eフォント種別.白, point.Y.ToString());
                //CDTXMania.act文字コンソール.tPrint(0, 120, C文字コンソール.Eフォント種別.白, scaling.ToString());


                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 (!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フェーズ.共通_フェードイン;
                    }
                    base.b初めての進行描画 = false;
                }
                //---------------------
                #endregion

                this.ctコインイン待機.t進行Loop();
                this.ctバナパス読み込み成功.t進行();
                this.ctバナパス読み込み失敗.t進行();
                this.ctエントリーバー点滅.t進行Loop();
                this.ctエントリーバー決定点滅.t進行();
                this.ctどんちゃんイン.t進行();
                this.ctどんちゃんループ.t進行Loop();
                this.ctどんちゃんエントリーループ.t進行Loop();

                if (!TJAPlayer3.Skin.bgmタイトルイン.b再生中)
                {
                    if (!b音声再生)
                    {
                        TJAPlayer3.Skin.bgmタイトル.t再生する();
                        b音声再生 = true;
                    }
                }

                // 進行

                #region [ キー関係 ]

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

                    if (!bバナパス読み込み && !bバナパス読み込み失敗)
                    {
                        if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)Key.P))
                        {
                            this.ctバナパス読み込み待機.t開始(0, 600, 1, TJAPlayer3.Timer);
                        }
                        if (TJAPlayer3.Input管理.Keyboard.bキーが押されている((int)Key.P))
                        {
                            ctバナパス読み込み待機.t進行();
                        }
                        if (TJAPlayer3.Input管理.Keyboard.bキーが離された((int)Key.P))
                        {
                            this.ctバナパス読み込み待機.t停止();
                            if (this.ctバナパス読み込み待機.n現在の値 < 600 && !bバナパス読み込み失敗)
                            {
                                ctバナパス読み込み失敗.t開始(0, 1128, 1, TJAPlayer3.Timer);
                                bバナパス読み込み失敗 = true;
                            }
                        }
                    }

                    if (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RBlue))
                    {
                        if (bプレイヤーエントリー && !bプレイヤーエントリー決定)
                        {
                            if (n現在の選択行プレイヤーエントリー + 1 <= 2)
                            {
                                TJAPlayer3.Skin.sound変更音.t再生する();
                                n現在の選択行プレイヤーエントリー += 1;
                            }
                        }
                    }

                    if (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LBlue))
                    {
                        if (bプレイヤーエントリー && !bプレイヤーエントリー決定)
                        {
                            if (n現在の選択行プレイヤーエントリー - 1 >= 0)
                            {
                                TJAPlayer3.Skin.sound変更音.t再生する();
                                n現在の選択行プレイヤーエントリー -= 1;
                            }
                        }
                    }


                    if (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RRed) || TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LRed))
                    {
                        if (bプレイヤーエントリー)
                        {
                            if (n現在の選択行プレイヤーエントリー == 0 || n現在の選択行プレイヤーエントリー == 2)
                            {
                                if (!bプレイヤーエントリー決定)
                                {
                                    TJAPlayer3.Skin.sound決定音.t再生する();
                                    ctエントリーバー決定点滅.t開始(0, 1055, 1, TJAPlayer3.Timer);
                                    bプレイヤーエントリー決定 = true;
                                }
                            }
                            else
                            {
                                TJAPlayer3.Skin.sound決定音.t再生する();
                                bプレイヤーエントリー  = false;
                                bバナパス読み込み    = false;
                                ctバナパス読み込み成功 = new CCounter();
                                ctバナパス読み込み待機 = new CCounter();
                            }
                        }
                        if (bモード選択)
                        {
                            TJAPlayer3.Skin.sound決定音.t再生する();
                            n現在の選択行モード選択 = (int)E戻り値.GAMESTART - 1;
                            this.actFO.tフェードアウト開始(0, 500);
                            base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト;
                        }
                    }

                    if (ctバナパス読み込み待機.n現在の値 >= 500)
                    {
                        if (!bバナパス読み込み)
                        {
                            TJAPlayer3.Skin.soundEntry.t停止する();
                            ctバナパス読み込み成功.t開始(0, 3655, 1, TJAPlayer3.Timer);
                            bバナパス読み込み = true;
                        }
                    }

                    if (ctエントリーバー決定点滅.n現在の値 >= 1055)
                    {
                        if (!bモード選択)
                        {
                            ctどんちゃんイン.t開始(0, 180, 2, TJAPlayer3.Timer);
                            bモード選択 = true;
                        }
                    }

                    /*
                     * 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フェーズ.共通_フェードアウト;
                     * }*/
                }

                #endregion

                #region [ 背景描画 ]

                if (TJAPlayer3.Tx.Title_Background != null)
                {
                    TJAPlayer3.Tx.Title_Background.t2D描画(TJAPlayer3.app.Device, 0, 0);
                }

                #endregion

                #region [ バナパス読み込み ]

                if (!bバナパス読み込み && !bバナパス読み込み失敗)
                {
                    TJAPlayer3.Tx.Entry_Bar.t2D描画(TJAPlayer3.app.Device, 0, 0);

                    if (this.ctコインイン待機.n現在の値 <= 255)
                    {
                        TJAPlayer3.Tx.Entry_Bar_Text.Opacity = this.ctコインイン待機.n現在の値;
                    }
                    else if (this.ctコインイン待機.n現在の値 <= 2000 - 355)
                    {
                        TJAPlayer3.Tx.Entry_Bar_Text.Opacity = 255;
                    }
                    else
                    {
                        TJAPlayer3.Tx.Entry_Bar_Text.Opacity = 255 - (this.ctコインイン待機.n現在の値 - (2000 - 355));
                    }

                    TJAPlayer3.Tx.Entry_Bar_Text.t2D描画(TJAPlayer3.app.Device, 563, 312, new RectangleF(0, 0, 395, 50));
                    TJAPlayer3.Tx.Entry_Bar_Text.t2D描画(TJAPlayer3.app.Device, 563, 430, new RectangleF(0, 50, 395, 50));
                }
                else
                {
                    if (this.ctバナパス読み込み成功.n現在の値 <= 1000 && this.ctバナパス読み込み失敗.n現在の値 <= 1128)
                    {
                        if (bバナパス読み込み)
                        {
                            TJAPlayer3.Tx.Tile_Black.Opacity = this.ctバナパス読み込み成功.n現在の値 <= 2972 ? 128 : 128 - (this.ctバナパス読み込み成功.n現在の値 - 2972);

                            for (int i = 0; i < 1280 / TJAPlayer3.Tx.Tile_Black.szテクスチャサイズ.Width + 1; i++)
                            {
                                for (int j = 0; j < 720 / TJAPlayer3.Tx.Tile_Black.szテクスチャサイズ.Height + 1; j++)
                                {
                                    TJAPlayer3.Tx.Tile_Black.t2D描画(TJAPlayer3.app.Device, i * TJAPlayer3.Tx.Tile_Black.szテクスチャサイズ.Width, j * TJAPlayer3.Tx.Tile_Black.szテクスチャサイズ.Height);
                                }
                            }

                            TJAPlayer3.Tx.Banapas_Load[0].Opacity    = ctバナパス読み込み成功.n現在の値 >= 872 ? 255 - (ctバナパス読み込み成功.n現在の値 - 872) * 2 : ctバナパス読み込み成功.n現在の値 * 2;
                            TJAPlayer3.Tx.Banapas_Load[0].vc拡大縮小倍率.Y = ctバナパス読み込み成功.n現在の値 <= 100 ? ctバナパス読み込み成功.n現在の値 * 0.01f : 1.0f;
                            TJAPlayer3.Tx.Banapas_Load[0].t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640, 360);

                            TJAPlayer3.Tx.Banapas_Load[1].Opacity = ctバナパス読み込み成功.n現在の値 >= 872 ? 255 - (ctバナパス読み込み成功.n現在の値 - 872) * 2 : ctバナパス読み込み成功.n現在の値 <= 96 ? (int)((ctバナパス読み込み成功.n現在の値 - 96) * 7.96875f) : 255;
                            TJAPlayer3.Tx.Banapas_Load[1].t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640, 360);

                            for (int i = 0; i < 5; i++)
                            {
                                TJAPlayer3.Tx.Banapas_Load[2].Opacity = ctバナパス読み込み成功.n現在の値 >= 872 ? 255 - (ctバナパス読み込み成功.n現在の値 - 872) * 2 : ctバナパス読み込み成功.n現在の値 <= 96 ? (int)((ctバナパス読み込み成功.n現在の値 - 96) * 7.96875f) : 255;
                                TJAPlayer3.Tx.Banapas_Load[2].t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 480 + 90 * i, 410, new Rectangle(0 + 72 * (ctバナパス読み込み成功.n現在の値 >= 200 + (i - 1) * 320 ? ctバナパス読み込み成功.n現在の値 <= (200 + i * 320) ? (ctバナパス読み込み成功.n現在の値 - (200 + i * 320)) / 40 : 0 : 0), 0, 72, 72));
                            }
                        }
                        if (bバナパス読み込み失敗)
                        {
                            TJAPlayer3.Tx.Tile_Black.Opacity = this.ctバナパス読み込み失敗.n現在の値 <= 1000 ? 128 : 128 - (this.ctバナパス読み込み失敗.n現在の値 - 1000);

                            for (int i = 0; i < 1280 / TJAPlayer3.Tx.Tile_Black.szテクスチャサイズ.Width + 1; i++)
                            {
                                for (int j = 0; j < 720 / TJAPlayer3.Tx.Tile_Black.szテクスチャサイズ.Height + 1; j++)
                                {
                                    TJAPlayer3.Tx.Tile_Black.t2D描画(TJAPlayer3.app.Device, i * TJAPlayer3.Tx.Tile_Black.szテクスチャサイズ.Width, j * TJAPlayer3.Tx.Tile_Black.szテクスチャサイズ.Height);
                                }
                            }

                            if (!TJAPlayer3.Skin.soundError.bPlayed)
                            {
                                TJAPlayer3.Skin.soundError.t再生する();
                            }

                            int count = this.ctバナパス読み込み失敗.n現在の値;
                            TJAPlayer3.Tx.Banapas_Load_Failure[0].Opacity    = count >= 872 ? 255 - (count - 872) * 2 : count * 2;
                            TJAPlayer3.Tx.Banapas_Load_Failure[0].vc拡大縮小倍率.Y = count <= 100 ? count * 0.01f : 1.0f;
                            TJAPlayer3.Tx.Banapas_Load_Failure[0].t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640, 360);

                            if (ctバナパス読み込み失敗.n現在の値 >= 1128)
                            {
                                bバナパス読み込み失敗 = false;
                                TJAPlayer3.Skin.soundError.bPlayed = false;
                            }
                        }
                    }
                    else
                    {
                        if (bバナパス読み込み)
                        {
                            TJAPlayer3.Tx.Tile_Black.Opacity = this.ctバナパス読み込み成功.n現在の値 <= 2972 ? 128 : 128 - (this.ctバナパス読み込み成功.n現在の値 - 2972);

                            for (int i = 0; i < 1280 / TJAPlayer3.Tx.Tile_Black.szテクスチャサイズ.Width + 1; i++)
                            {
                                for (int j = 0; j < 720 / TJAPlayer3.Tx.Tile_Black.szテクスチャサイズ.Height + 1; j++)
                                {
                                    TJAPlayer3.Tx.Tile_Black.t2D描画(TJAPlayer3.app.Device, i * TJAPlayer3.Tx.Tile_Black.szテクスチャサイズ.Width, j * TJAPlayer3.Tx.Tile_Black.szテクスチャサイズ.Height);
                                }
                            }

                            if (!TJAPlayer3.Skin.SoundBanapas.bPlayed)
                            {
                                TJAPlayer3.Skin.SoundBanapas.t再生する();
                            }

                            int count = this.ctバナパス読み込み成功.n現在の値 - 1000;
                            TJAPlayer3.Tx.Banapas_Load_Clear[0].Opacity    = count >= 1872 ? 255 - (count - 1872) * 2 : count * 2;
                            TJAPlayer3.Tx.Banapas_Load_Clear[0].vc拡大縮小倍率.Y = count <= 100 ? count * 0.01f : 1.0f;
                            TJAPlayer3.Tx.Banapas_Load_Clear[0].t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640, 360);

                            float anime  = 0f;
                            float scalex = 0f;
                            float scaley = 0f;

                            if (count >= 300)
                            {
                                if (count <= 300 + 270)
                                {
                                    anime  = (float)Math.Sin((float)(count - 300) / 1.5f * (Math.PI / 180)) * 95f;
                                    scalex = -(float)Math.Sin((float)(count - 300) / 1.5f * (Math.PI / 180)) * 0.15f;
                                    scaley = (float)Math.Sin((float)(count - 300) / 1.5f * (Math.PI / 180)) * 0.2f;
                                }
                                else if (count <= 300 + 270 + 100)
                                {
                                    scalex = (float)Math.Sin((float)(count - (300 + 270)) * 1.8f * (Math.PI / 180)) * 0.13f;
                                    scaley = -(float)Math.Sin((float)(count - (300 + 270)) * 1.8f * (Math.PI / 180)) * 0.1f;
                                    anime  = 0;
                                }
                                else if (count <= 300 + 540 + 100)
                                {
                                    anime  = (float)Math.Sin((float)(count - (300 + 270 + 100)) / 1.5f * (Math.PI / 180)) * 95f;
                                    scalex = -(float)Math.Sin((float)(count - (300 + 270 + 100)) / 1.5f * (Math.PI / 180)) * 0.15f;
                                    scaley = (float)Math.Sin((float)(count - (300 + 270 + 100)) / 1.5f * (Math.PI / 180)) * 0.2f;
                                }
                                else if (count <= 300 + 540 + 100 + 100)
                                {
                                    scalex = (float)Math.Sin((float)(count - (300 + 540 + 100)) * 1.8f * (Math.PI / 180)) * 0.13f;
                                    scaley = -(float)Math.Sin((float)(count - (300 + 540 + 100)) * 1.8f * (Math.PI / 180)) * 0.1f;
                                }
                            }

                            TJAPlayer3.Tx.Banapas_Load_Clear[1].vc拡大縮小倍率.X = 1.0f + scalex;
                            TJAPlayer3.Tx.Banapas_Load_Clear[1].vc拡大縮小倍率.Y = 1.0f + scaley;
                            TJAPlayer3.Tx.Banapas_Load_Clear[1].Opacity    = count >= 1872 ? 255 - (count - 1872) * 2 : count * 2;
                            TJAPlayer3.Tx.Banapas_Load_Clear[1].t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, 198, 514 - anime);

                            if (ctバナパス読み込み成功.n現在の値 >= 2000)
                            {
                                bプレイヤーエントリー = true;
                            }
                        }
                    }
                }

                #endregion

                #region [ プレイヤーエントリー ]

                if (bプレイヤーエントリー)
                {
                    if (!this.bどんちゃんカウンター初期化)
                    {
                        this.ctどんちゃんエントリーループ = new CCounter(0, 21, 1000 / 30, TJAPlayer3.Timer);
                        this.bどんちゃんカウンター初期化  = true;
                    }

                    TJAPlayer3.Tx.Entry_Player[0].Opacity = ctエントリーバー決定点滅.n現在の値 >= 800 ? 255 - (ctエントリーバー決定点滅.n現在の値 - 800) : (this.ctバナパス読み込み成功.n現在の値 - 3400);
                    TJAPlayer3.Tx.Entry_Player[1].Opacity = ctエントリーバー決定点滅.n現在の値 >= 800 ? 255 - (ctエントリーバー決定点滅.n現在の値 - 800) : (this.ctバナパス読み込み成功.n現在の値 - 3400);
                    TJAPlayer3.Tx.Donchan_Entry[this.ctどんちゃんエントリーループ.n現在の値].Opacity = ctエントリーバー決定点滅.n現在の値 >= 800 ? 255 - (ctエントリーバー決定点滅.n現在の値 - 800) : (this.ctバナパス読み込み成功.n現在の値 - 3400);

                    TJAPlayer3.Tx.Entry_Player[0].t2D描画(TJAPlayer3.app.Device, 0, 0);

                    TJAPlayer3.Tx.Donchan_Entry[this.ctどんちゃんエントリーループ.n現在の値].t2D描画(TJAPlayer3.app.Device, 485, 140);

                    TJAPlayer3.Tx.Entry_Player[2].Opacity = ctエントリーバー決定点滅.n現在の値 >= 800 ? 255 - (ctエントリーバー決定点滅.n現在の値 - 800) : (this.ctバナパス読み込み成功.n現在の値 - 3400) - (this.ctエントリーバー点滅.n現在の値 <= 255 ? this.ctエントリーバー点滅.n現在の値 : 255 - (this.ctエントリーバー点滅.n現在の値 - 255));
                    TJAPlayer3.Tx.Entry_Player[2].t2D描画(TJAPlayer3.app.Device, ptプレイヤーエントリーバー座標[n現在の選択行プレイヤーエントリー].X, ptプレイヤーエントリーバー座標[n現在の選択行プレイヤーエントリー].Y,
                                                        new RectangleF(n現在の選択行プレイヤーエントリー == 1 ? 199 : 0, 0, n現在の選択行プレイヤーエントリー == 1 ? 224 : 199, 92));

                    TJAPlayer3.Tx.Entry_Player[2].Opacity = ctエントリーバー決定点滅.n現在の値 >= 800 ? 255 - (ctエントリーバー決定点滅.n現在の値 - 800) : (this.ctバナパス読み込み成功.n現在の値 - 3400);
                    TJAPlayer3.Tx.Entry_Player[2].t2D描画(TJAPlayer3.app.Device, ptプレイヤーエントリーバー座標[n現在の選択行プレイヤーエントリー].X, ptプレイヤーエントリーバー座標[n現在の選択行プレイヤーエントリー].Y,
                                                        new RectangleF(n現在の選択行プレイヤーエントリー == 1 ? 199 : 0, 92, n現在の選択行プレイヤーエントリー == 1 ? 224 : 199, 92));

                    TJAPlayer3.Tx.Entry_Player[1].t2D描画(TJAPlayer3.app.Device, 0, 0);

                    #region [ 透明度 ]

                    int Opacity = 0;

                    if (ctエントリーバー決定点滅.n現在の値 <= 100)
                    {
                        Opacity = (int)(ctエントリーバー決定点滅.n現在の値 * 2.55f);
                    }
                    else if (ctエントリーバー決定点滅.n現在の値 <= 200)
                    {
                        Opacity = 255 - (int)((ctエントリーバー決定点滅.n現在の値 - 100) * 2.55f);
                    }
                    else if (ctエントリーバー決定点滅.n現在の値 <= 300)
                    {
                        Opacity = (int)((ctエントリーバー決定点滅.n現在の値 - 200) * 2.55f);
                    }
                    else if (ctエントリーバー決定点滅.n現在の値 <= 400)
                    {
                        Opacity = 255 - (int)((ctエントリーバー決定点滅.n現在の値 - 300) * 2.55f);
                    }
                    else if (ctエントリーバー決定点滅.n現在の値 <= 500)
                    {
                        Opacity = (int)((ctエントリーバー決定点滅.n現在の値 - 400) * 2.55f);
                    }
                    else if (ctエントリーバー決定点滅.n現在の値 <= 600)
                    {
                        Opacity = 255 - (int)((ctエントリーバー決定点滅.n現在の値 - 500) * 2.55f);
                    }

                    #endregion

                    TJAPlayer3.Tx.Entry_Player[2].Opacity = Opacity;
                    TJAPlayer3.Tx.Entry_Player[2].t2D描画(TJAPlayer3.app.Device, ptプレイヤーエントリーバー座標[n現在の選択行プレイヤーエントリー].X, ptプレイヤーエントリーバー座標[n現在の選択行プレイヤーエントリー].Y,
                                                        new RectangleF(n現在の選択行プレイヤーエントリー == 1 ? 199 : 0, 92 * 2, n現在の選択行プレイヤーエントリー == 1 ? 224 : 199, 92));

                    TJAPlayer3.NamePlate.tNamePlateDraw(530, 385, 0, true, ctエントリーバー決定点滅.n現在の値 >= 800 ? 255 - (ctエントリーバー決定点滅.n現在の値 - 800) : (this.ctバナパス読み込み成功.n現在の値 - 3400));
                }

                #endregion

                #region [ モード選択 ]

                if (bモード選択)
                {
                    float DonchanX = 0f, DonchanY = 0f;

                    DonchanX = (float)Math.Sin(ctどんちゃんイン.n現在の値 / 2 * (Math.PI / 180)) * 200f;
                    DonchanY = ((float)Math.Sin((90 + (ctどんちゃんイン.n現在の値 / 2)) * (Math.PI / 180)) * 150f);

                    TJAPlayer3.Tx.SongSelect_Donchan_Normal[ctどんちゃんループ.n現在の値].t2D描画(TJAPlayer3.app.Device, -200 + DonchanX, 330 - DonchanY);

                    TJAPlayer3.NamePlate.tNamePlateDraw(TJAPlayer3.Skin.SongSelect_NamePlate_X[0], TJAPlayer3.Skin.SongSelect_NamePlate_Y[0], 0, false, 255);
                }

                #endregion

                #region [ バージョン表示 ]

#if DEBUG
                //string strVersion = "KTT:J:A:I:2017072200";
                string       strCreator = "https://github.com/AioiLight/TJAPlayer3";
                AssemblyName asmApp     = Assembly.GetExecutingAssembly().GetName();
                TJAPlayer3.act文字コンソール.tPrint(4, 44, C文字コンソール.Eフォント種別.白, "DEBUG BUILD");
                TJAPlayer3.act文字コンソール.tPrint(4, 4, C文字コンソール.Eフォント種別.白, asmApp.Name + " Ver." + TJAPlayer3.VERSION + " (" + strCreator + ")");
                TJAPlayer3.act文字コンソール.tPrint(4, 24, C文字コンソール.Eフォント種別.白, "Skin:" + TJAPlayer3.Skin.Skin_Name + " Ver." + TJAPlayer3.Skin.Skin_Version + " (" + TJAPlayer3.Skin.Skin_Creator + ")");
                //CDTXMania.act文字コンソール.tPrint(4, 24, C文字コンソール.Eフォント種別.白, strSubTitle);
                TJAPlayer3.act文字コンソール.tPrint(4, (720 - 24), C文字コンソール.Eフォント種別.白, "TJAPlayer3 forked TJAPlayer2 forPC(kairera0467)");
#endif
                #endregion

                TJAPlayer3.act文字コンソール.tPrint(0, 200, C文字コンソール.Eフォント種別.白, ctバナパス読み込み待機.n現在の値.ToString());

                CStage.Eフェーズ eフェーズid = base.eフェーズID;
                switch (eフェーズid)
                {
                case CStage.Eフェーズ.共通_フェードイン:
                    if (this.actFI.On進行描画() != 0)
                    {
                        base.eフェーズID = CStage.Eフェーズ.共通_通常状態;
                    }
                    break;

                case CStage.Eフェーズ.共通_フェードアウト:
                    if (this.actFO.On進行描画() == 0)
                    {
                        TJAPlayer3.Skin.bgmタイトル.t停止する();
                        TJAPlayer3.Skin.bgmタイトルイン.t停止する();
                        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);
                    }
                    break;

                case CStage.Eフェーズ.タイトル_起動画面からのフェードイン:
                    if (this.actFIfromSetup.On進行描画() != 0)
                    {
                        base.eフェーズID = CStage.Eフェーズ.共通_通常状態;
                    }
                    break;
                }
            }
            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フェーズ.共通_フェードイン;
                    }
                    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

                // キー入力

                if (base.eフェーズID == CStage.Eフェーズ.共通_通常状態)                        // 通常状態
                {
                    if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.Escape))
                    {
                        return((int)E戻り値.EXIT);
                    }

                    this.ctキー反復用.Up.tキー反復(TJAPlayer3.Input管理.Keyboard.bキーが押されている((int)SlimDXKeys.Key.UpArrow) || TJAPlayer3.Input管理.Keyboard.bキーが押されている((int)SlimDXKeys.Key.LeftArrow) || TJAPlayer3.Pad.b押されている(Eパッド.LBlue) || TJAPlayer3.Pad.b押されている(Eパッド.LBlue2P) && TJAPlayer3.ConfigIni.nPlayerCount >= 2, new CCounter.DGキー処理(this.tカーソルを上へ移動する));

                    this.ctキー反復用.Down.tキー反復(TJAPlayer3.Input管理.Keyboard.bキーが押されている((int)SlimDXKeys.Key.DownArrow) || TJAPlayer3.Input管理.Keyboard.bキーが押されている((int)SlimDXKeys.Key.RightArrow) || TJAPlayer3.Pad.b押されている(Eパッド.RBlue) || TJAPlayer3.Pad.b押されている(Eパッド.RBlue2P) && TJAPlayer3.ConfigIni.nPlayerCount >= 2, new CCounter.DGキー処理(this.tカーソルを下へ移動する));


                    if (((TJAPlayer3.ConfigIni.bEnterがキー割り当てのどこにも使用されていない && TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.Return)) || TJAPlayer3.Pad.b押された(Eパッド.LRed) || TJAPlayer3.Pad.b押された(Eパッド.RRed) || (TJAPlayer3.Pad.b押された(Eパッド.LRed2P) || TJAPlayer3.Pad.b押された(Eパッド.RRed2P)) && TJAPlayer3.ConfigIni.nPlayerCount >= 2))
                    {
                        if ((this.n現在のカーソル行 == (int)E戻り値.GAMESTART - 1) && TJAPlayer3.Skin.soundゲーム開始音.b読み込み成功)
                        {
                            if (!((TJAPlayer3.Input管理.Keyboard.bキーが押されている((int)SlimDXKeys.Key.LeftControl) || TJAPlayer3.Input管理.Keyboard.bキーが押されている((int)SlimDXKeys.Key.RightControl)) && TJAPlayer3.Input管理.Keyboard.bキーが押されている((int)SlimDXKeys.Key.A)))
                            {
                                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 ( CDTXMania.Input管理.Keyboard.bキーが押された( (int) Key.Space ) )
                    //						Trace.TraceInformation( "DTXMania Title: SPACE key registered. " + CDTXMania.ct.nシステム時刻 );
                }

                // 描画

                if (TJAPlayer3.Tx.Title_Background != null)
                {
                    TJAPlayer3.Tx.Title_Background.t2D描画(TJAPlayer3.app.Device, 0, 0);
                }

                #region [ バージョン表示 ]
                //string strVersion = "KTT:J:A:I:2017072200";
                string       strCreator = "https://github.com/Mr-Ojii/TJAPlayer3";
                AssemblyName asmApp     = Assembly.GetExecutingAssembly().GetName();
#if DEBUG
                TJAPlayer3.act文字コンソール.tPrint(4, 44, C文字コンソール.Eフォント種別.白, "DEBUG BUILD");
#endif
                TJAPlayer3.act文字コンソール.tPrint(4, 4, C文字コンソール.Eフォント種別.白, asmApp.Name + " Ver." + TJAPlayer3.VERSION + " (" + strCreator + ")");
                TJAPlayer3.act文字コンソール.tPrint(4, 24, C文字コンソール.Eフォント種別.白, "Skin:" + TJAPlayer3.Skin.Skin_Name + " Ver." + TJAPlayer3.Skin.Skin_Version + " (" + TJAPlayer3.Skin.Skin_Creator + ")");
                //CDTXMania.act文字コンソール.tPrint(4, 24, C文字コンソール.Eフォント種別.白, strSubTitle);
                TJAPlayer3.act文字コンソール.tPrint(4, (720 - 24), C文字コンソール.Eフォント種別.白, "TJAPlayer3-f forked TJAPlayer3(AioiLight) forked TJAPlayer2 forPC(kairera0467)");
                #endregion


                if (TJAPlayer3.Tx.Title_InBar != null && TJAPlayer3.Tx.Title_AcBar != null)
                {
                    for (int i = 0; i < 3; i++)
                    {
                        TJAPlayer3.Tx.Title_InBar.t2D描画(TJAPlayer3.app.Device, MENU_XT[i] - TJAPlayer3.Tx.Title_InBar.szテクスチャサイズ.Width / 2, MENU_YT);
                    }


                    if (this.ct下移動用.b進行中)
                    {
                        TJAPlayer3.Tx.Title_AcBar.vc拡大縮小倍率.X = this.ct下移動用.n現在の値 * 0.01f;
                        TJAPlayer3.Tx.Title_AcBar.t2D描画(TJAPlayer3.app.Device, MENU_XT[this.n現在のカーソル行] - TJAPlayer3.Tx.Title_AcBar.sz画像サイズ.Width / 2 * this.ct下移動用.n現在の値 * 0.01f, MENU_YT);
                    }
                    else if (this.ct上移動用.b進行中)
                    {
                        TJAPlayer3.Tx.Title_AcBar.vc拡大縮小倍率.X = this.ct上移動用.n現在の値 * 0.01f;
                        TJAPlayer3.Tx.Title_AcBar.t2D描画(TJAPlayer3.app.Device, MENU_XT[this.n現在のカーソル行] - TJAPlayer3.Tx.Title_AcBar.sz画像サイズ.Width / 2 * this.ct上移動用.n現在の値 * 0.01f, MENU_YT);
                    }
                    else
                    {
                        TJAPlayer3.Tx.Title_AcBar.vc拡大縮小倍率.X = 1.0f;
                        TJAPlayer3.Tx.Title_AcBar.t2D描画(TJAPlayer3.app.Device, MENU_XT[this.n現在のカーソル行] - TJAPlayer3.Tx.Title_AcBar.sz画像サイズ.Width / 2, MENU_YT);
                    }

                    TJAPlayer3.Tx.Title_Txt[this.n現在のカーソル行] = texttexture[this.n現在のカーソル行 + 3];

                    if (this.n現在のカーソル行 != (int)E戻り値.GAMESTART - 1)
                    {
                        TJAPlayer3.Tx.Title_Txt[0] = texttexture[0];
                    }
                    if (this.n現在のカーソル行 != (int)E戻り値.CONFIG - 1)
                    {
                        TJAPlayer3.Tx.Title_Txt[1] = texttexture[1];
                    }
                    if (this.n現在のカーソル行 != (int)E戻り値.EXIT - 1)
                    {
                        TJAPlayer3.Tx.Title_Txt[2] = texttexture[2];
                    }

                    for (int i = 0; i < 3; i++)
                    {
                        TJAPlayer3.Tx.Title_Txt[i].t2D描画(TJAPlayer3.app.Device, MENU_XT[i] - TJAPlayer3.Tx.Title_Txt[i].szテクスチャサイズ.Width / 2, MENU_YT + 30);
                    }
                }
                else
                {
                    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));
                        }
                        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));
                    }
                }

                // URLの座標が押されたらブラウザで開いてやる 兼 マウスクリックのテスト
                // クライアント領域内のカーソル座標を取得する。
                // point.X、point.Yは負の値になることもある。
                var point = TJAPlayer3.app.Window.PointToClient(System.Windows.Forms.Cursor.Position);
                // クライアント領域の横幅を取得して、1280で割る。もちろんdouble型。
                var scaling = 1.000 * TJAPlayer3.app.Window.ClientSize.Width / 1280;
                if (TJAPlayer3.Input管理.Mouse.bキーが押された((int)SlimDXKeys.MouseObject.Button1))
                {
                    if (point.X >= 180 * scaling && point.X <= 490 * scaling && point.Y >= 0 && point.Y <= 20 * scaling)
                    {
                        System.Diagnostics.Process.Start(strCreator);
                    }
                }

                //CDTXMania.act文字コンソール.tPrint(0, 80, C文字コンソール.Eフォント種別.白, point.X.ToString());
                //CDTXMania.act文字コンソール.tPrint(0, 100, C文字コンソール.Eフォント種別.白, point.Y.ToString());
                //CDTXMania.act文字コンソール.tPrint(0, 120, C文字コンソール.Eフォント種別.白, scaling.ToString());


                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:
                        if (!((TJAPlayer3.Input管理.Keyboard.bキーが押されている((int)SlimDXKeys.Key.LeftControl) || TJAPlayer3.Input管理.Keyboard.bキーが押されている((int)SlimDXKeys.Key.RightControl)) && TJAPlayer3.Input管理.Keyboard.bキーが押されている((int)SlimDXKeys.Key.A)))
                        {
                            return((int)E戻り値.GAMESTART);
                        }
                        else
                        {
                            return((int)E戻り値.MAINTENANCE);
                        }

                    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 (!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;
                    soundタイトルスタート音_Played   = false;
                    base.b初めての進行描画          = false;
                }
                //---------------------
                #endregion

                if (!soundタイトルスタート音_Played && !isEasterEgg)
                {
                    TJAPlayer3.Skin.soundタイトルスタート音.t再生する();
                    soundタイトルスタート音_Played = true;
                }
                if (!TJAPlayer3.Skin.soundタイトルスタート音.b再生中 && !TJAPlayer3.Skin.soundタイトル音.b再生中 && !isEasterEgg)
                {
                    TJAPlayer3.Skin.soundタイトル音.t再生する();
                }

                if (TJAPlayer3.ServiceCount >= TJAPlayer3.ConfigIni.nGameCost * TJAPlayer3.ConfigIni.nPlayerCount)
                {
                    CreditStatus = 0;
                }
                else if (TJAPlayer3.CoinCount + TJAPlayer3.ServiceCount >= TJAPlayer3.ConfigIni.nGameCost * TJAPlayer3.ConfigIni.nPlayerCount)
                {
                    CreditStatus = 1;
                }
                else if (TJAPlayer3.CoinCount >= TJAPlayer3.ConfigIni.nGameCost * TJAPlayer3.ConfigIni.nPlayerCount)
                {
                    CreditStatus = 2;
                }
                else
                {
                    CreditStatus = 3;
                }

                if (CreditStatus != 3)
                {
                    if (!TJAPlayer3.Skin.soundEntry.b再生中 && !TJAPlayer3.Skin.soundタイトルスタート音.b再生中 && !TJAPlayer3.Skin.soundCoin.b再生中 && !TJAPlayer3.Skin.soundService.b再生中)
                    {
                        TJAPlayer3.Skin.soundEntry.t再生する();
                    }
                }

                // 進行

                #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 (base.eフェーズID == CStage.Eフェーズ.共通_通常状態)                       // 通常状態
                {
                    if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)Key.Escape))
                    {
                        TJAPlayer3.Skin.sound取消音.t再生する();
                        this.n現在のカーソル行 = (int)E戻り値.EXIT - 1;
                        this.actFO.tフェードアウト開始();
                        base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト;
                    }

                    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.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)
                        {
                            if (CreditStatus != 3)
                            {
                                switch (CreditStatus)
                                {
                                case 0:
                                    TJAPlayer3.ServiceCount -= TJAPlayer3.ConfigIni.nGameCost * TJAPlayer3.ConfigIni.nPlayerCount;
                                    break;

                                case 1:
                                    int sub_num = TJAPlayer3.ConfigIni.nGameCost * TJAPlayer3.ConfigIni.nPlayerCount - TJAPlayer3.ServiceCount;
                                    TJAPlayer3.CoinCount   -= sub_num;
                                    TJAPlayer3.ServiceCount = 0;
                                    break;

                                case 2:
                                    TJAPlayer3.CoinCount -= TJAPlayer3.ConfigIni.nGameCost * TJAPlayer3.ConfigIni.nPlayerCount;
                                    break;
                                }
                                TJAPlayer3.Skin.sound決定音.t再生する();
                                this.actFO.tフェードアウト開始();
                                base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト;
                            }
                            else
                            {
                                if (TJAPlayer3.Skin.soundCoinPrompt.b再生中)
                                {
                                    TJAPlayer3.Skin.soundCoinPrompt.t停止する();
                                }
                                TJAPlayer3.Skin.soundCoinPrompt.t再生する();
                            }
                        }
                        else if (this.n現在のカーソル行 == (int)E戻り値.CONFIG - 1)
                        {
                            TJAPlayer3.Skin.sound決定音.t再生する();
                            this.actFO.tフェードアウト開始();
                            base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト;
                        }
                        else if (this.n現在のカーソル行 == (int)E戻り値.EXIT - 1)
                        {
                            TJAPlayer3.Skin.sound取消音.t再生する();
                            this.actFO.tフェードアウト開始();
                            base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト;
                        }
                    }
                    //					if ( CDTXMania.Input管理.Keyboard.bキーが押された( (int) Key.Space ) )
                    //						Trace.TraceInformation( "DTXMania Title: SPACE key registered. " + CDTXMania.ct.nシステム時刻 );
                    if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)Key.Pause))
                    {
                        isEasterEgg = !isEasterEgg;
                    }
                }

                // 描画

                if (!isEasterEgg)
                {
                    TJAPlayer3.Tx.Title_Background?.t2D描画(TJAPlayer3.app.Device, 0, 0);

                    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));
                    }
                }
                else
                {
                    TJAPlayer3.Tx.Title_R1_Background.t2D描画(TJAPlayer3.app.Device, 0, 0);
                    TJAPlayer3.Tx.Title_R1_Logo.t2D描画(TJAPlayer3.app.Device, 308 + TJAPlayer3.Random.Next(1, 25), 58 + TJAPlayer3.Random.Next(1, 25));
                    soundタイトルスタート音_Played = false;
                    if (!TJAPlayer3.Skin.soundTitle_R1_BGM.b再生中)
                    {
                        TJAPlayer3.Skin.soundTitle_R1_BGM.t再生する();
                    }
                }

                //CDTXMania.act文字コンソール.tPrint(0, 80, C文字コンソール.Eフォント種別.白, point.X.ToString());
                //CDTXMania.act文字コンソール.tPrint(0, 100, C文字コンソール.Eフォント種別.白, point.Y.ToString());
                //CDTXMania.act文字コンソール.tPrint(0, 120, C文字コンソール.Eフォント種別.白, scaling.ToString());


                CStage.Eフェーズ eフェーズid = base.eフェーズID;
                switch (eフェーズid)
                {
                case CStage.Eフェーズ.共通_フェードイン:
                    if (this.actFI.On進行描画() != 0)
                    {
                        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)
                    {
                        base.eフェーズID = CStage.Eフェーズ.共通_通常状態;
                    }
                    break;
                }
            }
            return(0);
        }
예제 #9
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

                //--Homeキーでタイトル画面の切り替え : Press Home Key to toggle title screen--
                if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)Key.Home))
                {
                    bEnableNewTitle = !bEnableNewTitle;
                    bInit           = false;

                    TJAPlayer3.Skin.soundTitle_R1_BGM.t停止する();
                }
                //----------------

                if (bEnableNewTitle)
                {
                    //--NEW TITLE SCREEN ROUTINE GOES HERE--

                    //Stop old title screen sounds if playing
                    if (this.b曲再生)
                    {
                        TJAPlayer3.Skin.soundタイトル音.t停止する();
                        this.b曲再生 = false;
                    }
                    if (TJAPlayer3.Skin.soundタイトルスタート音.b再生中)
                    {
                        TJAPlayer3.Skin.soundタイトルスタート音.t停止する();
                    }
                    if (TJAPlayer3.Skin.soundEntry.b再生中)
                    {
                        TJAPlayer3.Skin.soundEntry.t停止する();
                    }
                    if (bTitleStartPlayed)
                    {
                        bTitleStartPlayed = false;
                    }

                    titleScreenRoutine = 1;

                    if (titleScreenRoutine == 0)
                    {
                        if (!bInit)
                        {
                            bInit = true;
                        }
                    }
                    else if (titleScreenRoutine == 1)
                    {
                        if (!bInit)
                        {
                            TJAPlayer3.Skin.soundTitle_R1_BGM.t再生する();

                            bInit = true;
                        }

                        TJAPlayer3.Tx.Title_R1_Background.t2D描画(TJAPlayer3.app.Device, 0, 0);
                        TJAPlayer3.Tx.Title_R1_Logo.t2D描画(TJAPlayer3.app.Device, 308 + rnd.Next(1, 25), 58 + rnd.Next(1, 25));

                        if (TJAPlayer3.Input管理.Keyboard.list入力イベント.Count >= 1)
                        {
                            if (!TJAPlayer3.Input管理.Keyboard.bキーが押されている((int)Key.Home))
                            {
                                TJAPlayer3.Skin.soundTitle_R1_BGM.t停止する();
                                return((int)E戻り値.GAMESTART);
                            }
                        }
                    }
                }
                else
                {
                    // 進行

                    #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 (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.Pad.b押されたDGB(Eパッド.CY) || TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RD) || TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LC) || TJAPlayer3.Pad.b押されたDGB(Eパッド.Decide) || TJAPlayer3.Pad.b押されたDGB(Eパッド.LRed) || TJAPlayer3.Pad.b押されたDGB(Eパッド.RRed) ||
                            (TJAPlayer3.ConfigIni.bEnterがキー割り当てのどこにも使用されていない && TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDX.DirectInput.Key.Return)))
                        {
                            if ((this.n現在のカーソル行 == (int)E戻り値.GAMESTART - 1))
                            {
                                //if (TJAPlayer3.stage選曲.act曲リスト.r現在選択中の曲 != null)
                                //{
                                TJAPlayer3.Skin.soundタイトル音.t停止する();
                                TJAPlayer3.Skin.soundタイトルスタート音.t停止する();
                                TJAPlayer3.Skin.soundEntry.t停止する();
                                TJAPlayer3.Skin.sound決定音.t再生する();
                                TJAPlayer3.Skin.soundゲーム開始音.t再生する();

                                this.actFO.tフェードアウト開始();
                                base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト;
                                //}

                                /*else
                                 * {
                                 *      MessageBox.Show(
                                 *              "曲の読み込みが終わっていない、または曲が1つもないため、\nゲームをスタートできません。\n\nThe songs are either not loaded yet or not existing.\nIf you haven't installed any song yet,\nplease install some into the same directory as this game.",
                                 *              "TJAPlayer3-Develop",
                                 *              MessageBoxButtons.OK,
                                 *              MessageBoxIcon.Warning);
                                 * }*/
                            }
                            else
                            {
                                TJAPlayer3.Skin.sound決定音.t再生する();

                                this.actFO.tフェードアウト開始();
                                base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト;
                            }
                            if (this.n現在のカーソル行 == (int)E戻り値.EXIT - 1)
                            {
                                return((int)E戻り値.EXIT);
                            }
                        }
                        //					if ( CDTXMania.Input管理.Keyboard.bキーが押された( (int) Key.Space ) )
                        //						Trace.TraceInformation( "DTXMania Title: SPACE key registered. " + CDTXMania.ct.nシステム時刻 );
                    }

                    // 描画

                    if (!TJAPlayer3.Skin.soundタイトルスタート音.b再生中 && bTitleStartPlayed)
                    {
                        if (!b曲再生)
                        {
                            TJAPlayer3.Skin.soundタイトル音.t再生する();
                            b曲再生 = true;
                        }
                    }
                    else
                    {
                        TJAPlayer3.Skin.soundタイトル音.n位置_現在のサウンド = 0;
                    }

                    if (!TJAPlayer3.Skin.soundタイトルスタート音.b再生中 && !b曲再生 && !bTitleStartPlayed)
                    {
                        TJAPlayer3.Skin.soundタイトルスタート音.t再生する();
                        bTitleStartPlayed = true;
                    }
                    //if (!TJAPlayer3.Skin.soundEntry.b再生中) TJAPlayer3.Skin.soundEntry.t再生する();

                    if (TJAPlayer3.Tx.Title_Background != null)
                    {
                        TJAPlayer3.Tx.Title_Background.t2D描画(TJAPlayer3.app.Device, 0, 0);
                    }

                    #region [ バージョン表示 ]
                    //string strVersion = "KTT:J:A:I:2017072200";
                    string       strCreator = "https://github.com/TJAPlayer3-Develop/TJAPlayer3-Develop";
                    AssemblyName asmApp     = Assembly.GetExecutingAssembly().GetName();
#if DEBUG
                    TJAPlayer3.act文字コンソール.tPrint(4, 44, C文字コンソール.Eフォント種別.白, "DEBUG BUILD");
#endif
                    #endregion

                    TJAPlayer3.NamePlate.tNamePlateDraw(0, 0);

                    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));
                    }

                    // URLの座標が押されたらブラウザで開いてやる 兼 マウスクリックのテスト
                    // クライアント領域内のカーソル座標を取得する。
                    // point.X、point.Yは負の値になることもある。
                    var point = TJAPlayer3.app.Window.PointToClient(System.Windows.Forms.Cursor.Position);
                    // クライアント領域の横幅を取得して、1280で割る。もちろんdouble型。
                    var scaling = 1.000 * TJAPlayer3.app.Window.ClientSize.Width / 1280;
                    if (TJAPlayer3.Input管理.Mouse.bキーが押された((int)MouseObject.Button1))
                    {
                        if (point.X >= 0 * scaling && point.X <= 190 * scaling && point.Y >= 700 && point.Y <= 720 * scaling)
                        {
                            System.Diagnostics.Process.Start(strCreator);
                        }
                    }

                    //CDTXMania.act文字コンソール.tPrint(0, 80, C文字コンソール.Eフォント種別.白, point.X.ToString());
                    //CDTXMania.act文字コンソール.tPrint(0, 100, C文字コンソール.Eフォント種別.白, point.Y.ToString());
                    //CDTXMania.act文字コンソール.tPrint(0, 120, C文字コンソール.Eフォント種別.白, scaling.ToString());


                    CStage.Eフェーズ eフェーズid = base.eフェーズID;
                    switch (eフェーズid)
                    {
                    case CStage.Eフェーズ.共通_フェードイン:
                        if (this.actFI.On進行描画() != 0)
                        {
                            b曲再生         = false;
                            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)
                        {
                            base.eフェーズID = CStage.Eフェーズ.共通_通常状態;
                        }
                        break;
                    }
                }
            }
            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フェーズ.共通_フェードイン;
                    }
                    base.b初めての進行描画 = false;
                }
                //---------------------
                #endregion

                this.ctコインイン待機.t進行Loop();
                this.ctバナパス読み込み成功.t進行();
                this.ctバナパス読み込み失敗.t進行();
                this.ctエントリーバー点滅.t進行Loop();
                this.ctエントリーバー決定点滅.t進行();
                this.ctどんちゃんイン.t進行();
                this.ctどんちゃんループ.t進行Loop();
                this.ctどんちゃんエントリーループ.t進行Loop();
                this.ctBarMove.t進行();

                if (!TJAPlayer3.Skin.bgmタイトルイン.b再生中)
                {
                    if (TJAPlayer3.ConfigIni.bBGM音を発声する && !b音声再生)
                    {
                        TJAPlayer3.Skin.bgmタイトル.t再生する();
                        b音声再生 = true;
                    }
                }

                // 進行

                #region [ キー関係 ]

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

                    if ((TJAPlayer3.Input管理.Keyboard.bキーが押されている((int)SlimDXKeys.Key.RightShift) || TJAPlayer3.Input管理.Keyboard.bキーが押されている((int)SlimDXKeys.Key.LeftShift)) && TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.F1))
                    {
                        TJAPlayer3.Skin.soundEntry.t停止する();
                        n現在の選択行モード選択 = (int)E戻り値.CONFIG - 1;
                        this.actFO.tフェードアウト開始();
                        base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト;
                        TJAPlayer3.Skin.sound取消音.t再生する();
                    }

                    if (!bバナパス読み込み && !bバナパス読み込み失敗)
                    {
                        if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.P))
                        {
                            this.ctバナパス読み込み待機.t開始(0, 600, 1, TJAPlayer3.Timer);
                        }
                        if (TJAPlayer3.Input管理.Keyboard.bキーが押されている((int)SlimDXKeys.Key.P))
                        {
                            ctバナパス読み込み待機.t進行();
                        }
                        if (TJAPlayer3.Input管理.Keyboard.bキーが離された((int)SlimDXKeys.Key.P))
                        {
                            this.ctバナパス読み込み待機.t停止();
                            if (this.ctバナパス読み込み待機.n現在の値 < 600 && !bバナパス読み込み失敗)
                            {
                                ctバナパス読み込み失敗.t開始(0, 1128, 1, TJAPlayer3.Timer);
                                bバナパス読み込み失敗 = true;
                            }
                        }
                    }

                    if (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RBlue) || TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.RightArrow))
                    {
                        if (bプレイヤーエントリー && !bプレイヤーエントリー決定)
                        {
                            if (n現在の選択行プレイヤーエントリー + 1 <= 2)
                            {
                                TJAPlayer3.Skin.sound変更音.t再生する();
                                n現在の選択行プレイヤーエントリー += 1;
                            }
                        }

                        if (bモード選択)
                        {
                            if (n現在の選択行モード選択 != 1)
                            {
                                TJAPlayer3.Skin.sound変更音.t再生する();
                                ctBarMove.t開始(0, 250, 1.2f, TJAPlayer3.Timer);
                                n現在の選択行モード選択 = 1;
                                for (int i = 0; i < 2; i++)
                                {
                                    this.stModeBar[i].n現在存在している行 = i;
                                }
                            }
                        }
                    }

                    if (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LBlue) || TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.LeftArrow))
                    {
                        if (bプレイヤーエントリー && !bプレイヤーエントリー決定)
                        {
                            if (n現在の選択行プレイヤーエントリー - 1 >= 0)
                            {
                                TJAPlayer3.Skin.sound変更音.t再生する();
                                n現在の選択行プレイヤーエントリー -= 1;
                            }
                        }

                        if (bモード選択)
                        {
                            if (n現在の選択行モード選択 != 0)
                            {
                                TJAPlayer3.Skin.sound変更音.t再生する();
                                ctBarMove.t開始(0, 250, 1.2f, TJAPlayer3.Timer);
                                n現在の選択行モード選択 = 0;
                                for (int i = 0; i < 2; i++)
                                {
                                    this.stModeBar[i].n現在存在している行 = i + 1;
                                }
                            }
                        }
                    }


                    if (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RRed) || TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LRed) || TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.Return))
                    {
                        if (bプレイヤーエントリー)
                        {
                            if (n現在の選択行プレイヤーエントリー == 0 || n現在の選択行プレイヤーエントリー == 2)
                            {
                                if (!bプレイヤーエントリー決定)
                                {
                                    TJAPlayer3.Skin.sound決定音.t再生する();
                                    ctエントリーバー決定点滅.t開始(0, 1055, 1, TJAPlayer3.Timer);
                                    bプレイヤーエントリー決定 = true;
                                }
                            }
                            else
                            {
                                TJAPlayer3.Skin.sound決定音.t再生する();
                                bプレイヤーエントリー = false;
                                bバナパス読み込み   = false;
                                TJAPlayer3.Skin.SoundBanapas.bPlayed = false;
                                ctバナパス読み込み成功 = new CCounter();
                                ctバナパス読み込み待機 = new CCounter();
                            }
                        }
                        if (bモード選択)
                        {
                            if (this.n現在の選択行モード選択 == 1)
                            {
                                if (TJAPlayer3.Songs管理.list曲ルート_Dan.Count > 0 && TJAPlayer3.ConfigIni.nPlayerCount != 2)
                                {
                                    TJAPlayer3.Skin.sound決定音.t再生する();
                                    n現在の選択行モード選択 = (int)E戻り値.DANGAMESTART - 1;
                                    this.actFO.tフェードアウト開始(0, 500);
                                    base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト;
                                }
                                else
                                {
                                    TJAPlayer3.Skin.soundError.t再生する();
                                }
                            }
                            else
                            {
                                TJAPlayer3.Skin.sound決定音.t再生する();
                                n現在の選択行モード選択 = (int)E戻り値.GAMESTART - 1;
                                this.actFO.tフェードアウト開始(0, 500);
                                base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト;
                            }
                        }
                    }

                    if (ctバナパス読み込み待機.n現在の値 >= 500)
                    {
                        if (!bバナパス読み込み)
                        {
                            TJAPlayer3.Skin.soundEntry.t停止する();
                            ctバナパス読み込み成功.t開始(0, 3655, 1, TJAPlayer3.Timer);
                            bバナパス読み込み = true;
                        }
                    }

                    if (ctエントリーバー決定点滅.n現在の値 >= 1055)
                    {
                        if (!bモード選択)
                        {
                            if (!TJAPlayer3.Skin.soundsanka.bPlayed)
                            {
                                TJAPlayer3.Skin.soundsanka.t再生する();
                            }

                            ctどんちゃんイン.t開始(0, 180, 2, TJAPlayer3.Timer);
                            ctBarAnimeIn.t開始(0, 1295, 1, TJAPlayer3.Timer);
                            bモード選択 = true;
                        }
                    }
                }

                #endregion

                #region [ 背景描画 ]

                if (TJAPlayer3.Tx.Title_Background != null)
                {
                    TJAPlayer3.Tx.Title_Background.t2D描画(TJAPlayer3.app.Device, 0, 0);
                }

                #endregion

                #region [ バナパス読み込み ]

                if (!bバナパス読み込み && !bバナパス読み込み失敗)
                {
                    TJAPlayer3.Tx.Entry_Bar.t2D描画(TJAPlayer3.app.Device, 0, 0);

                    if (this.ctコインイン待機.n現在の値 <= 255)
                    {
                        TJAPlayer3.Tx.Entry_Bar_Text.Opacity = this.ctコインイン待機.n現在の値;
                    }
                    else if (this.ctコインイン待機.n現在の値 <= 2000 - 355)
                    {
                        TJAPlayer3.Tx.Entry_Bar_Text.Opacity = 255;
                    }
                    else
                    {
                        TJAPlayer3.Tx.Entry_Bar_Text.Opacity = 255 - (this.ctコインイン待機.n現在の値 - (2000 - 355));
                    }

                    TJAPlayer3.Tx.Entry_Bar_Text.t2D描画(TJAPlayer3.app.Device, 563, 312, new RectangleF(0, 0, 395, 50));
                    TJAPlayer3.Tx.Entry_Bar_Text.t2D描画(TJAPlayer3.app.Device, 563, 430, new RectangleF(0, 50, 395, 50));
                }
                else
                {
                    if (this.ctバナパス読み込み成功.n現在の値 <= 1000 && this.ctバナパス読み込み失敗.n現在の値 <= 1128)
                    {
                        if (bバナパス読み込み)
                        {
                            TJAPlayer3.Tx.Tile_Black.Opacity = this.ctバナパス読み込み成功.n現在の値 <= 2972 ? 128 : 128 - (this.ctバナパス読み込み成功.n現在の値 - 2972);

                            for (int i = 0; i < 1280 / TJAPlayer3.Tx.Tile_Black.szテクスチャサイズ.Width + 1; i++)
                            {
                                for (int j = 0; j < 720 / TJAPlayer3.Tx.Tile_Black.szテクスチャサイズ.Height + 1; j++)
                                {
                                    TJAPlayer3.Tx.Tile_Black.t2D描画(TJAPlayer3.app.Device, i * TJAPlayer3.Tx.Tile_Black.szテクスチャサイズ.Width, j * TJAPlayer3.Tx.Tile_Black.szテクスチャサイズ.Height);
                                }
                            }

                            TJAPlayer3.Tx.Banapas_Load[0].Opacity    = ctバナパス読み込み成功.n現在の値 >= 872 ? 255 - (ctバナパス読み込み成功.n現在の値 - 872) * 2 : ctバナパス読み込み成功.n現在の値 * 2;
                            TJAPlayer3.Tx.Banapas_Load[0].vc拡大縮小倍率.Y = ctバナパス読み込み成功.n現在の値 <= 100 ? ctバナパス読み込み成功.n現在の値 * 0.01f : 1.0f;
                            TJAPlayer3.Tx.Banapas_Load[0].t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640, 360);

                            TJAPlayer3.Tx.Banapas_Load[1].Opacity = ctバナパス読み込み成功.n現在の値 >= 872 ? 255 - (ctバナパス読み込み成功.n現在の値 - 872) * 2 : ctバナパス読み込み成功.n現在の値 <= 96 ? (int)((ctバナパス読み込み成功.n現在の値 - 96) * 7.96875f) : 255;
                            TJAPlayer3.Tx.Banapas_Load[1].t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640, 360);

                            for (int i = 0; i < 5; i++)
                            {
                                TJAPlayer3.Tx.Banapas_Load[2].Opacity = ctバナパス読み込み成功.n現在の値 >= 872 ? 255 - (ctバナパス読み込み成功.n現在の値 - 872) * 2 : ctバナパス読み込み成功.n現在の値 <= 96 ? (int)((ctバナパス読み込み成功.n現在の値 - 96) * 7.96875f) : 255;
                                TJAPlayer3.Tx.Banapas_Load[2].t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 480 + 90 * i, 410, new Rectangle(0 + 72 * (ctバナパス読み込み成功.n現在の値 >= 200 + (i - 1) * 320 ? ctバナパス読み込み成功.n現在の値 <= (200 + i * 320) ? (ctバナパス読み込み成功.n現在の値 - (200 + i * 320)) / 40 : 0 : 0), 0, 72, 72));
                            }
                        }
                        if (bバナパス読み込み失敗)
                        {
                            TJAPlayer3.Tx.Tile_Black.Opacity = this.ctバナパス読み込み失敗.n現在の値 <= 1000 ? 128 : 128 - (this.ctバナパス読み込み失敗.n現在の値 - 1000);

                            for (int i = 0; i < 1280 / TJAPlayer3.Tx.Tile_Black.szテクスチャサイズ.Width + 1; i++)
                            {
                                for (int j = 0; j < 720 / TJAPlayer3.Tx.Tile_Black.szテクスチャサイズ.Height + 1; j++)
                                {
                                    TJAPlayer3.Tx.Tile_Black.t2D描画(TJAPlayer3.app.Device, i * TJAPlayer3.Tx.Tile_Black.szテクスチャサイズ.Width, j * TJAPlayer3.Tx.Tile_Black.szテクスチャサイズ.Height);
                                }
                            }

                            if (!TJAPlayer3.Skin.soundError.bPlayed)
                            {
                                TJAPlayer3.Skin.soundError.t再生する();
                            }

                            int count = this.ctバナパス読み込み失敗.n現在の値;
                            TJAPlayer3.Tx.Banapas_Load_Failure[0].Opacity    = count >= 872 ? 255 - (count - 872) * 2 : count * 2;
                            TJAPlayer3.Tx.Banapas_Load_Failure[0].vc拡大縮小倍率.Y = count <= 100 ? count * 0.01f : 1.0f;
                            TJAPlayer3.Tx.Banapas_Load_Failure[0].t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640, 360);

                            if (ctバナパス読み込み失敗.n現在の値 >= 1128)
                            {
                                bバナパス読み込み失敗 = false;
                                TJAPlayer3.Skin.soundError.bPlayed = false;
                            }
                        }
                    }
                    else
                    {
                        if (bバナパス読み込み)
                        {
                            TJAPlayer3.Tx.Tile_Black.Opacity = this.ctバナパス読み込み成功.n現在の値 <= 2972 ? 128 : 128 - (this.ctバナパス読み込み成功.n現在の値 - 2972);

                            for (int i = 0; i < 1280 / TJAPlayer3.Tx.Tile_Black.szテクスチャサイズ.Width + 1; i++)
                            {
                                for (int j = 0; j < 720 / TJAPlayer3.Tx.Tile_Black.szテクスチャサイズ.Height + 1; j++)
                                {
                                    TJAPlayer3.Tx.Tile_Black.t2D描画(TJAPlayer3.app.Device, i * TJAPlayer3.Tx.Tile_Black.szテクスチャサイズ.Width, j * TJAPlayer3.Tx.Tile_Black.szテクスチャサイズ.Height);
                                }
                            }

                            if (!TJAPlayer3.Skin.SoundBanapas.bPlayed)
                            {
                                TJAPlayer3.Skin.SoundBanapas.t再生する();
                            }

                            int count = this.ctバナパス読み込み成功.n現在の値 - 1000;
                            TJAPlayer3.Tx.Banapas_Load_Clear[0].Opacity    = count >= 1872 ? 255 - (count - 1872) * 2 : count * 2;
                            TJAPlayer3.Tx.Banapas_Load_Clear[0].vc拡大縮小倍率.Y = count <= 100 ? count * 0.01f : 1.0f;
                            TJAPlayer3.Tx.Banapas_Load_Clear[0].t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640, 360);

                            float anime  = 0f;
                            float scalex = 0f;
                            float scaley = 0f;

                            if (count >= 300)
                            {
                                if (count <= 300 + 270)
                                {
                                    anime  = (float)Math.Sin((float)(count - 300) / 1.5f * (Math.PI / 180)) * 95f;
                                    scalex = -(float)Math.Sin((float)(count - 300) / 1.5f * (Math.PI / 180)) * 0.15f;
                                    scaley = (float)Math.Sin((float)(count - 300) / 1.5f * (Math.PI / 180)) * 0.2f;
                                }
                                else if (count <= 300 + 270 + 100)
                                {
                                    scalex = (float)Math.Sin((float)(count - (300 + 270)) * 1.8f * (Math.PI / 180)) * 0.13f;
                                    scaley = -(float)Math.Sin((float)(count - (300 + 270)) * 1.8f * (Math.PI / 180)) * 0.1f;
                                    anime  = 0;
                                }
                                else if (count <= 300 + 540 + 100)
                                {
                                    anime  = (float)Math.Sin((float)(count - (300 + 270 + 100)) / 1.5f * (Math.PI / 180)) * 95f;
                                    scalex = -(float)Math.Sin((float)(count - (300 + 270 + 100)) / 1.5f * (Math.PI / 180)) * 0.15f;
                                    scaley = (float)Math.Sin((float)(count - (300 + 270 + 100)) / 1.5f * (Math.PI / 180)) * 0.2f;
                                }
                                else if (count <= 300 + 540 + 100 + 100)
                                {
                                    scalex = (float)Math.Sin((float)(count - (300 + 540 + 100)) * 1.8f * (Math.PI / 180)) * 0.13f;
                                    scaley = -(float)Math.Sin((float)(count - (300 + 540 + 100)) * 1.8f * (Math.PI / 180)) * 0.1f;
                                }
                            }

                            TJAPlayer3.Tx.Banapas_Load_Clear[1].vc拡大縮小倍率.X = 1.0f + scalex;
                            TJAPlayer3.Tx.Banapas_Load_Clear[1].vc拡大縮小倍率.Y = 1.0f + scaley;
                            TJAPlayer3.Tx.Banapas_Load_Clear[1].Opacity    = count >= 1872 ? 255 - (count - 1872) * 2 : count * 2;
                            TJAPlayer3.Tx.Banapas_Load_Clear[1].t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, 198, 514 - anime);

                            if (ctバナパス読み込み成功.n現在の値 >= 2000)
                            {
                                bプレイヤーエントリー = true;
                            }
                        }
                    }
                }

                #endregion

                #region [ プレイヤーエントリー ]

                if (bプレイヤーエントリー)
                {
                    if (!this.bどんちゃんカウンター初期化)
                    {
                        this.ctどんちゃんエントリーループ = new CCounter(0, TJAPlayer3.Tx.Donchan_Entry.Length - 1, 1000 / 60, TJAPlayer3.Timer);
                        this.bどんちゃんカウンター初期化  = true;
                    }

                    TJAPlayer3.Tx.Entry_Player[0].Opacity = ctエントリーバー決定点滅.n現在の値 >= 800 ? 255 - (ctエントリーバー決定点滅.n現在の値 - 800) : (this.ctバナパス読み込み成功.n現在の値 - 3400);
                    TJAPlayer3.Tx.Entry_Player[1].Opacity = ctエントリーバー決定点滅.n現在の値 >= 800 ? 255 - (ctエントリーバー決定点滅.n現在の値 - 800) : (this.ctバナパス読み込み成功.n現在の値 - 3400);
                    TJAPlayer3.Tx.Donchan_Entry[this.ctどんちゃんエントリーループ.n現在の値].Opacity = ctエントリーバー決定点滅.n現在の値 >= 800 ? 255 - (ctエントリーバー決定点滅.n現在の値 - 800) : (this.ctバナパス読み込み成功.n現在の値 - 3400);

                    TJAPlayer3.Tx.Entry_Player[0].t2D描画(TJAPlayer3.app.Device, 0, 0);

                    TJAPlayer3.Tx.Donchan_Entry[this.ctどんちゃんエントリーループ.n現在の値].t2D描画(TJAPlayer3.app.Device, 485, 140);

                    TJAPlayer3.Tx.Entry_Player[2].Opacity = ctエントリーバー決定点滅.n現在の値 >= 800 ? 255 - (ctエントリーバー決定点滅.n現在の値 - 800) : (this.ctバナパス読み込み成功.n現在の値 - 3400) - (this.ctエントリーバー点滅.n現在の値 <= 255 ? this.ctエントリーバー点滅.n現在の値 : 255 - (this.ctエントリーバー点滅.n現在の値 - 255));
                    TJAPlayer3.Tx.Entry_Player[2].t2D描画(TJAPlayer3.app.Device, ptプレイヤーエントリーバー座標[n現在の選択行プレイヤーエントリー].X, ptプレイヤーエントリーバー座標[n現在の選択行プレイヤーエントリー].Y,
                                                        new RectangleF(n現在の選択行プレイヤーエントリー == 1 ? 199 : 0, 0, n現在の選択行プレイヤーエントリー == 1 ? 224 : 199, 92));

                    TJAPlayer3.Tx.Entry_Player[2].Opacity = ctエントリーバー決定点滅.n現在の値 >= 800 ? 255 - (ctエントリーバー決定点滅.n現在の値 - 800) : (this.ctバナパス読み込み成功.n現在の値 - 3400);
                    TJAPlayer3.Tx.Entry_Player[2].t2D描画(TJAPlayer3.app.Device, ptプレイヤーエントリーバー座標[n現在の選択行プレイヤーエントリー].X, ptプレイヤーエントリーバー座標[n現在の選択行プレイヤーエントリー].Y,
                                                        new RectangleF(n現在の選択行プレイヤーエントリー == 1 ? 199 : 0, 92, n現在の選択行プレイヤーエントリー == 1 ? 224 : 199, 92));

                    TJAPlayer3.Tx.Entry_Player[1].t2D描画(TJAPlayer3.app.Device, 0, 0);

                    #region [ 透明度 ]

                    int Opacity = 0;

                    if (ctエントリーバー決定点滅.n現在の値 <= 100)
                    {
                        Opacity = (int)(ctエントリーバー決定点滅.n現在の値 * 2.55f);
                    }
                    else if (ctエントリーバー決定点滅.n現在の値 <= 200)
                    {
                        Opacity = 255 - (int)((ctエントリーバー決定点滅.n現在の値 - 100) * 2.55f);
                    }
                    else if (ctエントリーバー決定点滅.n現在の値 <= 300)
                    {
                        Opacity = (int)((ctエントリーバー決定点滅.n現在の値 - 200) * 2.55f);
                    }
                    else if (ctエントリーバー決定点滅.n現在の値 <= 400)
                    {
                        Opacity = 255 - (int)((ctエントリーバー決定点滅.n現在の値 - 300) * 2.55f);
                    }
                    else if (ctエントリーバー決定点滅.n現在の値 <= 500)
                    {
                        Opacity = (int)((ctエントリーバー決定点滅.n現在の値 - 400) * 2.55f);
                    }
                    else if (ctエントリーバー決定点滅.n現在の値 <= 600)
                    {
                        Opacity = 255 - (int)((ctエントリーバー決定点滅.n現在の値 - 500) * 2.55f);
                    }

                    #endregion

                    TJAPlayer3.Tx.Entry_Player[2].Opacity = Opacity;
                    TJAPlayer3.Tx.Entry_Player[2].t2D描画(TJAPlayer3.app.Device, ptプレイヤーエントリーバー座標[n現在の選択行プレイヤーエントリー].X, ptプレイヤーエントリーバー座標[n現在の選択行プレイヤーエントリー].Y,
                                                        new RectangleF(n現在の選択行プレイヤーエントリー == 1 ? 199 : 0, 92 * 2, n現在の選択行プレイヤーエントリー == 1 ? 224 : 199, 92));

                    TJAPlayer3.NamePlate.tNamePlateDraw(530, 385, 0, true, ctエントリーバー決定点滅.n現在の値 >= 800 ? 255 - (ctエントリーバー決定点滅.n現在の値 - 800) : (this.ctバナパス読み込み成功.n現在の値 - 3400));
                }

                #endregion

                #region [ モード選択 ]

                if (bモード選択)
                {
                    this.ctBarAnimeIn.t進行();

                    #region [ どんちゃん描画 ]

                    float DonchanX = 0f, DonchanY = 0f;

                    DonchanX = (float)Math.Sin(ctどんちゃんイン.n現在の値 / 2 * (Math.PI / 180)) * 200f;
                    DonchanY = ((float)Math.Sin((90 + (ctどんちゃんイン.n現在の値 / 2)) * (Math.PI / 180)) * 150f);

                    TJAPlayer3.Tx.Entry_Donchan_Normal[ctどんちゃんループ.n現在の値].t2D描画(TJAPlayer3.app.Device, -200 + DonchanX, 341 - DonchanY);

                    #endregion

                    if (ctBarAnimeIn.n現在の値 >= (int)(16 * 16.6f))
                    {
                        TJAPlayer3.act文字コンソール.tPrint(0, 0, C文字コンソール.Eフォント種別.白, ctBarMove.n現在の値.ToString());

                        for (int i = 0; i < 2; i++)
                        {
                            if (this.stModeBar[i].n現在存在している行 == 1 && ctBarMove.n現在の値 >= 150)
                            {
                                int BarAnime  = ctBarAnimeIn.n現在の値 >= (int)(26 * 16.6f) + 100 ? 0 : ctBarAnimeIn.n現在の値 >= (int)(26 * 16.6f) && ctBarAnimeIn.n現在の値 <= (int)(26 * 16.6f) + 100 ? 40 + (int)((ctBarAnimeIn.n現在の値 - (26 * 16.6)) / 100f * 71f) : ctBarAnimeIn.n現在の値 < (int)(26 * 16.6f) ? 40 : 111;
                                int BarAnime1 = BarAnime == 0 ? ctBarMove.n現在の値 >= 150 ? 40 + (int)((ctBarMove.n現在の値 - 150) / 100f * 71f) : ctBarMove.n現在の値 < 150 ? 40 : 111 : 0;

                                this.stModeBar[i].BarTexture.Opacity = (int)((ctBarAnimeIn.n現在の値 - (16 * 16.6f)) * 1.23f);

                                this.stModeBar[i].BarTexture.vc拡大縮小倍率.Y = 1.0f;
                                this.stModeBar[i].BarTexture.t2D描画(TJAPlayer3.app.Device, 320, 347 - BarAnime - BarAnime1, new Rectangle(0, 0, 641, 27));
                                this.stModeBar[i].BarTexture.t2D描画(TJAPlayer3.app.Device, 320, 346 + BarAnime + BarAnime1, new Rectangle(0, 76, 641, 30));

                                this.stModeBar[i].BarTexture.vc拡大縮小倍率.Y = BarAnime / 25.7f + BarAnime1 / 25.7f;
                                this.stModeBar[i].BarTexture.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640, 360, new Rectangle(0, 27, 641, 45));

                                TJAPlayer3.Tx.ModeSelect_Bar[2].vc拡大縮小倍率.Y = 1.0f;
                                TJAPlayer3.Tx.ModeSelect_Bar[2].t2D描画(TJAPlayer3.app.Device, 320, 306, new Rectangle(0, 0, 641, 27));
                                TJAPlayer3.Tx.ModeSelect_Bar[2].t2D描画(TJAPlayer3.app.Device, 320, 334 + (BarAnime + BarAnime1) / 0.95238f, new Rectangle(0, 71, 641, 35));

                                TJAPlayer3.Tx.ModeSelect_Bar[2].vc拡大縮小倍率.Y = (BarAnime + BarAnime1) / 0.95238f;
                                TJAPlayer3.Tx.ModeSelect_Bar[2].t2D拡大率考慮上中央基準描画(TJAPlayer3.app.Device, 640, 333, new Rectangle(0, 27, 641, 1));

                                float anime         = 0;
                                float BarAnimeCount = this.ctBarMove.n現在の値 - 150;

                                if (BarAnimeCount <= 45)
                                {
                                    anime = BarAnimeCount * 3.333333333f;
                                }
                                else
                                {
                                    anime = 150 - (BarAnimeCount - 45) * 0.61764705f;
                                }

                                TJAPlayer3.Tx.ModeSelect_Bar_Chara[i].Opacity = (int)(BarAnimeCount * 2.55f) + (int)(BarAnime * 2.5f);
                                //130
                                TJAPlayer3.Tx.ModeSelect_Bar_Chara[i].t2D中心基準描画(TJAPlayer3.app.Device, 640 - TJAPlayer3.Tx.ModeSelect_Bar_Chara[i].szテクスチャサイズ.Width / 4 + 114 - anime, 360,
                                                                                new Rectangle(0, 0, TJAPlayer3.Tx.ModeSelect_Bar_Chara[i].szテクスチャサイズ.Width / 2, TJAPlayer3.Tx.ModeSelect_Bar_Chara[i].szテクスチャサイズ.Height));

                                TJAPlayer3.Tx.ModeSelect_Bar_Chara[i].t2D中心基準描画(TJAPlayer3.app.Device, 640 + TJAPlayer3.Tx.ModeSelect_Bar_Chara[i].szテクスチャサイズ.Width / 4 - 114 + anime, 360,
                                                                                new Rectangle(TJAPlayer3.Tx.ModeSelect_Bar_Chara[i].szテクスチャサイズ.Width / 2, 0, TJAPlayer3.Tx.ModeSelect_Bar_Chara[i].szテクスチャサイズ.Width / 2, TJAPlayer3.Tx.ModeSelect_Bar_Chara[i].szテクスチャサイズ.Height));

                                TJAPlayer3.Tx.ModeSelect_Bar_Text[i].Opacity = 255;
                                TJAPlayer3.Tx.ModeSelect_Bar_Text[i]?.t2D中心基準描画(TJAPlayer3.app.Device, 640, 355 - BarAnimeCount / 1.5f, new Rectangle(0, 0, 642, 122));

                                TJAPlayer3.Tx.ModeSelect_Bar_Text[i].Opacity = (int)(BarAnimeCount * 2.55f);
                                TJAPlayer3.Tx.ModeSelect_Bar_Text[i]?.t2D中心基準描画(TJAPlayer3.app.Device, 640, 355 + 132 / 2, new Rectangle(0, 122, 642, 148));
                            }
                            else
                            {
                                int BarAnimeY = ctBarAnimeIn.n現在の値 >= (int)(26 * 16.6f) + 100 && ctBarAnimeIn.n現在の値 <= (int)(26 * 16.6f) + 299 ? 600 - (ctBarAnimeIn.n現在の値 - (int)(26 * 16.6f + 100)) * 3 : ctBarAnimeIn.n現在の値 >= (int)(26 * 16.6f) + 100 ? 0 : 600;
                                int BarAnimeX = ctBarAnimeIn.n現在の値 >= (int)(26 * 16.6f) + 100 && ctBarAnimeIn.n現在の値 <= (int)(26 * 16.6f) + 299 ? 100 - (int)((ctBarAnimeIn.n現在の値 - (int)(26 * 16.6f + 100)) * 0.5f) : ctBarAnimeIn.n現在の値 >= (int)(26 * 16.6f) + 100 ? 0 : 100;

                                int BarMoveX = 0;
                                int BarMoveY = 0;

                                if (this.stModeBar[i].n現在存在している行 - n現在の選択行モード選択 != 0)
                                {
                                    if (this.stModeBar[i].n現在存在している行 - this.n現在の選択行モード選択 != 2)
                                    {
                                        BarMoveX = ctBarMove.n現在の値 <= 100 ? (int)(this.ptモード選択バー座標[this.stModeBar[i].n現在存在している行].X - this.ptモード選択バー座標[this.n現在の選択行モード選択].X) - (int)(ctBarMove.n現在の値 / 100f * (this.ptモード選択バー座標[this.stModeBar[i].n現在存在している行].X - this.ptモード選択バー座標[this.n現在の選択行モード選択].X)) : 0;
                                        BarMoveY = ctBarMove.n現在の値 <= 100 ? (int)(this.ptモード選択バー座標[this.stModeBar[i].n現在存在している行].Y - this.ptモード選択バー座標[this.n現在の選択行モード選択].Y) - (int)(ctBarMove.n現在の値 / 100f * (this.ptモード選択バー座標[this.stModeBar[i].n現在存在している行].Y - this.ptモード選択バー座標[this.n現在の選択行モード選択].Y)) : 0;
                                    }
                                    else
                                    {
                                        BarMoveX = ctBarMove.n現在の値 <= 100 ? (int)(this.ptモード選択バー座標[this.stModeBar[i].n現在存在している行].X - this.ptモード選択バー座標[this.n現在の選択行モード選択 + 1].X) - (int)(ctBarMove.n現在の値 / 100f * (this.ptモード選択バー座標[this.stModeBar[i].n現在存在している行].X - this.ptモード選択バー座標[this.n現在の選択行モード選択 + 1].X)) : 0;
                                        BarMoveY = ctBarMove.n現在の値 <= 100 ? (int)(this.ptモード選択バー座標[this.stModeBar[i].n現在存在している行].Y - this.ptモード選択バー座標[this.n現在の選択行モード選択 + 1].Y) - (int)(ctBarMove.n現在の値 / 100f * (this.ptモード選択バー座標[this.stModeBar[i].n現在存在している行].Y - this.ptモード選択バー座標[this.n現在の選択行モード選択 + 1].Y)) : 0;
                                    }
                                }
                                else
                                {
                                    BarMoveX = ctBarMove.n現在の値 <= 100 ? (int)(this.ptモード選択バー座標[this.stModeBar[i].n現在存在している行 - 1].X - this.ptモード選択バー座標[this.n現在の選択行モード選択].X) - (int)(ctBarMove.n現在の値 / 100f * (this.ptモード選択バー座標[this.stModeBar[i].n現在存在している行 - 1].X - this.ptモード選択バー座標[this.n現在の選択行モード選択].X)) : 0;
                                    BarMoveY = ctBarMove.n現在の値 <= 100 ? (int)(this.ptモード選択バー座標[this.stModeBar[i].n現在存在している行 - 1].Y - this.ptモード選択バー座標[this.n現在の選択行モード選択].Y) - (int)(ctBarMove.n現在の値 / 100f * (this.ptモード選択バー座標[this.stModeBar[i].n現在存在している行 - 1].Y - this.ptモード選択バー座標[this.n現在の選択行モード選択].Y)) : 0;
                                }

                                this.stModeBar[i].BarTexture.vc拡大縮小倍率.Y    = 1.0f;
                                TJAPlayer3.Tx.ModeSelect_Bar[2].vc拡大縮小倍率.Y = 1.0f;
                                this.stModeBar[i].BarTexture.t2D描画(TJAPlayer3.app.Device, this.ptモード選択バー座標[stModeBar[i].n現在存在している行].X + BarAnimeX - BarMoveX, this.ptモード選択バー座標[stModeBar[i].n現在存在している行].Y + BarAnimeY - BarMoveY);
                                TJAPlayer3.Tx.ModeSelect_Bar[2].t2D描画(TJAPlayer3.app.Device, this.ptモード選択バー座標[stModeBar[i].n現在存在している行].X + BarAnimeX - BarMoveX, this.ptモード選択バー座標[stModeBar[i].n現在存在している行].Y + BarAnimeY - BarMoveY);
                                TJAPlayer3.Tx.ModeSelect_Bar_Text[i]?.t2D描画(TJAPlayer3.app.Device, this.ptモード選択バー座標[stModeBar[i].n現在存在している行].X + BarAnimeX - BarMoveX, this.ptモード選択バー座標[stModeBar[i].n現在存在している行].Y + BarAnimeY - BarMoveY - 13, new Rectangle(0, 0, 642, 122));
                            }
                        }
                    }

                    TJAPlayer3.NamePlate.tNamePlateDraw(TJAPlayer3.Skin.SongSelect_NamePlate_X[0], TJAPlayer3.Skin.SongSelect_NamePlate_Y[0], 0, false, 255);
                }

                #endregion

                #region [ バージョン表示 ]

#if DEBUG
                //string strVersion = "KTT:J:A:I:2017072200";
                string       strCreator = "https://github.com/AioiLight/TJAPlayer3";
                AssemblyName asmApp     = Assembly.GetExecutingAssembly().GetName();
                TJAPlayer3.act文字コンソール.tPrint(4, 44, C文字コンソール.Eフォント種別.白, "DEBUG BUILD");
                TJAPlayer3.act文字コンソール.tPrint(4, 4, C文字コンソール.Eフォント種別.白, asmApp.Name + " Ver." + TJAPlayer3.VERSION + " (" + strCreator + ")");
                TJAPlayer3.act文字コンソール.tPrint(4, 24, C文字コンソール.Eフォント種別.白, "Skin:" + TJAPlayer3.Skin.Skin_Name + " Ver." + TJAPlayer3.Skin.Skin_Version + " (" + TJAPlayer3.Skin.Skin_Creator + ")");
                //CDTXMania.act文字コンソール.tPrint(4, 24, C文字コンソール.Eフォント種別.白, strSubTitle);
                TJAPlayer3.act文字コンソール.tPrint(4, (720 - 24), C文字コンソール.Eフォント種別.白, "TJAPlayer3 forked TJAPlayer2 forPC(kairera0467)");
#endif
                #endregion

                CStage.Eフェーズ eフェーズid = base.eフェーズID;
                switch (eフェーズid)
                {
                case CStage.Eフェーズ.共通_フェードイン:
                    if (this.actFI.On進行描画() != 0)
                    {
                        base.eフェーズID = CStage.Eフェーズ.共通_通常状態;
                    }
                    break;

                case CStage.Eフェーズ.共通_フェードアウト:
                    if (this.actFO.On進行描画() == 0)
                    {
                        TJAPlayer3.Skin.bgmタイトル.t停止する();
                        TJAPlayer3.Skin.bgmタイトルイン.t停止する();
                        break;
                    }
                    base.eフェーズID = CStage.Eフェーズ.共通_終了状態;

                    switch (this.n現在の選択行モード選択)
                    {
                    case (int)E戻り値.GAMESTART - 1:
                        return((int)E戻り値.GAMESTART);

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

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

                    case (int)E戻り値.EXIT - 1:
                        return((int)E戻り値.EXIT);
                    }
                    break;

                case CStage.Eフェーズ.タイトル_起動画面からのフェードイン:
                    if (this.actFIfromSetup.On進行描画() != 0)
                    {
                        base.eフェーズID = CStage.Eフェーズ.共通_通常状態;
                    }
                    break;
                }
            }
            return(0);
        }