OSDN Git Service

#31053 曲読み込み画面でESCを押すことで、読み込みを中止して選曲画面に戻るようにした。
authoryyagi <yyagi@16f42ceb-6dc6-49c8-ba94-f2d53467949d>
Thu, 28 Mar 2013 14:01:01 +0000 (14:01 +0000)
committeryyagi <yyagi@16f42ceb-6dc6-49c8-ba94-f2d53467949d>
Thu, 28 Mar 2013 14:01:01 +0000 (14:01 +0000)
git-svn-id: http://svn.osdn.jp/svnroot/dtxmania/trunk@545 16f42ceb-6dc6-49c8-ba94-f2d53467949d

DTXManiaプロジェクト/コード/ステージ/06.曲読み込み/CStage曲読み込み.cs
DTXManiaプロジェクト/コード/全体/CDTXMania.cs
DTXManiaプロジェクト/コード/全体/C定数.cs
実行時フォルダ/DTXManiaGR.exe

index 478e685..2ac5d77 100644 (file)
@@ -199,6 +199,18 @@ namespace DTXMania
                        //-----------------------------\r
                        #endregion\r
 \r
+                       #region [ ESC押下時は選曲画面に戻る ]\r
+                       if ( tキー入力() )\r
+                       {\r
+                               if ( this.sd読み込み音 != null )\r
+                               {\r
+                                       this.sd読み込み音.tサウンドを停止する();\r
+                                       this.sd読み込み音.t解放する();\r
+                               }\r
+                               return (int) E曲読込画面の戻り値.読込中止;\r
+                       }\r
+                       #endregion\r
+\r
                        #region [ 背景、音符+タイトル表示 ]\r
                        //-----------------------------\r
                        if( this.tx背景 != null )\r
@@ -226,7 +238,7 @@ namespace DTXMania
                                                                                                                                                // 必ず一度「CStaeg.Eフェーズ.共通_フェードイン」フェーズを経由させること。\r
                                                                                                                                                // さもないと、曲読み込みが完了するまで、曲読み込み画面が描画されない。\r
                                                base.eフェーズID = CStage.Eフェーズ.NOWLOADING_DTXファイルを読み込む;\r
-                                       return 0;\r
+                                       return (int) E曲読込画面の戻り値.継続;\r
 \r
                                case CStage.Eフェーズ.NOWLOADING_DTXファイルを読み込む:\r
                                        {\r
@@ -260,7 +272,7 @@ namespace DTXMania
 \r
                                                base.eフェーズID = CStage.Eフェーズ.NOWLOADING_WAVファイルを読み込む;\r
                                                timeBeginLoadWAV = DateTime.Now;\r
-                                               return 0;\r
+                                               return (int) E曲読込画面の戻り値.継続;\r
                                        }\r
 \r
                                case CStage.Eフェーズ.NOWLOADING_WAVファイルを読み込む:\r
@@ -305,7 +317,7 @@ namespace DTXMania
 \r
                                                        base.eフェーズID = CStage.Eフェーズ.NOWLOADING_BMPファイルを読み込む;\r
                                                }\r
-                                               return 0;\r
+                                               return (int) E曲読込画面の戻り値.継続;\r
                                        }\r
 \r
                                case CStage.Eフェーズ.NOWLOADING_BMPファイルを読み込む:\r
@@ -340,7 +352,7 @@ namespace DTXMania
                                                }\r
                                                CDTXMania.Timer.t更新();\r
                                                base.eフェーズID = CStage.Eフェーズ.NOWLOADING_システムサウンドBGMの完了を待つ;\r
-                                               return 0;\r
+                                               return (int) E曲読込画面の戻り値.継続;\r
                                        }\r
 \r
                                case CStage.Eフェーズ.NOWLOADING_システムサウンドBGMの完了を待つ:\r
@@ -355,7 +367,7 @@ namespace DTXMania
                                                        this.actFO.tフェードアウト開始();\r
                                                        base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト;\r
                                                }\r
-                                               return 0;\r
+                                               return (int) E曲読込画面の戻り値.継続;\r
                                        }\r
 \r
                                case CStage.Eフェーズ.共通_フェードアウト:\r
@@ -370,11 +382,26 @@ namespace DTXMania
                                        {\r
                                                this.sd読み込み音.t解放する();\r
                                        }\r
-                                       return 1;\r
+                                       return (int) E曲読込画面の戻り値.読込完了;\r
+                       }\r
+                       return (int) E曲読込画面の戻り値.継続;\r
+               }\r
+\r
+               /// <summary>\r
+               /// ESC押下時、trueを返す\r
+               /// </summary>\r
+               /// <returns></returns>\r
+               protected bool tキー入力()\r
+               {\r
+                       IInputDevice keyboard = CDTXMania.Input管理.Keyboard;\r
+                       if      ( keyboard.bキーが押された( (int) SlimDX.DirectInput.Key.Escape ) )              // escape (exit)\r
+                       {\r
+                               return true;\r
                        }\r
-                       return 0;\r
+                       return false;\r
                }\r
 \r
+\r
                private void ShowProgressByFilename(string strファイル名 )\r
                {\r
                        if ( graphicsFilename != null && ftFilename != null )\r
index 54b5259..34ae0af 100644 (file)
@@ -969,6 +969,29 @@ namespace DTXMania
                                                        CDTXMania.Pad.st検知したデバイス.Clear();       // 入力デバイスフラグクリア(2010.9.11)\r
 \r
                                                        r現在のステージ.On非活性化();\r
+\r
+                                                       #region [ ESC押下時は、曲の読み込みを中止して選曲画面に戻る ]\r
+                                                       if ( this.n進行描画の戻り値 == (int) E曲読込画面の戻り値.読込中止 )\r
+                                                       {\r
+                                                               //DTX.t全チップの再生停止();\r
+                                                               DTX.On非活性化();\r
+                                                               Trace.TraceInformation( "曲の読み込みを中止しました。" );\r
+                                                               this.tガベージコレクションを実行する();\r
+                                                               Trace.TraceInformation( "----------------------" );\r
+                                                               Trace.TraceInformation( "■ 選曲" );\r
+                                                               stage選曲.On活性化();\r
+                                                               r直前のステージ = r現在のステージ;\r
+                                                               r現在のステージ = stage選曲;\r
+                                                               foreach ( STPlugin pg in this.listプラグイン )\r
+                                                               {\r
+                                                                       Directory.SetCurrentDirectory( pg.strプラグインフォルダ );\r
+                                                                       pg.plugin.Onステージ変更();\r
+                                                                       Directory.SetCurrentDirectory( CDTXMania.strEXEのあるフォルダ );\r
+                                                               }\r
+                                                               break;\r
+                                                       }\r
+                                                       #endregion\r
+\r
                                                        if( !ConfigIni.bギタレボモード )\r
                                                        {\r
                                                                Trace.TraceInformation( "----------------------" );\r
index 4a93818..bc701e0 100644 (file)
@@ -226,6 +226,12 @@ namespace DTXMania
                ステージ失敗,\r
                ステージクリア\r
        }\r
+       internal enum E曲読込画面の戻り値\r
+       {\r
+               継続 = 0,\r
+               読込完了,\r
+               読込中止\r
+       }\r
        /// <summary>\r
        /// 入力ラグ表示タイプ\r
        /// </summary>\r
index cb76833..3a7bffb 100644 (file)
Binary files a/実行時フォルダ/DTXManiaGR.exe and b/実行時フォルダ/DTXManiaGR.exe differ