OSDN Git Service

#28821 BGAの途中再生に対応。
authoryyagi <yyagi@16f42ceb-6dc6-49c8-ba94-f2d53467949d>
Sat, 8 Feb 2014 05:10:28 +0000 (05:10 +0000)
committeryyagi <yyagi@16f42ceb-6dc6-49c8-ba94-f2d53467949d>
Sat, 8 Feb 2014 05:10:28 +0000 (05:10 +0000)
#28821 AVIの途中再生に関して、CAct演奏AVIにあった既存メソッド(SkipStart())を利用するようにした。
#28821 DTXVモード中は、コンボ表示・判定表示を行わないようにした。
#28821 途中再生の開始時に発生する、WAVチップのシーク(PAUSE)ロジックを若干修正。
#28821 若干のコメント修正。

git-svn-id: http://svn.osdn.jp/svnroot/dtxmania/branches/140113(DTXMania098%20with%2028821%20DTXVmode)@680 16f42ceb-6dc6-49c8-ba94-f2d53467949d

DTXManiaプロジェクト/コード/スコア、曲/CDTX.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/CStage演奏画面共通.cs
実行時フォルダ/DTXManiaGR.exe

index 3494f1e..99f4aef 100644 (file)
@@ -588,6 +588,10 @@ namespace DTXMania
                                        this.b自動再生音チャンネルである,\r
                                        CDTX.tZZ( this.n整数値 ) );\r
                        }\r
+                       /// <summary>\r
+                       /// チップの再生長を取得する。現状、WAVチップとBGAチップでのみ使用可能。\r
+                       /// </summary>\r
+                       /// <returns>再生長(ms)</returns>\r
                        public int GetDuration()\r
                        {\r
                                int nDuration = 0;\r
@@ -604,7 +608,6 @@ namespace DTXMania
                                                int dwRate = (int) this.rAVI.avi.dwレート;\r
                                                int dwScale = (int) this.rAVI.avi.dwスケール;\r
                                                nDuration = (int) ( 1000.0f * dwScale / dwRate * this.rAVI.avi.GetMaxFrameCount() );\r
-//Trace.TraceInformation( "CAVI: nDuration=" + nDuration + ", dwScale=" + dwScale + ", dwRate=" + dwRate + ", frames=" + this.rAVI.avi.GetMaxFrameCount() );\r
                                        }\r
                                }\r
 \r
index ce9d832..f00248d 100644 (file)
@@ -2220,8 +2220,6 @@ namespace DTXMania
                        this.actBGA.Stop();\r
 \r
                        this.n現在のトップChip = CDTXMania.DTX.listChip.Count - 1;        // 終端にシーク\r
-                       actCombo.On活性化(); // コンボ初期化\r
-\r
 \r
                        // 自分自身のOn活性化()相当の処理もすべき。\r
                }\r
@@ -2231,9 +2229,6 @@ namespace DTXMania
                        // まず全サウンドオフにする\r
                        CDTXMania.DTX.t全チップの再生停止();\r
 \r
-                       actCombo.On活性化(); // コンボ初期化\r
-\r
-\r
                        #region [ 再生開始小節の変更 ]\r
                        nStartBar++;                                                                    // +1が必要\r
 \r
@@ -2298,52 +2293,23 @@ namespace DTXMania
                                                {\r
                                                        CDTXMania.DTX.tチップの再生( pChip, CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, (int) Eレーン.BGM, CDTXMania.DTX.nモニタを考慮した音量( E楽器パート.UNKNOWN ) );\r
                                                        #region [ PAUSEする ]\r
-//Trace.TraceInformation( "サウンド 発生時刻ms=" + pChip.n発声時刻ms + ", 再生位置=" + ( nStartTime - pChip.n発声時刻ms ) );\r
-                                                       for ( int j = 0; j < wc.rSound.Length; j++ )\r
+                                                       int j = wc.n現在再生中のサウンド番号;\r
+                                                       if ( wc.rSound[ j ] != null )\r
                                                        {\r
-                                                               if ( wc.rSound[ j ] != null )\r
-                                                               {\r
-                                                                       wc.rSound[ j ].t再生を一時停止する();\r
-                                                                       wc.rSound[ j ].t再生位置を変更する( nStartTime - pChip.n発声時刻ms );\r
-                                                                       pausedCSound.Add( wc.rSound[ j ] );\r
-                                                                       break;\r
-                                                               }\r
+                                                               wc.rSound[ j ].t再生を一時停止する();\r
+                                                               wc.rSound[ j ].t再生位置を変更する( nStartTime - pChip.n発声時刻ms );\r
+                                                               pausedCSound.Add( wc.rSound[ j ] );\r
                                                        }\r
                                                        #endregion\r
                                                }\r
                                        }\r
