OSDN Git Service

#23670 エラー発生時強制終了する前に例外の内容をダイアログ表示するようにした。
authoryyagi <yyagi@16f42ceb-6dc6-49c8-ba94-f2d53467949d>
Thu, 3 Mar 2011 16:41:46 +0000 (16:41 +0000)
committeryyagi <yyagi@16f42ceb-6dc6-49c8-ba94-f2d53467949d>
Thu, 3 Mar 2011 16:41:46 +0000 (16:41 +0000)
#24415 FLIP問題再修正。
#24459 HiScore/HiSkillとは別に、最高ランクを独立して残すよう修正
#24569 AUTO演奏楽器を含む場合の総合リザルトの値を修正。(現状の動作が仕様であるならば、後日元に戻します)
(未起票) リファクタに伴い空打ちチップ使用でエラーになっていたのを修正。

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

15 files changed:
DTXManiaプロジェクト/コード/スコア、曲/CDTX.cs
DTXManiaプロジェクト/コード/スコア、曲/CScoreIni.cs
DTXManiaプロジェクト/コード/スコア、曲/CSong管理.cs
DTXManiaプロジェクト/コード/スコア、曲/Cスコア.cs
DTXManiaプロジェクト/コード/ステージ/02.タイトル/CStageタイトル.cs
DTXManiaプロジェクト/コード/ステージ/04.コンフィグ/CStageコンフィグ.cs
DTXManiaプロジェクト/コード/ステージ/05.選曲/CStage選曲.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/CStage演奏画面共通.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/ギター画面/CStage演奏ギター画面.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/ドラム画面/CStage演奏ドラム画面.cs
DTXManiaプロジェクト/コード/ステージ/08.結果/CStage結果.cs
DTXManiaプロジェクト/コード/全体/CConfigIni.cs
DTXManiaプロジェクト/コード/全体/CDTXMania.cs
DTXManiaプロジェクト/コード/全体/C定数.cs
DTXManiaプロジェクト/コード/全体/Program.cs

index d2739d2..bb05aa8 100644 (file)
@@ -1524,16 +1524,15 @@ namespace DTXMania
 #endif\r
                        this.db再生速度 = 1.0;\r
                        this.strハッシュofDTXファイル = "";\r
-                       STチップがある stチップがある = new STチップがある();\r
-                       stチップがある.Drums = false;\r
-                       stチップがある.Guitar = false;\r
-                       stチップがある.Bass = false;\r
-                       stチップがある.HHOpen = false;\r
-                       stチップがある.Ride = false;\r
-                       stチップがある.LeftCymbal = false;\r
-                       stチップがある.OpenGuitar = false;\r
-                       stチップがある.OpenBass = false;\r
-                       this.bチップがある = stチップがある;\r
+                       this.bチップがある = new STチップがある();\r
+                       this.bチップがある.Drums = false;\r
+                       this.bチップがある.Guitar = false;\r
+                       this.bチップがある.Bass = false;\r
+                       this.bチップがある.HHOpen = false;\r
+                       this.bチップがある.Ride = false;\r
+                       this.bチップがある.LeftCymbal = false;\r
+                       this.bチップがある.OpenGuitar = false;\r
+                       this.bチップがある.OpenBass = false;\r
                        this.strファイル名 = "";\r
                        this.strフォルダ名 = "";\r
                        this.strファイル名の絶対パス = "";\r
@@ -2928,7 +2927,8 @@ namespace DTXMania
                                                {\r
                                                        this.strハッシュofDTXファイル = "00000000000000000000000000000000";\r
                                                }\r
-                                               if( CDTXMania.ConfigIni.bLogDTX詳細ログ出力 )\r
+                                               #region [ bLogDTX詳細ログ出力 ]\r
+                                               if ( CDTXMania.ConfigIni.bLogDTX詳細ログ出力 )\r
                                                {\r
                                                        foreach( CWAV cwav3 in this.listWAV.Values )\r
                                                        {\r
@@ -2967,6 +2967,7 @@ namespace DTXMania
                                                                Trace.TraceInformation( chip14.ToString() );\r
                                                        }\r
                                                }\r
+                                               #endregion\r
                                        }\r
                                }\r
                        }\r
@@ -3002,14 +3003,14 @@ namespace DTXMania
 \r
 //                     SwapGuitarBassInfos_AutoFlags();\r
                }\r
-               //public void SwapGuitarBassInfos_AutoFlags()\r
-               //{\r
-               //    bool ts = CDTXMania.ConfigIni.bAutoPlay.Bass;                     // #24415 2011.2.21 yyagi: FLIP時のリザルトにAUTOの記録が混ざらないよう、AUTOのフラグもswapする\r
-               //    CDTXMania.ConfigIni.bAutoPlay.Bass = CDTXMania.ConfigIni.bAutoPlay.Guitar;\r
-               //    CDTXMania.ConfigIni.bAutoPlay.Guitar = ts;\r
-\r
-               //    CDTXMania.ConfigIni.bIsSwappedGuitarBass_AutoFlagsAreSwapped = !CDTXMania.ConfigIni.bIsSwappedGuitarBass_AutoFlagsAreSwapped;\r
-               //}\r
+               public void SwapGuitarBassInfos_AutoFlags()\r
+               {\r
+                   bool ts = CDTXMania.ConfigIni.bAutoPlay.Bass;                       // #24415 2011.2.21 yyagi: FLIP時のリザルトにAUTOの記録が混ざらないよう、AUTOのフラグもswapする\r
+                   CDTXMania.ConfigIni.bAutoPlay.Bass = CDTXMania.ConfigIni.bAutoPlay.Guitar;\r
+                   CDTXMania.ConfigIni.bAutoPlay.Guitar = ts;\r
+\r
+                   CDTXMania.ConfigIni.bIsSwappedGuitarBass_AutoFlagsAreSwapped = !CDTXMania.ConfigIni.bIsSwappedGuitarBass_AutoFlagsAreSwapped;\r
+               }\r
 \r
                // CActivity 実装\r
 \r
index 2836421..b6eca3e 100644 (file)
@@ -30,7 +30,9 @@ namespace DTXMania
             public int ClearCountDrums;\r
             public int ClearCountGuitar;\r
             public int ClearCountBass;\r
-            // --------------------------------/\r
+            // #24459 2011.2.24 yyagi----------/\r
+                       public STDGBVALUE<int> BestRank;\r
+                       // --------------------------------/\r
                        public int HistoryCount;\r
                        public string[] History;\r
                        public int BGMAdjust;\r
@@ -141,10 +143,21 @@ namespace DTXMania
                        HiScoreGuitar = 2,\r
                        HiSkillGuitar = 3,\r
                        HiScoreBass = 4,\r
-            HiSkillBass = 5,\r
-            LastPlayDrums = 6,  // #23595 2011.1.9 ikanick\r
-            LastPlayGuitar = 7, //\r
-            LastPlayBass = 8,   //\r
+                       HiSkillBass = 5,\r
+                       LastPlayDrums = 6,  // #23595 2011.1.9 ikanick\r
+                       LastPlayGuitar = 7, //\r
+                       LastPlayBass = 8,   //\r
+               }\r
+               public enum ERANK : int         // #24459 yyagi\r
+               {\r
+                       SS = 0,\r
+                       S = 1,\r
+                       A = 2,\r
+                       B = 3,\r
+                       C = 4,\r
+                       D = 5,\r
+                       E = 6,\r
+                       UNKNOWN = 99\r
                }\r
                public class C演奏記録\r
                {\r
@@ -184,6 +197,11 @@ namespace DTXMania
                        public int nPerfect数;\r
                        public int nPoorになる範囲ms;\r
                        public int nPoor数;\r
+                       public int nPerfect数・Auto含まない;\r
+                       public int nGreat数・Auto含まない;\r
+                       public int nGood数・Auto含まない;\r
+                       public int nPoor数・Auto含まない;\r
+                       public int nMiss数・Auto含まない;\r
                        public long nスコア;\r
                        public int n演奏速度分子;\r
                        public int n演奏速度分母;\r
@@ -393,13 +411,16 @@ namespace DTXMania
                {\r
                        this.iniファイルのあるフォルダ名 = null;\r
                        this.iniファイル名 = null;\r
-                       STファイル stファイル = new STファイル();\r
+                       this.stファイル = new STファイル();\r
                        stファイル.Title = "";\r
                        stファイル.Name = "";\r
                        stファイル.Hash = "";\r
                        stファイル.History = new string[] { "", "", "", "", "" };\r
-                       this.stファイル = stファイル;\r
-                       STセクション stセクション = new STセクション();\r
+                       stファイル.BestRank.Drums =  (int)ERANK.UNKNOWN;            // #24459 2011.2.24 yyagi\r
+                       stファイル.BestRank.Guitar = (int)ERANK.UNKNOWN;            //\r
+                       stファイル.BestRank.Bass =   (int)ERANK.UNKNOWN;            //\r
+       \r
+                       this.stセクション = new STセクション();\r
                        stセクション.HiScoreDrums = new C演奏記録();\r
                        stセクション.HiSkillDrums = new C演奏記録();\r
                        stセクション.HiScoreGuitar = new C演奏記録();\r
@@ -409,7 +430,6 @@ namespace DTXMania
             stセクション.LastPlayDrums = new C演奏記録();\r
             stセクション.LastPlayGuitar = new C演奏記録();\r
             stセクション.LastPlayBass = new C演奏記録();\r
-                       this.stセクション = stセクション;\r
                }\r
 \r
                /// <summary>\r
@@ -479,8 +499,8 @@ namespace DTXMania
                                        {\r
                                                try\r
                                                {\r
-                                                       string str3;\r
-                                                       string str4;\r
+                                                       string item;\r
+                                                       string para;\r
                                                        C演奏記録 c演奏記録;\r
                                                        if( str[ 0 ] == '[' )\r
                                                        {\r
@@ -543,17 +563,17 @@ namespace DTXMania
                                                                string[] strArray = str.Split( new char[] { '=' } );\r
                                                                if( strArray.Length == 2 )\r
                                                                {\r
-                                                                       str3 = strArray[ 0 ].Trim();\r
-                                                                       str4 = strArray[ 1 ].Trim();\r
+                                                                       item = strArray[ 0 ].Trim();\r
+                                                                       para = strArray[ 1 ].Trim();\r
                                                                        switch( unknown )\r
                                                                        {\r
                                                                                case Eセクション種別.File:\r
                                                                                        {\r
-                                                                                               if( !str3.Equals( "Title" ) )\r
+                                                                                               if( !item.Equals( "Title" ) )\r
                                                                                                {\r
                                                                                                        goto Label_01C7;\r
                                                                                                }\r
-                                                                                               this.stファイル.Title = str4;\r
+                                                                                               this.stファイル.Title = para;\r
                                                                                                continue;\r
                                                                                        }\r
                                                                                case Eセクション種別.HiScoreDrums:\r
@@ -567,11 +587,11 @@ namespace DTXMania
                                         case Eセクション種別.LastPlayBass:\r
                                                                                        {\r
                                                                                                c演奏記録 = this.stセクション[ (int) unknown ];\r
-                                                                                               if( !str3.Equals( "Score" ) )\r
+                                                                                               if( !item.Equals( "Score" ) )\r
                                                                                                {\r
                                                                                                        goto Label_03B9;\r
                                                                                                }\r
-                                                                                               c演奏記録.nスコア = long.Parse( str4 );\r
+                                                                                               c演奏記録.nスコア = long.Parse( para );\r
                                                                                                continue;\r
                                                                                        }\r
                                                                        }\r
@@ -579,168 +599,181 @@ namespace DTXMania
                                                        }\r
                                                        continue;\r
                                                Label_01C7:\r
-                                                       if( str3.Equals( "Name" ) )\r
+                                                       if( item.Equals( "Name" ) )\r
                                                        {\r
-                                                               this.stファイル.Name = str4;\r
+                                                               this.stファイル.Name = para;\r
                                                        }\r
-                                                       else if( str3.Equals( "Hash" ) )\r
+                                                       else if( item.Equals( "Hash" ) )\r
                                                        {\r
-                                                               this.stファイル.Hash = str4;\r
+                                                               this.stファイル.Hash = para;\r
                                                        }\r
-                                                       else if( str3.Equals( "PlayCountDrums" ) )\r
+                                                       else if( item.Equals( "PlayCountDrums" ) )\r
                                                        {\r
-                                                               this.stファイル.PlayCountDrums = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 0x5f5e0ff, 0 );\r
+                                                               this.stファイル.PlayCountDrums = C変換.n値を文字列から取得して範囲内に丸めて返す( para, 0, 99999999, 0 );\r
                                                        }\r
-                                                       else if( str3.Equals( "PlayCountGuitars" ) )// #23596 11.2.5 changed ikanick\r
+                                                       else if( item.Equals( "PlayCountGuitars" ) )// #23596 11.2.5 changed ikanick\r
                                                        {\r
-                                                               this.stファイル.PlayCountGuitar = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 0x5f5e0ff, 0 );\r
+                                                               this.stファイル.PlayCountGuitar = C変換.n値を文字列から取得して範囲内に丸めて返す( para, 0, 99999999, 0 );\r
                                                        }\r
-                                                       else if( str3.Equals( "PlayCountBass" ) )\r
+                                                       else if( item.Equals( "PlayCountBass" ) )\r
                                                        {\r
-                                                               this.stファイル.PlayCountBass = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 0x5f5e0ff, 0 );\r
+                                                               this.stファイル.PlayCountBass = C変換.n値を文字列から取得して範囲内に丸めて返す( para, 0, 99999999, 0 );\r
                             }\r
                             // #23596 10.11.16 add ikanick------------------------------------/\r
-                            else if (str3.Equals("ClearCountDrums"))\r
+                            else if (item.Equals("ClearCountDrums"))\r
                             {\r
-                                this.stファイル.ClearCountDrums = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 0x5f5e0ff, 0);\r
+                                this.stファイル.ClearCountDrums = C変換.n値を文字列から取得して範囲内に丸めて返す(para, 0, 99999999, 0);\r
                             }\r
