OSDN Git Service

#35891 CONFIGURATION構成の見直しで、サウンド関連の設定を CONFIGURATION/System/Sound Options/に移動。
[dtxmania/dtxmania.git] / DTXManiaプロジェクト / コード / ステージ / 07.演奏 / CStage演奏画面共通.cs
index d221091..37bf777 100644 (file)
@@ -38,7 +38,6 @@ namespace DTXMania
                CAct演奏RGB共通 actRGB;\r
                CAct演奏スコア共通 actScore;\r
                CAct演奏ステージ失敗 actStageFailed;\r
-               CAct演奏ステータスパネル共通 actStatusPanels;\r
                CAct演奏WailingBonus共通 actWailingBonus;\r
                CAct演奏スクロール速度 act譜面スクロール速度;\r
                CAct演奏DrumsチップファイアD actChipFireD;\r
@@ -115,7 +114,6 @@ namespace DTXMania
                        base.list子Activities.Add(this.actBGA = new CAct演奏BGA());\r
                        base.list子Activities.Add(this.actPanel = new CAct演奏パネル文字列());\r
                        base.list子Activities.Add(this.act譜面スクロール速度 = new CAct演奏スクロール速度());\r
-                       base.list子Activities.Add(this.actStatusPanels = new CAct演奏ステータスパネル共通());\r
                        base.list子Activities.Add(this.actWailingBonus = new CAct演奏WailingBonus共通());\r
                        base.list子Activities.Add(this.actScore = new CAct演奏スコア共通());\r
                        base.list子Activities.Add(this.actRGB = new CAct演奏RGB共通());\r
@@ -184,6 +182,7 @@ namespace DTXMania
                                Drums.bDrums有効 = CDTXMania.Instance.ConfigIni.bDrums有効;\r
                                Drums.bSTAGEFAILED有効 = CDTXMania.Instance.ConfigIni.bStageFailed;\r
                                Drums.eダメージレベル = CDTXMania.Instance.ConfigIni.eDamageLevel;\r
+                               Drums.eMetronome = CDTXMania.Instance.ConfigIni.eClickType;\r
                                Drums.b演奏にキーボードを使用した = this.b演奏にキーボードを使った.Drums;\r
                                Drums.b演奏にMIDI入力を使用した = this.b演奏にMIDI入力を使った.Drums;\r
                                Drums.b演奏にジョイパッドを使用した = this.b演奏にジョイパッドを使った.Drums;\r
@@ -248,6 +247,7 @@ namespace DTXMania
                                Guitar.bDrums有効 = CDTXMania.Instance.ConfigIni.bDrums有効;\r
                                Guitar.bSTAGEFAILED有効 = CDTXMania.Instance.ConfigIni.bStageFailed;\r
                                Guitar.eダメージレベル = CDTXMania.Instance.ConfigIni.eDamageLevel;\r
+                               Guitar.eMetronome = CDTXMania.Instance.ConfigIni.eClickType;\r
                                Guitar.b演奏にキーボードを使用した = this.b演奏にキーボードを使った.Guitar;\r
                                Guitar.b演奏にMIDI入力を使用した = this.b演奏にMIDI入力を使った.Guitar;\r
                                Guitar.b演奏にジョイパッドを使用した = this.b演奏にジョイパッドを使った.Guitar;\r
@@ -311,6 +311,7 @@ namespace DTXMania
                                Bass.bSTAGEFAILED有効 = CDTXMania.Instance.ConfigIni.bStageFailed;\r
                                Bass.eダメージレベル = CDTXMania.Instance.ConfigIni.eDamageLevel;\r
                                // #24280 2011.1.29 yyagi\r
+                               Bass.eMetronome = CDTXMania.Instance.ConfigIni.eClickType;\r
                                Bass.b演奏にキーボードを使用した = this.b演奏にキーボードを使った.Bass;\r
                                Bass.b演奏にMIDI入力を使用した = this.b演奏にMIDI入力を使った.Bass;\r
                                Bass.b演奏にジョイパッドを使用した = this.b演奏にジョイパッドを使った.Bass;\r
@@ -375,13 +376,6 @@ namespace DTXMania
                                }\r
 \r
                                cInvisibleChip.Reset();\r
-                               string strLabel = CDTXMania.Instance.stage選曲.r確定された曲.ar難易度ラベル[CDTXMania.Instance.stage選曲.n確定された曲の難易度];\r
-                               string strPanel = CDTXMania.Instance.DTX.TITLE;\r
-                               if (!string.IsNullOrWhiteSpace(strLabel))\r
-                               {\r
-                                       strPanel += "(" + strLabel + ")";\r
-                               }\r
-                               this.actPanel.SetPanelString(strPanel);\r
                                actGauge.Init(CDTXMania.Instance.ConfigIni.nRisky);\r
                                // 効果音のストリームをミキサーから解除しておく\r
                                CDTXMania.Instance.Skin.tRemoveMixerAll();\r
