OSDN Git Service

#23559 Riskyオプション追加
authoryyagi <yyagi@16f42ceb-6dc6-49c8-ba94-f2d53467949d>
Wed, 27 Jul 2011 16:06:13 +0000 (16:06 +0000)
committeryyagi <yyagi@16f42ceb-6dc6-49c8-ba94-f2d53467949d>
Wed, 27 Jul 2011 16:06:13 +0000 (16:06 +0000)
#none 若干のりファクタ

git-svn-id: http://svn.osdn.jp/svnroot/dtxmania/trunk@230 16f42ceb-6dc6-49c8-ba94-f2d53467949d

DTXManiaプロジェクト/コード/スコア、曲/CScoreIni.cs
DTXManiaプロジェクト/コード/ステージ/04.コンフィグ/CActConfigList.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/CStage演奏画面共通.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/ギター画面/CAct演奏Guitarゲージ.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/ドラム画面/CAct演奏Drumsゲージ.cs
DTXManiaプロジェクト/コード/全体/CConfigIni.cs

index 7875a4f..5b6e310 100644 (file)
@@ -209,7 +209,7 @@ namespace DTXMania
                        public int n全チップ数;\r
                        public string strDTXManiaのバージョン;\r
                        public bool レーン9モード;\r
-                       public int nRiskyMode;          // #23559 2011.6.20 yyagi 0=OFF, 1-10=Risky\r
+                       public int nRisky;              // #23559 2011.6.20 yyagi 0=OFF, 1-10=Risky\r
                        public string 最終更新日時;\r
 \r
                        public C演奏記録()\r
@@ -267,7 +267,7 @@ namespace DTXMania
                                this.最終更新日時 = "";\r
                                this.Hash = "00000000000000000000000000000000";\r
                                this.レーン9モード = true;\r
-                               this.nRiskyMode = 0;                                                                    // #23559 2011.6.20 yyagi\r
+                               this.nRisky = 0;                                                                        // #23559 2011.6.20 yyagi\r
                        }\r
 \r
                        public bool bフルコンボじゃない\r
@@ -472,7 +472,7 @@ namespace DTXMania
                        stream.Read( buffer, 0, (int) stream.Length );\r
                        stream.Close();\r
                        StringBuilder builder = new StringBuilder(0x21);\r
-                       using (MD5CryptoServiceProvider m = new MD5CryptoServiceProvider())             // #25650 2011.7.7 yyagi; add Dispose() method to avoid resource leak.\r
+                       using ( MD5CryptoServiceProvider m = new MD5CryptoServiceProvider() )           // #25650 2011.7.7 yyagi; Using "using" structure to clarify the scope for MD5CryptServiceProvider.\r
                        {\r
                                byte[] buffer2 = m.ComputeHash(buffer);\r
                                foreach (byte num in buffer2)\r
@@ -732,63 +732,67 @@ namespace DTXMania
                                                                        }\r
                                                                }\r
                                                        }\r
-                                                       else if( item.Equals( "TightDrums" ) )\r
+                                                       else if ( item.Equals( "Risky" ) )\r
+                                                       {\r
+                                                               c演奏記録.nRisky = int.Parse( para );\r
+                                                       }\r
+                                                       else if ( item.Equals( "TightDrums" ) )\r
                                                        {\r
                                                                c演奏記録.bTight = C変換.bONorOFF( para[ 0 ] );\r
                                                        }\r
-                                                       else if( item.Equals( "SuddenDrums" ) )\r
+                                                       else if ( item.Equals( "SuddenDrums" ) )\r
                                                        {\r
                                                                c演奏記録.bSudden.Drums = C変換.bONorOFF( para[ 0 ] );\r
                                                        }\r
-                                                       else if( item.Equals( "SuddenGuitar" ) )\r
+                                                       else if ( item.Equals( "SuddenGuitar" ) )\r
                                                        {\r
                                                                c演奏記録.bSudden.Guitar = C変換.bONorOFF( para[ 0 ] );\r
                                                        }\r
-                                                       else if( item.Equals( "SuddenBass" ) )\r
+                                                       else if ( item.Equals( "SuddenBass" ) )\r
                                                        {\r
                                                                c演奏記録.bSudden.Bass = C変換.bONorOFF( para[ 0 ] );\r
                                                        }\r
-                                                       else if( item.Equals( "HiddenDrums" ) )\r
+                                                       else if ( item.Equals( "HiddenDrums" ) )\r
                                                        {\r
                                                                c演奏記録.bHidden.Drums = C変換.bONorOFF( para[ 0 ] );\r
                                                        }\r
-                                                       else if( item.Equals( "HiddenGuitar" ) )\r
+                                                       else if ( item.Equals( "HiddenGuitar" ) )\r
                                                        {\r
                                                                c演奏記録.bHidden.Guitar = C変換.bONorOFF( para[ 0 ] );\r
                                                        }\r
-                                                       else if( item.Equals( "HiddenBass" ) )\r
+                                                       else if ( item.Equals( "HiddenBass" ) )\r
                                                        {\r
                                                                c演奏記録.bHidden.Bass = C変換.bONorOFF( para[ 0 ] );\r
                                                        }\r
-                                                       else if( item.Equals( "ReverseDrums" ) )\r
+                                                       else if ( item.Equals( "ReverseDrums" ) )\r
                                                        {\r
                                                                c演奏記録.bReverse.Drums = C変換.bONorOFF( para[ 0 ] );\r
                                                        }\r
-                                                       else if( item.Equals( "ReverseGuitar" ) )\r
+                                                       else if ( item.Equals( "ReverseGuitar" ) )\r
                                                        {\r
                                                                c演奏記録.bReverse.Guitar = C変換.bONorOFF( para[ 0 ] );\r
                                                        }\r