-                            else if (str3.Equals("ClearCountGuitars"))// #23596 11.2.5 changed ikanick\r
+                            else if (item.Equals("ClearCountGuitars"))// #23596 11.2.5 changed ikanick\r
                             {\r
-                                this.stファイル.ClearCountGuitar = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 0x5f5e0ff, 0);\r
+                                this.stファイル.ClearCountGuitar = C変換.n値を文字列から取得して範囲内に丸めて返す(para, 0, 99999999, 0);\r
                             }\r
-                            else if (str3.Equals("ClearCountBass"))\r
+                            else if (item.Equals("ClearCountBass"))\r
                             {\r
-                                this.stファイル.ClearCountBass = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 0x5f5e0ff, 0);\r
+                                this.stファイル.ClearCountBass = C変換.n値を文字列から取得して範囲内に丸めて返す(para, 0, 99999999, 0);\r
                             }\r
-                            //----------------------------------------------------------------/\r
-                                                       else if( str3.Equals( "History0" ) )\r
+                            // #24459 2011.2.24 yyagi-----------------------------------------/\r
+                                                       else if ( item.Equals( "BestRankDrums" ) )\r
+                                                       {\r
+                                                               this.stファイル.BestRank.Drums = C変換.n値を文字列から取得して範囲内に丸めて返す( para, (int) ERANK.SS, (int) ERANK.E, (int) ERANK.UNKNOWN );\r
+                                                       }\r
+                                                       else if ( item.Equals( "BestRankGuitar" ) )\r
+                                                       {\r
+                                                               this.stファイル.BestRank.Guitar = C変換.n値を文字列から取得して範囲内に丸めて返す( para, (int) ERANK.SS, (int) ERANK.E, (int) ERANK.UNKNOWN );\r
+                                                       }\r
+                                                       else if ( item.Equals( "BestRankBass" ) )\r
+                                                       {\r
+                                                               this.stファイル.BestRank.Bass = C変換.n値を文字列から取得して範囲内に丸めて返す( para, (int) ERANK.SS, (int) ERANK.E, (int) ERANK.UNKNOWN );\r
+                                                       }\r
+                                                       //----------------------------------------------------------------/\r
+                                                       else if ( item.Equals( "History0" ) )\r
                                                        {\r
-                                                               this.stファイル.History[ 0 ] = str4;\r
+                                                               this.stファイル.History[ 0 ] = para;\r
                                                        }\r
-                                                       else if( str3.Equals( "History1" ) )\r
+                                                       else if( item.Equals( "History1" ) )\r
                                                        {\r
-                                                               this.stファイル.History[ 1 ] = str4;\r
+                                                               this.stファイル.History[ 1 ] = para;\r
                                                        }\r
-                                                       else if( str3.Equals( "History2" ) )\r
+                                                       else if( item.Equals( "History2" ) )\r
                                                        {\r
-                                                               this.stファイル.History[ 2 ] = str4;\r
+                                                               this.stファイル.History[ 2 ] = para;\r
                                                        }\r
-                                                       else if( str3.Equals( "History3" ) )\r
+                                                       else if( item.Equals( "History3" ) )\r
                                                        {\r
-                                                               this.stファイル.History[ 3 ] = str4;\r
+                                                               this.stファイル.History[ 3 ] = para;\r
                                                        }\r
-                                                       else if( str3.Equals( "History4" ) )\r
+                                                       else if( item.Equals( "History4" ) )\r
                                                        {\r
-                                                               this.stファイル.History[ 4 ] = str4;\r
+                                                               this.stファイル.History[ 4 ] = para;\r
                                                        }\r
-                                                       else if( str3.Equals( "HistoryCount" ) )\r
+                                                       else if( item.Equals( "HistoryCount" ) )\r
                                                        {\r
-                                                               this.stファイル.HistoryCount = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 0x5f5e0ff, 0 );\r
+                                                               this.stファイル.HistoryCount = C変換.n値を文字列から取得して範囲内に丸めて返す( para, 0, 99999999, 0 );\r
                                                        }\r
-                                                       else if( str3.Equals( "BGMAdjust" ) )\r
+                                                       else if( item.Equals( "BGMAdjust" ) )\r
                                                        {\r
-                                                               this.stファイル.BGMAdjust = C変換.n値を文字列から取得して返す( str4, 0 );\r
+                                                               this.stファイル.BGMAdjust = C変換.n値を文字列から取得して返す( para, 0 );\r
                                                        }\r
                                                        continue;\r
                                                Label_03B9:\r
-                                                       if( str3.Equals( "PlaySkill" ) )\r
+                                                       if( item.Equals( "PlaySkill" ) )\r
                                                        {\r
-                                                               c演奏記録.db演奏型スキル値 = (double) decimal.Parse( str4 );\r
+                                                               c演奏記録.db演奏型スキル値 = (double) decimal.Parse( para );\r
                                                        }\r
-                                                       else if( str3.Equals( "Skill" ) )\r
+                                                       else if( item.Equals( "Skill" ) )\r
                                                        {\r
-                                                               c演奏記録.dbゲーム型スキル値 = (double) decimal.Parse( str4 );\r
+                                                               c演奏記録.dbゲーム型スキル値 = (double) decimal.Parse( para );\r
                                                        }\r
-                                                       else if( str3.Equals( "Perfect" ) )\r
+                                                       else if( item.Equals( "Perfect" ) )\r
                                                        {\r
-                                                               c演奏記録.nPerfect数 = int.Parse( str4 );\r
+                                                               c演奏記録.nPerfect数 = int.Parse( para );\r
                                                        }\r
-                                                       else if( str3.Equals( "Great" ) )\r
+                                                       else if( item.Equals( "Great" ) )\r
                                                        {\r
-                                                               c演奏記録.nGreat数 = int.Parse( str4 );\r
+                                                               c演奏記録.nGreat数 = int.Parse( para );\r
                                                        }\r
-                                                       else if( str3.Equals( "Good" ) )\r
+                                                       else if( item.Equals( "Good" ) )\r
                                                        {\r
-                                                               c演奏記録.nGood数 = int.Parse( str4 );\r
+                                                               c演奏記録.nGood数 = int.Parse( para );\r
                                                        }\r
-                                                       else if( str3.Equals( "Poor" ) )\r
+                                                       else if( item.Equals( "Poor" ) )\r
                                                        {\r
-                                                               c演奏記録.nPoor数 = int.Parse( str4 );\r
+                                                               c演奏記録.nPoor数 = int.Parse( para );\r
                                                        }\r
-                                                       else if( str3.Equals( "Miss" ) )\r
+                                                       else if( item.Equals( "Miss" ) )\r
                                                        {\r
-                                                               c演奏記録.nMiss数 = int.Parse( str4 );\r
+                                                               c演奏記録.nMiss数 = int.Parse( para );\r
                                                        }\r
-                                                       else if( str3.Equals( "MaxCombo" ) )\r
+                                                       else if( item.Equals( "MaxCombo" ) )\r
                                                        {\r
-                                                               c演奏記録.n最大コンボ数 = int.Parse( str4 );\r
+                                                               c演奏記録.n最大コンボ数 = int.Parse( para );\r
                                                        }\r
-                                                       else if( str3.Equals( "TotalChips" ) )\r
+                                                       else if( item.Equals( "TotalChips" ) )\r
                                                        {\r
-                                                               c演奏記録.n全チップ数 = int.Parse( str4 );\r
+                                                               c演奏記録.n全チップ数 = int.Parse( para );\r
                                                        }\r
-                                                       else if( str3.Equals( "AutoPlay" ) )\r
+                                                       else if( item.Equals( "AutoPlay" ) )\r
                                                        {\r
-                                                               if( str4.Length == 9 )\r
+                                                               if( para.Length == 9 )\r
                                                                {\r
                                                                        for( int i = 0; i < 9; i++ )\r
                                                                        {\r
-                                                                               c演奏記録.bAutoPlay[ i ] = this.ONorOFF( str4[ i ] );\r
+                                                                               c演奏記録.bAutoPlay[ i ] = this.ONorOFF( para[ i ] );\r
                                                                        }\r
                                                                }\r
-                                                               else if( str4.Length == 10 )\r
+                                                               else if( para.Length == 10 )\r
                                                                {\r
                                                                        for( int j = 0; j < 10; j++ )\r
                                                                        {\r
-                                                                               c演奏記録.bAutoPlay[ j ] = this.ONorOFF( str4[ j ] );\r
+                                                                               c演奏記録.bAutoPlay[ j ] = this.ONorOFF( para[ j ] );\r
                                                                        }\r
                                                                }\r
                                                        }\r
-                                                       else if( str3.Equals( "TightDrums" ) )\r
+                                                       else if( item.Equals( "TightDrums" ) )\r
                                                        {\r
-                                                               c演奏記録.bTight = C変換.bONorOFF( str4[ 0 ] );\r
+                                                               c演奏記録.bTight = C変換.bONorOFF( para[ 0 ] );\r
                                                        }\r
-                                                       else if( str3.Equals( "SuddenDrums" ) )\r
+                                                       else if( item.Equals( "SuddenDrums" ) )\r
                                                        {\r
-                                                               c演奏記録.bSudden.Drums = C変換.bONorOFF( str4[ 0 ] );\r
+                                                               c演奏記録.bSudden.Drums = C変換.bONorOFF( para[ 0 ] );\r
                                                        }\r
