OSDN Git Service

#25253 Guitar/Bass wailings are avilable AFTER the wailng chips come.
authoryyagi <yyagi@16f42ceb-6dc6-49c8-ba94-f2d53467949d>
Sun, 29 May 2011 13:29:58 +0000 (13:29 +0000)
committeryyagi <yyagi@16f42ceb-6dc6-49c8-ba94-f2d53467949d>
Sun, 29 May 2011 13:29:58 +0000 (13:29 +0000)
git-svn-id: http://svn.osdn.jp/svnroot/dtxmania/trunk@178 16f42ceb-6dc6-49c8-ba94-f2d53467949d

DTXManiaプロジェクト/コード/ステージ/07.演奏/CStage演奏画面共通.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/ギター画面/CStage演奏ギター画面.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/ドラム画面/CStage演奏ドラム画面.cs

index d385bd0..ab1e955 100644 (file)
@@ -1854,11 +1854,76 @@ namespace DTXMania
                }\r
                protected abstract void t進行描画・チップ・ドラムス( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip );\r
                protected abstract void t進行描画・チップ・ギター( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip );\r
-               protected abstract void t進行描画・チップ・ギター・ウェイリング( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip );\r
+               protected virtual void t進行描画・チップ・ギター・ウェイリング( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip )\r
+               {\r
+                       if ( configIni.bGuitar有効 )\r
+                       {\r
+                               if ( configIni.bSudden.Guitar )\r
+                               {\r
+                                       pChip.b可視 = pChip.nバーからの距離dot.Guitar < 200;\r
+                               }\r
+                               if ( configIni.bHidden.Guitar && ( pChip.nバーからの距離dot.Guitar < 100 ) )\r
+                               {\r
+                                       pChip.b可視 = false;\r
+                               }\r
+                               //\r
+                               // ここにチップ更新処理が入る(overrideで入れる)。といっても座標とチップサイズが違うだけで処理はまるまる同じ。\r
+                               //\r
+                               if ( !pChip.bHit && ( pChip.nバーからの距離dot.Guitar < 0 ) )\r
+                               {\r
+                                       if ( pChip.nバーからの距離dot.Guitar < -234 )    // #25253 2011.5.29 yyagi: Don't set pChip.bHit=true for wailing at once. It need to 1sec-delay (234pix per 1sec). \r
+                                       {\r
+                                               pChip.bHit = true;\r
+                                       }\r
+                                       if ( configIni.bAutoPlay.Guitar )\r
+                                       {\r
+                                               pChip.bHit = true;                                                      // #25253 2011.5.29 yyagi: Set pChip.bHit=true if autoplay.\r
+                                               this.actWailingBonus.Start( E楽器パート.GUITAR, this.r現在の歓声Chip.Guitar );\r
+                                       }\r
+                               }\r
+                               return;\r
+                       }\r
+                       pChip.bHit = true;\r
+\r
+               }\r
                protected abstract void t進行描画・チップ・フィルイン( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip );\r
                protected abstract void t進行描画・チップ・小節線( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip );\r
                protected abstract void t進行描画・チップ・ベース( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip );\r