-                                                       else if( item.Equals( "ReverseBass" ) )\r
+                                                       else if ( item.Equals( "ReverseBass" ) )\r
                                                        {\r
                                                                c演奏記録.bReverse.Bass = C変換.bONorOFF( para[ 0 ] );\r
                                                        }\r
                                                        else\r
                                                        {\r
-                                                               if( item.Equals( "RandomGuitar" ) )\r
+                                                               if ( item.Equals( "RandomGuitar" ) )\r
                                                                {\r
-                                                                       switch( int.Parse( para ) )\r
+                                                                       switch ( int.Parse( para ) )\r
                                                                        {\r
-                                                                               case (int)Eランダムモード.OFF:\r
+                                                                               case (int) Eランダムモード.OFF:\r
                                                                                        {\r
                                                                                                c演奏記録.eRandom.Guitar = Eランダムモード.OFF;\r
                                                                                                continue;\r
                                                                                        }\r
-                                                                               case (int)Eランダムモード.RANDOM:\r
+                                                                               case (int) Eランダムモード.RANDOM:\r
                                                                                        {\r
                                                                                                c演奏記録.eRandom.Guitar = Eランダムモード.RANDOM;\r
                                                                                                continue;\r
                                                                                        }\r
-                                                                               case (int)Eランダムモード.SUPERRANDOM:\r
+                                                                               case (int) Eランダムモード.SUPERRANDOM:\r
                                                                                        {\r
                                                                                                c演奏記録.eRandom.Guitar = Eランダムモード.SUPERRANDOM;\r
                                                                                                continue;\r
@@ -801,16 +805,16 @@ namespace DTXMania
                                                                        }\r
                                                                        throw new Exception( "RandomGuitar の値が無効です。" );\r
                                                                }\r
-                                                               if( item.Equals( "RandomBass" ) )\r
+                                                               if ( item.Equals( "RandomBass" ) )\r
                                                                {\r
-                                                                       switch( int.Parse( para ) )\r
+                                                                       switch ( int.Parse( para ) )\r
                                                                        {\r
-                                                                               case (int)Eランダムモード.OFF:\r
+                                                                               case (int) Eランダムモード.OFF:\r
                                                                                        {\r
                                                                                                c演奏記録.eRandom.Bass = Eランダムモード.OFF;\r
                                                                                                continue;\r
                                                                                        }\r
-                                                                               case (int)Eランダムモード.RANDOM:\r
+                                                                               case (int) Eランダムモード.RANDOM:\r
                                                                                        {\r
                                                                                                c演奏記録.eRandom.Bass = Eランダムモード.RANDOM;\r
                                                                                                continue;\r
@@ -828,27 +832,27 @@ namespace DTXMania
                                                                        }\r
                                                                        throw new Exception( "RandomBass の値が無効です。" );\r
                                                                }\r
-                                                               if( item.Equals( "LightGuitar" ) )\r
+                                                               if ( item.Equals( "LightGuitar" ) )\r
                                                                {\r
                                                                        c演奏記録.bLight.Guitar = C変換.bONorOFF( para[ 0 ] );\r
                                                                }\r
-                                                               else if( item.Equals( "LightBass" ) )\r
+                                                               else if ( item.Equals( "LightBass" ) )\r
                                                                {\r
                                                                        c演奏記録.bLight.Bass = C変換.bONorOFF( para[ 0 ] );\r
                                                                }\r
-                                                               else if( item.Equals( "LeftGuitar" ) )\r
+                                                               else if ( item.Equals( "LeftGuitar" ) )\r
                                                                {\r
                                                                        c演奏記録.bLeft.Guitar = C変換.bONorOFF( para[ 0 ] );\r
                                                                }\r
-                                                               else if( item.Equals( "LeftBass" ) )\r
+                                                               else if ( item.Equals( "LeftBass" ) )\r
                                                                {\r
                                                                        c演奏記録.bLeft.Bass = C変換.bONorOFF( para[ 0 ] );\r
                                                                }\r
                                                                else\r
                                                                {\r
-                                                                       if( item.Equals( "Dark" ) )\r
+                                                                       if ( item.Equals( "Dark" ) )\r
                                                                        {\r
-                                                                               switch( int.Parse( para ) )\r
+                                                                               switch ( int.Parse( para ) )\r
                                                                                {\r
                                                                                        case 0:\r
                                                                                                {\r
@@ -868,22 +872,22 @@ namespace DTXMania
                                                                                }\r
                                                                                throw new Exception( "Dark の値が無効です。" );\r
                                                                        }\r
-                                                                       if( item.Equals( "ScrollSpeedDrums" ) )\r
+                                                                       if ( item.Equals( "ScrollSpeedDrums" ) )\r
                                                                        {\r
                                                                                c演奏記録.f譜面スクロール速度.Drums = (float) decimal.Parse( para );\r
                                                                        }\r
-                                                                       else if( item.Equals( "ScrollSpeedGuitar" ) )\r
+                                                                       else if ( item.Equals( "ScrollSpeedGuitar" ) )\r
                                                                        {\r
                                                                                c演奏記録.f譜面スクロール速度.Guitar = (float) decimal.Parse( para );\r
                                                                        }\r
-                                                                       else if( item.Equals( "ScrollSpeedBass" ) )\r
+                                                                       else if ( item.Equals( "ScrollSpeedBass" ) )\r
                                                                        {\r
                                                                                c演奏記録.f譜面スクロール速度.Bass = (float) decimal.Parse( para );\r
                                                                        }\r
-                                                                       else if( item.Equals( "PlaySpeed" ) )\r
+                                                                       else if ( item.Equals( "PlaySpeed" ) )\r
                                                                        {\r
                                                                                string[] strArray2 = para.Split( new char[] { '/' } );\r
-                                                                               if( strArray2.Length == 2 )\r
+                                                                               if ( strArray2.Length == 2 )\r
                                                                                {\r
                                                                                        c演奏記録.n演奏速度分子 = int.Parse( strArray2[ 0 ] );\r
                                                                                        c演奏記録.n演奏速度分母 = int.Parse( strArray2[ 1 ] );\r
@@ -891,9 +895,9 @@ namespace DTXMania
                                                                        }\r
                                                                        else\r
                                                                        {\r
-                                                                               if( item.Equals( "HHGroup" ) )\r
+                                                                               if ( item.Equals( "HHGroup" ) )\r
                                                                                {\r
-                                                                                       switch( int.Parse( para ) )\r
+                                                                                       switch ( int.Parse( para ) )\r
                                                                                        {\r
                                                                                                case 0:\r
                                                                                                        {\r
@@ -918,9 +922,9 @@ namespace DTXMania
                                                                                        }\r
                                                                                        throw new Exception( "HHGroup の値が無効です。" );\r
                                                                                }\r
-                                                                               if( item.Equals( "FTGroup" ) )\r
+                                                                               if ( item.Equals( "FTGroup" ) )\r
                                                                                {\r
-                                                                                       switch( int.Parse( para ) )\r
+                                                                                       switch ( int.Parse( para ) )\r
                                                                                        {\r
                                                                                                case 0:\r
                                                                                                        {\r
@@ -935,9 +939,9 @@ namespace DTXMania
                                                                                        }\r
                                                                                        throw new Exception( "FTGroup の値が無効です。" );\r
                                                                                }\r
-                                                                               if( item.Equals( "CYGroup" ) )\r
+                                                                               if ( item.Equals( "CYGroup" ) )\r
                                                                                {\r
-                                                                                       switch( int.Parse( para ) )\r
+                                                                                       switch ( int.Parse( para ) )\r
                                                                                        {\r
                                                                                                case 0:\r
                                                                                                        {\r
@@ -952,9 +956,9 @@ namespace DTXMania
                                                                                        }\r
                                                                                        throw new Exception( "CYGroup の値が無効です。" );\r
                                                                                }\r
-                                                                               if( item.Equals( "HitSoundPriorityHH" ) )\r
+                                                                               if ( item.Equals( "HitSoundPriorityHH" ) )\r
                                                                                {\r
-                                                                                       switch( int.Parse( para ) )\r
+                                                                                       switch ( int.Parse( para ) )\r
                                                                                        {\r
                                                                                                case 0:\r
                                                                                                        {\r
@@ -969,9 +973,9 @@ namespace DTXMania
                                                                                        }\r
                                                                                        throw new Exception( "HitSoundPriorityHH の値が無効です。" );\r
                                                                                }\r
-                                                                               if( item.Equals( "HitSoundPriorityFT" ) )\r
+                                                                               if ( item.Equals( "HitSoundPriorityFT" ) )\r
                                                                                {\r
-                                                                                       switch( int.Parse( para ) )\r
+                                                                                       switch ( int.Parse( para ) )\r
                                                                                        {\r
                                                                                                case 0:\r
                                                                                                        {\r
@@ -986,9 +990,9 @@ namespace DTXMania
                                                                                        }\r
                                                                                        throw new Exception( "HitSoundPriorityFT の値が無効です。" );\r
                                                                                }\r
-                                                                               if( item.Equals( "HitSoundPriorityCY" ) )\r
+                                                                               if ( item.Equals( "HitSoundPriorityCY" ) )\r
                                                                                {\r
-                                                                                       switch( int.Parse( para ) )\r
+                                                                                       switch ( int.Parse( para ) )\r
                                                                                        {\r
                                                                                                case 0:\r
                                                                                                        {\r
@@ -1003,23 +1007,23 @@ namespace DTXMania
                                                                                        }\r
                                                                                        throw new Exception( "HitSoundPriorityCY の値が無効です。" );\r
                                                                                }\r
-                                                                               if( item.Equals( "Guitar" ) )\r
+                                                                               if ( item.Equals( "Guitar" ) )\r
                                                                                {\r
                                                                                        c演奏記録.bGuitar有効 = C変換.bONorOFF( para[ 0 ] );\r
                                                                                }\r
-                                                                               else if( item.Equals( "Drums" ) )\r
+                                                                               else if ( item.Equals( "Drums" ) )\r
                                                                                {\r
                                                                                        c演奏記録.bDrums有効 = C変換.bONorOFF( para[ 0 ] );\r
                                                                                }\r
-                                                                               else if( item.Equals( "StageFailed" ) )\r
+                                                                               else if ( item.Equals( "StageFailed" ) )\r
                                                                                {\r
                                                                                        c演奏記録.bSTAGEFAILED有効 = C変換.bONorOFF( para[ 0 ] );\r
                                                                                }\r
                                                                                else\r
                                                                                {\r
-                                                                                       if( item.Equals( "DamageLevel" ) )\r
+                                                                                       if ( item.Equals( "DamageLevel" ) )\r
                                                                                        {\r
-                                                                                               switch( int.Parse( para ) )\r
+                                                                                               switch ( int.Parse( para ) )\r
                                                                                                {\r
                                                                                                        case 0:\r
                                                                                                                {\r
@@ -1039,51 +1043,51 @@ namespace DTXMania
                                                                                                }\r
                                                                                                throw new Exception( "DamageLevel の値が無効です。" );\r
                                                                                        }\r
-                                                                                       if( item.Equals( "UseKeyboard" ) )\r
+                                                                                       if ( item.Equals( "UseKeyboard" ) )\r
                                                                                        {\r
                                                                                                c演奏記録.b演奏にキーボードを使用した = C変換.bONorOFF( para[ 0 ] );\r
                                                                                        }\r
-                                                                                       else if( item.Equals( "UseMIDIIN" ) )\r
+                                                                                       else if ( item.Equals( "UseMIDIIN" ) )\r
                                                                                        {\r
                                                                                                c演奏記録.b演奏にMIDI入力を使用した = C変換.bONorOFF( para[ 0 ] );\r
                                                                                        }\r
-                                                                                       else if( item.Equals( "UseJoypad" ) )\r
+                                                                                       else if ( item.Equals( "UseJoypad" ) )\r
                                                                                        {\r
                                                                                                c演奏記録.b演奏にジョイパッドを使用した = C変換.bONorOFF( para[ 0 ] );\r
                                                                                        }\r
-                                                                                       else if( item.Equals( "UseMouse" ) )\r
+                                                                                       else if ( item.Equals( "UseMouse" ) )\r
                                                                                        {\r
                                                                                                c演奏記録.b演奏にマウスを使用した = C変換.bONorOFF( para[ 0 ] );\r
                                                                                        }\r
-                                                                                       else if( item.Equals( "PerfectRange" ) )\r
+                                                                                       else if ( item.Equals( "PerfectRange" ) )\r
                                                                                        {\r
                                                                                                c演奏記録.nPerfectになる範囲ms = int.Parse( para );\r
                                                                                        }\r
-                                                                                       else if( item.Equals( "GreatRange" ) )\r
+                                                                                       else if ( item.Equals( "GreatRange" ) )\r
                                                                                        {\r
                                                                                                c演奏記録.nGreatになる範囲ms = int.Parse( para );\r
                                                                                        }\r
-                                                                                       else if( item.Equals( "GoodRange" ) )\r
+                                                                                       else if ( item.Equals( "GoodRange" ) )\r
                                                                                        {\r
                                                                                                c演奏記録.nGoodになる範囲ms = int.Parse( para );\r
                                                                                        }\r
-                                                                                       else if( item.Equals( "PoorRange" ) )\r
+                                                                                       else if ( item.Equals( "PoorRange" ) )\r
                                                                                        {\r
                                                                                                c演奏記録.nPoorになる範囲ms = int.Parse( para );\r
                                                                                        }\r
-                                                                                       else if( item.Equals( "DTXManiaVersion" ) )\r
+                                                                                       else if ( item.Equals( "DTXManiaVersion" ) )\r
                                                                                        {\r
                                                                                                c演奏記録.strDTXManiaのバージョン = para;\r
                                                                                        }\r
-                                                                                       else if( item.Equals( "DateTime" ) )\r
+                                                                                       else if ( item.Equals( "DateTime" ) )\r
                                                                                        {\r
                                                                                                c演奏記録.最終更新日時 = para;\r
                                                                                        }\r
-                                                                                       else if( item.Equals( "Hash" ) )\r
+                                                                                       else if ( item.Equals( "Hash" ) )\r
                                                                                        {\r
                                                                                                c演奏記録.Hash = para;\r
                                                                                        }\r
-                                                                                       else if( item.Equals( "9LaneMode" ) )\r
+                                                                                       else if ( item.Equals( "9LaneMode" ) )\r
                                                                                        {\r
                                                                                                c演奏記録.レーン9モード = C変換.bONorOFF( para[ 0 ] );\r
                                                                                        }\r
@@ -1159,6 +1163,7 @@ namespace DTXMania
                                        writer.Write( this.stセクション[ i ].bAutoPlay[ j ] ? 1 : 0 );\r
                                }\r
                                writer.WriteLine();\r
+                               writer.WriteLine( "Risky={0}", this.stセクション[ i ].nRisky );\r
                                writer.WriteLine( "SuddenDrums={0}", this.stセクション[ i ].bSudden.Drums ? 1 : 0 );\r
                                writer.WriteLine( "SuddenGuitar={0}", this.stセクション[ i ].bSudden.Guitar ? 1 : 0 );\r
                                writer.WriteLine( "SuddenBass={0}", this.stセクション[ i ].bSudden.Bass ? 1 : 0 );\r
@@ -1335,7 +1340,7 @@ namespace DTXMania
 \r
                        byte[] bytes = Encoding.GetEncoding( "shift-jis" ).GetBytes( builder.ToString() );\r
                        StringBuilder builder2 = new StringBuilder(0x21);\r
-                       using (MD5CryptoServiceProvider m = new MD5CryptoServiceProvider())             // #25650 2011.7.7 yyagi; add Dispose() method to avoid resource leak.\r
+                       using (MD5CryptoServiceProvider m = new MD5CryptoServiceProvider())             // #25650 2011.7.7 yyagi; Using "using" structure to clarify the scope for MD5CryptServiceProvider.\r
                        {\r
                                byte[] buffer2 = m.ComputeHash(bytes);\r
                                foreach (byte num2 in buffer2)\r
index 2ff54d0..8043d2c 100644 (file)
@@ -73,6 +73,12 @@ namespace DTXMania
                                "OFF: all display parts are shown.\nHALF: wallpaper, lanes and gauge are\n disappeared.\nFULL: additionaly to HALF, bar/beat\n lines, hit bar, pads are disappeared.",\r
                                new string[] { "OFF", "HALF", "FULL" } );\r
                        this.list項目リスト.Add( this.iCommonDark );\r
+\r
+                       this.iSystemRisky = new CItemInteger( "Risky", 0, 10, CDTXMania.ConfigIni.nRisky,\r
+                               "Riskyモードの設定:\n1以上の値にすると、その回数分の\nPoor/MissでFAILEDとなります。\nOFFにすると無効になり、\nDamageLevelに従ったゲージ増減と\nなります。\nStageFailedの設定と併用できます。",\r
+                               "Risky mode:\nSet over 1, in case you'd like to specify\n the number of Poor/Miss times to be\n FAILED.\nSet OFF to disable Risky mode." );\r
+                       this.list項目リスト.Add( this.iSystemRisky );\r
+\r
                        this.iCommonPlaySpeed = new CItemInteger( "PlaySpeed", 5, 40, CDTXMania.ConfigIni.n演奏速度,\r
                                "曲の演奏速度を、速くしたり遅くした\nりすることができます。\n(※一部のサウンドカードでは正しく\n 再生できない可能性があります。)",\r
                                "It changes the song speed.\nFor example, you can play in half\n speed by setting PlaySpeed = 0.500\n for your practice.\nNote: It also changes the songs' pitch." );\r
@@ -117,12 +123,6 @@ namespace DTXMania
                                "BGAの使用:\n画像(BGA)を表示可能にする場合に\nON にします。BGA の再生には、それ\nなりのマシンパワーが必要とされます。",\r
                                "To draw BGA (back ground animations)\n or not." );\r
                        this.list項目リスト.Add( this.iSystemBGA );\r
-                       // #24074 2011.01.23 comment-out ikanick オプション(Drums)へ移行\r
-                       //                      this.iSystemGraph = new CItemToggle( "Graph", CDTXMania.ConfigIni.bGraph有効,\r
-                       //                              "達成率グラフの使用:\n最高スキル達成率と比較できるグラフ\nを表示する場合にON にします。\nオートプレイだと表示されません。\n現バージョンではドラムのみとなって\nいます。",\r
-                       //                              "To draw Graph \n or not.");\r
-                       //                      this.list項目リスト.Add( this.iSystemGraph );\r
-\r
                        this.iSystemPreviewSoundWait = new CItemInteger( "PreSoundWait", 0, 0x2710, CDTXMania.ConfigIni.n曲が選択されてからプレビュー音が鳴るまでのウェイトms,\r
                                "プレビュー音演奏までの時間:\n曲にカーソルが合わされてからプレ\nビュー音が鳴り始めるまでの時間を\n指定します。\n0 ~ 10000 [ms] が指定可能です。",\r
                                "Delay time(ms) to start playing preview\n sound in SELECT MUSIC screen.\nYou can specify from 0ms to 10000ms." );\r
@@ -148,8 +148,8 @@ namespace DTXMania
                                "Turn ON if you want to be cheered\n at the end of fill-in zone or not." );\r
                        this.list項目リスト.Add( this.iSystemAudienceSound );\r
                        this.iSystemDamageLevel = new CItemList( "DamageLevel", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eダメージレベル,\r
-                               "ゲージ減少割合:\nMiss ヒット時のゲージの減少度合い\nを指定します。\n",\r
-                               "Damage level at missing (and\n recovering level) at playing.",\r
+                               "ゲージ減少割合:\nMiss ヒット時のゲージの減少度合い\nを指定します。\nRiskyが1以上の場合は無効となります",\r
+                               "Damage level at missing (and\n recovering level) at playing.\nThis setting is ignored when Risky >= 1.",\r
                                new string[] { "Small", "Normal", "Large" } );\r
                        this.list項目リスト.Add( this.iSystemDamageLevel );\r
                        this.iSystemSaveScore = new CItemToggle( "SaveScore", CDTXMania.ConfigIni.bScoreIniを出力する,\r
@@ -541,21 +541,6 @@ namespace DTXMania
                        {\r
                                this.tConfigIniへ記録する();\r
                        }\r
-//                     else if( ( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemGuitar ) || ( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemDrums ) )\r
-//                     {\r
-//                             this.list項目リスト[ this.n現在の選択項目 ].tEnter押下();\r
-//                             if( !this.iSystemGuitar.bON && !this.iSystemDrums.bON )\r
-//                             {\r
-//                                     if( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemGuitar )\r
-//                                     {\r
-//                                             this.iSystemDrums.bON = true;\r
-//                                     }\r
-//                                     else\r
-//                                     {\r
-//                                             this.iSystemGuitar.bON = true;\r
-//                                     }\r
-//                             }\r
-//                     }\r
                        else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignDrumsLC )\r
                        {\r
                                CDTXMania.stageコンフィグ.tパッド選択通知( EKeyConfigPart.DRUMS, EKeyConfigPad.LC );\r
@@ -1091,25 +1076,25 @@ namespace DTXMania
                                }\r
                                if( this.b項目リスト側にフォーカスがある && ( this.n目標のスクロールカウンタ == 0 ) )\r
                                {\r
-                                       int num11;\r
-                                       int num12;\r
-                                       int num13;\r
+                                       int x;\r
+                                       int y_upper;\r
+                                       int y_lower;\r
                                        if( !this.b要素値にフォーカス中 )\r
                                        {\r
-                                               num11 = 0x114;\r
-                                               num12 = 0xba - this.ct三角矢印アニメ.n現在の値;\r
-                                               num13 = 0xfe + this.ct三角矢印アニメ.n現在の値;\r
+                                               x = 0x114;\r
+                                               y_upper = 0xba - this.ct三角矢印アニメ.n現在の値;\r
+                                               y_lower = 0xfe + this.ct三角矢印アニメ.n現在の値;\r
                                        }\r
                                        else\r
                                        {\r
-                                               num11 = 0x210;\r
-                                               num12 = 0xc6 - this.ct三角矢印アニメ.n現在の値;\r
-                                               num13 = 0xf2 + this.ct三角矢印アニメ.n現在の値;\r
+                                               x = 0x210;\r
+                                               y_upper = 0xc6 - this.ct三角矢印アニメ.n現在の値;\r
+                                               y_lower = 0xf2 + this.ct三角矢印アニメ.n現在の値;\r
                                        }\r
                                        if( this.tx三角矢印 != null )\r
                                        {\r
-                                               this.tx三角矢印.t2D描画( CDTXMania.app.Device, num11, num12, new Rectangle( 0, 0, 0x20, 0x10 ) );\r
-                                               this.tx三角矢印.t2D描画( CDTXMania.app.Device, num11, num13, new Rectangle( 0, 0x10, 0x20, 0x10 ) );\r
+                                               this.tx三角矢印.t2D描画( CDTXMania.app.Device, x, y_upper, new Rectangle( 0, 0, 0x20, 0x10 ) );\r
+                                               this.tx三角矢印.t2D描画( CDTXMania.app.Device, x, y_lower, new Rectangle( 0, 0x10, 0x20, 0x10 ) );\r
                                        }\r
                                }\r
                        }\r
@@ -1206,9 +1191,11 @@ namespace DTXMania
                private CItemToggle iSystemStageFailed;\r
                private CItemToggle iSystemStoicMode;\r
                private CItemToggle iSystemVSyncWait;\r
-               private CItemToggle iSystemShowLag;                     // #25370 2011.6.3 yyagi\r
-               private CItemToggle iSystemAutoResultCapture;   // #25399 2011.6.9 yyagi\r
+               private CItemToggle iSystemShowLag;                                     // #25370 2011.6.3 yyagi\r
+               private CItemToggle iSystemAutoResultCapture;           // #25399 2011.6.9 yyagi\r
                private CItemToggle iSystemBufferedInput;\r
+               private CItemInteger iSystemRisky;                                      // #23559 2011.7.27 yyagi\r
+\r
                private List<CItemBase> list項目リスト;\r
                private long nスクロール用タイマ値;\r
                private int n現在のスクロールカウンタ;\r
@@ -1270,7 +1257,6 @@ namespace DTXMania
                private CItemInteger iGuitarInputAdjustTimeMs;          //\r
                private CItemInteger iBassInputAdjustTimeMs;            //\r
 \r
-\r
                private int t前の項目( int nItem )\r
                {\r
                        if( --nItem < 0 )\r
@@ -1362,8 +1348,10 @@ namespace DTXMania
                        CDTXMania.ConfigIni.n自動再生音量 = this.iSystemAutoChipVolume.n現在の値;\r
                        CDTXMania.ConfigIni.bストイックモード = this.iSystemStoicMode.bON;\r
 \r
-                       CDTXMania.ConfigIni.bIsShowingLag = this.iSystemShowLag.bON;            // #25370 2011.6.3 yyagi\r
-                       CDTXMania.ConfigIni.bIsAutoResultCapture = this.iSystemAutoResultCapture.bON;   // #25399 2011.6.9 yyagi\r
+                       CDTXMania.ConfigIni.bIsShowingLag = this.iSystemShowLag.bON;                                            // #25370 2011.6.3 yyagi\r
+                       CDTXMania.ConfigIni.bIsAutoResultCapture = this.iSystemAutoResultCapture.bON;           // #25399 2011.6.9 yyagi\r
+\r
+                       CDTXMania.ConfigIni.nRisky = this.iSystemRisky.n現在の値;                                           // #23559 2911.7.27 yyagi\r
                }\r
                private void tConfigIniへ記録する・Bass()\r
                {\r
@@ -1381,9 +1369,7 @@ namespace DTXMania
                        CDTXMania.ConfigIni.b演奏音を強調する.Bass = this.iSystemSoundMonitorBass.bON;\r
                        CDTXMania.ConfigIni.n表示可能な最小コンボ数.Bass = this.iSystemMinComboBass.n現在の値;\r
                }\r
-//             private void tConfigIniへ記録する・Common()\r
-//             {\r
-//             }\r
+\r
                private void tConfigIniへ記録する・Drums()\r
                {\r
                        CDTXMania.ConfigIni.bAutoPlay.LC = this.iDrumsLeftCymbal.bON;\r
index 3b496d8..9f0203a 100644 (file)
@@ -1,6 +1,7 @@
 using System;\r
 using System.Collections.Generic;\r
 using System.Text;\r
+using System.Runtime;\r
 using System.Runtime.InteropServices;\r
 using System.Drawing;\r
 using System.Drawing.Imaging;\r
@@ -269,6 +270,8 @@ namespace DTXMania
                                CDTXMania.DTX.SwapGuitarBassInfos();\r
                        }\r
                        this.sw = new Stopwatch();\r
+//                     this.gclatencymode = GCSettings.LatencyMode;\r
+//                     GCSettings.LatencyMode = GCLatencyMode.LowLatency;      // GCのgen2はせいぜい1演奏辺り1,2回しか発生しないので、ここでわざわざGC gen2は抑止しない\r
                }\r
                public override void On非活性化()\r
                {\r
@@ -282,6 +285,7 @@ namespace DTXMania
                        this.ctチップ模様アニメ.Drums = null;\r
                        this.ctチップ模様アニメ.Guitar = null;\r
                        this.ctチップ模様アニメ.Bass = null;\r
+//                     GCSettings.LatencyMode = this.gclatencymode;\r
                        base.On非活性化();\r
                }\r
                public override void OnManagedリソースの作成()\r
@@ -535,7 +539,7 @@ namespace DTXMania
                protected CConfigIni.STAUTOPLAY bIsAutoPlay;            // #24239 2011.1.23 yyagi\r
 \r
                protected Stopwatch sw;         // 2011.6.13 最適化検討用のストップウォッチ\r
-\r
+//             protected GCLatencyMode gclatencymode;\r
 \r
                protected E判定 e指定時刻からChipのJUDGEを返す( long nTime, CDTX.CChip pChip, int nInputAdjustTime )\r
                {\r
@@ -998,69 +1002,37 @@ namespace DTXMania
                                        break;\r
 \r
                                case E楽器パート.GUITAR:\r
-                                       switch ( eJudgeResult )\r
-                                       {\r
-                                               case E判定.Miss:\r
-                                               case E判定.Bad:\r
-                                                       this.nヒット数・Auto含む.Guitar.Miss++;\r
-                                                       if ( !bPChipIsAutoPlay )\r
-                                                       {\r
-                                                               this.nヒット数・Auto含まない.Guitar.Miss++;\r
-                                                       }\r
-                                                       break;\r
-                                               default:        // #24068 2011.1.10 ikanick changed\r
-                                                       // #24167 2011.1.16 yyagi changed\r
-                                                       this.nヒット数・Auto含む.Guitar[ (int) eJudgeResult ]++;\r
-                                                       if ( !bPChipIsAutoPlay )\r
-                                                       {\r
-                                                               this.nヒット数・Auto含まない.Guitar[ (int) eJudgeResult ]++;\r
-                                                       }\r
-                                                       break;\r
-                                       }\r
-                                       switch ( eJudgeResult )\r
-                                       {\r
-                                               case E判定.Perfect:\r
-                                               case E判定.Great:\r
-                                               case E判定.Good:\r
-                                                       this.actCombo.n現在のコンボ数.Guitar++;\r
-                                                       break;\r
-\r
-                                               default:\r
-                                                       this.actCombo.n現在のコンボ数.Guitar = 0;\r
-                                                       break;\r
-                                       }\r
-                                       break;\r
-\r
                                case E楽器パート.BASS:\r
+                                       int indexInst = (int) pChip.e楽器パート;\r
                                        switch ( eJudgeResult )\r
                                        {\r
                                                case E判定.Miss:\r
                                                case E判定.Bad:\r
-                                                       this.nヒット数・Auto含む.Bass.Miss++;\r
+                                                       this.nヒット数・Auto含む[ indexInst ].Miss++;\r
                                                        if ( !bPChipIsAutoPlay )\r
                                                        {\r
-                                                               this.nヒット数・Auto含まない.Bass.Miss++;\r
+                                                               this.nヒット数・Auto含まない[ indexInst ].Miss++;\r
                                                        }\r
                                                        break;\r
                                                default:        // #24068 2011.1.10 ikanick changed\r
-                                                       this.nヒット数・Auto含む.Bass[ (int) eJudgeResult ]++;\r
+                                                       // #24167 2011.1.16 yyagi changed\r
+                                                       this.nヒット数・Auto含む[ indexInst ][ (int) eJudgeResult ]++;\r
                                                        if ( !bPChipIsAutoPlay )\r
                                                        {\r
-                                                               this.nヒット数・Auto含まない.Bass[ (int) eJudgeResult ]++;\r
+                                                               this.nヒット数・Auto含まない[ indexInst ][ (int) eJudgeResult ]++;\r
                                                        }\r
                                                        break;\r
                                        }\r
-\r
                                        switch ( eJudgeResult )\r
                                        {\r
                                                case E判定.Perfect:\r
                                                case E判定.Great:\r
                                                case E判定.Good:\r
-                                                       this.actCombo.n現在のコンボ数.Bass++;\r
+                                                       this.actCombo.n現在のコンボ数[ indexInst ]++;\r
                                                        break;\r
 \r
                                                default:\r
-                                                       this.actCombo.n現在のコンボ数.Bass = 0;\r
+                                                       this.actCombo.n現在のコンボ数[ indexInst ] = 0;\r
                                                        break;\r
                                        }\r
                                        break;\r
@@ -1070,28 +1042,16 @@ namespace DTXMania
                        }\r
                        if ( ( !bPChipIsAutoPlay && ( pChip.e楽器パート != E楽器パート.UNKNOWN ) ) && ( eJudgeResult != E判定.Miss ) && ( eJudgeResult != E判定.Bad ) )\r
                        {\r
-                               int nCombos = 0;\r
-                               switch ( pChip.e楽器パート )\r
-                               {\r
-                                       case E楽器パート.DRUMS:\r
-                                               nCombos = this.actCombo.n現在のコンボ数.Drums;\r
-                                               break;\r
-                                       case E楽器パート.GUITAR:\r
-                                               nCombos = this.actCombo.n現在のコンボ数.Guitar;\r
-                                               break;\r
-                                       case E楽器パート.BASS:\r
-                                               nCombos = this.actCombo.n現在のコンボ数.Bass;\r
-                                               break;\r
-                               }\r
+                               int nCombos = this.actCombo.n現在のコンボ数[ (int) pChip.e楽器パート ];\r
                                long nScore = this.actScore.Get( pChip.e楽器パート );\r
-                               long[] numArray = new long[] { 350L, 200L, 50L, 0L };\r
+                               long[] nComboScoreDelta = new long[] { 350L, 200L, 50L, 0L };\r
                                if ( ( nCombos <= 500 ) || ( eJudgeResult == E判定.Good ) )\r
                                {\r
-                                       nScore += numArray[ (int) eJudgeResult ] * nCombos;\r
+                                       nScore += nComboScoreDelta[ (int) eJudgeResult ] * nCombos;\r
                                }\r
                                else if ( ( eJudgeResult == E判定.Perfect ) || ( eJudgeResult == E判定.Great ) )\r
                                {\r
-                                       nScore += numArray[ (int) eJudgeResult ] * 500L;\r
+                                       nScore += nComboScoreDelta[ (int) eJudgeResult ] * 500L;\r
                                }\r
                                this.actScore.Set( pChip.e楽器パート, nScore );\r
                        }\r
@@ -1338,8 +1298,10 @@ namespace DTXMania
                        if ( ( !this.bPAUSE && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED ) ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) )\r
                        {\r
                                this.t入力処理・ドラム();\r
-                               this.t入力処理・ギター();\r
-                               this.t入力処理・ベース();\r
+                               //this.t入力処理・ギター();\r
+                               //this.t入力処理・ベース();\r
+                               this.t入力処理・ギターベース( E楽器パート.GUITAR );\r
+                               this.t入力処理・ギターベース( E楽器パート.BASS );\r
                                if ( keyboard.bキーが押された( (int) SlimDX.DirectInput.Key.UpArrow ) && ( keyboard.bキーが押されている( (int) SlimDX.DirectInput.Key.RightShift ) || keyboard.bキーが押されている( (int) SlimDX.DirectInput.Key.LeftShift ) ) )\r
                                {       // shift (+ctrl) + UpArrow (BGMAdjust)\r
                                        CDTXMania.DTX.t各自動再生音チップの再生時刻を変更する( ( keyboard.bキーが押されている( (int) SlimDX.DirectInput.Key.LeftControl ) || keyboard.bキーが押されている( (int) SlimDX.DirectInput.Key.RightControl ) ) ? 1 : 10 );\r
@@ -1526,7 +1488,8 @@ namespace DTXMania
 \r
                        CDTX dTX = CDTXMania.DTX;\r
                        CConfigIni configIni = CDTXMania.ConfigIni;\r
-                       while ( nCurrentTopChip < dTX.listChip.Count )\r
+//                     while ( nCurrentTopChip < dTX.listChip.Count )\r
+                       for ( ; nCurrentTopChip < dTX.listChip.Count; nCurrentTopChip++ )\r
                        {\r
                                CDTX.CChip pChip = dTX.listChip[ nCurrentTopChip ];\r
                                pChip.nバーからの距離dot.Drums = (int) ( ( pChip.n発声時刻ms - CDTXMania.Timer.n現在時刻 ) * ScrollSpeedDrums );\r
@@ -1538,8 +1501,8 @@ namespace DTXMania
                                }\r
                                if ( ( ( nCurrentTopChip == this.n現在のトップChip ) && ( pChip.nバーからの距離dot.Drums < -65 ) ) && pChip.bHit )\r
                                {\r
-                                       this.n現在のトップChip++;\r
-                                       nCurrentTopChip = this.n現在のトップChip;\r
+                                       //this.n現在のトップChip++;\r
+                                       nCurrentTopChip = ++this.n現在のトップChip;\r
                                        continue;\r
                                }\r
 \r
@@ -1910,7 +1873,7 @@ namespace DTXMania
                                        #endregion \r
                                }\r
 \r
-                               nCurrentTopChip++;\r
+//                             nCurrentTopChip++;\r
                        }\r
                        return false;\r
                }\r
@@ -2003,14 +1966,14 @@ namespace DTXMania
                }\r
                protected void t進行描画・レーンフラッシュD()\r
                {\r
-                       if ( ( ( CDTXMania.ConfigIni.eDark != Eダークモード.HALF ) && ( CDTXMania.ConfigIni.eDark != Eダークモード.FULL ) ) && ( ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) ) )\r
+                       if ( ( CDTXMania.ConfigIni.eDark == Eダークモード.OFF ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) )\r
                        {\r
                                this.actLaneFlushD.On進行描画();\r
                        }\r
                }\r
                protected void t進行描画・レーンフラッシュGB()\r
                {\r
-                       if ( ( ( CDTXMania.ConfigIni.eDark != Eダークモード.HALF ) && ( CDTXMania.ConfigIni.eDark != Eダークモード.FULL ) ) && CDTXMania.ConfigIni.bGuitar有効 )\r
+                       if ( ( CDTXMania.ConfigIni.eDark != Eダークモード.OFF ) && CDTXMania.ConfigIni.bGuitar有効 )\r
                        {\r
                                this.actLaneFlushGB.On進行描画();\r
                        }\r
@@ -2339,6 +2302,7 @@ namespace DTXMania
                protected void t判定にあわせてゲージを増減する( E楽器パート screenmode, E楽器パート part, E判定 e今回の判定 )\r
                {\r
                        double fDamage;\r
+                       int nRisky = CDTXMania.ConfigIni.nRisky;\r
 \r
 #if true       // DAMAGELEVELTUNING\r
                        switch ( e今回の判定 )\r
@@ -2346,18 +2310,16 @@ namespace DTXMania
                                case E判定.Perfect:\r
                                case E判定.Great:\r
                                case E判定.Good:\r
+                                       fDamage = ( nRisky > 0 ) ? 0 : fDamageGaugeDelta[ (int) e今回の判定, (int) part ];\r
+                                       break;\r
                                case E判定.Poor:\r
-                                       fDamage = fDamageGaugeDelta[ (int) e今回の判定, (int) part ];\r
+                                       fDamage = ( nRisky > 0 ) ? ( -1.1 / nRisky ) : fDamageGaugeDelta[ (int) e今回の判定, (int) part ];\r
                                        break;\r
                                case E判定.Miss:\r
-                                       fDamage = fDamageGaugeDelta[ (int) e今回の判定, (int) part ];\r
-                                       switch ( CDTXMania.ConfigIni.eダメージレベル )\r
+                                       fDamage = ( nRisky > 0 ) ? ( -1.1 / nRisky ) : fDamageGaugeDelta[ (int) e今回の判定, (int) part ];\r
+                                       if ( nRisky == 0 )\r
                                        {\r
-                                               case Eダメージレベル.少ない:\r
-                                               case Eダメージレベル.普通:\r
-                                               case Eダメージレベル.大きい:\r
-                                                       fDamage *= fDamageLevelFactor[ (int) CDTXMania.ConfigIni.eダメージレベル ];\r
-                                                       break;\r
+                                               fDamage *= fDamageLevelFactor[ (int) CDTXMania.ConfigIni.eダメージレベル ];\r
                                        }\r
                                        break;\r
 \r
@@ -2410,10 +2372,22 @@ namespace DTXMania
                        if ( screenmode == E楽器パート.DRUMS )                     // ドラム演奏画面なら、ギター/ベースのダメージも全部ドラムのゲージに集約する\r
                        {\r
                                part = E楽器パート.DRUMS;\r
+                               this.actGauge.db現在のゲージ値[ (int) part ] += fDamage;\r
+                       }\r
+                       else\r
+                       {\r
+                               if ( nRisky > 0 )                                       // ギター画面且つRISKYなら、ギターとベースのゲージをセットで減少\r
+                               {\r
+                                       this.actGauge.db現在のゲージ値[ (int) E楽器パート.GUITAR ] += fDamage;\r
+                                       this.actGauge.db現在のゲージ値[ (int) E楽器パート.BASS   ] += fDamage;\r
+                               }\r
+                               else\r
+                               {\r
+                                       this.actGauge.db現在のゲージ値[ (int) part ] += fDamage;\r
+                               }\r
                        }\r
-                       this.actGauge.db現在のゲージ値[ (int) part ] += fDamage;\r
 \r
-                       if ( this.actGauge.db現在のゲージ値[ (int) part ] > 1.0 )\r
+                       if ( this.actGauge.db現在のゲージ値[ (int) part ] > 1.0 )                // RISKY時は決してゲージが増加しないので、ギタレボモード時のギター/ベース両チェックはしなくて良い\r
                                this.actGauge.db現在のゲージ値[ (int) part ] = 1.0;\r
                }\r
                //-----------------\r
index 5131dea..18f8d95 100644 (file)
@@ -25,8 +25,8 @@ namespace DTXMania
 \r
                public override void On活性化()\r
                {\r
-                       this.db現在のゲージ値.Guitar = 0.66666666666666663;\r
-                       this.db現在のゲージ値.Bass = 0.66666666666666663;\r
+                       this.db現在のゲージ値.Guitar = ( CDTXMania.ConfigIni.nRisky > 0 ) ? 1.0 : 0.66666666666666663;\r
+                       this.db現在のゲージ値.Bass   = ( CDTXMania.ConfigIni.nRisky > 0 ) ? 1.0 : 0.66666666666666663;\r
                        base.On活性化();\r
                }\r
                public override void On非活性化()\r
@@ -65,13 +65,15 @@ namespace DTXMania
                                }\r
                                this.ct本体移動.t進行Loop();\r
                                this.ct本体振動.t進行Loop();\r
-                               if( this.db現在のゲージ値.Guitar == 1.0 )\r
+\r
+                               #region [ ギターのゲージ ]\r
+                               if ( this.db現在のゲージ値.Guitar == 1.0 )       // ギターのゲージ\r
                                {\r
                                        num = (int) ( 128.0 * this.db現在のゲージ値.Guitar );\r
                                }\r
                                else\r
                                {\r
-                                       num = (int) ( ( 128.0 * this.db現在のゲージ値.Guitar ) + ( 2.0 * Math.Sin( 6.2831853071795862 * ( ( (double) this.ct本体振動.n現在の値 ) / 360.0 ) ) ) );\r
+                                       num = (int) ( ( 128.0 * this.db現在のゲージ値.Guitar ) + ( 2.0 * Math.Sin( Math.PI * 2 * ( ( (double) this.ct本体振動.n現在の値 ) / 360.0 ) ) ) );\r
                                }\r
                                if( num > 0 )\r
                                {\r
@@ -133,13 +135,16 @@ namespace DTXMania
                                                this.txゲージ.t2D描画( CDTXMania.app.Device, x, 8, rectangle );\r
                                        }\r
                                }\r
-                               if( this.db現在のゲージ値.Bass == 1.0 )\r
+                               #endregion\r
+\r
+                               #region [ ベースのゲージ ]\r
+                               if ( this.db現在のゲージ値.Bass == 1.0 )\r
                                {\r
                                        num9 = (int) ( 128.0 * this.db現在のゲージ値.Bass );\r
                                }\r
                                else\r
                                {\r
-                                       num9 = (int) ( ( 128.0 * this.db現在のゲージ値.Bass ) + ( 2.0 * Math.Sin( 6.2831853071795862 * ( ( (double) this.ct本体振動.n現在の値 ) / 360.0 ) ) ) );\r
+                                       num9 = (int) ( ( 128.0 * this.db現在のゲージ値.Bass ) + ( 2.0 * Math.Sin( Math.PI * 2 * ( ( (double) this.ct本体振動.n現在の値 ) / 360.0 ) ) ) );\r
                                }\r
                                if( num9 > 0 )\r
                                {\r
@@ -194,6 +199,7 @@ namespace DTXMania
                                                this.txゲージ.t2D描画( CDTXMania.app.Device, num11, 8, rectangle2 );\r
                                        }\r
                                }\r
+                               #endregion\r
                        }\r
                        return 0;\r
                }\r
index 477b8fe..2f8e1bf 100644 (file)
@@ -41,14 +41,14 @@ namespace DTXMania
 \r
                public override void On活性化()\r
                {\r
-                       this.dbゲージ値 = 0.66666666666666663;\r
+                       this.dbゲージ値 = ( CDTXMania.ConfigIni.nRisky > 0 ) ? 1.0 : 0.66666666666666663;\r
                        base.On活性化();\r
                }\r
                public override void On非活性化()\r
                {\r
                        this.ct本体振動 = null;\r
                        this.ct本体移動 = null;\r
-                       for( int i = 0; i < 0x18; i++ )\r
+                       for( int i = 0; i < 24; i++ )\r
                        {\r
                                this.st白い星[ i ].ct進行 = null;\r
                        }\r
@@ -89,7 +89,7 @@ namespace DTXMania
                                }\r
                                this.ct本体移動.t進行Loop();\r
                                this.ct本体振動.t進行Loop();\r
-                               int num2 = ( this.dbゲージ値 == 1.0 ) ? ( (int) ( 352.0 * this.dbゲージ値 ) ) : ( (int) ( ( 352.0 * this.dbゲージ値 ) + ( 2.0 * Math.Sin( 6.2831853071795862 * ( ( (double) this.ct本体振動.n現在の値 ) / 360.0 ) ) ) ) );\r
+                               int num2 = ( this.dbゲージ値 == 1.0 ) ? ( (int) ( 352.0 * this.dbゲージ値 ) ) : ( (int) ( ( 352.0 * this.dbゲージ値 ) + ( 2.0 * Math.Sin( Math.PI * 2 * ( ( (double) this.ct本体振動.n現在の値 ) / 360.0 ) ) ) ) );\r
                                if( num2 <= 0 )\r
                                {\r
                                        return 0;\r
index 86895f5..7525381 100644 (file)
@@ -581,6 +581,7 @@ namespace DTXMania
                                }\r
                        }\r
                }\r