-                                                       else if( str3.Equals( "SuddenGuitar" ) )\r
+                                                       else if( item.Equals( "SuddenGuitar" ) )\r
                                                        {\r
-                                                               c演奏記録.bSudden.Guitar = C変換.bONorOFF( str4[ 0 ] );\r
+                                                               c演奏記録.bSudden.Guitar = C変換.bONorOFF( para[ 0 ] );\r
                                                        }\r
-                                                       else if( str3.Equals( "SuddenBass" ) )\r
+                                                       else if( item.Equals( "SuddenBass" ) )\r
                                                        {\r
-                                                               c演奏記録.bSudden.Bass = C変換.bONorOFF( str4[ 0 ] );\r
+                                                               c演奏記録.bSudden.Bass = C変換.bONorOFF( para[ 0 ] );\r
                                                        }\r
-                                                       else if( str3.Equals( "HiddenDrums" ) )\r
+                                                       else if( item.Equals( "HiddenDrums" ) )\r
                                                        {\r
-                                                               c演奏記録.bHidden.Drums = C変換.bONorOFF( str4[ 0 ] );\r
+                                                               c演奏記録.bHidden.Drums = C変換.bONorOFF( para[ 0 ] );\r
                                                        }\r
-                                                       else if( str3.Equals( "HiddenGuitar" ) )\r
+                                                       else if( item.Equals( "HiddenGuitar" ) )\r
                                                        {\r
-                                                               c演奏記録.bHidden.Guitar = C変換.bONorOFF( str4[ 0 ] );\r
+                                                               c演奏記録.bHidden.Guitar = C変換.bONorOFF( para[ 0 ] );\r
                                                        }\r
-                                                       else if( str3.Equals( "HiddenBass" ) )\r
+                                                       else if( item.Equals( "HiddenBass" ) )\r
                                                        {\r
-                                                               c演奏記録.bHidden.Bass = C変換.bONorOFF( str4[ 0 ] );\r
+                                                               c演奏記録.bHidden.Bass = C変換.bONorOFF( para[ 0 ] );\r
                                                        }\r
-                                                       else if( str3.Equals( "ReverseDrums" ) )\r
+                                                       else if( item.Equals( "ReverseDrums" ) )\r
                                                        {\r
-                                                               c演奏記録.bReverse.Drums = C変換.bONorOFF( str4[ 0 ] );\r
+                                                               c演奏記録.bReverse.Drums = C変換.bONorOFF( para[ 0 ] );\r
                                                        }\r
-                                                       else if( str3.Equals( "ReverseGuitar" ) )\r
+                                                       else if( item.Equals( "ReverseGuitar" ) )\r
                                                        {\r
-                                                               c演奏記録.bReverse.Guitar = C変換.bONorOFF( str4[ 0 ] );\r
+                                                               c演奏記録.bReverse.Guitar = C変換.bONorOFF( para[ 0 ] );\r
                                                        }\r
