OSDN Git Service

#28821 DTXManiaをviewerとして使用している時に、譜面の再生を途中で止めるか、最後まで再生した時に、タイマーを止めてパネル文字列を非表示とするよう修正。
authoryyagi <yyagi@16f42ceb-6dc6-49c8-ba94-f2d53467949d>
Thu, 8 May 2014 15:31:49 +0000 (15:31 +0000)
committeryyagi <yyagi@16f42ceb-6dc6-49c8-ba94-f2d53467949d>
Thu, 8 May 2014 15:31:49 +0000 (15:31 +0000)
git-svn-id: http://svn.osdn.jp/svnroot/dtxmania/branches/140113(DTXMania098%20with%2028821%20DTXVmode)@718 16f42ceb-6dc6-49c8-ba94-f2d53467949d

DTXManiaプロジェクト/コード/ステージ/07.演奏/CAct演奏パネル文字列.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/CStage演奏画面共通.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/ギター画面/CStage演奏ギター画面.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/ドラム画面/CStage演奏ドラム画面.cs
実行時フォルダ/DTXManiaGR.exe

index 5384e1a..0e8cce2 100644 (file)
@@ -10,12 +10,14 @@ namespace DTXMania
 {\r
        internal class CAct演奏パネル文字列 : CActivity\r
        {\r
+\r
                // コンストラクタ\r
 \r
                public CAct演奏パネル文字列()\r
                {\r
                        base.b活性化してない = true;\r
                        this.strパネル文字列 = "";\r
+                       this.Start();\r
                }\r
                \r
                \r
@@ -51,9 +53,19 @@ namespace DTXMania
                                        }\r
                                        this.ct進行用 = new CCounter( -278, this.n文字列の長さdot / 2, 8, CDTXMania.Timer );\r
                                }\r
+                               this.Start();\r
                        }\r
                }\r
 \r
+               public void Stop()\r
+               {\r
+                       this.bMute = true;\r
+               }\r
+               public void Start()\r
+               {\r
+                       this.bMute = false;\r
+               }\r
+\r
 \r
                // CActivity 実装\r
 \r
@@ -63,6 +75,7 @@ namespace DTXMania
                        this.n文字列の長さdot = 0;\r
                        this.txPanel = null;\r
                        this.ct進行用 = new CCounter();\r
+                       this.Start();\r
                        base.On活性化();\r
                }\r
                public override void On非活性化()\r
@@ -98,7 +111,7 @@ namespace DTXMania
                }\r
                public int t進行描画( int x, int y )\r
                {\r
-                       if( !base.b活性化してない )\r
+                       if( !base.b活性化してない && !this.bMute )\r
                        {\r
                                this.ct進行用.t進行Loop();\r
                                if( ( string.IsNullOrEmpty( this.strパネル文字列 ) || ( this.txPanel == null ) ) || ( this.ct進行用 == null ) )\r
@@ -132,6 +145,7 @@ namespace DTXMania
                private int n文字列の長さdot;\r
                private string strパネル文字列;\r
                private CTexture txPanel;\r
+               private bool bMute;\r
                //-----------------\r
                #endregion\r
        }\r
index 73d5661..c184727 100644 (file)
@@ -2232,6 +2232,8 @@ namespace DTXMania
                        CDTXMania.DTX.t全チップの再生停止とミキサーからの削除();\r
                        this.actAVI.Stop();\r
                        this.actBGA.Stop();\r
+                       this.actPanel.Stop();                           // PANEL表示停止\r
+                       CDTXMania.Timer.t一時停止();                // 再生時刻カウンタ停止\r
 \r
                        this.n現在のトップChip = CDTXMania.DTX.listChip.Count - 1;        // 終端にシーク\r
 \r
@@ -2348,6 +2350,7 @@ namespace DTXMania
                        CSound管理.rc演奏用タイマ.t再開();\r
                        //CDTXMania.Timer.t再開();\r
                        this.bPAUSE = false;                                                            // システムがPAUSE状態だったら、強制解除\r
+                       this.actPanel.Start();\r
                        #endregion\r
                        #endregion\r
                }\r
index 7baaccb..7b1e928 100644 (file)
@@ -119,6 +119,7 @@ namespace DTXMania
                                                t演奏位置の変更( CDTXMania.DTXVmode.nStartBar );\r
                                        }\r
 \r
+                                       CDTXMania.Sound管理.tDisableUpdateBufferAutomatically();\r
                                        base.b初めての進行描画 = false;\r
                                }\r
                                if( CDTXMania.ConfigIni.bSTAGEFAILED有効 && ( base.eフェーズID == CStage.Eフェーズ.共通_通常状態 ) )\r
@@ -162,6 +163,11 @@ namespace DTXMania
                                {\r
                                        if ( CDTXMania.DTXVmode.Enabled )\r
                                        {\r
+                                               if ( CDTXMania.Timer.b停止していない )\r
+                                               {\r
+                                                       this.actPanel.Stop();                           // PANEL表示停止\r
+                                                       CDTXMania.Timer.t一時停止();                // 再生時刻カウンタ停止\r
+                                               }\r
                                                Thread.Sleep( 5 );\r
                                                // DTXCからの次のメッセージを待ち続ける\r
                                        }\r
index 17cb5a0..bfc4360 100644 (file)
@@ -215,12 +215,11 @@ Trace.TraceInformation( "rc演奏用タイマ.n現在時刻=" + CSound管理.rc
                                {\r
                                        if ( CDTXMania.DTXVmode.Enabled )\r
                                        {\r
-                                               // 何かサウンドが鳴っている間は、待機する\r
-                                               //if ( CDTXMania.Timer.b停止していない )\r
-                                               //{\r
-                                               //    this.actPanel.SetPanelString( "" );       // まだPANELの復活ができていない\r
-                                               //    CDTXMania.Timer.t一時停止();\r
-                                               //}\r
+                                               if ( CDTXMania.Timer.b停止していない )\r
+                                               {\r
+                                                       this.actPanel.Stop();                           // PANEL表示停止\r
+                                                   CDTXMania.Timer.t一時停止();            // 再生時刻カウンタ停止\r
+                                               }\r
                                                Thread.Sleep( 5 );\r
                                                // DTXCからの次のメッセージを待ち続ける\r
                                        }\r
index b3efa08..62e577c 100644 (file)
Binary files a/実行時フォルダ/DTXManiaGR.exe and b/実行時フォルダ/DTXManiaGR.exe differ