OSDN Git Service

DTXManiaソリューション、DTXManiaプロジェクト、DTXCreatorプロジェクト、FDKプロジェクトについて英語化。
[dtxmania/dtxmania.git] / DTXManiaプロジェクト / コード / スコア、曲 / CScoreIni.cs
diff --git a/DTXManiaプロジェクト/コード/スコア、曲/CScoreIni.cs b/DTXManiaプロジェクト/コード/スコア、曲/CScoreIni.cs
deleted file mode 100644 (file)
index 0e0af91..0000000
+++ /dev/null
@@ -1,1409 +0,0 @@
-using System;\r
-using System.Collections.Generic;\r
-using System.Text;\r
-using System.Runtime.InteropServices;\r
-using System.Drawing;\r
-using System.Drawing.Imaging;\r
-using System.Diagnostics;\r
-using System.IO;\r
-using System.Security.Cryptography;\r
-using FDK;\r
-\r
-namespace DTXMania\r
-{\r
-       public class CScoreIni\r
-       {\r
-               // プロパティ\r
-\r
-               // [File] セクション\r
-               public STファイル stファイル;\r
-               [StructLayout(LayoutKind.Sequential)]\r
-               public struct STファイル\r
-               {\r
-                       public string Title;\r
-                       public string Name;\r
-                       public string Hash;\r
-                       public int PlayCountDrums;\r
-                       public int PlayCountGuitar;\r
-                       public int PlayCountBass;\r
-                       // #23596 10.11.16 add ikanick-----/\r
-                       public int ClearCountDrums;\r
-                       public int ClearCountGuitar;\r
-                       public int ClearCountBass;\r
-                       // #24459 2011.2.24 yyagi----------/\r
-                       public STDGBSValue<ERANK> BestRank;\r
-                       // --------------------------------/\r
-                       public int HistoryCount;\r
-                       public string[] History;\r
-                       public int BGMAdjust;\r
-               }\r
-\r
-               // 演奏記録セクション(9種類)\r
-               public STセクション stセクション;\r
-               [StructLayout(LayoutKind.Sequential)]\r
-               public struct STセクション\r
-               {\r
-                       public STDGBSValue<CScoreIni.C演奏記録> HiScore;\r
-                       public STDGBSValue<CScoreIni.C演奏記録> HiSkill;\r
-                       public STDGBSValue<CScoreIni.C演奏記録> LastPlay;\r
-               }\r
-\r
-               public enum Eセクション種別 : int\r
-               {\r
-                       Unknown = -2,\r
-                       File = -1,\r
-                       HiScoreDrums = 0,\r
-                       HiSkillDrums = 1,\r
-                       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
-               }\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
-\r
-               public class C演奏記録\r
-               {\r
-                       public STPadValue<bool> bAutoPlay;\r
-                       public bool bDrums有効;\r
-                       public bool bGuitar有効;\r
-                       public STDGBSValue<bool> bLight;\r
-                       public STDGBSValue<bool> bReverse;\r
-                       public STDGBSValue<ESudHidInv> eSudHidInv;\r
-                       public bool bSTAGEFAILED有効;\r
-                       public bool bTight;\r
-                       public bool b演奏にMIDI入力を使用した;\r
-                       public bool b演奏にキーボードを使用した;\r
-                       public bool b演奏にジョイパッドを使用した;\r
-                       public bool b演奏にマウスを使用した;\r
-                       public double dbゲーム型スキル値;\r
-                       public double db演奏型スキル値;\r
-                       public ECYGroup eCYGroup;\r
-                       public EDark eDark;\r
-                       public EFTGroup eFTGroup;\r
-                       public EHHGroup eHHGroup;\r
-                       public EHitSoundPriority eHitSoundPriorityCY;\r
-                       public EHitSoundPriority eHitSoundPriorityFT;\r
-                       public EHitSoundPriority eHitSoundPriorityHH;\r
-                       public STDGBSValue<ERandom> eRandom;\r
-                       public EDamage eダメージレベル;\r
-                       public STDGBSValue<float> f譜面スクロール速度;\r
-                       public string Hash;\r
-                       public int nGoodになる範囲ms;\r
-                       public int nGood数;\r
-                       public int nGreatになる範囲ms;\r
-                       public int nGreat数;\r
-                       public int nMiss数;\r
-                       public int nPerfectになる範囲ms;\r
-                       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
-                       public int n最大コンボ数;\r
-                       public int n全チップ数;\r
-                       public string strDTXManiaのバージョン;\r
-                       //public bool レーン9モード;\r
-                       public STDGBSValue<EUseLanes> e譜面レーンタイプ;\r
-                       public int nRisky;    // #23559 2011.6.20 yyagi 0=OFF, 1-10=Risky\r
-                       public string 最終更新日時;\r
-                       public bool bギターとベースを入れ替えた; // #35417 2015.08.30 chnmr0 add\r
-                       public EClickType eMetronome;           // #24159 2016.8.2 yyagi\r
-\r
-                       public C演奏記録()\r
-                       {\r
-                               this.bAutoPlay = new STPadValue<bool>();\r
-                               this.eSudHidInv = new STDGBSValue<ESudHidInv>();\r
-                               this.bReverse = new STDGBSValue<bool>();\r
-                               this.eRandom = new STDGBSValue<ERandom>();\r
-                               this.bLight = new STDGBSValue<bool>();\r
-                               this.f譜面スクロール速度 = new STDGBSValue<float>();\r
-                               for (EPart i = EPart.Drums; i <= EPart.Bass; ++i)\r
-                               {\r
-                                       f譜面スクロール速度[i] = 1f;\r
-                               }\r
-                               this.n演奏速度分子 = 20;\r
-                               this.n演奏速度分母 = 20;\r
-                               this.bGuitar有効 = true;\r
-                               this.bDrums有効 = true;\r
-                               this.bSTAGEFAILED有効 = true;\r
-                               this.eダメージレベル = EDamage.Normal;\r
-                               this.nPerfectになる範囲ms = 34;\r
-                               this.nGreatになる範囲ms = 67;\r
-                               this.nGoodになる範囲ms = 84;\r
-                               this.nPoorになる範囲ms = 117;\r
-                               this.strDTXManiaのバージョン = "Unknown";\r
-                               this.最終更新日時 = "";\r
-                               this.Hash = "00000000000000000000000000000000";\r
-                               //this.レーン9モード = true;\r
-                               this.e譜面レーンタイプ.Drums  = EUseLanes.Dr_6;\r
-                               this.e譜面レーンタイプ.Guitar = EUseLanes.GB_3;\r
-                               this.e譜面レーンタイプ.Bass   = EUseLanes.GB_3;\r
-                               this.nRisky = 0;                  // #23559 2011.6.20 yyagi\r
-                               this.bギターとベースを入れ替えた = false; // #35417 2015.08.30 chnmr0 add\r
-                               this.eMetronome = EClickType.Off;\r
-                       }\r
-\r
-                       public bool bフルコンボじゃない\r
-                       {\r
-                               get\r
-                               {\r
-                                       return !this.bフルコンボである;\r
-                               }\r
-                       }\r
-                       public bool bフルコンボである\r
-                       {\r
-                               get\r
-                               {\r
-                                       return ((this.n最大コンボ数 > 0) && (this.n最大コンボ数 == (this.nPerfect数 + this.nGreat数 + this.nGood数 + this.nPoor数 + this.nMiss数)));\r
-                               }\r
-                       }\r
-\r
-                       public bool b全AUTOじゃない\r
-                       {\r
-                               get\r
-                               {\r
-                                       return !b全AUTOである;\r
-                               }\r
-                       }\r
-                       public bool b全AUTOである\r
-                       {\r
-                               get\r
-                               {\r
-                                       return (this.n全チップ数 - this.nPerfect数_Auto含まない - this.nGreat数_Auto含まない - this.nGood数_Auto含まない - this.nPoor数_Auto含まない - this.nMiss数_Auto含まない) == this.n全チップ数;\r
-                               }\r
-                       }\r
-               }\r
-\r
-               /// <summary>\r
-               /// <para>.score.ini の存在するフォルダ(絶対パス;末尾に '\' はついていない)。</para>\r
-               /// <para>未保存などでファイル名がない場合は null。</para>\r
-               /// </summary>\r
-               public string iniファイルのあるフォルダ名\r
-               {\r
-                       get;\r
-                       private set;\r
-               }\r
-\r
-               /// <summary>\r
-               /// <para>.score.ini のファイル名(絶対パス)。</para>\r
-               /// <para>未保存などでファイル名がない場合は null。</para>\r
-               /// </summary>\r
-               public string iniファイル名\r
-               {\r
-                       get;\r
-                       private set;\r
-               }\r
-\r
-\r
-               // コンストラクタ\r
-\r
-               public CScoreIni()\r
-               {\r
-                       this.iniファイルのあるフォルダ名 = null;\r
-                       this.iniファイル名 = null;\r
-                       this.stファイル = new STファイル();\r
-                       stファイル.Title = "";\r
-                       stファイル.Name = "";\r
-                       stファイル.Hash = "";\r
-                       stファイル.History = new string[] { "", "", "", "", "" };\r
-                       stファイル.BestRank.Drums = ERANK.UNKNOWN;    // #24459 2011.2.24 yyagi\r
-                       stファイル.BestRank.Guitar = ERANK.UNKNOWN;   //\r
-                       stファイル.BestRank.Bass = ERANK.UNKNOWN;   //\r
-\r
-                       this.stセクション = new STセクション();\r
-\r
-\r
-                       stセクション.HiScore = new STDGBSValue<C演奏記録>();\r
-                       stセクション.HiSkill = new STDGBSValue<C演奏記録>();\r
-                       stセクション.LastPlay = new STDGBSValue<C演奏記録>();\r
-\r
-                       for (EPart i = EPart.Drums; i <= EPart.Bass; ++i)\r
-                       {\r
-                               stセクション.HiScore[i] = new C演奏記録();\r
-                               stセクション.HiSkill[i] = new C演奏記録();\r
-                               stセクション.LastPlay[i] = new C演奏記録();\r
-                       }\r
-               }\r
-\r
-               /// <summary>\r
-               /// <para>初期化後にiniファイルを読み込むコンストラクタ。</para>\r
-               /// <para>読み込んだiniに不正値があれば、それが含まれるセクションをリセットする。</para>\r
-               /// </summary>\r
-               public CScoreIni(string str読み込むiniファイル)\r
-                       : this()\r
-               {\r
-                       this.t読み込み(str読み込むiniファイル);\r
-               }\r
-\r
-\r
-               // メソッド\r
-\r
-               /// <summary>\r
-               /// <para>現在の this.Record[] オブジェクトの、指定されたセクションの情報が正当であるか否かを判定する。\r
-               /// 真偽どちらでも、その内容は書き換えない。</para>\r
-               /// </summary>\r
-               /// <param name="eセクション">判定するセクション。</param>\r
-               /// <returns>正当である(整合性がある)場合は true。</returns>\r
-               public bool b整合性がある(Eセクション種別 eセクション)\r
-               {\r
-                       return true;  // オープンソース化に伴い、整合性チェックを無効化。(2010.10.21)\r
-               }\r
-\r
-               /// <summary>\r
-               /// 指定されたファイルの内容から MD5 値を求め、それを16進数に変換した文字列を返す。\r
-               /// </summary>\r
-               /// <param name="ファイル名">MD5 を求めるファイル名。</param>\r
-               /// <returns>算出結果の MD5 を16進数で並べた文字列。</returns>\r
-               public static string tファイルのMD5を求めて返す(string ファイル名)\r
-               {\r
-                       byte[] buffer = null;\r
-                       FileStream stream = new FileStream(ファイル名, FileMode.Open, FileAccess.Read);\r
-                       buffer = new byte[stream.Length];\r
-                       stream.Read(buffer, 0, (int)stream.Length);\r
-                       stream.Close();\r
-                       StringBuilder builder = new StringBuilder(0x21);\r
-                       {\r
-                               MD5CryptoServiceProvider m = new MD5CryptoServiceProvider();\r
-                               byte[] buffer2 = m.ComputeHash(buffer);\r
-                               foreach (byte num in buffer2)\r
-                                       builder.Append(num.ToString("x2"));\r
-                       }\r
-                       return builder.ToString();\r
-               }\r
-\r
-               /// <summary>\r
-               /// 指定された .score.ini を読み込む。内容の真偽は判定しない。\r
-               /// </summary>\r
-               /// <param name="iniファイル名">読み込む .score.ini ファイルを指定します(絶対パスが安全)。</param>\r
-               public void t読み込み(string iniファイル名)\r
-               {\r
-                       this.iniファイルのあるフォルダ名 = Path.GetDirectoryName(iniファイル名);\r
-                       this.iniファイル名 = Path.GetFileName(iniファイル名);\r
-\r
-                       Eセクション種別 section = Eセクション種別.Unknown;\r
-                       if (File.Exists(iniファイル名))\r
-                       {\r
-                               string str;\r
-                               StreamReader reader = new StreamReader(iniファイル名, Encoding.GetEncoding("Shift_JIS"));\r
-                               while ((str = reader.ReadLine()) != null)\r
-                               {\r
-                                       str = str.Replace('\t', ' ').TrimStart(new char[] { '\t', ' ' });\r
-                                       if ((str.Length != 0) && (str[0] != ';'))\r
-                                       {\r
-                                               try\r
-                                               {\r
-                                                       string item;\r
-                                                       string para;\r
-                                                       C演奏記録 c演奏記録;\r
-                                                       #region [ section ]\r
-                                                       if (str[0] == '[')\r
-                                                       {\r
-                                                               StringBuilder builder = new StringBuilder(0x20);\r
-                                                               int num = 1;\r
-                                                               while ((num < str.Length) && (str[num] != ']'))\r
-                                                               {\r
-                                                                       builder.Append(str[num++]);\r
-                                                               }\r
-                                                               string str2 = builder.ToString();\r
-                                                               if (str2.Equals("File"))\r
-                                                               {\r
-                                                                       section = Eセクション種別.File;\r
-                                                               }\r
-                                                               else if (str2.Equals("HiScore.Drums"))\r
-                                                               {\r
-                                                                       section = Eセクション種別.HiScoreDrums;\r
-                                                               }\r
-                                                               else if (str2.Equals("HiSkill.Drums"))\r
-                                                               {\r
-                                                                       section = Eセクション種別.HiSkillDrums;\r
-                                                               }\r
-                                                               else if (str2.Equals("HiScore.Guitar"))\r
-                                                               {\r
-                                                                       section = Eセクション種別.HiScoreGuitar;\r
-                                                               }\r
-                                                               else if (str2.Equals("HiSkill.Guitar"))\r
-                                                               {\r
-                                                                       section = Eセクション種別.HiSkillGuitar;\r
-                                                               }\r
-                                                               else if (str2.Equals("HiScore.Bass"))\r
-                                                               {\r
-                                                                       section = Eセクション種別.HiScoreBass;\r
-                                                               }\r
-                                                               else if (str2.Equals("HiSkill.Bass"))\r
-                                                               {\r
-                                                                       section = Eセクション種別.HiSkillBass;\r
-                                                               }\r
-                                                               // #23595 2011.1.9 ikanick\r
-                                                               else if (str2.Equals("LastPlay.Drums"))\r
-                                                               {\r
-                                                                       section = Eセクション種別.LastPlayDrums;\r
-                                                               }\r
-                                                               else if (str2.Equals("LastPlay.Guitar"))\r
-                                                               {\r
-                                                                       section = Eセクション種別.LastPlayGuitar;\r
-                                                               }\r
-                                                               else if (str2.Equals("LastPlay.Bass"))\r
-                                                               {\r
-                                                                       section = Eセクション種別.LastPlayBass;\r
-                                                               }\r
-                                                               //----------------------------------------------------\r
-                                                               else\r
-                                                               {\r
-                                                                       section = Eセクション種別.Unknown;\r
-                                                               }\r
-                                                       }\r
-                                                       #endregion\r
-                                                       else\r
-                                                       {\r
-                                                               string[] strArray = str.Split(new char[] { '=' });\r
-                                                               if (strArray.Length == 2)\r
-                                                               {\r
-                                                                       item = strArray[0].Trim();\r
-                                                                       para = strArray[1].Trim();\r
-                                                                       switch (section)\r
-                                                                       {\r
-                                                                               case Eセクション種別.File:\r
-                                                                                       {\r
-                                                                                               if (!item.Equals("Title"))\r
-                                                                                               {\r
-                                                                                                       goto Label_01C7;\r
-                                                                                               }\r
-                                                                                               this.stファイル.Title = para;\r
-                                                                                               continue;\r
-                                                                                       }\r
-                                                                               case Eセクション種別.HiScoreDrums:\r
-                                                                                       c演奏記録 = this.stセクション.HiScore.Drums;\r
-                                                                                       if (!item.Equals("Score"))\r
-                                                                                       {\r
-                                                                                               goto Label_03B9;\r
-                                                                                       }\r
-                                                                                       c演奏記録.nスコア = long.Parse(para);\r
-                                                                                       continue;\r
-                                                                               case Eセクション種別.HiSkillDrums:\r
-                                                                                       c演奏記録 = this.stセクション.HiSkill.Drums;\r
-                                                                                       if (!item.Equals("Score"))\r
-                                                                                       {\r
-                                                                                               goto Label_03B9;\r
-                                                                                       }\r
-                                                                                       c演奏記録.nスコア = long.Parse(para);\r
-                                                                                       continue;\r
-                                                                               case Eセクション種別.HiScoreGuitar:\r
-                                                                                       c演奏記録 = this.stセクション.HiScore.Guitar;\r
-                                                                                       if (!item.Equals("Score"))\r
-                                                                                       {\r
-                                                                                               goto Label_03B9;\r
-                                                                                       }\r
-                                                                                       c演奏記録.nスコア = long.Parse(para);\r
-                                                                                       continue;\r
-                                                                               case Eセクション種別.HiSkillGuitar:\r
-                                                                                       c演奏記録 = this.stセクション.HiSkill.Guitar;\r
-                                                                                       if (!item.Equals("Score"))\r
-                                                                                       {\r
-                                                                                               goto Label_03B9;\r
-                                                                                       }\r
-                                                                                       c演奏記録.nスコア = long.Parse(para);\r
-                                                                                       continue;\r
-                                                                               case Eセクション種別.HiScoreBass:\r
-                                                                                       c演奏記録 = this.stセクション.HiScore.Bass;\r
-                                                                                       if (!item.Equals("Score"))\r
-                                                                                       {\r
-                                                                                               goto Label_03B9;\r
-                                                                                       }\r
-                                                                                       c演奏記録.nスコア = long.Parse(para);\r
-                                                                                       continue;\r
-                                                                               case Eセクション種別.HiSkillBass:\r
-                                                                                       c演奏記録 = this.stセクション.HiSkill.Bass;\r
-                                                                                       if (!item.Equals("Score"))\r
-                                                                                       {\r
-                                                                                               goto Label_03B9;\r
-                                                                                       }\r
-                                                                                       c演奏記録.nスコア = long.Parse(para);\r
-                                                                                       continue;\r
-                                                                               case Eセクション種別.LastPlayDrums:\r
-                                                                                       // #23595 2011.1.9 ikanick\r
-                                                                                       c演奏記録 = this.stセクション.LastPlay.Drums;\r
-                                                                                       if (!item.Equals("Score"))\r
-                                                                                       {\r
-                                                                                               goto Label_03B9;\r
-                                                                                       }\r
-                                                                                       c演奏記録.nスコア = long.Parse(para);\r
-                                                                                       continue;\r
-                                                                               case Eセクション種別.LastPlayGuitar:\r
-                                                                                       c演奏記録 = this.stセクション.LastPlay.Guitar;\r
-                                                                                       if (!item.Equals("Score"))\r
-                                                                                       {\r
-                                                                                               goto Label_03B9;\r
-                                                                                       }\r
-                                                                                       c演奏記録.nスコア = long.Parse(para);\r
-                                                                                       continue;\r
-                                                                               case Eセクション種別.LastPlayBass:\r
-                                                                                       c演奏記録 = this.stセクション.LastPlay.Bass;\r
-                                                                                       if (!item.Equals("Score"))\r
-                                                                                       {\r
-                                                                                               goto Label_03B9;\r
-                                                                                       }\r
-                                                                                       c演奏記録.nスコア = long.Parse(para);\r
-                                                                                       continue;\r
-                                                                       }\r
-                                                               }\r
-                                                       }\r
-                                                       continue;\r
-                                                       #region [ File section ]\r
-                                                       Label_01C7:\r
-                                                       if (item.Equals("Name"))\r
-                                                       {\r
-                                                               this.stファイル.Name = para;\r
-                                                       }\r
-                                                       else if (item.Equals("Hash"))\r
-                                                       {\r
-                                                               this.stファイル.Hash = para;\r
-                                                       }\r
-                                                       else if (item.Equals("PlayCountDrums"))\r
-                                                       {\r
-                                                               this.stファイル.PlayCountDrums = C変換.n値を文字列から取得して範囲内に丸めて返す(para, 0, 99999999, 0);\r
-                                                       }\r
-                                                       else if (item.Equals("PlayCountGuitars"))// #23596 11.2.5 changed ikanick\r
-                                                       {\r
-                                                               this.stファイル.PlayCountGuitar = C変換.n値を文字列から取得して範囲内に丸めて返す(para, 0, 99999999, 0);\r
-                                                       }\r
-                                                       else if (item.Equals("PlayCountBass"))\r
-                                                       {\r
-                                                               this.stファイル.PlayCountBass = C変換.n値を文字列から取得して範囲内に丸めて返す(para, 0, 99999999, 0);\r
-                                                       }\r
-                                                       // #23596 10.11.16 add ikanick------------------------------------/\r
-                                                       else if (item.Equals("ClearCountDrums"))\r
-                                                       {\r
-                                                               this.stファイル.ClearCountDrums = C変換.n値を文字列から取得して範囲内に丸めて返す(para, 0, 99999999, 0);\r
-                                                       }\r
-                                                       else if (item.Equals("ClearCountGuitars"))// #23596 11.2.5 changed ikanick\r
-                                                       {\r
-                                                               this.stファイル.ClearCountGuitar = C変換.n値を文字列から取得して範囲内に丸めて返す(para, 0, 99999999, 0);\r
-                                                       }\r
-                                                       else if (item.Equals("ClearCountBass"))\r
-                                                       {\r
-                                                               this.stファイル.ClearCountBass = C変換.n値を文字列から取得して範囲内に丸めて返す(para, 0, 99999999, 0);\r
-                                                       }\r
-                                                       // #24459 2011.2.24 yyagi-----------------------------------------/\r
-                                                       else if (item.Equals("BestRankDrums"))\r
-                                                       {\r
-                                                               this.stファイル.BestRank.Drums = (ERANK)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 = (ERANK)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 = (ERANK)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] = para;\r
-                                                       }\r
-                                                       else if (item.Equals("History1"))\r
-                                                       {\r
-                                                               this.stファイル.History[1] = para;\r
-                                                       }\r
-                                                       else if (item.Equals("History2"))\r
-                                                       {\r
-                                                               this.stファイル.History[2] = para;\r
-                                                       }\r
-                                                       else if (item.Equals("History3"))\r
-                                                       {\r
-                                                               this.stファイル.History[3] = para;\r
-                                                       }\r
-                                                       else if (item.Equals("History4"))\r
-                                                       {\r
-                                                               this.stファイル.History[4] = para;\r
-                                                       }\r
-                                                       else if (item.Equals("HistoryCount"))\r
-                                                       {\r
-                                                               this.stファイル.HistoryCount = C変換.n値を文字列から取得して範囲内に丸めて返す(para, 0, 99999999, 0);\r
-                                                       }\r
-                                                       else if (item.Equals("BGMAdjust"))\r
-                                                       {\r
-                                                               this.stファイル.BGMAdjust = C変換.n値を文字列から取得して返す(para, 0);\r
-                                                       }\r
-                                                       continue;\r
-                                                       #endregion\r
-                                                       #region [ Score section ]\r
-                                                       Label_03B9:\r
-                                                       if (item.Equals("PlaySkill"))\r
-                                                       {\r
-                                                               c演奏記録.db演奏型スキル値 = (double)decimal.Parse(para);\r
-                                                       }\r
-                                                       else if (item.Equals("Skill"))\r
-                                                       {\r
-                                                               c演奏記録.dbゲーム型スキル値 = (double)decimal.Parse(para);\r
-                                                       }\r
-                                                       else if (item.Equals("Perfect"))\r
-                                                       {\r
-                                                               c演奏記録.nPerfect数 = int.Parse(para);\r
-                                                       }\r
-                                                       else if (item.Equals("Great"))\r
-                                                       {\r
-                                                               c演奏記録.nGreat数 = int.Parse(para);\r
-                                                       }\r
-                                                       else if (item.Equals("Good"))\r
-                                                       {\r
-                                                               c演奏記録.nGood数 = int.Parse(para);\r
-                                                       }\r
-                                                       else if (item.Equals("Poor"))\r
-                                                       {\r
-                                                               c演奏記録.nPoor数 = int.Parse(para);\r
-                                                       }\r
-                                                       else if (item.Equals("Miss"))\r
-                                                       {\r
-                                                               c演奏記録.nMiss数 = int.Parse(para);\r
-                                                       }\r
-                                                       else if (item.Equals("MaxCombo"))\r
-                                                       {\r
-                                                               c演奏記録.n最大コンボ数 = int.Parse(para);\r
-                                                       }\r
-                                                       else if (item.Equals("TotalChips"))\r
-                                                       {\r
-                                                               c演奏記録.n全チップ数 = int.Parse(para);\r
-                                                       }\r
-                                                       else if (item.Equals("AutoPlay"))\r
-                                                       {\r
-                                                               if ( para.Length > (int) EPad.Max )\r
-                                                               {\r
-                                                                       throw new IndexOutOfRangeException( "レーン数が想定より多いscore.iniを読み込みました。XG譜面のscore.iniファイルである可能性があります。" );\r
-                                                                       // Trace.TraceWarning( "レーン数が想定より多いscore.iniを読み込みました。XG譜面のscore.iniファイルである可能性があります。読み込みをスキップします。({0})", iniファイル名 );\r
-                                                               }\r
-                                                               else\r
-                                                               {\r
-                                                                       for ( int i = 0; i < para.Length; i++ )\r
-                                                                       {\r
-                                                                               c演奏記録.bAutoPlay[ (EPad) i ] = C変換.bONorOFF( para[ i ] );\r
-                                                                       }\r
-                                                               }\r
-                                                       }\r
-                                                       else if (item.Equals("GBFlip"))\r
-                                                       {\r
-                                                               c演奏記録.bギターとベースを入れ替えた = C変換.bONorOFF(para[0]);\r
-                                                       }\r
-                                                       else if (item.Equals("Risky"))\r
-                                                       {\r
-                                                               c演奏記録.nRisky = int.Parse(para);\r
-                                                       }\r
-                                                       else if (item.Equals("TightDrums"))\r
-                                                       {\r
-                                                               c演奏記録.bTight = C変換.bONorOFF(para[0]);\r
-                                                       }\r
-                                                       else if (item.Equals("SudHidInvDrums"))\r
-                                                       {\r
-                                                               c演奏記録.eSudHidInv.Drums = (ESudHidInv)int.Parse(para);\r
-                                                       }\r
-                                                       else if (item.Equals("SudHidInvGuitar"))\r
-                                                       {\r
-                                                               c演奏記録.eSudHidInv.Guitar = (ESudHidInv)int.Parse(para);\r
-                                                       }\r
-                                                       else if (item.Equals("SudHidInvBass"))\r
-                                                       {\r
-                                                               c演奏記録.eSudHidInv.Bass = (ESudHidInv)int.Parse(para);\r
-                                                       }\r
-                                                       else if (item.Equals("ReverseDrums"))\r
-                                                       {\r
-                                                               c演奏記録.bReverse.Drums = C変換.bONorOFF(para[0]);\r
-                                                       }\r
-                                                       else if (item.Equals("ReverseGuitar"))\r
-                                                       {\r
-                                                               c演奏記録.bReverse.Guitar = C変換.bONorOFF(para[0]);\r
-                                                       }\r
-                                                       else if (item.Equals("ReverseBass"))\r
-                                                       {\r
-                                                               c演奏記録.bReverse.Bass = C変換.bONorOFF(para[0]);\r
-                                                       }\r
-                                                       #endregion\r
-                                                       else\r
-                                                       {\r
-                                                               #region [ RandomGuitar ]\r
-                                                               if (item.Equals("RandomGuitar"))\r
-                                                               {\r
-                                                                       switch (int.Parse(para))\r
-                                                                       {\r
-                                                                               case (int)ERandom.Off:\r
-                                                                                       {\r
-                                                                                               c演奏記録.eRandom.Guitar = ERandom.Off;\r
-                                                                                               continue;\r
-                                                                                       }\r
-                                                                               case (int)ERandom.Random:\r
-                                                                                       {\r
-                                                                                               c演奏記録.eRandom.Guitar = ERandom.Random;\r
-                                                                                               continue;\r
-                                                                                       }\r
-                                                                               case (int)ERandom.Super:\r
-                                                                                       {\r
-                                                                                               c演奏記録.eRandom.Guitar = ERandom.Super;\r
-                                                                                               continue;\r
-                                                                                       }\r
-                                                                               case (int)ERandom.Hyper:    // #25452 2011.6.20 yyagi\r
-                                                                                       {\r
-                                                                                               c演奏記録.eRandom.Guitar = ERandom.Super;\r
-                                                                                               continue;\r
-                                                                                       }\r
-                                                                       }\r
-                                                                       throw new Exception("RandomGuitar の値が無効です。");\r
-                                                               }\r
-                                                               #endregion\r
-                                                               #region [ RandomBass ]\r
-                                                               if (item.Equals("RandomBass"))\r
-                                                               {\r
-                                                                       switch (int.Parse(para))\r
-                                                                       {\r
-                                                                               case (int)ERandom.Off:\r
-                                                                                       {\r
-                                                                                               c演奏記録.eRandom.Bass = ERandom.Off;\r
-                                                                                               continue;\r
-                                                                                       }\r
-                                                                               case (int)ERandom.Random:\r
-                                                                                       {\r
-                                                                                               c演奏記録.eRandom.Bass = ERandom.Random;\r
-                                                                                               continue;\r
-                                                                                       }\r
-                                                                               case (int)ERandom.Super:\r
-                                                                                       {\r
-                                                                                               c演奏記録.eRandom.Bass = ERandom.Super;\r
-                                                                                               continue;\r
-                                                                                       }\r
-                                                                               case (int)ERandom.Hyper:    // #25452 2011.6.20 yyagi\r
-                                                                                       {\r
-                                                                                               c演奏記録.eRandom.Bass = ERandom.Super;\r
-                                                                                               continue;\r
-                                                                                       }\r
-                                                                       }\r
-                                                                       throw new Exception("RandomBass の値が無効です。");\r
-                                                               }\r
-                                                               #endregion\r
-                                                               #region [ LightGuitar ]\r
-                                                               if (item.Equals("LightGuitar"))\r
-                                                               {\r
-                                                                       c演奏記録.bLight.Guitar = C変換.bONorOFF(para[0]);\r
-                                                               }\r
-                                                               #endregion\r
-                                                               #region [ LightBass ]\r
-                                                               else if (item.Equals("LightBass"))\r
-                                                               {\r
-                                                                       c演奏記録.bLight.Bass = C変換.bONorOFF(para[0]);\r
-                                                               }\r
-                                                               #endregion\r
-                                                               else\r
-                                                               {\r
-                                                                       #region [ Dark ]\r
-                                                                       if (item.Equals("Dark"))\r
-                                                                       {\r
-                                                                               switch (int.Parse(para))\r
-                                                                               {\r
-                                                                                       case 0:\r
-                                                                                               {\r
-                                                                                                       c演奏記録.eDark = EDark.Off;\r
-                                                                                                       continue;\r
-                                                                                               }\r
-                                                                                       case 1:\r
-                                                                                               {\r
-                                                                                                       c演奏記録.eDark = EDark.Half;\r
-                                                                                                       continue;\r
-                                                                                               }\r
-                                                                                       case 2:\r
-                                                                                               {\r
-                                                                                                       c演奏記録.eDark = EDark.Full;\r
-                                                                                                       continue;\r
-                                                                                               }\r
-                                                                               }\r
-                                                                               throw new Exception("Dark の値が無効です。");\r
-                                                                       }\r
-                                                                       #endregion\r
-                                                                       #region [ ScrollSpeedDrums ]\r
-                                                                       if (item.Equals("ScrollSpeedDrums"))\r
-                                                                       {\r
-                                                                               c演奏記録.f譜面スクロール速度.Drums = (float)decimal.Parse(para);\r
-                                                                       }\r
-                                                                       #endregion\r
-                                                                       #region [ ScrollSpeedGuitar ]\r
-                                                                       else if (item.Equals("ScrollSpeedGuitar"))\r
-                                                                       {\r
-                                                                               c演奏記録.f譜面スクロール速度.Guitar = (float)decimal.Parse(para);\r
-                                                                       }\r
-                                                                       #endregion\r
-                                                                       #region [ ScrollSpeedBass ]\r
-                                                                       else if (item.Equals("ScrollSpeedBass"))\r
-                                                                       {\r
-                                                                               c演奏記録.f譜面スクロール速度.Bass = (float)decimal.Parse(para);\r
-                                                                       }\r
-                                                                       #endregion\r
-                                                                       #region [ PlaySpeed ]\r
-                                                                       else if (item.Equals("PlaySpeed"))\r
-                                                                       {\r
-                                                                               string[] strArray2 = para.Split(new char[] { '/' });\r
-                                                                               if (strArray2.Length == 2)\r
-                                                                               {\r
-                                                                                       c演奏記録.n演奏速度分子 = int.Parse(strArray2[0]);\r
-                                                                                       c演奏記録.n演奏速度分母 = int.Parse(strArray2[1]);\r
-                                                                               }\r
-                                                                       }\r
-                                                                       #endregion\r
-                                                                       else\r
-                                                                       {\r
-                                                                               #region [ HHGroup ]\r
-                                                                               if (item.Equals("HHGroup"))\r
-                                                                               {\r
-                                                                                       switch (int.Parse(para))\r
-                                                                                       {\r
-                                                                                               case 0:\r
-                                                                                                       {\r
-                                                                                                               c演奏記録.eHHGroup = EHHGroup.Off;\r
-                                                                                                               continue;\r
-                                                                                                       }\r
-                                                                                               case 1:\r
-                                                                                                       {\r
-                                                                                                               c演奏記録.eHHGroup = EHHGroup.HO_HC;\r
-                                                                                                               continue;\r
-                                                                                                       }\r
-                                                                                               case 2:\r
-                                                                                                       {\r
-                                                                                                               c演奏記録.eHHGroup = EHHGroup.LC_HH;\r
-                                                                                                               continue;\r
-                                                                                                       }\r
-                                                                                               case 3:\r
-                                                                                                       {\r
-                                                                                                               c演奏記録.eHHGroup = EHHGroup.Group;\r
-                                                                                                               continue;\r
-                                                                                                       }\r
-                                                                                       }\r
-                                                                                       throw new Exception("HHGroup の値が無効です。");\r
-                                                                               }\r
-                                                                               #endregion\r
-                                                                               #region [ FTGroup ]\r
-                                                                               if (item.Equals("FTGroup"))\r
-                                                                               {\r
-                                                                                       switch (int.Parse(para))\r
-                                                                                       {\r
-                                                                                               case 0:\r
-                                                                                                       {\r
-                                                                                                               c演奏記録.eFTGroup = EFTGroup.Off;\r
-                                                                                                               continue;\r
-                                                                                                       }\r
-                                                                                               case 1:\r
-                                                                                                       {\r
-                                                                                                               c演奏記録.eFTGroup = EFTGroup.Group;\r
-                                                                                                               continue;\r
-                                                                                                       }\r
-                                                                                       }\r
-                                                                                       throw new Exception("FTGroup の値が無効です。");\r
-                                                                               }\r
-                                                                               #endregion\r
-                                                                               #region [ CYGroup ]\r
-                                                                               if (item.Equals("CYGroup"))\r
-                                                                               {\r
-                                                                                       switch (int.Parse(para))\r
-                                                                                       {\r
-                                                                                               case 0:\r
-                                                                                                       {\r
-                                                                                                               c演奏記録.eCYGroup = ECYGroup.Off;\r
-                                                                                                               continue;\r
-                                                                                                       }\r
-                                                                                               case 1:\r
-                                                                                                       {\r
-                                                                                                               c演奏記録.eCYGroup = ECYGroup.Group;\r
-                                                                                                               continue;\r
-                                                                                                       }\r
-                                                                                       }\r
-                                                                                       throw new Exception("CYGroup の値が無効です。");\r
-                                                                               }\r
-                                                                               #endregion\r
-                                                                               #region [ HitSoundPriorityHH ]\r
-                                                                               if (item.Equals("HitSoundPriorityHH"))\r
-                                                                               {\r
-                                                                                       switch (int.Parse(para))\r
-                                                                                       {\r
-                                                                                               case 0:\r
-                                                                                                       {\r
-                                                                                                               c演奏記録.eHitSoundPriorityHH = EHitSoundPriority.Chip;\r
-                                                                                                               continue;\r
-                                                                                                       }\r
-                                                                                               case 1:\r
-                                                                                                       {\r
-                                                                                                               c演奏記録.eHitSoundPriorityHH = EHitSoundPriority.Pad;\r
-                                                                                                               continue;\r
-                                                                                                       }\r
-                                                                                       }\r
-                                                                                       throw new Exception("HitSoundPriorityHH の値が無効です。");\r
-                                                                               }\r
-                                                                               #endregion\r
-                                                                               #region [ HitSoundPriorityFT ]\r
-                                                                               if (item.Equals("HitSoundPriorityFT"))\r
-                                                                               {\r
-                                                                                       switch (int.Parse(para))\r
-                                                                                       {\r
-                                                                                               case 0:\r
-                                                                                                       {\r
-                                                                                                               c演奏記録.eHitSoundPriorityFT = EHitSoundPriority.Chip;\r
-                                                                                                               continue;\r
-                                                                                                       }\r
-                                                                                               case 1:\r
-                                                                                                       {\r
-                                                                                                               c演奏記録.eHitSoundPriorityFT = EHitSoundPriority.Pad;\r
-                                                                                                               continue;\r
-                                                                                                       }\r
-                                                                                       }\r
-                                                                                       throw new Exception("HitSoundPriorityFT の値が無効です。");\r
-                                                                               }\r
-                                                                               #endregion\r
-                                                                               #region [ HitSoundPriorityCY ]\r
-                                                                               if (item.Equals("HitSoundPriorityCY"))\r
-                                                                               {\r
-                                                                                       switch (int.Parse(para))\r
-                                                                                       {\r
-                                                                                               case 0:\r
-                                                                                                       {\r
-                                                                                                               c演奏記録.eHitSoundPriorityCY = EHitSoundPriority.Chip;\r
-                                                                                                               continue;\r
-                                                                                                       }\r
-                                                                                               case 1:\r
-                                                                                                       {\r
-                                                                                                               c演奏記録.eHitSoundPriorityCY = EHitSoundPriority.Pad;\r
-                                                                                                               continue;\r
-                                                                                                       }\r
-                                                                                       }\r
-                                                                                       throw new Exception("HitSoundPriorityCY の値が無効です。");\r
-                                                                               }\r
-                                                                               #endregion\r
-                                                                               #region [ Guitar ]\r
-                                                                               if (item.Equals("Guitar"))\r
-                                                                               {\r
-                                                                                       c演奏記録.bGuitar有効 = C変換.bONorOFF(para[0]);\r
-                                                                               }\r
-                                                                               #endregion\r
-                                                                               #region [ Drums ]\r
-                                                                               else if (item.Equals("Drums"))\r
-                                                                               {\r
-                                                                                       c演奏記録.bDrums有効 = C変換.bONorOFF(para[0]);\r
-                                                                               }\r
-                                                                               #endregion\r
-                                                                               #region [ StageFailed ]\r
-                                                                               else if (item.Equals("StageFailed"))\r
-                                                                               {\r
-                                                                                       c演奏記録.bSTAGEFAILED有効 = C変換.bONorOFF(para[0]);\r
-                                                                               }\r
-                                                                               #endregion\r
-                                                                               #region [ Metronome ]\r
-                                                                               else if (item.Equals("Metronome"))\r
-                                                                               {\r
-                                                                                       switch ( int.Parse( para ) )\r
-                                                                                       {\r
-                                                                                               case 0:\r
-                                                                                                       {\r
-                                                                                                               c演奏記録.eMetronome = EClickType.Off;\r
-                                                                                                               continue;\r
-                                                                                                       }\r
-                                                                                               case 1:\r
-                                                                                                       {\r
-                                                                                                               c演奏記録.eMetronome = EClickType.OnBeat;\r
-                                                                                                               continue;\r
-                                                                                                       }\r
-                                                                                               case 2:\r
-                                                                                                       {\r
-                                                                                                               c演奏記録.eMetronome = EClickType.OffBeat;\r
-                                                                                                               continue;\r
-                                                                                                       }\r
-                                                                                       }\r
-                                                                                       throw new Exception( "Metronome の値が無効です。" );\r
-                                                                               }\r
-                                                                               #endregion\r
-                                                                               else\r
-                                                                               {\r
-                                                                                       #region [ DamageLevel ]\r
-                                                                                       if (item.Equals("DamageLevel"))\r
-                                                                                       {\r
-                                                                                               switch (int.Parse(para))\r
-                                                                                               {\r
-                                                                                                       case 0:\r
-                                                                                                               {\r
-                                                                                                                       c演奏記録.eダメージレベル = EDamage.Easy;\r
-                                                                                                                       continue;\r
-                                                                                                               }\r
-                                                                                                       case 1:\r
-                                                                                                               {\r
-                                                                                                                       c演奏記録.eダメージレベル = EDamage.Normal;\r
-                                                                                                                       continue;\r
-                                                                                                               }\r
-                                                                                                       case 2:\r
-                                                                                                               {\r
-                                                                                                                       c演奏記録.eダメージレベル = EDamage.Hard;\r
-                                                                                                                       continue;\r
-                                                                                                               }\r
-                                                                                               }\r
-                                                                                               throw new Exception("DamageLevel の値が無効です。");\r
-                                                                                       }\r
-                                                                                       #endregion\r
-                                                                                       if (item.Equals("UseKeyboard"))\r
-                                                                                       {\r
-                                                                                               c演奏記録.b演奏にキーボードを使用した = C変換.bONorOFF(para[0]);\r
-                                                                                       }\r
-                                                                                       else if (item.Equals("UseMIDIIN"))\r
-                                                                                       {\r
-                                                                                               c演奏記録.b演奏にMIDI入力を使用した = C変換.bONorOFF(para[0]);\r
-                                                                                       }\r
-                                                                                       else if (item.Equals("UseJoypad"))\r
-                                                                                       {\r
-                                                                                               c演奏記録.b演奏にジョイパッドを使用した = C変換.bONorOFF(para[0]);\r
-                                                                                       }\r
-                                                                                       else if (item.Equals("UseMouse"))\r
-                                                                                       {\r
-                                                                                               c演奏記録.b演奏にマウスを使用した = C変換.bONorOFF(para[0]);\r
-                                                                                       }\r
-                                                                                       else if (item.Equals("PerfectRange"))\r
-                                                                                       {\r
-                                                                                               c演奏記録.nPerfectになる範囲ms = int.Parse(para);\r
-                                                                                       }\r
-                                                                                       else if (item.Equals("GreatRange"))\r
-                                                                                       {\r
-                                                                                               c演奏記録.nGreatになる範囲ms = int.Parse(para);\r
-                                                                                       }\r
-                                                                                       else if (item.Equals("GoodRange"))\r
-                                                                                       {\r
-                                                                                               c演奏記録.nGoodになる範囲ms = int.Parse(para);\r
-                                                                                       }\r
-                                                                                       else if (item.Equals("PoorRange"))\r
-                                                                                       {\r
-                                                                                               c演奏記録.nPoorになる範囲ms = int.Parse(para);\r
-                                                                                       }\r
-                                                                                       else if (item.Equals("DTXManiaVersion"))\r
-                                                                                       {\r
-                                                                                               c演奏記録.strDTXManiaのバージョン = para;\r
-                                                                                       }\r
-                                                                                       else if (item.Equals("DateTime"))\r
-                                                                                       {\r
-                                                                                               c演奏記録.最終更新日時 = para;\r
-                                                                                       }\r
-                                                                                       else if (item.Equals("Hash"))\r
-                                                                                       {\r
-                                                                                               c演奏記録.Hash = para;\r
-                                                                                       }\r
-                                                                                       //else if ( item.Equals( "9LaneMode" ) )\r
-                                                                                       //{\r
-                                                                                       //      c演奏記録.レーン9モード = C変換.bONorOFF( para[ 0 ] );\r
-                                                                                       //}\r
-                                                                                       else if (item.Equals("ScoreLaneTypeDrums"))\r
-                                                                                       {\r
-                                                                                               c演奏記録.e譜面レーンタイプ.Drums = (EUseLanes) ( int.Parse( para ) );\r
-                                                                                       }\r
-                                                                                       else if ( item.Equals( "ScoreLaneTypeGuitar" ) )\r
-                                                                                       {\r
-                                                                                               c演奏記録.e譜面レーンタイプ.Guitar = (EUseLanes) ( int.Parse( para ) );\r
-                                                                                       }\r
-                                                                                       else if ( item.Equals( "ScoreLaneTypeBass" ) )\r
-                                                                                       {\r
-                                                                                               c演奏記録.e譜面レーンタイプ.Bass = (EUseLanes) ( int.Parse( para ) );\r
-                                                                                       }\r
-                                                                               }\r
-                                                                       }\r
-                                                               }\r
-                                                       }\r
-                                                       continue;\r
-                                               }\r
-                                               catch (Exception exception)\r
-                                               {\r
-                                                       Trace.TraceError("{0}読み込みを中断します。({1})", exception.Message, iniファイル名);\r
-                                                       break;\r
-                                               }\r
-                                       }\r
-                               }\r
-                               reader.Close();\r
-                       }\r
-               }\r
-\r
-               internal void tヒストリを追加する(string str追加文字列)\r
-               {\r
-                       this.stファイル.HistoryCount++;\r
-                       for (int i = 3; i >= 0; i--)\r
-                               this.stファイル.History[i + 1] = this.stファイル.History[i];\r
-                       DateTime now = DateTime.Now;\r
-                       this.stファイル.History[0] = string.Format("{0:0}.{1:D2}/{2}/{3} {4}", this.stファイル.HistoryCount, now.Year % 100, now.Month, now.Day, str追加文字列);\r
-               }\r
-\r
-               internal void tセクション書き出し(TextWriter writer, Eセクション種別 esect)\r
-               {\r
-                       C演奏記録 sect = null;\r
-                       string strSect = "";\r
-\r
-                       if (esect == Eセクション種別.HiScoreDrums)\r
-                       {\r
-                               sect = this.stセクション.HiScore.Drums;\r
-                               strSect = "HiScore.Drums";\r
-                       }\r
-                       else if (esect == Eセクション種別.HiSkillDrums)\r
-                       {\r
-                               sect = this.stセクション.HiSkill.Drums;\r
-                               strSect = "HiSkill.Drums";\r
-                       }\r
-                       else if (esect == Eセクション種別.HiScoreGuitar)\r
-                       {\r
-                               sect = this.stセクション.HiScore.Guitar;\r
-                               strSect = "HiScore.Guitar";\r
-                       }\r
-                       else if (esect == Eセクション種別.HiSkillGuitar)\r
-                       {\r
-                               sect = this.stセクション.HiSkill.Guitar;\r
-                               strSect = "HiSkill.Guitar";\r
-                       }\r
-                       else if (esect == Eセクション種別.HiScoreBass)\r
-                       {\r
-                               sect = this.stセクション.HiScore.Bass;\r
-                               strSect = "HiScore.Bass";\r
-                       }\r
-                       else if (esect == Eセクション種別.HiSkillBass)\r
-                       {\r
-                               sect = this.stセクション.HiSkill.Bass;\r
-                               strSect = "HiSkill.Bass";\r
-                       }\r
-                       else if (esect == Eセクション種別.LastPlayDrums)\r
-                       {\r
-                               sect = this.stセクション.LastPlay.Drums;\r
-                               strSect = "LastPlay.Drums";\r
-                       }\r
-                       else if (esect == Eセクション種別.LastPlayGuitar)\r
-                       {\r
-                               sect = this.stセクション.LastPlay.Guitar;\r
-                               strSect = "LastPlay.Guitar";\r
-                       }\r
-                       else if (esect == Eセクション種別.LastPlayBass)\r
-                       {\r
-                               sect = this.stセクション.LastPlay.Bass;\r
-                               strSect = "LastPlay.Bass";\r
-                       }\r
-\r
-                       if (sect != null)\r
-                       {\r
-                               writer.WriteLine("[{0}]", strSect);\r
-                               writer.WriteLine("Score={0}", sect.nスコア);\r
-                               writer.WriteLine("PlaySkill={0}", sect.db演奏型スキル値);\r
-                               writer.WriteLine("Skill={0}", sect.dbゲーム型スキル値);\r
-                               writer.WriteLine("Perfect={0}", sect.nPerfect数);\r
-                               writer.WriteLine("Great={0}", sect.nGreat数);\r
-                               writer.WriteLine("Good={0}", sect.nGood数);\r
-                               writer.WriteLine("Poor={0}", sect.nPoor数);\r
-                               writer.WriteLine("Miss={0}", sect.nMiss数);\r
-                               writer.WriteLine("MaxCombo={0}", sect.n最大コンボ数);\r
-                               writer.WriteLine("TotalChips={0}", sect.n全チップ数);\r
-                               writer.Write("AutoPlay=");\r
-                               for (EPad j = EPad.Min; j < EPad.Max; j++)\r
-                               {\r
-                                       writer.Write(sect.bAutoPlay[j] ? 1 : 0);\r
-                               }\r
-                               writer.WriteLine();\r
-                               writer.WriteLine("GBFlip={0}", sect.bギターとベースを入れ替えた ? 1 : 0);\r
-                               writer.WriteLine("Risky={0}", sect.nRisky);\r
-                               writer.WriteLine("SudHidInvDrums={0}", (int)sect.eSudHidInv.Drums);\r
-                               writer.WriteLine("SudHidInvGuitar={0}", (int)sect.eSudHidInv.Guitar);\r
-                               writer.WriteLine("SudHidInvBass={0}", (int)sect.eSudHidInv.Bass);\r
-                               writer.WriteLine("ReverseDrums={0}", sect.bReverse.Drums ? 1 : 0);\r
-                               writer.WriteLine("ReverseGuitar={0}", sect.bReverse.Guitar ? 1 : 0);\r
-                               writer.WriteLine("ReverseBass={0}", sect.bReverse.Bass ? 1 : 0);\r
-                               writer.WriteLine("TightDrums={0}", sect.bTight ? 1 : 0);\r
-                               writer.WriteLine("RandomGuitar={0}", (int)sect.eRandom.Guitar);\r
-                               writer.WriteLine("RandomBass={0}", (int)sect.eRandom.Bass);\r
-                               writer.WriteLine("LightGuitar={0}", sect.bLight.Guitar ? 1 : 0);\r
-                               writer.WriteLine("LightBass={0}", sect.bLight.Bass ? 1 : 0);\r
-                               writer.WriteLine("Dark={0}", (int)sect.eDark);\r
-                               writer.WriteLine("ScrollSpeedDrums={0}", sect.f譜面スクロール速度.Drums);\r
-                               writer.WriteLine("ScrollSpeedGuitar={0}", sect.f譜面スクロール速度.Guitar);\r
-                               writer.WriteLine("ScrollSpeedBass={0}", sect.f譜面スクロール速度.Bass);\r
-                               writer.WriteLine("PlaySpeed={0}/{1}", sect.n演奏速度分子, sect.n演奏速度分母);\r
-                               writer.WriteLine("ScoreLaneTypeDrums={0}", (int) sect.e譜面レーンタイプ.Drums);\r
-                               writer.WriteLine("ScoreLaneTypeGuitar={0}", (int) sect.e譜面レーンタイプ.Guitar);\r
-                               writer.WriteLine("ScoreLaneTypeBass={0}", (int) sect.e譜面レーンタイプ.Bass);\r
-                               writer.WriteLine("HHGroup={0}", (int)sect.eHHGroup);\r
-                               writer.WriteLine("FTGroup={0}", (int)sect.eFTGroup);\r
-                               writer.WriteLine("CYGroup={0}", (int)sect.eCYGroup);\r
-                               writer.WriteLine("HitSoundPriorityHH={0}", (int)sect.eHitSoundPriorityHH);\r
-                               writer.WriteLine("HitSoundPriorityFT={0}", (int)sect.eHitSoundPriorityFT);\r
-                               writer.WriteLine("HitSoundPriorityCY={0}", (int)sect.eHitSoundPriorityCY);\r
-                               writer.WriteLine("Guitar={0}", sect.bGuitar有効 ? 1 : 0);\r
-                               writer.WriteLine("Drums={0}", sect.bDrums有効 ? 1 : 0);\r
-                               writer.WriteLine("StageFailed={0}", sect.bSTAGEFAILED有効 ? 1 : 0);\r
-                               writer.WriteLine("DamageLevel={0}", (int)sect.eダメージレベル);\r
-                               writer.WriteLine("Metronome={0}", (int)sect.eMetronome);\r
-                               writer.WriteLine("UseKeyboard={0}", sect.b演奏にキーボードを使用した ? 1 : 0);\r
-                               writer.WriteLine("UseMIDIIN={0}", sect.b演奏にMIDI入力を使用した ? 1 : 0);\r
-                               writer.WriteLine("UseJoypad={0}", sect.b演奏にジョイパッドを使用した ? 1 : 0);\r
-                               writer.WriteLine("UseMouse={0}", sect.b演奏にマウスを使用した ? 1 : 0);\r
-                               writer.WriteLine("PerfectRange={0}", sect.nPerfectになる範囲ms);\r
-                               writer.WriteLine("GreatRange={0}", sect.nGreatになる範囲ms);\r
-                               writer.WriteLine("GoodRange={0}", sect.nGoodになる範囲ms);\r
-                               writer.WriteLine("PoorRange={0}", sect.nPoorになる範囲ms);\r
-                               writer.WriteLine("DTXManiaVersion={0}", sect.strDTXManiaのバージョン);\r
-                               writer.WriteLine("DateTime={0}", sect.最終更新日時);\r
-                               writer.WriteLine("Hash={0}", sect.Hash);\r
-                       }\r
-\r
-               }\r
-\r
-               internal void t書き出し(string iniファイル名)\r
-               {\r
-                       this.iniファイルのあるフォルダ名 = Path.GetDirectoryName(iniファイル名);\r
-                       this.iniファイル名 = Path.GetFileName(iniファイル名);\r
-\r
-                       using (StreamWriter writer = new StreamWriter(iniファイル名, false, Encoding.GetEncoding("utf-16")))\r
-                       {\r
-                               writer.WriteLine("[File]");\r
-                               writer.WriteLine("Title={0}", this.stファイル.Title);\r
-                               writer.WriteLine("Name={0}", this.stファイル.Name);\r
-                               writer.WriteLine("Hash={0}", this.stファイル.Hash);\r
-                               writer.WriteLine("PlayCountDrums={0}", this.stファイル.PlayCountDrums);\r
-                               writer.WriteLine("PlayCountGuitars={0}", this.stファイル.PlayCountGuitar);\r
-                               writer.WriteLine("PlayCountBass={0}", this.stファイル.PlayCountBass);\r
-                               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
-                               writer.WriteLine("History2={0}", this.stファイル.History[2]);\r
-                               writer.WriteLine("History3={0}", this.stファイル.History[3]);\r
-                               writer.WriteLine("History4={0}", this.stファイル.History[4]);\r
-                               writer.WriteLine("BGMAdjust={0}", this.stファイル.BGMAdjust);\r
-                               writer.WriteLine();\r
-\r
-                               tセクション書き出し(writer, Eセクション種別.HiScoreDrums);\r
-                               tセクション書き出し(writer, Eセクション種別.HiSkillDrums);\r
-                               tセクション書き出し(writer, Eセクション種別.HiScoreGuitar);\r
-                               tセクション書き出し(writer, Eセクション種別.HiSkillGuitar);\r
-                               tセクション書き出し(writer, Eセクション種別.HiScoreBass);\r
-                               tセクション書き出し(writer, Eセクション種別.HiSkillBass);\r
-                               tセクション書き出し(writer, Eセクション種別.LastPlayDrums);\r
-                               tセクション書き出し(writer, Eセクション種別.LastPlayGuitar);\r
-                               tセクション書き出し(writer, Eセクション種別.LastPlayBass);\r
-                       }\r
-               }\r
-\r
-               internal static ERANK tランク値を計算して返す(C演奏記録 part)\r
-               {\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
-                               return tランク値を計算して返す(nTotal, part.nPerfect数, part.nGreat数, part.nGood数, part.nPoor数, part.nMiss数);\r
-                       }\r
-                       return ERANK.UNKNOWN;\r
-               }\r
-\r
-               internal static ERANK tランク値を計算して返す(int nTotal, int nPerfect, int nGreat, int nGood, int nPoor, int nMiss)\r
-               {\r
-                       if (nTotal <= 0)\r
-                               return ERANK.UNKNOWN;\r
-\r
-                       //int nRank = (int)ERANK.E;\r
-                       int nAuto = nTotal - (nPerfect + nGreat + nGood + nPoor + nMiss);\r
-                       if (nTotal == nAuto)\r
-                       {\r
-                               return ERANK.SS;\r
-                       }\r
-                       double dRate = ((double)(nPerfect + nGreat)) / ((double)(nTotal - nAuto));\r
-                       if (dRate == 1.0)\r
-                       {\r
-                               return ERANK.SS;\r
-                       }\r
-                       if (dRate >= 0.95)\r
-                       {\r
-                               return ERANK.S;\r
-                       }\r
-                       if (dRate >= 0.9)\r
-                       {\r
-                               return ERANK.A;\r
-                       }\r
-                       if (dRate >= 0.85)\r
-                       {\r
-                               return ERANK.B;\r
-                       }\r
-                       if (dRate >= 0.8)\r
-                       {\r
-                               return ERANK.C;\r
-                       }\r
-                       if (dRate >= 0.7)\r
-                       {\r
-                               return ERANK.D;\r
-                       }\r
-                       return ERANK.E;\r
-               }\r
-\r
-               internal static double tゲーム型スキルを計算して返す(int nLevel, int nTotal, int nPerfect, int nCombo, EPart inst)\r
-               {\r
-                       double ret;\r
-                       if ((nTotal == 0) || ((nPerfect == 0) && (nCombo == 0)))\r
-                               ret = 0.0;\r
-\r
-                       ret = ((nLevel * ((nPerfect * 0.8 + nCombo * 0.2) / ((double)nTotal))) / 2.0);\r
-                       ret *= dbCalcReviseValForDrGtBsAutoLanes(inst);\r
-\r
-                       return ret;\r
-               }\r
-\r
-               internal static double t演奏型スキルを計算して返す(int nTotal, int nPerfect, int nGreat, int nGood, int nPoor, int nMiss, EPart inst, bool auto考慮)\r
-               {\r
-                       if (nTotal == 0)\r
-                               return 0.0;\r
-\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
-                       double ret = (100.0 * ((Math.Pow(1.03, y) - 1.0) / (Math.Pow(1.03, 100.0) - 1.0)));\r
-\r
-                       if (auto考慮)\r
-                       {\r
-                               ret *= dbCalcReviseValForDrGtBsAutoLanes(inst);\r
-                       }\r
-                       return ret;\r
-               }\r
-\r
-               internal static double dbCalcReviseValForDrGtBsAutoLanes(EPart inst)  // #28607 2012.6.7 yyagi\r
-               {\r
-                       double ret = 1.0;\r
-                       bool allauto = CDTXMania.Instance.ConfigIni.bIsAutoPlay(inst);\r
-                       switch (inst)\r
-                       {\r
-                               #region [ Unknown ]\r
-                               case EPart.Unknown:\r
-                                       throw new ArgumentException();\r
-                               #endregion\r
-                               #region [ Drums ]\r
-                               case EPart.Drums:\r
-                                       if (!allauto)\r
-                                       {\r
-                                               #region [ Auto BD ]\r
-                                               if (CDTXMania.Instance.ConfigIni.bAutoPlay.BD)\r
-                                               {\r
-                                                       ret /= 2;\r
-                                               }\r
-                                               #endregion\r
-                                       }\r
-                                       break;\r
-                               #endregion\r
-                               #region [ Guitar ]\r
-                               case EPart.Guitar:\r
-                                       if (!allauto)\r
-                                       {\r
-                                               #region [ Auto Pick ]\r
-                                               if (CDTXMania.Instance.ConfigIni.bAutoPlay.GtPick)\r
-                                               {\r
-                                                       ret /= 2;      // AutoPick時、達成率を1/2にする\r
-                                               }\r
-                                               #endregion\r
-                                               #region [ Auto Neck ]\r
-                                               int nAutoLanes = 0;\r
-                                               if (CDTXMania.Instance.ConfigIni.bAutoPlay.GtR)\r
-                                               {\r
-                                                       nAutoLanes++;\r
-                                               }\r
-                                               if (CDTXMania.Instance.ConfigIni.bAutoPlay.GtG)\r
-                                               {\r
-                                                       nAutoLanes++;\r
-                                               }\r
-                                               if (CDTXMania.Instance.ConfigIni.bAutoPlay.GtB)\r
-                                               {\r
-                                                       nAutoLanes++;\r
-                                               }\r
-                                               ret /= Math.Sqrt(nAutoLanes + 1);\r
-                                               #endregion\r
-                                       }\r
-                                       break;\r
-                               #endregion\r
-                               #region [ Bass ]\r
-                               case EPart.Bass:\r
-                                       if (!allauto)\r
-                                       {\r
-                                               #region [ Auto Pick ]\r
-                                               if (CDTXMania.Instance.ConfigIni.bAutoPlay.BsPick)\r
-                                               {\r
-                                                       ret /= 2;      // AutoPick時、達成率を1/2にする\r
-                                               }\r
-                                               #endregion\r
-                                               #region [ Auto lanes ]\r
-                                               int nAutoLanes = 0;\r
-                                               if (CDTXMania.Instance.ConfigIni.bAutoPlay.BsR)\r
-                                               {\r
-                                                       nAutoLanes++;\r
-                                               }\r
-                                               if (CDTXMania.Instance.ConfigIni.bAutoPlay.BsG)\r
-                                               {\r
-                                                       nAutoLanes++;\r
-                                               }\r
-                                               if (CDTXMania.Instance.ConfigIni.bAutoPlay.BsB)\r
-                                               {\r
-                                                       nAutoLanes++;\r
-                                               }\r
-                                               ret /= Math.Sqrt(nAutoLanes + 1);\r
-                                               #endregion\r
-                                       }\r
-                                       break;\r
-                                       #endregion\r
-                       }\r
-                       return ret;\r
-               }\r
-\r
-               internal static STDGBSValue<bool> t更新条件を取得する()\r
-               {\r
-                       STDGBSValue<bool> ret = new STDGBSValue<bool>();\r
-                       for (EPart i = EPart.Drums; i <= EPart.Bass; ++i)\r
-                       {\r
-                               ret[i] = CDTXMania.Instance.ConfigIni.b楽器有効(i) && CDTXMania.Instance.DTX.bチップがある[i] && !CDTXMania.Instance.ConfigIni.bIsAutoPlay(i);\r
-                       }\r
-                       return ret;\r
-               }\r
-\r
-               internal static ERANK t総合ランク値を計算して返す(STDGBSValue<C演奏記録> record)\r
-               {\r
-                       int nTotal = record.Drums.n全チップ数 + record.Guitar.n全チップ数 + record.Bass.n全チップ数;\r
-                       int nPerfect = record.Drums.nPerfect数_Auto含まない + record.Guitar.nPerfect数_Auto含まない + record.Bass.nPerfect数_Auto含まない; // #24569 2011.3.1 yyagi: to calculate result rank without AUTO chips\r
-                       int nGreat = record.Drums.nGreat数_Auto含まない + record.Guitar.nGreat数_Auto含まない + record.Bass.nGreat数_Auto含まない;   //\r
-                       int nGood = record.Drums.nGood数_Auto含まない + record.Guitar.nGood数_Auto含まない + record.Bass.nGood数_Auto含まない;   //\r
-                       int nPoor = record.Drums.nPoor数_Auto含まない + record.Guitar.nPoor数_Auto含まない + record.Bass.nPoor数_Auto含まない;   //\r
-                       int nMiss = record.Drums.nMiss数_Auto含まない + record.Guitar.nMiss数_Auto含まない + record.Bass.nMiss数_Auto含まない;   //\r
-                       return tランク値を計算して返す(nTotal, nPerfect, nGreat, nGood, nPoor, nMiss);\r
-               }\r
-\r
-               // その他\r
-\r
-               #region [ private ]\r
-               //-----------------\r
-               /*\r
-               private bool ONorOFF(char c)\r
-               {\r
-                       return (c != '0');\r
-               }\r
-               private static char boolToChar(bool b)\r
-               {\r
-                       if (!b)\r
-                       {\r
-                               return '0';\r
-                       }\r
-                       return '1';\r
-               }\r
-               */\r
-               //-----------------\r
-               #endregion\r
-       }\r
-}\r