-               protected abstract void t進行描画・チップ・ベース・ウェイリング( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip );\r
+               protected virtual void t進行描画・チップ・ベース・ウェイリング( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip )\r
+               {\r
+                       if ( configIni.bGuitar有効 )\r
+                       {\r
+                               if ( configIni.bSudden.Bass)\r
+                               {\r
+                                       pChip.b可視 = pChip.nバーからの距離dot.Bass < 200;\r
+                               }\r
+                               if ( configIni.bHidden.Bass && ( pChip.nバーからの距離dot.Bass < 100 ) )\r
+                               {\r
+                                       pChip.b可視 = false;\r
+                               }\r
+                               //\r
+                               // ここにチップ更新処理が入る(overrideで入れる)。といっても座標とチップサイズが違うだけで処理はまるまる同じ。\r
+                               //\r
+                               if ( !pChip.bHit && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
+                               {\r
+                                       if ( pChip.nバーからの距離dot.Bass < -234 )              // #25253 2011.5.29 yyagi: Don't set pChip.bHit=true for wailing at once. It need to 1sec-delay (234pix per 1sec).\r
+                                       {\r
+                                               pChip.bHit = true;\r
+                                       }\r
+                                       //\r
+                                       // ここにチップ更新処理が入る(overrideで入れる)。といっても座標とチップサイズが違うだけで処理はまるまる同じ。\r
+                                       //\r
+                                       \r
+                                       if ( configIni.bAutoPlay.Bass )\r
+                                       {\r
+                                               this.actWailingBonus.Start( E楽器パート.BASS, this.r現在の歓声Chip.Bass );\r
+                                               pChip.bHit = true;                                                      // #25253 2011.5.29 yyagi: Set pChip.bHit=true if autoplay.\r
+                                       }\r
+                               }\r
+                               return;\r
+                       }\r
+                       pChip.bHit = true;\r
+               }\r
                protected abstract void t進行描画・チップ・空打ち音設定・ドラム( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip );\r
                protected void t進行描画・チップアニメ()\r
                {\r
index 03fc0f7..e227d67 100644 (file)
@@ -2395,53 +2395,59 @@ namespace DTXMania
                }\r
                protected override void t進行描画・チップ・ギター・ウェイリング( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip )\r
                {\r
-                       if( configIni.bGuitar有効 )\r
+                       if ( configIni.bGuitar有効 )\r
                        {\r
-                               if( configIni.bSudden.Guitar )\r
-                               {\r
-                                       pChip.b可視 = pChip.nバーからの距離dot.Guitar < 200;\r
-                               }\r
-                               if( configIni.bHidden.Guitar && ( pChip.nバーからの距離dot.Guitar < 100 ) )\r
-                               {\r
-                                       pChip.b可視 = false;\r
-                               }\r
-                               if( !pChip.bHit && pChip.b可視 )\r
+                               //if ( configIni.bSudden.Guitar )\r
+                               //{\r
+                               //    pChip.b可視 = pChip.nバーからの距離dot.Guitar < 200;\r
+                               //}\r
+                               //if ( configIni.bHidden.Guitar && ( pChip.nバーからの距離dot.Guitar < 100 ) )\r
+                               //{\r
+                               //    pChip.b可視 = false;\r
+                               //}\r
+\r
+                               //\r
+                               // 後日、以下の部分を何とかCStage演奏画面共通.csに移したい。\r
+                               //\r
+                               if ( !pChip.bHit && pChip.b可視 )\r
                                {\r
                                        int num10 = 0x19;\r
                                        int num11 = configIni.bReverse.Guitar ? ( 0x171 - pChip.nバーからの距離dot.Guitar ) : ( 40 + pChip.nバーからの距離dot.Guitar );\r
                                        int num12 = num11;\r
                                        int num13 = 0;\r
-                                       if( ( num12 < ( 0x199 + num10 ) ) && ( num12 > -num10 ) )\r
+                                       if ( ( num12 < ( 0x199 + num10 ) ) && ( num12 > -num10 ) )\r
                                        {\r
                                                int num14 = this.ctWailingチップ模様アニメ.n現在の値;\r
                                                Rectangle rectangle5 = new Rectangle( 0x60 + ( num14 * 20 ), 0, 20, 50 );\r
-                                               if( num12 < num10 )\r
+                                               if ( num12 < num10 )\r
                                                {\r
                                                        rectangle5.Y += num10 - num12;\r
                                                        rectangle5.Height -= num10 - num12;\r
                                                        num13 = num10 - num12;\r
                                                }\r
-                                               if( num12 > ( 0x199 - num10 ) )\r
+                                               if ( num12 > ( 0x199 - num10 ) )\r
                                                {\r
                                                        rectangle5.Height -= num12 - ( 0x199 - num10 );\r
                                                }\r
-                                               if( ( rectangle5.Bottom > rectangle5.Top ) && ( this.txチップ != null ) )\r
+                                               if ( ( rectangle5.Bottom > rectangle5.Top ) && ( this.txチップ != null ) )\r
                                                {\r
                                                        this.txチップ.t2D描画( CDTXMania.app.Device, 0x8b, ( num11 - num10 ) + num13, rectangle5 );\r
                                                }\r
                                        }\r
                                }\r
-                               if( !pChip.bHit && ( pChip.nバーからの距離dot.Guitar < 0 ) )\r
-                               {\r
-                                       pChip.bHit = true;\r
-                                       if( configIni.bAutoPlay.Guitar )\r
-                                       {\r
-                                               this.actWailingBonus.Start( E楽器パート.GUITAR, this.r現在の歓声Chip.Guitar );\r
-                                       }\r
-                               }\r
-                               return;\r
+                               //    if( !pChip.bHit && ( pChip.nバーからの距離dot.Guitar < 0 ) )\r
+                               //    {\r
+                               //        pChip.bHit = true;\r
+                               //        if( configIni.bAutoPlay.Guitar )\r
+                               //        {\r
+                               //            this.actWailingBonus.Start( E楽器パート.GUITAR, this.r現在の歓声Chip.Guitar );\r
+                               //        }\r
+                               //    }\r
+                               //    return;\r
+                               //}\r
+                               //pChip.bHit = true;\r
                        }\r
-                       pChip.bHit = true;\r
+                       base.t進行描画・チップ・ギター・ウェイリング( configIni, ref dTX, ref pChip );\r
                }\r
                protected override void t進行描画・チップ・フィルイン( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip )\r
                {\r
@@ -2568,24 +2574,30 @@ namespace DTXMania
                {\r
                        if ( configIni.bGuitar有効 )\r
                        {\r
-                               if ( configIni.bSudden.Bass )\r
-                               {\r
-                                       pChip.b可視 = pChip.nバーからの距離dot.Bass < 200;\r
-                               }\r
-                               if ( configIni.bHidden.Bass && ( pChip.nバーからの距離dot.Bass < 100 ) )\r
-                               {\r
-                                       pChip.b可視 = false;\r
-                               }\r
+                               //if ( configIni.bSudden.Bass )\r
+                               //{\r
+                               //    pChip.b可視 = pChip.nバーからの距離dot.Bass < 200;\r
+                               //}\r
+                               //if ( configIni.bHidden.Bass && ( pChip.nバーからの距離dot.Bass < 100 ) )\r
+                               //{\r
+                               //    pChip.b可視 = false;\r
+                               //}\r
+\r
+                               //\r
+                               // 後日、以下の部分を何とかCStage演奏画面共通.csに移したい。\r
+                               //\r
                                if ( !pChip.bHit && pChip.b可視 )\r
                                {\r
-                                       int num15 = 0x19;\r
-                                       int num16 = configIni.bReverse.Bass ? ( 0x171 - pChip.nバーからの距離dot.Bass ) : ( 40 + pChip.nバーからの距離dot.Bass );\r
-                                       int num17 = num16;\r
+                                       int[] y_base = { 40, 0x171 };\r
+\r
+                                       const int num15 = 0x19;\r
+                                       int y = configIni.bReverse.Bass ? ( y_base[1] - pChip.nバーからの距離dot.Bass ) : ( y_base[0] + pChip.nバーからの距離dot.Bass );\r
+                                       int num17 = y;\r
                                        int num18 = 0;\r
                                        if ( ( num17 < ( 0x199 + num15 ) ) && ( num17 > -num15 ) )\r
                                        {\r
-                                               int num19 = this.ctWailingチップ模様アニメ.n現在の値;\r
-                                               Rectangle rectangle6 = new Rectangle( 0x60 + ( num19 * 20 ), 0, 20, 50 );\r
+                                               int c = this.ctWailingチップ模様アニメ.n現在の値;\r
+                                               Rectangle rectangle6 = new Rectangle( 0x60 + ( c * 20 ), 0, 20, 50 );\r
                                                if ( num17 < num15 )\r
                                                {\r
                                                        rectangle6.Y += num15 - num17;\r
@@ -2598,21 +2610,23 @@ namespace DTXMania
                                                }\r
                                                if ( ( rectangle6.Bottom > rectangle6.Top ) && ( this.txチップ != null ) )\r
                                                {\r
-                                                       this.txチップ.t2D描画( CDTXMania.app.Device, 0x251, ( num16 - num15 ) + num18, rectangle6 );\r
+                                                       this.txチップ.t2D描画( CDTXMania.app.Device, 0x251, ( y - num15 ) + num18, rectangle6 );\r
                                                }\r
                                        }\r
                                }\r
-                               if ( !pChip.bHit && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
-                               {\r
-                                       pChip.bHit = true;\r
-                                       if ( configIni.bAutoPlay.Bass )\r
-                                       {\r
-                                               this.actWailingBonus.Start( E楽器パート.BASS, this.r現在の歓声Chip.Bass );\r
-                                       }\r
-                               }\r
-                               return;\r
+                               //    if ( !pChip.bHit && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
+                               //    {\r
+                               //        pChip.bHit = true;\r
+                               //        if ( configIni.bAutoPlay.Bass )\r
+                               //        {\r
+                               //            this.actWailingBonus.Start( E楽器パート.BASS, this.r現在の歓声Chip.Bass );\r
+                               //        }\r
+                               //    }\r
+                               //    return;\r
+                               //}\r
+                               //pChip.bHit = true;\r
+                               base.t進行描画・チップ・ベース・ウェイリング( configIni, ref dTX, ref pChip );\r
                        }\r
-                       pChip.bHit = true;\r
                }\r
                protected override void t進行描画・チップ・空打ち音設定・ドラム( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip )\r
                {\r
index 3115cf9..b11d75f 100644 (file)
@@ -4140,14 +4140,16 @@ namespace DTXMania
                {\r
                        if ( configIni.bGuitar有効 )\r
                        {\r
-                               if ( configIni.bSudden.Guitar )\r
-                               {\r
-                                       pChip.b可視 = pChip.nバーからの距離dot.Guitar < 200;\r
-                               }\r
-                               if ( configIni.bHidden.Guitar && ( pChip.nバーからの距離dot.Guitar < 100 ) )\r
-                               {\r
-                                       pChip.b可視 = false;\r
-                               }\r
+                               //if ( configIni.bSudden.Guitar )\r
+                               //{\r
+                               //    pChip.b可視 = pChip.nバーからの距離dot.Guitar < 200;\r
+                               //}\r
+                               //if ( configIni.bHidden.Guitar && ( pChip.nバーからの距離dot.Guitar < 100 ) )\r
+                               //{\r
+                               //    pChip.b可視 = false;\r
+                               //}\r
+\r
+                               // 後日、以下の部分を何とかCStage演奏画面共通.csに移したい。\r
                                if ( !pChip.bHit && pChip.b可視 )\r
                                {\r
                                        int num14 = 0x19;\r
@@ -4174,17 +4176,23 @@ namespace DTXMania
                                                }\r
                                        }\r
                                }\r
-                               if ( !pChip.bHit && ( pChip.nバーからの距離dot.Guitar < 0 ) )\r
-                               {\r
-                                       pChip.bHit = true;\r
-                                       if ( configIni.bAutoPlay.Guitar )\r
-                                       {\r
-                                               this.actWailingBonus.Start( E楽器パート.GUITAR, this.r現在の歓声Chip.Guitar );\r
-                                       }\r
-                               }\r
-                               return;\r
+                               //    if ( !pChip.bHit && ( pChip.nバーからの距離dot.Guitar < 0 ) )\r
+                               //    {\r
+                               //        if ( pChip.nバーからの距離dot.Guitar < -234 )  // #25253 2011.5.29 yyagi: Don't set pChip.bHit=true for wailing at once. It need to 1sec-delay (234pix per 1sec). \r
+                               //        {\r
+                               //            pChip.bHit = true;\r
+                               //        }\r
+                               //        if ( configIni.bAutoPlay.Guitar )\r
+                               //        {\r
+                               //            pChip.bHit = true;                                                // #25253 2011.5.29 yyagi: Set pChip.bHit=true if autoplay.\r
+                               //            this.actWailingBonus.Start( E楽器パート.GUITAR, this.r現在の歓声Chip.Guitar );\r
+                               //        }\r
+                               //    }\r
+                               //    return;\r
+                               //}\r
+                               //pChip.bHit = true;\r
                        }\r
-                       pChip.bHit = true;\r
+                       base.t進行描画・チップ・ギター・ウェイリング( configIni, ref dTX, ref pChip );\r
                }\r
                protected override void t進行描画・チップ・フィルイン( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip )\r
                {\r
@@ -4335,51 +4343,63 @@ namespace DTXMania
                {\r
                        if ( configIni.bGuitar有効 )\r
                        {\r
-                               if ( configIni.bSudden.Bass )\r
-                               {\r
-                                       pChip.b可視 = pChip.nバーからの距離dot.Bass < 200;\r
-                               }\r
-                               if ( configIni.bHidden.Bass && ( pChip.nバーからの距離dot.Bass < 100 ) )\r
-                               {\r
-                                       pChip.b可視 = false;\r
-                               }\r
+                               //if ( configIni.bSudden.Bass )\r
+                               //{\r
+                               //    pChip.b可視 = pChip.nバーからの距離dot.Bass < 200;\r
+                               //}\r
+                               //if ( configIni.bHidden.Bass && ( pChip.nバーからの距離dot.Bass < 100 ) )\r
+                               //{\r
+                               //    pChip.b可視 = false;\r
+                               //}\r
+\r
+                               //\r
+                               // 後日、以下の部分を何とかCStage演奏画面共通.csに移したい。\r
+                               //\r
                                if ( !pChip.bHit && pChip.b可視 )\r
                                {\r
-                                       int num19 = 0x19;\r
-                                       int num20 = configIni.bReverse.Bass ? ( 0x176 - pChip.nバーからの距離dot.Bass ) : ( 0x5f + pChip.nバーからの距離dot.Bass );\r
-                                       int num21 = num20 - 0x39;\r
-                                       int num22 = 0;\r
-                                       if ( ( num21 < ( 0x163 + num19 ) ) && ( num21 > -num19 ) )\r
+                                       int[] y_base = { 0x5f, 0x176 };\r
+\r
+                                       const int num15 = 0x19;\r
+                                       int y = configIni.bReverse.Bass ? ( y_base[1] - pChip.nバーからの距離dot.Bass ) : ( y_base[1] + pChip.nバーからの距離dot.Bass );\r
+                                       int num17 = y - 0x39;\r
+                                       int num18 = 0;\r
+                                       if ( ( num17 < ( 0x163 + num15 ) ) && ( num17 > -num15 ) )\r
                                        {\r
-                                               int num23 = this.ctWailingチップ模様アニメ.n現在の値;\r
-                                               Rectangle rectangle6 = new Rectangle( 0x10c + ( num23 * 20 ), 0xae, 20, 50 );\r
-                                               if ( num21 < num19 )\r
+                                               int c = this.ctWailingチップ模様アニメ.n現在の値;\r
+                                               Rectangle rectangle6 = new Rectangle( 0x10c + ( c * 20 ), 0xae, 20, 50 );\r
+                                               if ( num17 < num15 )\r
                                                {\r
-                                                       rectangle6.Y += num19 - num21;\r
-                                                       rectangle6.Height -= num19 - num21;\r
-                                                       num22 = num19 - num21;\r
+                                                       rectangle6.Y += num15 - num17;\r
+                                                       rectangle6.Height -= num15 - num17;\r
+                                                       num18 = num15 - num17;\r
                                                }\r
-                                               if ( num21 > ( 0x163 - num19 ) )\r
+                                               if ( num17 > ( 0x163 - num15 ) )\r
                                                {\r
-                                                       rectangle6.Height -= num21 - ( 0x163 - num19 );\r
+                                                       rectangle6.Height -= num17 - ( 0x163 - num15 );\r
                                                }\r
                                                if ( ( rectangle6.Bottom > rectangle6.Top ) && ( this.txチップ != null ) )\r
                                                {\r
-                                                       this.txチップ.t2D描画( CDTXMania.app.Device, 0x1df, ( num20 - num19 ) + num22, rectangle6 );\r
+                                                       this.txチップ.t2D描画( CDTXMania.app.Device, 0x1df, ( y - num15 ) + num18, rectangle6 );\r
                                                }\r
                                        }\r
                                }\r
-                               if ( !pChip.bHit && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
-                               {\r
-                                       pChip.bHit = true;\r
-                                       if ( configIni.bAutoPlay.Bass )\r
-                                       {\r
-                                               this.actWailingBonus.Start( E楽器パート.BASS, this.r現在の歓声Chip.Bass );\r
-                                       }\r
-                               }\r
-                               return;\r
+                               //    if ( !pChip.bHit && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
+                               //    {\r
+                               //        if ( pChip.nバーからの距離dot.Bass < -234 )    // #25253 2011.5.29 yyagi: Don't set pChip.bHit=true for wailing at once. It need to 1sec-delay (234pix per 1sec).\r
+                               //        {\r
+                               //            pChip.bHit = true;\r
+                               //        }\r
+                               //        if ( configIni.bAutoPlay.Bass )\r
+                               //        {\r
+                               //            this.actWailingBonus.Start( E楽器パート.BASS, this.r現在の歓声Chip.Bass );\r
+                               //            pChip.bHit = true;                                                // #25253 2011.5.29 yyagi: Set pChip.bHit=true if autoplay.\r
+                               //        }\r
+                               //    }\r
+                               //    return;\r
+                               //}\r
+                               //pChip.bHit = true;\r
                        }\r
-                       pChip.bHit = true;\r
+                               base.t進行描画・チップ・ベース・ウェイリング( configIni, ref dTX, ref pChip);\r
                }\r
                protected override void t進行描画・チップ・空打ち音設定・ドラム( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip )\r
                {\r