-                                       else if ( pChip.nチャンネル番号 == 0x54 && !bAVIPlaying )\r
-                                       {\r
-                                               switch ( pChip.eAVI種別 )\r
-                                               {\r
-                                                       case EAVI種別.AVI:\r
-                                                               if ( pChip.rAVI != null )\r
-                                                               {\r
-                                                                       this.actAVI.Start( pChip.nチャンネル番号, pChip.rAVI, 278, 355, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, pChip.n発声時刻ms );\r
-                                                               }\r
-                                                               break;\r
-\r
-                                                       case EAVI種別.AVIPAN:\r
-                                                               if ( pChip.rAVIPan != null )\r
-                                                               {\r
-                                                                       this.actAVI.Start( pChip.nチャンネル番号, pChip.rAVI, pChip.rAVIPan.sz開始サイズ.Width, pChip.rAVIPan.sz開始サイズ.Height, pChip.rAVIPan.sz終了サイズ.Width, pChip.rAVIPan.sz終了サイズ.Height, pChip.rAVIPan.pt動画側開始位置.X, pChip.rAVIPan.pt動画側開始位置.Y, pChip.rAVIPan.pt動画側終了位置.X, pChip.rAVIPan.pt動画側終了位置.Y, pChip.rAVIPan.pt表示側開始位置.X, pChip.rAVIPan.pt表示側開始位置.Y, pChip.rAVIPan.pt表示側終了位置.X, pChip.rAVIPan.pt表示側終了位置.Y, pChip.n総移動時間, pChip.n発声時刻ms );\r
-                                                               }\r
-                                                               break;\r
-                                               }\r
-                                               bAVIPlaying = true;             // 同時に2つ以上のAVIは再生しない仕様のため、演奏開始地点以前で1つAVIチップを見つければあとはスキップできる\r
-                                       }\r
                                }\r
                        }\r
                        #endregion\r
-                       // 以下未実装 ここから\r
-                       #region [ 演奏開始時点で既に表示されているBGAの再生とシーク (BGAの動きの途中状況を反映すること) ]\r
+                       #region [ 演奏開始時点で既に表示されているBGAとAVIの、シークと再生 ]\r
+                       this.actBGA.SkipStart( nStartTime );\r
+                       this.actAVI.SkipStart( nStartTime );\r
                        #endregion\r
-\r
-\r
-                       #region [ 演奏開始時点で既に表示されているAVIの再生とシーク (AVIの動きの途中状況を反映すること) ]\r
-                       #endregion\r
-\r
-                       // 未実装 ここまで\r
                        #region [ PAUSEしていたサウンドを一斉に再生再開する(ただしタイマを止めているので、ここではまだ再生開始しない) ]\r
                        foreach ( CSound cs in pausedCSound )\r
                        {\r
@@ -2364,7 +2330,7 @@ namespace DTXMania
 \r
                /// <summary>\r
                /// DTXV用の設定をする。(全AUTOなど)\r
-               /// 設定のバックアップはしないので、あとでConfig.iniを上書き保存しないこと。\r
+               /// 元の設定のバックアップなどはしないので、あとでConfig.iniを上書き保存しないこと。\r
                /// </summary>\r
                protected void tDTXV用の設定()\r
                {\r
@@ -2399,6 +2365,9 @@ namespace DTXMania
                                CDTXMania.ConfigIni.bReverse[ i ] = false;\r
                                CDTXMania.ConfigIni.bSudden[ i ] = false;\r
                                CDTXMania.ConfigIni.eInvisible[ i ] = EInvisible.OFF;\r
+                               CDTXMania.ConfigIni.eRandom[ i ] = Eランダムモード.OFF;\r
+                               CDTXMania.ConfigIni.n表示可能な最小コンボ数[ i ] = 65535;\r
+                               CDTXMania.ConfigIni.判定文字表示位置[ i ] = E判定文字表示位置.表示OFF;\r
                        }\r
 \r
                        CDTXMania.ConfigIni.eDark = Eダークモード.OFF;\r
@@ -2409,6 +2378,10 @@ namespace DTXMania
                        CDTXMania.ConfigIni.bストイックモード = false;\r
                        CDTXMania.ConfigIni.bドラム打音を発声する = true;\r
                        CDTXMania.ConfigIni.bBGM音を発声する = true;\r
+\r
+                       CDTXMania.ConfigIni.nRisky = 0;\r
+                       CDTXMania.ConfigIni.nShowLagType = 0;\r
+                       CDTXMania.ConfigIni.ドラムコンボ文字の表示位置 = Eドラムコンボ文字の表示位置.OFF;\r
                }\r
 \r
 \r
index 38165ea..bef70d5 100644 (file)
Binary files a/実行時フォルダ/DTXManiaGR.exe and b/実行時フォルダ/DTXManiaGR.exe differ