@@ -419,7 +413,7 @@ namespace DTXMania
                                                        if (CDTXMania.Instance.DTX.listWAV.ContainsKey(pChip.n整数値_内部番号))\r
                                                        {\r
                                                                CDTX.CWAV wc = CDTXMania.Instance.DTX.listWAV[pChip.n整数値_内部番号];\r
-                                                               for (int i = 0; i < CDTXMania.Instance.ConfigIni.nPoliphonicSounds; i++)\r
+                                                               for (int i = 0; i < CDTXMania.Instance.ConfigIni.nPolyphonicSounds; i++)\r
                                                                {\r
                                                                        if (wc.rSound[i] != null)\r
                                                                        {\r
@@ -473,11 +467,27 @@ namespace DTXMania
 \r
                                for (EPart part = EPart.Drums; part <= EPart.Bass; ++part)\r
                                {\r
-                                       actOptionPanel.Pos[part] = new Coordinates.CXY(CDTXMania.Instance.ConfigIni.cdInstX[part][CDTXMania.Instance.ConfigIni.eActiveInst]\r
-                                               - CDTXMania.Instance.Coordinates.ImgOptionPanel.W, 0);\r
+                                       if (CDTXMania.Instance.ConfigIni.b楽器有効(part))\r
+                                       {\r
+                                               actOptionPanel.Pos[part] = new Coordinates.CXY(CDTXMania.Instance.ConfigIni.cdInstX[part][CDTXMania.Instance.ConfigIni.eActiveInst]\r
+                                                       - CDTXMania.Instance.Coordinates.ImgOptionPanel.W, 0);\r
+                                       }\r
                                }\r
 \r
                                base.On活性化();\r
+\r
+                               // PANELの設定は、base.On活性化()の後に(actPanelの活性化の後)行うこと。\r
+                               // さもないと、actPanelが活性化されていないため、パネル文字列の設定が機能しなくなる。\r
+                               string strLabel = CDTXMania.Instance.stage選曲.r確定された曲.ar難易度ラベル[ CDTXMania.Instance.stage選曲.n確定された曲の難易度 ];\r
+                               string strPanel = CDTXMania.Instance.DTX.TITLE;\r
+                               //string strSETDEFlabel = CDTXMania.Instance.stage選曲.r確定された曲.strタイトル;\r
+                               if ( !string.IsNullOrWhiteSpace( strLabel ) && !strPanel.Contains(strLabel)\r
+                               //      && (strPanel == strSETDEFlabel)\r
+                               )\r
+                               {\r
+                                       strPanel += " (" + strLabel + ")";\r
+                               }\r
+                               this.actPanel.SetPanelString( strPanel );\r
                        }\r
                }\r
                public override void On非活性化()\r
@@ -545,12 +555,12 @@ namespace DTXMania
                                        CDTXMania.Instance.Timer.tリセット();\r
                                        if (CDTXMania.Instance.ConfigIni.bDrums有効)\r
                                        {\r
-                                               ctチップ模様アニメ.Drums = new CCounter(0, 0x30, 10, CDTXMania.Instance.Timer);\r
+                                               ctチップ模様アニメ.Drums = new CCounter(0, 48, 10, CDTXMania.Instance.Timer);\r
                                        }\r
                                        if (CDTXMania.Instance.ConfigIni.bGuitar有効)\r
                                        {\r
-                                               ctチップ模様アニメ.Guitar = new CCounter(0, 0x17, 20, CDTXMania.Instance.Timer);\r
-                                               ctチップ模様アニメ.Bass = new CCounter(0, 0x17, 20, CDTXMania.Instance.Timer);\r
+                                               ctチップ模様アニメ.Guitar = new CCounter(0, 48, 20, CDTXMania.Instance.Timer);\r
+                                               ctチップ模様アニメ.Bass = new CCounter(0, 48, 20, CDTXMania.Instance.Timer);\r
                                                ctWailingチップ模様アニメ = new CCounter(0, 4, 50, CDTXMania.Instance.Timer);\r
                                        }\r
 \r
@@ -615,7 +625,6 @@ namespace DTXMania
                                        actLaneFlushGB.On進行描画();\r
                                        actPanel.On進行描画();\r
                                        actScore.On進行描画();\r
-                                       actStatusPanels.On進行描画();\r
                                        actOptionPanel.On進行描画();\r
                                        actGauge.On進行描画();\r
                                        actGraph.On進行描画();\r
@@ -804,9 +813,11 @@ namespace DTXMania
                                //Debug.WriteLine( "☆queueLength=" + queueMixerSound.Count );\r
                                DateTime dtnow = DateTime.Now;\r
                                TimeSpan ts = dtnow - dtLastQueueOperation;\r
-                               if (ts.Milliseconds > 7)\r
+                               int nInterval = ( CDTXMania.Instance.ConfigIni.bVSyncWait ) ? 7 : 1;\r
+                               int nMaxDequeueCount = ( CDTXMania.Instance.ConfigIni.bVSyncWait ) ? 2 : 1;\r
+                               if (ts.Milliseconds > nInterval)\r
                                {\r
-                                       for (int i = 0; i < 2 && queueMixerSound.Count > 0; i++)\r
+                                       for (int i = 0; i < nMaxDequeueCount && queueMixerSound.Count > 0; i++)\r
                                        {\r
                                                dtLastQueueOperation = dtnow;\r
                                                STMixer stm = queueMixerSound.Dequeue();\r
@@ -1221,18 +1232,21 @@ namespace DTXMania
                                        incrementCombo = true;\r
                                }\r
 \r
-                               switch (eJudgeResult)\r
-                               {\r
-                                       case EJudge.Perfect:\r
-                                       case EJudge.Great:\r
-                                       case EJudge.Good:\r
-                                               this.actCombo.dgbコンボ数[pChip.e楽器パート].IncrementCombo();\r
-                                               break;\r
+                if( incrementCombo == true )\r
+                {\r
+                    switch (eJudgeResult)\r
+                    {\r
+                        case EJudge.Perfect:\r
+                        case EJudge.Great:\r
+                        case EJudge.Good:\r
+                            this.actCombo.dgbコンボ数[pChip.e楽器パート].IncrementCombo();\r
+                            break;\r
 \r
-                                       default:\r
-                                               this.actCombo.dgbコンボ数[pChip.e楽器パート].ResetCombo();\r
-                                               break;\r
-                               }\r
+                        default:\r
+                            this.actCombo.dgbコンボ数[pChip.e楽器パート].ResetCombo();\r
+                            break;\r
+                    }\r
+                }\r
                        }\r
 \r
                        // スコア\r
@@ -3096,7 +3110,7 @@ namespace DTXMania
                                                CDTX.CWAV wc = CDTXMania.Instance.DTX.listWAV[pChip.n整数値_内部番号];\r
                                                //Debug.Write( "[AddMixer] BAR=" + pChip.n発声位置 / 384 + ", wav=" + Path.GetFileName( wc.strファイル名 ) + ", time=" + pChip.n発声時刻ms );\r
 \r
-                                               for (int i = 0; i < CDTXMania.Instance.ConfigIni.nPoliphonicSounds; i++)\r
+                                               for (int i = 0; i < CDTXMania.Instance.ConfigIni.nPolyphonicSounds; i++)\r
                                                {\r
                                                        if (wc.rSound[i] != null)\r
                                                        {\r
@@ -3123,7 +3137,7 @@ namespace DTXMania
                                        {\r
                                                CDTX.CWAV wc = CDTXMania.Instance.DTX.listWAV[pChip.n整数値_内部番号];\r
                                                //Debug.Write( "[DelMixer] BAR=" + pChip.n発声位置 / 384 +  ", wav=" + Path.GetFileName( wc.strファイル名 ) + ", time=" + pChip.n発声時刻ms );\r
-                                               for (int i = 0; i < CDTXMania.Instance.ConfigIni.nPoliphonicSounds; i++)\r
+                                               for (int i = 0; i < CDTXMania.Instance.ConfigIni.nPolyphonicSounds; i++)\r
                                                {\r
                                                        if (wc.rSound[i] != null)\r
                                                        {\r
@@ -3145,7 +3159,23 @@ namespace DTXMania
                                                }\r
                                        }\r
                                }\r
-                               else if (!pChip.bHit && (pChip.nバーからの距離dot.Drums < 0))\r
+                               else if ( pChip[ EChannel.Click ] && !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+                               {\r
+                                       pChip.bHit = true;\r
+                                       if ( CDTXMania.Instance.ConfigIni.eClickType != EClickType.Off )\r
+                                       {\r
+                                               switch (pChip.n整数値)\r
+                                               {\r
+                                                       case 1:\r
+                                                               CDTXMania.Instance.Skin.soundClickHigh.t再生する();\r
+                                                               break;\r
+                                                       case 2:\r
+                                                               CDTXMania.Instance.Skin.soundClickLow.t再生する();\r
+                                                               break;\r
+                                               }\r
+                                       }\r
+                               }\r
+                               else if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
                                {\r
                                        // other chips\r
                                        pChip.bHit = true;\r