+               public int nRisky;                                              // #23559 2011.6.20 yyagi Riskyでの残ミス数。0で閉店\r
                public bool bIsSwappedGuitarBass                        // #24063 2011.1.16 yyagi ギターとベースの切り替え中か否か\r
                {\r
                        get;\r
@@ -900,10 +901,6 @@ namespace DTXMania
                        this.b歓声を発声する = true;\r
                        this.bScoreIniを出力する = true;\r
                        this.bランダムセレクトで子BOXを検索対象とする = true;\r
-                       this.b演奏音を強調する = new STDGBVALUE<bool>();\r
-                       this.b演奏音を強調する.Drums = true;\r
-                       this.b演奏音を強調する.Guitar = true;\r
-                       this.b演奏音を強調する.Bass = true;\r
                        this.n表示可能な最小コンボ数 = new STDGBVALUE<int>();\r
                        this.n表示可能な最小コンボ数.Drums = 11;\r
                        this.n表示可能な最小コンボ数.Guitar = 2;\r
@@ -914,38 +911,29 @@ namespace DTXMania
                        this.n自動再生音量 = 80;\r
                        this.n手動再生音量 = 100;\r
                        this.bログ出力 = true;\r
+                       this.b演奏音を強調する = new STDGBVALUE<bool>();\r
                        this.bSudden = new STDGBVALUE<bool>();\r
-                       this.bSudden.Drums = false;\r
-                       this.bSudden.Guitar = false;\r
-                       this.bSudden.Bass = false;\r
                        this.bHidden = new STDGBVALUE<bool>();\r
-                       this.bHidden.Drums = false;\r
-                       this.bHidden.Guitar = false;\r
-                       this.bHidden.Bass = false;\r
                        this.bReverse = new STDGBVALUE<bool>();\r
-                       this.bReverse.Drums = false;\r
-                       this.bReverse.Guitar = false;\r
-                       this.bReverse.Bass = false;\r
                        this.eRandom = new STDGBVALUE<Eランダムモード>();\r
-                       this.eRandom.Drums = Eランダムモード.OFF;\r
-                       this.eRandom.Guitar = Eランダムモード.OFF;\r
-                       this.eRandom.Bass = Eランダムモード.OFF;\r
                        this.bLight = new STDGBVALUE<bool>();\r
-                       this.bLight.Drums = false;\r
-                       this.bLight.Guitar = false;\r
-                       this.bLight.Bass = false;\r
                        this.bLeft = new STDGBVALUE<bool>();\r
-                       this.bLeft.Drums = false;\r
-                       this.bLeft.Guitar = false;\r
-                       this.bLeft.Bass = false;\r
                        this.判定文字表示位置 = new STDGBVALUE<E判定文字表示位置>();\r
-                       this.判定文字表示位置.Drums = E判定文字表示位置.レーン上;\r
-                       this.判定文字表示位置.Guitar = E判定文字表示位置.レーン上;\r
-                       this.判定文字表示位置.Bass = E判定文字表示位置.レーン上;\r
                        this.n譜面スクロール速度 = new STDGBVALUE<int>();\r
-                       this.n譜面スクロール速度.Drums = 1;\r
-                       this.n譜面スクロール速度.Guitar = 1;\r
-                       this.n譜面スクロール速度.Bass = 1;\r
+                       this.nInputAdjustTimeMs = new STDGBVALUE<int>();        // #23580 2011.1.3 yyagi\r
+                       for ( int i = 0; i < 3; i++ )\r
+                       {\r
+                               this.b演奏音を強調する[ i ] = true;\r
+                               this.bSudden[ i ] = false;\r
+                               this.bHidden[ i ] = false;\r
+                               this.bReverse[ i ] = false;\r
+                               this.eRandom[ i ] = Eランダムモード.OFF;\r
+                               this.bLight[ i ] = false;\r
+                               this.bLeft[ i ] = false;\r
+                               this.判定文字表示位置[ i ] = E判定文字表示位置.レーン上;\r
+                               this.n譜面スクロール速度[ i ] = 1;\r
+                               this.nInputAdjustTimeMs[ i ] = 0;\r
+                       }\r
                        this.n演奏速度 = 20;\r
                        this.bAutoPlay = new STAUTOPLAY();\r
                        this.bAutoPlay.HH = false;\r
@@ -966,12 +954,6 @@ namespace DTXMania
                        this.ConfigIniファイル名 = "";\r
                        this.dicJoystick = new Dictionary<int, string>( 10 );\r
                        this.tデフォルトのキーアサインに設定する();\r
-                       this.nInputAdjustTimeMs = new STDGBVALUE<int>();        // #23580 2011.1.3 yyagi\r
-                       this.nInputAdjustTimeMs.Drums = 0;\r
-                       this.nInputAdjustTimeMs.Guitar = 0;\r
-                       this.nInputAdjustTimeMs.Bass = 0;\r
-//                     this.nハイハット切り捨て下限Velocity = 20;\r
-//                     this.n切り捨て下限Velocity = 0;                           // #23857 2010.12.12 yyagi VelocityMin\r
                        this.nVelocityMin.LC = 0;                                       // #23857 2011.1.31 yyagi VelocityMin\r
                        this.nVelocityMin.HH = 20;\r
                        this.nVelocityMin.SD = 0;\r
@@ -981,6 +963,7 @@ namespace DTXMania
                        this.nVelocityMin.FT = 0;\r
                        this.nVelocityMin.CY = 0;\r
                        this.nVelocityMin.RD = 0;\r
+                       this.nRisky = 0;                                                // #23539 2011.7.26 yyagi RISKYモード\r
                        this.bIsShowingLag = false;                                     // #25370 2011.6.3 yyagi ズレ時間表示\r
                        this.bIsAutoResultCapture = false;                      // #25399 2011.6.9 yyagi リザルト画像自動保存機能ON/OFF\r
 \r
@@ -1279,6 +1262,10 @@ namespace DTXMania
                        sw.WriteLine( "; ベースLEFTモード(0:OFF, 1:ON)" );\r
                        sw.WriteLine( "BassLeft={0}", this.bLeft.Bass ? 1 : 0 );\r
                        sw.WriteLine();\r
+                       sw.WriteLine( "; RISKYモード(0:OFF, 1-10)" );                                                                        // #23559 2011.6.23 yyagi\r
+                       sw.WriteLine( "; RISKY mode. 0=OFF, 1-10 is the times of misses to be Failed." );       //\r
+                       sw.WriteLine( "Risky={0}", this.nRisky );                       //\r
+                       sw.WriteLine();\r
                        sw.WriteLine( "; ドラム判定文字表示位置(0:レーン上,1:判定ライン上,2:表示OFF)" );\r
                        sw.WriteLine( "DrumsPosition={0}", (int) this.判定文字表示位置.Drums );\r
                        sw.WriteLine();\r
@@ -1974,6 +1961,11 @@ namespace DTXMania
                                                                                        {\r
                                                                                                this.ドラムコンボ文字の表示位置 = (Eドラムコンボ文字の表示位置) C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 3, (int) this.ドラムコンボ文字の表示位置 );\r
                                                                                        }\r
+                                                                                       else if ( str3.Equals( "Risky" ) )                                      // #2359 2011.6.23  yyagi\r
+                                                                                       {\r
+                                                                                               this.nRisky = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 10, this.nRisky );\r
+                                                                                       }\r
+\r
                                                                                        continue;\r
                                                                                }\r
                                                                        //-----------------------------\r