-                                                       else if( str3.Equals( "ReverseBass" ) )\r
+                                                       else if( item.Equals( "ReverseBass" ) )\r
                                                        {\r
-                                                               c演奏記録.bReverse.Bass = C変換.bONorOFF( str4[ 0 ] );\r
+                                                               c演奏記録.bReverse.Bass = C変換.bONorOFF( para[ 0 ] );\r
                                                        }\r
                                                        else\r
                                                        {\r
-                                                               if( str3.Equals( "RandomGuitar" ) )\r
+                                                               if( item.Equals( "RandomGuitar" ) )\r
                                                                {\r
-                                                                       switch( int.Parse( str4 ) )\r
+                                                                       switch( int.Parse( para ) )\r
                                                                        {\r
                                                                                case 0:\r
                                                                                        {\r
@@ -760,9 +793,9 @@ namespace DTXMania
                                                                        }\r
                                                                        throw new Exception( "RandomGuitar の値が無効です。" );\r
                                                                }\r
-                                                               if( str3.Equals( "RandomBass" ) )\r
+                                                               if( item.Equals( "RandomBass" ) )\r
                                                                {\r
-                                                                       switch( int.Parse( str4 ) )\r
+                                                                       switch( int.Parse( para ) )\r
                                                                        {\r
                                                                                case 0:\r
                                                                                        {\r
@@ -782,27 +815,27 @@ namespace DTXMania
                                                                        }\r
                                                                        throw new Exception( "RandomBass の値が無効です。" );\r
                                                                }\r
-                                                               if( str3.Equals( "LightGuitar" ) )\r
+                                                               if( item.Equals( "LightGuitar" ) )\r
                                                                {\r
-                                                                       c演奏記録.bLight.Guitar = C変換.bONorOFF( str4[ 0 ] );\r
+                                                                       c演奏記録.bLight.Guitar = C変換.bONorOFF( para[ 0 ] );\r
                                                                }\r
-                                                               else if( str3.Equals( "LightBass" ) )\r
+                                                               else if( item.Equals( "LightBass" ) )\r
                                                                {\r
-                                                                       c演奏記録.bLight.Bass = C変換.bONorOFF( str4[ 0 ] );\r
+                                                                       c演奏記録.bLight.Bass = C変換.bONorOFF( para[ 0 ] );\r
                                                                }\r
-                                                               else if( str3.Equals( "LeftGuitar" ) )\r
+                                                               else if( item.Equals( "LeftGuitar" ) )\r
                                                                {\r
-                                                                       c演奏記録.bLeft.Guitar = C変換.bONorOFF( str4[ 0 ] );\r
+                                                                       c演奏記録.bLeft.Guitar = C変換.bONorOFF( para[ 0 ] );\r
                                                                }\r
-                                                               else if( str3.Equals( "LeftBass" ) )\r
+                                                               else if( item.Equals( "LeftBass" ) )\r
                                                                {\r
-                                                                       c演奏記録.bLeft.Bass = C変換.bONorOFF( str4[ 0 ] );\r
+                                                                       c演奏記録.bLeft.Bass = C変換.bONorOFF( para[ 0 ] );\r
                                                                }\r
                                                                else\r
                                                                {\r
-                                                                       if( str3.Equals( "Dark" ) )\r
+                                                                       if( item.Equals( "Dark" ) )\r
                                                                        {\r
-                                                                               switch( int.Parse( str4 ) )\r
+                                                                               switch( int.Parse( para ) )\r
                                                                                {\r
                                                                                        case 0:\r
                                                                                                {\r
@@ -822,21 +855,21 @@ namespace DTXMania
                                                                                }\r
                                                                                throw new Exception( "Dark の値が無効です。" );\r
                                                                        }\r
-                                                                       if( str3.Equals( "ScrollSpeedDrums" ) )\r
+                                                                       if( item.Equals( "ScrollSpeedDrums" ) )\r
                                                                        {\r
-                                                                               c演奏記録.f譜面スクロール速度.Drums = (float) decimal.Parse( str4 );\r
+                                                                               c演奏記録.f譜面スクロール速度.Drums = (float) decimal.Parse( para );\r
                                                                        }\r
-                                                                       else if( str3.Equals( "ScrollSpeedGuitar" ) )\r
+                                                                       else if( item.Equals( "ScrollSpeedGuitar" ) )\r
                                                                        {\r
-                                                                               c演奏記録.f譜面スクロール速度.Guitar = (float) decimal.Parse( str4 );\r
+                                                                               c演奏記録.f譜面スクロール速度.Guitar = (float) decimal.Parse( para );\r
                                                                        }\r
-                                                                       else if( str3.Equals( "ScrollSpeedBass" ) )\r
+                                                                       else if( item.Equals( "ScrollSpeedBass" ) )\r
                                                                        {\r
-                                                                               c演奏記録.f譜面スクロール速度.Bass = (float) decimal.Parse( str4 );\r
+                                                                               c演奏記録.f譜面スクロール速度.Bass = (float) decimal.Parse( para );\r
                                                                        }\r
-                                                                       else if( str3.Equals( "PlaySpeed" ) )\r
+                                                                       else if( item.Equals( "PlaySpeed" ) )\r
                                                                        {\r
-                                                                               string[] strArray2 = str4.Split( new char[] { '/' } );\r
+                                                                               string[] strArray2 = para.Split( new char[] { '/' } );\r
                                                                                if( strArray2.Length == 2 )\r
                                                                                {\r
                                                                                        c演奏記録.n演奏速度分子 = int.Parse( strArray2[ 0 ] );\r
@@ -845,9 +878,9 @@ namespace DTXMania
                                                                        }\r
                                                                        else\r
                                                                        {\r
-                                                                               if( str3.Equals( "HHGroup" ) )\r
+                                                                               if( item.Equals( "HHGroup" ) )\r
                                                                                {\r
-                                                                                       switch( int.Parse( str4 ) )\r
+                                                                                       switch( int.Parse( para ) )\r
                                                                                        {\r
                                                                                                case 0:\r
                                                                                                        {\r
@@ -872,9 +905,9 @@ namespace DTXMania
                                                                                        }\r
                                                                                        throw new Exception( "HHGroup の値が無効です。" );\r
                                                                                }\r
-                                                                               if( str3.Equals( "FTGroup" ) )\r
+                                                                               if( item.Equals( "FTGroup" ) )\r
                                                                                {\r
-                                                                                       switch( int.Parse( str4 ) )\r
+                                                                                       switch( int.Parse( para ) )\r
                                                                                        {\r
                                                                                                case 0:\r
                                                                                                        {\r
@@ -889,9 +922,9 @@ namespace DTXMania
                                                                                        }\r
                                                                                        throw new Exception( "FTGroup の値が無効です。" );\r
                                                                                }\r
-                                                                               if( str3.Equals( "CYGroup" ) )\r
+                                                                               if( item.Equals( "CYGroup" ) )\r
                                                                                {\r
-                                                                                       switch( int.Parse( str4 ) )\r
+                                                                                       switch( int.Parse( para ) )\r
                                                                                        {\r
                                                                                                case 0:\r
                                                                                                        {\r
@@ -906,9 +939,9 @@ namespace DTXMania
                                                                                        }\r
                                                                                        throw new Exception( "CYGroup の値が無効です。" );\r
                                                                                }\r
-                                                                               if( str3.Equals( "HitSoundPriorityHH" ) )\r
+                                                                               if( item.Equals( "HitSoundPriorityHH" ) )\r
                                                                                {\r
-                                                                                       switch( int.Parse( str4 ) )\r
+                                                                                       switch( int.Parse( para ) )\r
                                                                                        {\r
                                                                                                case 0:\r
                                                                                                        {\r
@@ -923,9 +956,9 @@ namespace DTXMania
                                                                                        }\r
                                                                                        throw new Exception( "HitSoundPriorityHH の値が無効です。" );\r
                                                                                }\r
-                                                                               if( str3.Equals( "HitSoundPriorityFT" ) )\r
+                                                                               if( item.Equals( "HitSoundPriorityFT" ) )\r
                                                                                {\r
-                                                                                       switch( int.Parse( str4 ) )\r
+                                                                                       switch( int.Parse( para ) )\r
                                                                                        {\r
                                                                                                case 0:\r
                                                                                                        {\r
@@ -940,9 +973,9 @@ namespace DTXMania
                                                                                        }\r
                                                                                        throw new Exception( "HitSoundPriorityFT の値が無効です。" );\r
                                                                                }\r
-                                                                               if( str3.Equals( "HitSoundPriorityCY" ) )\r
+                                                                               if( item.Equals( "HitSoundPriorityCY" ) )\r
                                                                                {\r
-                                                                                       switch( int.Parse( str4 ) )\r
+                                                                                       switch( int.Parse( para ) )\r
                                                                                        {\r
                                                                                                case 0:\r
                                                                                                        {\r
@@ -957,23 +990,23 @@ namespace DTXMania
                                                                                        }\r
                                                                                        throw new Exception( "HitSoundPriorityCY の値が無効です。" );\r
                                                                                }\r
-                                                                               if( str3.Equals( "Guitar" ) )\r
+                                                                               if( item.Equals( "Guitar" ) )\r
                                                                                {\r
-                                                                                       c演奏記録.bGuitar有効 = C変換.bONorOFF( str4[ 0 ] );\r
+                                                                                       c演奏記録.bGuitar有効 = C変換.bONorOFF( para[ 0 ] );\r
                                                                                }\r
-                                                                               else if( str3.Equals( "Drums" ) )\r
+                                                                               else if( item.Equals( "Drums" ) )\r
                                                                                {\r
-                                                                                       c演奏記録.bDrums有効 = C変換.bONorOFF( str4[ 0 ] );\r
+                                                                                       c演奏記録.bDrums有効 = C変換.bONorOFF( para[ 0 ] );\r
                                                                                }\r
-                                                                               else if( str3.Equals( "StageFailed" ) )\r
+                                                                               else if( item.Equals( "StageFailed" ) )\r
                                                                                {\r
-                                                                                       c演奏記録.bSTAGEFAILED有効 = C変換.bONorOFF( str4[ 0 ] );\r
+                                                                                       c演奏記録.bSTAGEFAILED有効 = C変換.bONorOFF( para[ 0 ] );\r
                                                                                }\r
                                                                                else\r
                                                                                {\r
-                                                                                       if( str3.Equals( "DamageLevel" ) )\r
+                                                                                       if( item.Equals( "DamageLevel" ) )\r
                                                                                        {\r
-                                                                                               switch( int.Parse( str4 ) )\r
+                                                                                               switch( int.Parse( para ) )\r
                                                                                                {\r
                                                                                                        case 0:\r
                                                                                                                {\r
@@ -993,53 +1026,53 @@ namespace DTXMania
                                                                                                }\r
                                                                                                throw new Exception( "DamageLevel の値が無効です。" );\r
                                                                                        }\r
-                                                                                       if( str3.Equals( "UseKeyboard" ) )\r
+                                                                                       if( item.Equals( "UseKeyboard" ) )\r
                                                                                        {\r
-                                                                                               c演奏記録.b演奏にキーボードを使用した = C変換.bONorOFF( str4[ 0 ] );\r
+                                                                                               c演奏記録.b演奏にキーボードを使用した = C変換.bONorOFF( para[ 0 ] );\r
                                                                                        }\r
-                                                                                       else if( str3.Equals( "UseMIDIIN" ) )\r
+                                                                                       else if( item.Equals( "UseMIDIIN" ) )\r
                                                                                        {\r
-                                                                                               c演奏記録.b演奏にMIDI入力を使用した = C変換.bONorOFF( str4[ 0 ] );\r
+                                                                                               c演奏記録.b演奏にMIDI入力を使用した = C変換.bONorOFF( para[ 0 ] );\r
                                                                                        }\r
-                                                                                       else if( str3.Equals( "UseJoypad" ) )\r
+                                                                                       else if( item.Equals( "UseJoypad" ) )\r
                                                                                        {\r
-                                                                                               c演奏記録.b演奏にジョイパッドを使用した = C変換.bONorOFF( str4[ 0 ] );\r
+                                                                                               c演奏記録.b演奏にジョイパッドを使用した = C変換.bONorOFF( para[ 0 ] );\r
                                                                                        }\r
-                                                                                       else if( str3.Equals( "UseMouse" ) )\r
+                                                                                       else if( item.Equals( "UseMouse" ) )\r
                                                                                        {\r
-                                                                                               c演奏記録.b演奏にマウスを使用した = C変換.bONorOFF( str4[ 0 ] );\r
+                                                                                               c演奏記録.b演奏にマウスを使用した = C変換.bONorOFF( para[ 0 ] );\r
                                                                                        }\r
-                                                                                       else if( str3.Equals( "PerfectRange" ) )\r
+                                                                                       else if( item.Equals( "PerfectRange" ) )\r
                                                                                        {\r
-                                                                                               c演奏記録.nPerfectになる範囲ms = int.Parse( str4 );\r
+                                                                                               c演奏記録.nPerfectになる範囲ms = int.Parse( para );\r
                                                                                        }\r
-                                                                                       else if( str3.Equals( "GreatRange" ) )\r
+                                                                                       else if( item.Equals( "GreatRange" ) )\r
                                                                                        {\r
-                                                                                               c演奏記録.nGreatになる範囲ms = int.Parse( str4 );\r
+                                                                                               c演奏記録.nGreatになる範囲ms = int.Parse( para );\r
                                                                                        }\r
-                                                                                       else if( str3.Equals( "GoodRange" ) )\r
+                                                                                       else if( item.Equals( "GoodRange" ) )\r
                                                                                        {\r
-                                                                                               c演奏記録.nGoodになる範囲ms = int.Parse( str4 );\r
+                                                                                               c演奏記録.nGoodになる範囲ms = int.Parse( para );\r
                                                                                        }\r
-                                                                                       else if( str3.Equals( "PoorRange" ) )\r
+                                                                                       else if( item.Equals( "PoorRange" ) )\r
                                                                                        {\r
-                                                                                               c演奏記録.nPoorになる範囲ms = int.Parse( str4 );\r
+                                                                                               c演奏記録.nPoorになる範囲ms = int.Parse( para );\r
                                                                                        }\r
-                                                                                       else if( str3.Equals( "DTXManiaVersion" ) )\r
+                                                                                       else if( item.Equals( "DTXManiaVersion" ) )\r
                                                                                        {\r
-                                                                                               c演奏記録.strDTXManiaのバージョン = str4;\r
+                                                                                               c演奏記録.strDTXManiaのバージョン = para;\r
                                                                                        }\r
-                                                                                       else if( str3.Equals( "DateTime" ) )\r
+                                                                                       else if( item.Equals( "DateTime" ) )\r
                                                                                        {\r
-                                                                                               c演奏記録.最終更新日時 = str4;\r
+                                                                                               c演奏記録.最終更新日時 = para;\r
                                                                                        }\r
-                                                                                       else if( str3.Equals( "Hash" ) )\r
+                                                                                       else if( item.Equals( "Hash" ) )\r
                                                                                        {\r
-                                                                                               c演奏記録.Hash = str4;\r
+                                                                                               c演奏記録.Hash = para;\r
                                                                                        }\r
-                                                                                       else if( str3.Equals( "9LaneMode" ) )\r
+                                                                                       else if( item.Equals( "9LaneMode" ) )\r
                                                                                        {\r
-                                                                                               c演奏記録.レーン9モード = C変換.bONorOFF( str4[ 0 ] );\r
+                                                                                               c演奏記録.レーン9モード = C変換.bONorOFF( para[ 0 ] );\r
                                                                                        }\r
                                                                                }\r
                                                                        }\r
@@ -1082,6 +1115,9 @@ namespace DTXMania
             writer.WriteLine( "ClearCountDrums={0}", this.stファイル.ClearCountDrums );       // #23596 10.11.16 add ikanick\r
             writer.WriteLine( "ClearCountGuitars={0}", this.stファイル.ClearCountGuitar );    //\r
             writer.WriteLine( "ClearCountBass={0}", this.stファイル.ClearCountBass );         //\r
+                       writer.WriteLine( "BestRankDrums={0}", this.stファイル.BestRank.Drums );            // #24459 2011.2.24 yyagi\r
+                       writer.WriteLine( "BestRankGuitar={0}", this.stファイル.BestRank.Guitar );          //\r
+                       writer.WriteLine( "BestRankBass={0}", this.stファイル.BestRank.Bass );                      //\r
                        writer.WriteLine( "HistoryCount={0}", this.stファイル.HistoryCount );\r
                        writer.WriteLine( "History0={0}", this.stファイル.History[ 0 ] );\r
                        writer.WriteLine( "History1={0}", this.stファイル.History[ 1 ] );\r
@@ -1167,63 +1203,63 @@ namespace DTXMania
                {\r
                        if( part.b演奏にMIDI入力を使用した || part.b演奏にキーボードを使用した || part.b演奏にジョイパッドを使用した || part.b演奏にマウスを使用した )  // 2010.9.11\r
                        {\r
-                               int nTotal = ( ( ( part.nPerfect数 + part.nGreat数 ) + part.nGood数 ) + part.nPoor数 ) + part.nMiss数;\r
+                               int nTotal = part.nPerfect数 + part.nGreat数 + part.nGood数 + part.nPoor数 + part.nMiss数;\r
                                return tランク値を計算して返す( nTotal, part.nPerfect数, part.nGreat数, part.nGood数, part.nPoor数, part.nMiss数 );\r
                        }\r
-                       return 99;\r
+                       return (int)ERANK.UNKNOWN;\r
                }\r
                internal static int tランク値を計算して返す( int nTotal, int nPerfect, int nGreat, int nGood, int nPoor, int nMiss )\r
                {\r
                        if( nTotal <= 0 )\r
-                               return 99;\r
+                               return (int)ERANK.UNKNOWN;\r
 \r
-                       int num = 6;\r
-                       int num2 = nTotal - ( ( ( ( nPerfect + nGreat ) + nGood ) + nPoor ) + nMiss );\r
-                       if( nTotal == num2 )\r
+                       //int nRank = (int)ERANK.E;\r
+                       int nAuto = nTotal - ( nPerfect + nGreat + nGood + nPoor + nMiss );\r
+                       if( nTotal == nAuto )\r
                        {\r
-                               return 0;\r
+                               return (int)ERANK.SS;\r
                        }\r
-                       double num3 = ( (double) ( nPerfect + nGreat ) ) / ( (double) ( nTotal - num2 ) );\r
-                       if( num3 == 1.0 )\r
+                       double dRate = ( (double) ( nPerfect + nGreat ) ) / ( (double) ( nTotal - nAuto ) );\r
+                       if( dRate == 1.0 )\r
                        {\r
-                               return 0;\r
+                               return (int)ERANK.SS;\r
                        }\r
-                       if( num3 >= 0.95 )\r
+                       if( dRate >= 0.95 )\r
                        {\r
-                               return 1;\r
+                               return (int)ERANK.S;\r
                        }\r
-                       if( num3 >= 0.9 )\r
+                       if( dRate >= 0.9 )\r
                        {\r
-                               return 2;\r
+                               return (int)ERANK.A;\r
                        }\r
-                       if( num3 >= 0.85 )\r
+                       if( dRate >= 0.85 )\r
                        {\r
-                               return 3;\r
+                               return (int)ERANK.B;\r
                        }\r
-                       if( num3 >= 0.8 )\r
+                       if( dRate >= 0.8 )\r
                        {\r
-                               return 4;\r
+                               return (int)ERANK.C;\r
                        }\r
-                       if( num3 >= 0.7 )\r
+                       if( dRate >= 0.7 )\r
                        {\r
-                               return 5;\r
+                               return (int)ERANK.D;\r
                        }\r
-                       return 6;\r
+                       return (int)ERANK.E;\r
                }\r
                internal static double tゲーム型スキルを計算して返す( int nLevel, int nTotal, int nPerfect, int nCombo )\r
                {\r
                        if( ( nTotal == 0 ) || ( ( nPerfect == 0 ) && ( nCombo == 0 ) ) )\r
                                return 0.0;\r
 \r
-                       return ( ( nLevel * ( ( ( nPerfect * 0.8 ) + ( nCombo * 0.2 ) ) / ( (double) nTotal ) ) ) / 2.0 );\r
+                       return ( ( nLevel * ( ( nPerfect * 0.8 + nCombo * 0.2 ) / ( (double) nTotal ) ) ) / 2.0 );\r
                }\r
                internal static double t演奏型スキルを計算して返す( int nTotal, int nPerfect, int nGreat, int nGood, int nPoor, int nMiss )\r
                {\r
                        if( nTotal == 0 )\r
                                return 0.0;\r
 \r
-                       int num = nTotal - ( ( ( ( nPerfect + nGreat ) + nGood ) + nPoor ) + nMiss );\r
-                       double y = ( ( ( ( ( ( ( nPerfect * 1.0 ) + ( nGreat * 0.8 ) ) + ( nGood * 0.5 ) ) + ( nPoor * 0.2 ) ) + ( nMiss * 0.0 ) ) + ( num * 0.0 ) ) * 100.0 ) / ( (double) nTotal );\r
+                       int nAuto = nTotal - ( nPerfect + nGreat + nGood + nPoor  + nMiss );\r
+                       double y = ( ( nPerfect * 1.0 + nGreat * 0.8 + nGood * 0.5 + nPoor * 0.2 + nMiss * 0.0 + nAuto * 0.0 ) * 100.0 ) / ( (double) nTotal );\r
                        return ( 100.0 * ( ( Math.Pow( 1.03, y ) - 1.0 ) / ( Math.Pow( 1.03, 100.0 ) - 1.0 ) ) );\r
                }\r
                internal static string t演奏セクションのMD5を求めて返す( C演奏記録 cc )\r
@@ -1294,18 +1330,19 @@ namespace DTXMania
                }\r
                internal static void t更新条件を取得する( out bool bDrumsを更新する, out bool bGuitarを更新する, out bool bBassを更新する )\r
                {\r
-                       bDrumsを更新する = ( CDTXMania.ConfigIni.bDrums有効 && CDTXMania.DTX.bチップがある.Drums ) && !CDTXMania.ConfigIni.bドラムが全部オートプレイである;\r
-                       bGuitarを更新する = ( CDTXMania.ConfigIni.bGuitar有効 && CDTXMania.DTX.bチップがある.Guitar ) && !CDTXMania.ConfigIni.bAutoPlay.Guitar;\r
-                       bBassを更新する = ( CDTXMania.ConfigIni.bGuitar有効 && CDTXMania.DTX.bチップがある.Bass ) && !CDTXMania.ConfigIni.bAutoPlay.Bass;\r
+                       bDrumsを更新する =  CDTXMania.ConfigIni.bDrums有効  && CDTXMania.DTX.bチップがある.Drums  && !CDTXMania.ConfigIni.bドラムが全部オートプレイである;\r
+                       bGuitarを更新する = CDTXMania.ConfigIni.bGuitar有効 && CDTXMania.DTX.bチップがある.Guitar && !CDTXMania.ConfigIni.bAutoPlay.Guitar;\r
+                       bBassを更新する =   CDTXMania.ConfigIni.bGuitar有効 && CDTXMania.DTX.bチップがある.Bass   && !CDTXMania.ConfigIni.bAutoPlay.Bass;\r
                }\r
                internal static int t総合ランク値を計算して返す( C演奏記録 Drums, C演奏記録 Guitar, C演奏記録 Bass )\r
                {\r
-                       int nPerfect = ( Drums.nPerfect数 + Guitar.nPerfect数 ) + Bass.nPerfect数;\r
-                       int nGreat = ( Drums.nGreat数 + Guitar.nGreat数 ) + Bass.nGreat数;\r
-                       int nGood = ( Drums.nGood数 + Guitar.nGood数 ) + Bass.nGood数;\r
-                       int nPoor = ( Drums.nPoor数 + Guitar.nPoor数 ) + Bass.nPoor数;\r
-                       int nMiss = ( Drums.nMiss数 + Guitar.nMiss数 ) + Bass.nMiss数;\r
-                       return tランク値を計算して返す( ( ( ( nPerfect + nGreat ) + nGood ) + nPoor ) + nMiss, nPerfect, nGreat, nGood, nPoor, nMiss );\r
+                       int nTotal   = Drums.n全チップ数              + Guitar.n全チップ数              + Bass.n全チップ数;\r
+                       int nPerfect = Drums.nPerfect数・Auto含まない + Guitar.nPerfect数・Auto含まない + Bass.nPerfect数・Auto含まない;      // #24569 2011.3.1 yyagi: to calculate result rank without AUTO chips\r
+                       int nGreat =   Drums.nGreat数・Auto含まない   + Guitar.nGreat数・Auto含まない   + Bass.nGreat数・Auto含まない;                //\r
+                       int nGood =    Drums.nGood数・Auto含まない    + Guitar.nGood数・Auto含まない    + Bass.nGood数・Auto含まない;         //\r
+                       int nPoor =    Drums.nPoor数・Auto含まない    + Guitar.nPoor数・Auto含まない    + Bass.nPoor数・Auto含まない;         //\r
+                       int nMiss =    Drums.nMiss数・Auto含まない    + Guitar.nMiss数・Auto含まない    + Bass.nMiss数・Auto含まない;         //\r
+                       return tランク値を計算して返す( nTotal, nPerfect, nGreat, nGood, nPoor, nMiss );\r
                }\r
 \r
 \r
index 2027ed8..1e2f744 100644 (file)
@@ -587,11 +587,13 @@ namespace DTXMania
                                                                                                int num3 = ( i * 2 ) + 1;\r
                                                                                                if( ( ini.stセクション[ num3 ].b演奏にMIDI入力を使用した || ini.stセクション[ num3 ].b演奏にキーボードを使用した ) || ( ini.stセクション[ num3 ].b演奏にジョイパッドを使用した || ini.stセクション[ num3 ].b演奏にマウスを使用した ) )\r
                                                                                                {\r
-                                                                                                       node.arスコア[ lv ].譜面情報.最大ランク[ i ] = CScoreIni.tランク値を計算して返す( ini.stセクション[ num3 ] );\r
+                                                                                                       node.arスコア[ lv ].譜面情報.最大ランク[ i ] = \r
+                                                                                                               (ini.stファイル.BestRank[i] != (int)CScoreIni.ERANK.UNKNOWN)?\r
+                                                                                                               (int)ini.stファイル.BestRank[i] : CScoreIni.tランク値を計算して返す( ini.stセクション[ num3 ] );\r
                                                                                                }\r
                                                                                                else\r
                                                                                                {\r
-                                                                                                       node.arスコア[ lv ].譜面情報.最大ランク[ i ] = 0x63;\r
+                                                                                                       node.arスコア[ lv ].譜面情報.最大ランク[ i ] = (int)CScoreIni.ERANK.UNKNOWN;\r
                                                                                                }\r
                                                                                                node.arスコア[ lv ].譜面情報.最大スキル[ i ] = ini.stセクション[ num3 ].db演奏型スキル値;\r
                                                                                                node.arスコア[ lv ].譜面情報.フルコンボ[ i ] = ini.stセクション[ num3 ].bフルコンボである;\r
index 233d712..c3b9999 100644 (file)
@@ -147,7 +147,7 @@ namespace DTXMania
                                        }\r
                                        set\r
                                        {\r
-                                               if( ( value < 0 ) || ( ( value != 0x63 ) && ( value > 6 ) ) )\r
+                                               if ( ( value < (int)CScoreIni.ERANK.SS ) || ( ( value != (int)CScoreIni.ERANK.UNKNOWN ) && ( value > (int)CScoreIni.ERANK.E ) ) )\r
                                                {\r
                                                        throw new ArgumentOutOfRangeException();\r
                                                }\r
@@ -236,34 +236,31 @@ namespace DTXMania
                        this.ScoreIni情報 = new STScoreIni情報( DateTime.MinValue, 0L );\r
                        this.bSongDBにキャッシュがあった = false;\r
                        this.ファイル情報 = new STファイル情報( "", "", DateTime.MinValue, 0L );\r
-                       ST譜面情報 st譜面情報 = new ST譜面情報();\r
-                       st譜面情報.タイトル = "";\r
-                       st譜面情報.アーティスト名 = "";\r
-                       st譜面情報.コメント = "";\r
-                       st譜面情報.ジャンル = "";\r
-                       st譜面情報.Preimage = "";\r
-                       st譜面情報.Premovie = "";\r
-                       st譜面情報.Presound = "";\r
-                       st譜面情報.Backgound = "";\r
-                       st譜面情報.レベル = new STDGBVALUE<int>();\r
-                       ST譜面情報.STRANK strank = new ST譜面情報.STRANK();\r
-                       strank.Drums = 0x63;\r
-                       strank.Guitar = 0x63;\r
-                       strank.Bass = 0x63;\r
-                       st譜面情報.最大ランク = strank;\r
-                       st譜面情報.フルコンボ = new STDGBVALUE<bool>();\r
-                       st譜面情報.演奏回数 = new STDGBVALUE<int>();\r
-                       ST譜面情報.STHISTORY sthistory = new ST譜面情報.STHISTORY();\r
-                       sthistory.行1 = "";\r
-                       sthistory.行2 = "";\r
-                       sthistory.行3 = "";\r
-                       sthistory.行4 = "";\r
-                       sthistory.行5 = "";\r
-                       st譜面情報.演奏履歴 = sthistory;\r
-                       st譜面情報.レベルを非表示にする = false;\r
-                       st譜面情報.最大スキル = new ST譜面情報.STSKILL();\r
-                       st譜面情報.曲種別 = CDTX.E種別.DTX;\r
-                       this.譜面情報 = st譜面情報;\r
+                       this.譜面情報 = new ST譜面情報();\r
+                       this.譜面情報.タイトル = "";\r
+                       this.譜面情報.アーティスト名 = "";\r
+                       this.譜面情報.コメント = "";\r
+                       this.譜面情報.ジャンル = "";\r
+                       this.譜面情報.Preimage = "";\r
+                       this.譜面情報.Premovie = "";\r
+                       this.譜面情報.Presound = "";\r
+                       this.譜面情報.Backgound = "";\r
+                       this.譜面情報.レベル = new STDGBVALUE<int>();\r
+                       this.譜面情報.最大ランク = new ST譜面情報.STRANK();\r
+                       this.譜面情報.最大ランク.Drums =  (int)CScoreIni.ERANK.UNKNOWN;\r
+                       this.譜面情報.最大ランク.Guitar = (int)CScoreIni.ERANK.UNKNOWN;\r
+                       this.譜面情報.最大ランク.Bass =   (int)CScoreIni.ERANK.UNKNOWN;\r
+                       this.譜面情報.フルコンボ = new STDGBVALUE<bool>();\r
+                       this.譜面情報.演奏回数 = new STDGBVALUE<int>();\r
+                       this.譜面情報.演奏履歴 = new ST譜面情報.STHISTORY();\r
+                       this.譜面情報.演奏履歴.行1 = "";\r
+                       this.譜面情報.演奏履歴.行2 = "";\r
+                       this.譜面情報.演奏履歴.行3 = "";\r
+                       this.譜面情報.演奏履歴.行4 = "";\r
+                       this.譜面情報.演奏履歴.行5 = "";\r
+                       this.譜面情報.レベルを非表示にする = false;\r
+                       this.譜面情報.最大スキル = new ST譜面情報.STSKILL();\r
+                       this.譜面情報.曲種別 = CDTX.E種別.DTX;\r
                }\r
        }\r
 }\r
index 550ece3..367cdb9 100644 (file)
@@ -150,17 +150,17 @@ namespace DTXMania
                                        if( CDTXMania.Input管理.Keyboard.bキーが押された( (int) Key.Escape ) )\r
                                                return 4;\r
 \r
-                                       this.ctキー反復用.Up.tキー反復( CDTXMania.Input管理.Keyboard.bキーが押されている( 0x84 ), new CCounter.DGキー処理( this.tカーソルを上へ移動する ) );\r
+                                       this.ctキー反復用.Up.tキー反復( CDTXMania.Input管理.Keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.UpArrow ), new CCounter.DGキー処理( this.tカーソルを上へ移動する ) );\r
                                        this.ctキー反復用.R.tキー反復( CDTXMania.Pad.b押されているGB( Eパッド.HH ), new CCounter.DGキー処理( this.tカーソルを上へ移動する ) );\r
                                        if( CDTXMania.Pad.b押された( E楽器パート.DRUMS, Eパッド.SD ) )\r
                                                this.tカーソルを上へ移動する();\r
 \r
-                                       this.ctキー反復用.Down.tキー反復( CDTXMania.Input管理.Keyboard.bキーが押されている( 50 ), new CCounter.DGキー処理( this.tカーソルを下へ移動する ) );\r
+                                       this.ctキー反復用.Down.tキー反復( CDTXMania.Input管理.Keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.DownArrow ), new CCounter.DGキー処理( this.tカーソルを下へ移動する ) );\r
                                        this.ctキー反復用.B.tキー反復( CDTXMania.Pad.b押されているGB( Eパッド.BD ), new CCounter.DGキー処理( this.tカーソルを下へ移動する ) );\r
                                        if( CDTXMania.Pad.b押された( E楽器パート.DRUMS, Eパッド.LT ) )\r
                                                this.tカーソルを下へ移動する();\r
 \r
-                                       if( ( CDTXMania.Pad.b押されたDGB( Eパッド.CY ) || CDTXMania.Pad.b押された( E楽器パート.DRUMS, Eパッド.RD ) ) || ( CDTXMania.Pad.b押された( E楽器パート.DRUMS, Eパッド.LC ) || ( CDTXMania.ConfigIni.bEnterがキー割り当てのどこにも使用されていない && CDTXMania.Input管理.Keyboard.bキーが押された( 0x75 ) ) ) )\r
+                                       if( ( CDTXMania.Pad.b押されたDGB( Eパッド.CY ) || CDTXMania.Pad.b押された( E楽器パート.DRUMS, Eパッド.RD ) ) || ( CDTXMania.Pad.b押された( E楽器パート.DRUMS, Eパッド.LC ) || ( CDTXMania.ConfigIni.bEnterがキー割り当てのどこにも使用されていない && CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDX.DirectInput.Key.Return ) ) ) )\r
                                        {\r
                                                if( ( this.n現在のカーソル行 == 0 ) && CDTXMania.Skin.soundゲーム開始音.b読み込み成功 )\r
                                                {\r
@@ -232,7 +232,14 @@ namespace DTXMania
                                                        break;\r
                                                }\r
                                                base.eフェーズID = CStage.Eフェーズ.共通_終了状態;\r
-                                               return ( this.n現在のカーソル行 + 1 );\r
+//                                             if ( this.n現在のカーソル行 == 1 )                                      // #24525 yyagi 一時的にOPTION選択時CONFIGURATIONにする\r
+//                                             {\r
+//                                                     return (int)E戻り値.CONFIG;\r
+//                                             }\r
+//                                             else\r
+//                                             {\r
+                                                       return ( this.n現在のカーソル行 + 1 );\r
+//                                             }\r
 \r
                                        case CStage.Eフェーズ.タイトル_起動画面からのフェードイン:\r
                                                if( this.actFIfromSetup.On進行描画() != 0 )\r
index ab864bd..6304fd7 100644 (file)
@@ -283,7 +283,7 @@ namespace DTXMania
                                        base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト;\r
                                }\r
                        }\r
-                       else if( ( CDTXMania.Pad.b押されたDGB( Eパッド.CY ) || CDTXMania.Pad.b押された( E楽器パート.DRUMS, Eパッド.RD ) ) || ( CDTXMania.Pad.b押された( E楽器パート.DRUMS, Eパッド.LC ) || ( CDTXMania.ConfigIni.bEnterがキー割り当てのどこにも使用されていない && CDTXMania.Input管理.Keyboard.bキーが押された( 0x75 ) ) ) )\r
+                       else if( ( CDTXMania.Pad.b押されたDGB( Eパッド.CY ) || CDTXMania.Pad.b押された( E楽器パート.DRUMS, Eパッド.RD ) ) || ( CDTXMania.Pad.b押された( E楽器パート.DRUMS, Eパッド.LC ) || ( CDTXMania.ConfigIni.bEnterがキー割り当てのどこにも使用されていない && CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDX.DirectInput.Key.Return) ) ) )\r
                        {\r
                                if( this.n現在のメニュー番号 == 4 )\r
                                {\r
@@ -308,22 +308,22 @@ namespace DTXMania
                                                                this.bメニューにフォーカス中 = true;\r
                                                                this.t説明文パネルに現在選択されているメニューの説明を描画する();\r
                                                        }\r
-                                                       goto Label_0505;\r
+                                                       break;  // goto Label_0505;\r
 \r
                                                case EItemPanelモード.キーコード一覧:\r
                                                        this.actKeyAssign.tEnter押下();\r
-                                                       goto Label_0505;\r
+                                                       break;  // goto Label_0505;\r
                                        }\r
                                }\r
                        }\r
-               Label_0505:\r
-                       this.ctキー反復用.Up.tキー反復( CDTXMania.Input管理.Keyboard.bキーが押されている( 0x84 ), new CCounter.DGキー処理( this.tカーソルを上へ移動する ) );\r
+//             Label_0505:\r
+                       this.ctキー反復用.Up.tキー反復( CDTXMania.Input管理.Keyboard.bキーが押されている( (int) SlimDX.DirectInput.Key.UpArrow ), new CCounter.DGキー処理( this.tカーソルを上へ移動する ) );\r
                        this.ctキー反復用.R.tキー反復( CDTXMania.Pad.b押されているGB( Eパッド.HH ), new CCounter.DGキー処理( this.tカーソルを上へ移動する ) );\r
                        if( CDTXMania.Pad.b押された( E楽器パート.DRUMS, Eパッド.SD ) )\r
                        {\r
                                this.tカーソルを上へ移動する();\r
                        }\r
-                       this.ctキー反復用.Down.tキー反復( CDTXMania.Input管理.Keyboard.bキーが押されている( 50 ), new CCounter.DGキー処理( this.tカーソルを下へ移動する ) );\r
+                       this.ctキー反復用.Down.tキー反復( CDTXMania.Input管理.Keyboard.bキーが押されている( (int) SlimDX.DirectInput.Key.DownArrow ), new CCounter.DGキー処理( this.tカーソルを下へ移動する ) );\r
                        this.ctキー反復用.B.tキー反復( CDTXMania.Pad.b押されているGB( Eパッド.BD ), new CCounter.DGキー処理( this.tカーソルを下へ移動する ) );\r
                        if( CDTXMania.Pad.b押された( E楽器パート.DRUMS, Eパッド.LT ) )\r
                        {\r
index 2d19f63..415b21a 100644 (file)
@@ -314,6 +314,7 @@ namespace DTXMania
                                        {       // [SHIFT] + [F1] OPTION\r
                                                this.actPresound.tサウンド停止();\r
                                                this.eフェードアウト完了時の戻り値 = E戻り値.オプション呼び出し;\r
+//                                             this.eフェードアウト完了時の戻り値 = E戻り値.コンフィグ呼び出し;      // #24525 yyagi OPTION選択時もCONFIG呼び出し\r
                                                this.actFIFO.tフェードアウト開始();\r
                                                base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト;\r
                                                CDTXMania.Skin.sound取消音.t再生する();\r
index 19093ef..c49febc 100644 (file)
@@ -41,6 +41,11 @@ namespace DTXMania
                                Drums.nGood数 = CDTXMania.ConfigIni.bドラムが全部オートプレイである ? this.nヒット数・Auto含む.Drums.Good : this.nヒット数・Auto含まない.Drums.Good;\r
                                Drums.nPoor数 = CDTXMania.ConfigIni.bドラムが全部オートプレイである ? this.nヒット数・Auto含む.Drums.Poor : this.nヒット数・Auto含まない.Drums.Poor;\r
                                Drums.nMiss数 = CDTXMania.ConfigIni.bドラムが全部オートプレイである ? this.nヒット数・Auto含む.Drums.Miss : this.nヒット数・Auto含まない.Drums.Miss;\r
+                               Drums.nPerfect数・Auto含まない = this.nヒット数・Auto含まない.Drums.Perfect;\r
+                               Drums.nGreat数・Auto含まない = this.nヒット数・Auto含まない.Drums.Great;\r
+                               Drums.nGood数・Auto含まない = this.nヒット数・Auto含まない.Drums.Good;\r
+                               Drums.nPoor数・Auto含まない = this.nヒット数・Auto含まない.Drums.Poor;\r
+                               Drums.nMiss数・Auto含まない = this.nヒット数・Auto含まない.Drums.Miss;\r
                                Drums.n最大コンボ数 = this.actCombo.n現在のコンボ数.Drums最高値;\r
                                Drums.n全チップ数 = CDTXMania.DTX.n可視チップ数.Drums;\r
                                for ( int i = 0; i < 10; i++ )\r
@@ -98,6 +103,11 @@ namespace DTXMania
                                Guitar.nGood数 = CDTXMania.ConfigIni.bAutoPlay.Guitar ? this.nヒット数・Auto含む.Guitar.Good : this.nヒット数・Auto含まない.Guitar.Good;\r
                                Guitar.nPoor数 = CDTXMania.ConfigIni.bAutoPlay.Guitar ? this.nヒット数・Auto含む.Guitar.Poor : this.nヒット数・Auto含まない.Guitar.Poor;\r
                                Guitar.nMiss数 = CDTXMania.ConfigIni.bAutoPlay.Guitar ? this.nヒット数・Auto含む.Guitar.Miss : this.nヒット数・Auto含まない.Guitar.Miss;\r
+                               Guitar.nPerfect数・Auto含まない = this.nヒット数・Auto含まない.Guitar.Perfect;\r
+                               Guitar.nGreat数・Auto含まない = this.nヒット数・Auto含まない.Guitar.Great;\r
+                               Guitar.nGood数・Auto含まない = this.nヒット数・Auto含まない.Guitar.Good;\r
+                               Guitar.nPoor数・Auto含まない = this.nヒット数・Auto含まない.Guitar.Poor;\r
+                               Guitar.nMiss数・Auto含まない = this.nヒット数・Auto含まない.Guitar.Miss;\r
                                Guitar.n最大コンボ数 = this.actCombo.n現在のコンボ数.Guitar最高値;\r
                                Guitar.n全チップ数 = CDTXMania.DTX.n可視チップ数.Guitar;\r
                                for ( int i = 0; i < 10; i++ )\r
@@ -155,6 +165,11 @@ namespace DTXMania
                                Bass.nGood数 = CDTXMania.ConfigIni.bAutoPlay.Bass ? this.nヒット数・Auto含む.Bass.Good : this.nヒット数・Auto含まない.Bass.Good;\r
                                Bass.nPoor数 = CDTXMania.ConfigIni.bAutoPlay.Bass ? this.nヒット数・Auto含む.Bass.Poor : this.nヒット数・Auto含まない.Bass.Poor;\r
                                Bass.nMiss数 = CDTXMania.ConfigIni.bAutoPlay.Bass ? this.nヒット数・Auto含む.Bass.Miss : this.nヒット数・Auto含まない.Bass.Miss;\r
+                               Bass.nPerfect数・Auto含まない = this.nヒット数・Auto含まない.Bass.Perfect;\r
+                               Bass.nGreat数・Auto含まない = this.nヒット数・Auto含まない.Bass.Great;\r
+                               Bass.nGood数・Auto含まない = this.nヒット数・Auto含まない.Bass.Good;\r
+                               Bass.nPoor数・Auto含まない = this.nヒット数・Auto含まない.Bass.Poor;\r
+                               Bass.nMiss数・Auto含まない = this.nヒット数・Auto含まない.Bass.Miss;\r
                                Bass.n最大コンボ数 = this.actCombo.n現在のコンボ数.Bass最高値;\r
                                Bass.n全チップ数 = CDTXMania.DTX.n可視チップ数.Bass;\r
                                for ( int i = 0; i < 10; i++ )\r
index e97be62..7b1c27c 100644 (file)
@@ -160,15 +160,15 @@ namespace DTXMania
                        //    Bass.Hash = CScoreIni.t演奏セクションのMD5を求めて返す( Bass );\r
                        //}\r
                        #endregion\r
-                       if ( CDTXMania.ConfigIni.bIsSwappedGuitarBass )         // #24063 2011.1.24 yyagi Gt/Bsを入れ替えていたなら、演奏結果も入れ替える\r
-                       {\r
-                               CScoreIni.C演奏記録 t;\r
-                               t = Guitar;\r
-                               Guitar = Bass;\r
-                               Bass = t;\r
-\r
-                               CDTXMania.DTX.SwapGuitarBassInfos();                    // 譜面情報も元に戻す\r
-                       }\r
+//                     if ( CDTXMania.ConfigIni.bIsSwappedGuitarBass )         // #24063 2011.1.24 yyagi Gt/Bsを入れ替えていたなら、演奏結果も入れ替える\r
+//                     {\r
+//                             CScoreIni.C演奏記録 t;\r
+//                             t = Guitar;\r
+//                             Guitar = Bass;\r
+//                             Bass = t;\r
+//                     \r
+//                             CDTXMania.DTX.SwapGuitarBassInfos();                    // 譜面情報も元に戻す\r
+//                     }\r
                }\r
                \r
 \r
index fc5eb79..5987fab 100644 (file)
@@ -233,15 +233,15 @@ namespace DTXMania
                                }\r
                        }\r
 \r
-                       if ( CDTXMania.ConfigIni.bIsSwappedGuitarBass )         // #24063 2011.1.24 yyagi Gt/Bsを入れ替えていたなら、演奏結果も入れ替える\r
-                       {\r
-                               CScoreIni.C演奏記録 t;\r
-                               t = Guitar;\r
-                               Guitar = Bass;\r
-                               Bass = t;\r
-\r
-                               CDTXMania.DTX.SwapGuitarBassInfos();                    // 譜面情報も元に戻す\r
-                       }\r
+//                     if ( CDTXMania.ConfigIni.bIsSwappedGuitarBass )         // #24063 2011.1.24 yyagi Gt/Bsを入れ替えていたなら、演奏結果も入れ替える\r
+//                     {\r
+//                             CScoreIni.C演奏記録 t;\r
+//                             t = Guitar;\r
+//                             Guitar = Bass;\r
+//                             Bass = t;\r
+//                     \r
+//                             CDTXMania.DTX.SwapGuitarBassInfos();                    // 譜面情報も元に戻す\r
+//                     }\r
                }\r
 \r
 \r
@@ -621,9 +621,9 @@ namespace DTXMania
                //private STDGBVALUE<CCounter> ctチップ模様アニメ;\r
                private readonly Eパッド[] eチャンネルtoパッド = new Eパッド[]\r
                {\r
-                       Eパッド.SD, Eパッド.BD, Eパッド.HT, Eパッド.LT,\r
-                       Eパッド.CY, Eパッド.FT, Eパッド.HHO, Eパッド.RD,\r
-                       Eパッド.UNKNOWN, Eパッド.UNKNOWN, Eパッド.LC\r
+                       Eパッド.HH, Eパッド.SD, Eパッド.BD, Eパッド.HT,\r
+                       Eパッド.LT, Eパッド.CY, Eパッド.FT, Eパッド.HHO,\r
+                       Eパッド.RD, Eパッド.UNKNOWN, Eパッド.UNKNOWN, Eパッド.LC\r
                };\r
                //private E演奏画面の戻り値 eフェードアウト完了時の戻り値;\r
                //private readonly int[,] nBGAスコープチャンネルマップ;\r
index 2ef60de..38fdf00 100644 (file)
@@ -77,14 +77,14 @@ namespace DTXMania
 \r
                                #region [ 結果の計算 ]\r
                                //---------------------\r
-                               for( int j = 0; j < 3; j++ )\r
+                               for( int i = 0; i < 3; i++ )\r
                                {\r
-                                       this.nランク値[ j ] = -1;\r
-                                       if( ( ( ( j != 0 ) || ( CDTXMania.DTX.bチップがある.Drums && !CDTXMania.ConfigIni.bギタレボモード ) ) && ( ( j != 1 ) || CDTXMania.DTX.bチップがある.Guitar ) ) && ( ( j != 2 ) || CDTXMania.DTX.bチップがある.Bass ) )\r
+                                       this.nランク値[ i ] = -1;\r
+                                       if ( ( ( ( i != 0 ) || ( CDTXMania.DTX.bチップがある.Drums && !CDTXMania.ConfigIni.bギタレボモード ) ) && ( ( i != 1 ) || CDTXMania.DTX.bチップがある.Guitar ) ) && ( ( i != 2 ) || CDTXMania.DTX.bチップがある.Bass ) )\r
                                        {\r
-                                               CScoreIni.C演奏記録 part = this.st演奏記録[ j ];\r
+                                               CScoreIni.C演奏記録 part = this.st演奏記録[ i ];\r
                                                bool bIsAutoPlay = true;\r
-                                               switch( j )\r
+                                               switch( i )\r
                                                {\r
                                                        case 0:\r
                                 bIsAutoPlay = CDTXMania.ConfigIni.bドラムが全部オートプレイである;\r
@@ -98,14 +98,19 @@ namespace DTXMania
                                                                bIsAutoPlay = CDTXMania.ConfigIni.bAutoPlay.Bass;\r
                                                                break;\r
                                                }\r
-                                               this.fPerfect率[ j ] = bIsAutoPlay ? 0f : ( ( 100f * part.nPerfect数 ) / ( (float) part.n全チップ数 ) );\r
-                                               this.fGreat率[ j ] = bIsAutoPlay ? 0f : ( ( 100f * part.nGreat数 ) / ( (float) part.n全チップ数 ) );\r
-                                               this.fGood率[ j ] = bIsAutoPlay ? 0f : ( ( 100f * part.nGood数 ) / ( (float) part.n全チップ数 ) );\r
-                                               this.fPoor率[ j ] = bIsAutoPlay ? 0f : ( ( 100f * part.nPoor数 ) / ( (float) part.n全チップ数 ) );\r
-                                               this.fMiss率[ j ] = bIsAutoPlay ? 0f : ( ( 100f * part.nMiss数 ) / ( (float) part.n全チップ数 ) );\r
-                                               this.bオート[ j ] = bIsAutoPlay;     // #23596 10.11.16 add ikanick そのパートがオートなら1\r
+                                               this.fPerfect率[ i ] = bIsAutoPlay ? 0f : ( ( 100f * part.nPerfect数 ) / ( (float) part.n全チップ数 ) );\r
+                                               this.fGreat率[ i ] = bIsAutoPlay ? 0f : ( ( 100f * part.nGreat数 ) / ( (float) part.n全チップ数 ) );\r
+                                               this.fGood率[ i ] = bIsAutoPlay ? 0f : ( ( 100f * part.nGood数 ) / ( (float) part.n全チップ数 ) );\r
+                                               this.fPoor率[ i ] = bIsAutoPlay ? 0f : ( ( 100f * part.nPoor数 ) / ( (float) part.n全チップ数 ) );\r
+                                               this.fMiss率[ i ] = bIsAutoPlay ? 0f : ( ( 100f * part.nMiss数 ) / ( (float) part.n全チップ数 ) );\r
+                                               this.bオート[ i ] = bIsAutoPlay;     // #23596 10.11.16 add ikanick そのパートがオートなら1\r
                                                                                                                        //        10.11.17 change (int to bool) ikanick\r
-                                               this.nランク値[ j ] = CScoreIni.tランク値を計算して返す( part );\r
+                                               this.nランク値[ i ] = CScoreIni.tランク値を計算して返す( part );\r
+//Debug.WriteLine( "rank[" + i + "]=" + this.nランク値[ i ] );\r
+//if ( this.nランク値[ i ] != -1 )\r
+//{\r
+//     this.n総合ランク値 = Math.Min( this.n総合ランク値, this.nランク値[ i ] );\r
+//}\r
                                        }\r
                                }\r
                                this.n総合ランク値 = CScoreIni.t総合ランク値を計算して返す( this.st演奏記録.Drums, this.st演奏記録.Guitar, this.st演奏記録.Bass );\r
@@ -119,34 +124,40 @@ namespace DTXMania
 \r
                                bool[] b今までにフルコンボしたことがある = new bool[] { false, false, false };\r
 \r
-                               for( int k = 0; k < 3; k++ )\r
+                               for( int i = 0; i < 3; i++ )\r
                                {\r
                                        // フルコンボチェックならびに新記録ランクチェックは、ini.Record[] が、スコアチェックや演奏型スキルチェックの IF 内で書き直されてしまうよりも前に行う。(2010.9.10)\r
                                        \r
-                                       b今までにフルコンボしたことがある[ k ] = ini.stセクション[ k * 2 ].bフルコンボである | ini.stセクション[ k * 2 + 1 ].bフルコンボである;\r
-\r
-                                       if( this.nランク値[ k ] <= CScoreIni.tランク値を計算して返す( ini.stセクション[ ( k * 2 ) + 1 ] ) )\r
+                                       b今までにフルコンボしたことがある[ i ] = ini.stセクション[ i * 2 ].bフルコンボである | ini.stセクション[ i * 2 + 1 ].bフルコンボである;\r
+\r
+                       //              if( this.nランク値[ i ] <= CScoreIni.tランク値を計算して返す( ini.stセクション[ ( i * 2 ) + 1 ] ) )\r
+                       //              {\r
+                       //                      this.b新記録ランク[ i ] = true;\r
+                       //              }\r
+                                       // 上記の条件だと[HiSkill.***]でのランクしかチェックしていないので、BestRankと比較するよう変更\r
+                                       if ( this.nランク値[ i ] >= 0 && ini.stファイル.BestRank[ i ] > this.nランク値[ i ] )               // #24459 2011.3.1 yyagi update BestRank\r
                                        {\r
-                                               this.b新記録ランク[ k ] = true;\r
+                                               this.b新記録ランク[ i ] = true;\r
+                                               ini.stファイル.BestRank[ i ] = this.nランク値[ i ];\r
                                        }\r
 \r
                                        // 新記録スコアチェック\r
-                                       if( this.st演奏記録[ k ].nスコア > ini.stセクション[ k * 2 ].nスコア )\r
+                                       if( this.st演奏記録[ i ].nスコア > ini.stセクション[ i * 2 ].nスコア )\r
                                        {\r
-                                               this.b新記録スコア[ k ] = true;\r
-                                               ini.stセクション[ k * 2 ] = this.st演奏記録[ k ];\r
+                                               this.b新記録スコア[ i ] = true;\r
+                                               ini.stセクション[ i * 2 ] = this.st演奏記録[ i ];\r
                                        }\r
 \r
                     // 新記録スキルチェック\r
-                    if (this.st演奏記録[k].db演奏型スキル値 > ini.stセクション[(k * 2) + 1].db演奏型スキル値)\r
+                    if (this.st演奏記録[i].db演奏型スキル値 > ini.stセクション[(i * 2) + 1].db演奏型スキル値)\r
                     {\r
-                        this.b新記録スキル[ k ] = true;\r
-                        ini.stセクション[(k * 2) + 1] = this.st演奏記録[ k ];\r
+                        this.b新記録スキル[ i ] = true;\r
+                        ini.stセクション[(i * 2) + 1] = this.st演奏記録[ i ];\r
                     }\r
                     // ラストプレイ #23595 2011.1.9 ikanick\r
                     // オートじゃなければプレイ結果を書き込む\r
-                    if (this.bオート[ k ] == false) {\r
-                        ini.stセクション[k + 6] = this.st演奏記録[ k ];\r
+                    if (this.bオート[ i ] == false) {\r
+                        ini.stセクション[i + 6] = this.st演奏記録[ i ];\r
                     }\r
 \r
                     // #23596 10.11.16 add ikanick オートじゃないならクリア回数を1増やす\r
@@ -154,9 +165,9 @@ namespace DTXMania
                                        bool[] b更新が必要か否か = new bool[ 3 ];\r
                                        CScoreIni.t更新条件を取得する( out b更新が必要か否か[ 0 ], out b更新が必要か否か[ 1 ], out b更新が必要か否か[ 2 ] );\r
 \r
-                    if (b更新が必要か否か[ k ])\r
+                    if (b更新が必要か否か[ i ])\r
                     {\r
-                        switch ( k )\r
+                        switch ( i )\r
                         {\r
                             case 0:\r
                                 ini.stファイル.ClearCountDrums++;\r
index 6cadfb6..f6806a8 100644 (file)
@@ -557,11 +557,11 @@ namespace DTXMania
                        get;\r
                        set;\r
                }\r
-               //public bool bIsSwappedGuitarBass_AutoFlagsAreSwapped  // #24415 2011.2.21 yyagi FLIP中にalt-f4終了で、AUTOフラグがswapした状態でconfig.iniが出力されてしまうことを避けるためのフラグ\r
-               //{\r
-               //    get;\r
-               //    set;\r
-               //}\r
+               public bool bIsSwappedGuitarBass_AutoFlagsAreSwapped    // #24415 2011.2.21 yyagi FLIP中にalt-f4終了で、AUTOフラグがswapした状態でconfig.iniが出力されてしまうことを避けるためのフラグ\r
+               {\r
+                   get;\r
+                   set;\r
+               }\r
                public STAUTOPLAY bAutoPlay;\r
                [StructLayout( LayoutKind.Sequential )]\r
                public struct STAUTOPLAY\r
index affa1a1..a5da087 100644 (file)
@@ -386,9 +386,7 @@ namespace DTXMania
                }\r
                protected override void Draw( GameTime gameTime )\r
                {\r
-                       CScoreIni.C演奏記録 c演奏記録;\r
-                       CScoreIni.C演奏記録 c演奏記録2;\r
-                       CScoreIni.C演奏記録 c演奏記録3;\r
+                       CScoreIni.C演奏記録 c演奏記録_Drums, c演奏記録_Guitar, c演奏記録_Bass;\r
                        CDTX.CChip[] chipArray;\r
                        string str;\r
 \r
@@ -925,14 +923,28 @@ for (int i = 0; i < 3; i++) {
                                                                chipArray = new CDTX.CChip[ 10 ];\r
                                                                if( ConfigIni.bギタレボモード )\r
                                                                {\r
-                                                                       stage演奏ギター画面.t演奏結果を格納する( out c演奏記録, out c演奏記録2, out c演奏記録3 );\r
+                                                                       stage演奏ギター画面.t演奏結果を格納する( out c演奏記録_Drums, out c演奏記録_Guitar, out c演奏記録_Bass );\r
                                                                }\r
                                                                else\r
                                                                {\r
-                                                                       stage演奏ドラム画面.t演奏結果を格納する( out c演奏記録, out c演奏記録2, out c演奏記録3, out chipArray );\r
+                                                                       stage演奏ドラム画面.t演奏結果を格納する( out c演奏記録_Drums, out c演奏記録_Guitar, out c演奏記録_Bass, out chipArray );\r
                                                                }\r
+\r
+                                                               if ( CDTXMania.ConfigIni.bIsSwappedGuitarBass )         // #24063 2011.1.24 yyagi Gt/Bsを入れ替えていたなら、演奏結果も入れ替える\r
+                                                               {\r
+                                                                       CScoreIni.C演奏記録 t;\r
+                                                                       t = c演奏記録_Guitar;\r
+                                                                       c演奏記録_Guitar = c演奏記録_Bass;\r
+                                                                       c演奏記録_Bass = t;\r
+\r
+                                                                       CDTXMania.DTX.SwapGuitarBassInfos();                    // 譜面情報も元に戻す\r
+                                                                       CDTXMania.DTX.SwapGuitarBassInfos_AutoFlags();  // #24415 2011.2.27 yyagi\r
+                                                                                                                                                                       // リザルト集計時のみ、Auto系のフラグを入れ替え\r
+                                                                                                                                                                       // これを戻すのは、リザルト集計後。\r
+                                                               }                                                                                                       // "case CStage.Eステージ.結果:"のところ。\r
+\r
                                                                str = "Cleared";\r
-                                                               switch( CScoreIni.t総合ランク値を計算して返す( c演奏記録, c演奏記録2, c演奏記録3 ) )\r
+                                                               switch( CScoreIni.t総合ランク値を計算して返す( c演奏記録_Drums, c演奏記録_Guitar, c演奏記録_Bass ) )\r
                                                                {\r
                                                                        case 0:\r
                                                                                str = "Cleared (Rank:SS)";\r
@@ -983,9 +995,9 @@ for (int i = 0; i < 3; i++) {
                                                                r現在のステージ.On非活性化();\r
                                                                Trace.TraceInformation( "----------------------" );\r
                                                                Trace.TraceInformation( "■ 結果" );\r
-                                                               stage結果.st演奏記録.Drums = c演奏記録;\r
-                                                               stage結果.st演奏記録.Guitar = c演奏記録2;\r
-                                                               stage結果.st演奏記録.Bass = c演奏記録3;\r
+                                                               stage結果.st演奏記録.Drums = c演奏記録_Drums;\r
+                                                               stage結果.st演奏記録.Guitar = c演奏記録_Guitar;\r
+                                                               stage結果.st演奏記録.Bass = c演奏記録_Bass;\r
                                                                stage結果.r空うちドラムチップ = chipArray;\r
                                                                stage結果.On活性化();\r
                                                                r直前のステージ = r現在のステージ;\r
@@ -1015,6 +1027,11 @@ for (int i = 0; i < 3; i++) {
                                                //-----------------------------\r
                                                if( this.n進行描画の戻り値 != 0 )\r
                                                {\r
+                                                       if ( CDTXMania.ConfigIni.bIsSwappedGuitarBass )         // #24415 2011.2.27 yyagi Gt/Bsを入れ替えていたなら、Auto状態をリザルト画面終了後に元に戻す\r
+                                                       {\r
+                                                               CDTXMania.DTX.SwapGuitarBassInfos_AutoFlags();  // Auto入れ替え\r
+                                                       }\r
+\r
                                                        DTX.t全チップの再生一時停止();\r
                                                        DTX.On非活性化();\r
                                                        r現在のステージ.On非活性化();\r
@@ -1768,10 +1785,10 @@ for (int i = 0; i < 3; i++) {
                                //---------------------\r
                                Trace.TraceInformation("Config.ini を出力します。");\r
 //                             if ( ConfigIni.bIsSwappedGuitarBass )                   // #24063 2011.1.16 yyagi ギターベースがスワップしているときは元に戻す\r
-                               //if ( ConfigIni.bIsSwappedGuitarBass_AutoFlagsAreSwapped )     // #24415 2011.2.21 yyagi FLIP中かつ演奏中にalt-f4で終了したときは、AUTOのフラグをswapして戻す\r
-                               //{\r
-                               //    DTX.SwapGuitarBassInfos_AutoFlags();\r
-                               //}\r
+                               if ( ConfigIni.bIsSwappedGuitarBass_AutoFlagsAreSwapped )       // #24415 2011.2.21 yyagi FLIP中かつ演奏中にalt-f4で終了したときは、AUTOのフラグをswapして戻す\r
+                               {\r
+                                   DTX.SwapGuitarBassInfos_AutoFlags();\r
+                               }\r
                                string str = strEXEのあるフォルダ + "Config.ini";\r
                                Trace.Indent();\r
                                try\r
index 68fdfeb..b1ce06d 100644 (file)
@@ -36,24 +36,24 @@ namespace DTXMania
        }\r
        public enum Eパッド\r
        {\r
-               B = 2,\r
+               HH = 0,\r
+               R = 0,\r
+               SD = 1,\r
+               G = 1,\r
                BD = 2,\r
+               B = 2,\r
+               HT = 3,\r
+               Pick = 3,\r
+               LT = 4,\r
+               Wail = 4,\r
+               FT = 5,\r
                Cancel = 5,\r
                CY = 6,\r
                Decide = 6,\r
-               FT = 5,\r
-               G = 1,\r
-               HH = 0,\r
                HHO = 7,\r
-               HT = 3,\r
-               LC = 9,\r
-               LT = 4,\r
-               Pick = 3,\r
-               R = 0,\r
                RD = 8,\r
-               SD = 1,\r
-               UNKNOWN = 0x63,\r
-               Wail = 4\r
+               LC = 9,\r
+               UNKNOWN = 99\r
        }\r
        [Flags]\r
        public enum EパッドFlag              // #24063 2011.1.16 yyagi コマンド入力用 パッド入力のフラグ化\r
index 333de3a..0246824 100644 (file)
@@ -34,6 +34,10 @@ namespace DTXMania
 \r
                [DllImport( "kernel32", CharSet = CharSet.Unicode, SetLastError = true )]\r
                internal static extern IntPtr LoadLibrary( string lpFileName );\r
+\r
+//             [DllImport("dwmapi.dll", PreserveSig = false)]\r
+//             public static extern int DwmEnableComposition(bool fEnable);\r
+               \r
                //-----------------------------\r
                #endregion\r
 \r
@@ -69,6 +73,16 @@ namespace DTXMania
                                        )) flag = true;\r
                                if (!flag)\r
                                {\r
+                                       // turn off Aero Glass\r
+//                                     try\r
+//                                     {\r
+//                                             DwmEnableComposition( false );\r
+//                                     }\r
+//                                     catch ( DllNotFoundException )\r
+//                                     {\r
+//                                             // DLLがなければXP以下とみなし何もしない\r
+//                                     }\r
+\r
                                        // BEGIN #23670 2010.11.13 from: キャッチされない例外は放出せずに、ログに詳細を出力する。\r
                                        try\r
                                        {\r
@@ -84,6 +98,7 @@ namespace DTXMania
                                                Trace.Write( e.ToString() );\r
                                                Trace.WriteLine( "" );\r
                                                Trace.WriteLine( "エラーだゴメン!(涙" );\r
+                                               MessageBox.Show( e.ToString(), "DTXMania Error", MessageBoxButtons.OK, MessageBoxIcon.Error );  // #23670 2011.2.28 yyagi to show error dialog\r
                                        }\r
                                        // END #23670 2010.11.13 from\r
                                        \r