-using System;\r
-using System.Collections.Generic;\r
-using System.Text;\r
-using System.Runtime.InteropServices;\r
-using System.IO;\r
-using System.Diagnostics;\r
-using System.Web;\r
-using FDK;\r
-\r
-namespace DTXMania\r
-{\r
- public class CConfigIni\r
- {\r
- // クラス\r
-\r
- #region [ CKeyAssign ]\r
- public class CKeyAssign\r
- {\r
- public class CKeyAssignPad\r
- {\r
- public CConfigIni.CKeyAssign.STKEYASSIGN[] HH\r
- {\r
- get\r
- {\r
- return this.padHH_R;\r
- }\r
- set\r
- {\r
- this.padHH_R = value;\r
- }\r
- }\r
- public CConfigIni.CKeyAssign.STKEYASSIGN[] R\r
- {\r
- get\r
- {\r
- return this.padHH_R;\r
- }\r
- set\r
- {\r
- this.padHH_R = value;\r
- }\r
- }\r
- public CConfigIni.CKeyAssign.STKEYASSIGN[] SD\r
- {\r
- get\r
- {\r
- return this.padSD_G;\r
- }\r
- set\r
- {\r
- this.padSD_G = value;\r
- }\r
- }\r
- public CConfigIni.CKeyAssign.STKEYASSIGN[] G\r
- {\r
- get\r
- {\r
- return this.padSD_G;\r
- }\r
- set\r
- {\r
- this.padSD_G = value;\r
- }\r
- }\r
- public CConfigIni.CKeyAssign.STKEYASSIGN[] BD\r
- {\r
- get\r
- {\r
- return this.padBD_B;\r
- }\r
- set\r
- {\r
- this.padBD_B = value;\r
- }\r
- }\r
- public CConfigIni.CKeyAssign.STKEYASSIGN[] B\r
- {\r
- get\r
- {\r
- return this.padBD_B;\r
- }\r
- set\r
- {\r
- this.padBD_B = value;\r
- }\r
- }\r
- public CConfigIni.CKeyAssign.STKEYASSIGN[] HT\r
- {\r
- get\r
- {\r
- return this.padHT_Pick;\r
- }\r
- set\r
- {\r
- this.padHT_Pick = value;\r
- }\r
- }\r
- public CConfigIni.CKeyAssign.STKEYASSIGN[] Pick\r
- {\r
- get\r
- {\r
- return this.padHT_Pick;\r
- }\r
- set\r
- {\r
- this.padHT_Pick = value;\r
- }\r
- }\r
- public CConfigIni.CKeyAssign.STKEYASSIGN[] LT\r
- {\r
- get\r
- {\r
- return this.padLT_Wail;\r
- }\r
- set\r
- {\r
- this.padLT_Wail = value;\r
- }\r
- }\r
- public CConfigIni.CKeyAssign.STKEYASSIGN[] Wail\r
- {\r
- get\r
- {\r
- return this.padLT_Wail;\r
- }\r
- set\r
- {\r
- this.padLT_Wail = value;\r
- }\r
- }\r
- public CConfigIni.CKeyAssign.STKEYASSIGN[] FT\r
- {\r
- get\r
- {\r
- return this.padFT_Cancel;\r
- }\r
- set\r
- {\r
- this.padFT_Cancel = value;\r
- }\r
- }\r
- public CConfigIni.CKeyAssign.STKEYASSIGN[] Cancel\r
- {\r
- get\r
- {\r
- return this.padFT_Cancel;\r
- }\r
- set\r
- {\r
- this.padFT_Cancel = value;\r
- }\r
- }\r
- public CConfigIni.CKeyAssign.STKEYASSIGN[] CY\r
- {\r
- get\r
- {\r
- return this.padCY_Decide;\r
- }\r
- set\r
- {\r
- this.padCY_Decide = value;\r
- }\r
- }\r
- public CConfigIni.CKeyAssign.STKEYASSIGN[] Decide\r
- {\r
- get\r
- {\r
- return this.padCY_Decide;\r
- }\r
- set\r
- {\r
- this.padCY_Decide = value;\r
- }\r
- }\r
- public CConfigIni.CKeyAssign.STKEYASSIGN[] HHO\r
- {\r
- get\r
- {\r
- return this.padHHO;\r
- }\r
- set\r
- {\r
- this.padHHO = value;\r
- }\r
- }\r
- public CConfigIni.CKeyAssign.STKEYASSIGN[] RD\r
- {\r
- get\r
- {\r
- return this.padRD;\r
- }\r
- set\r
- {\r
- this.padRD = value;\r
- }\r
- }\r
- public CConfigIni.CKeyAssign.STKEYASSIGN[] LC\r
- {\r
- get\r
- {\r
- return this.padLC;\r
- }\r
- set\r
- {\r
- this.padLC = value;\r
- }\r
- }\r
- public CConfigIni.CKeyAssign.STKEYASSIGN[] HP\r
- {\r
- get\r
- {\r
- return this.padHP;\r
- }\r
- set\r
- {\r
- this.padHP = value;\r
- }\r
- }\r
- public CConfigIni.CKeyAssign.STKEYASSIGN[] Capture\r
- {\r
- get\r
- {\r
- return this.padCapture;\r
- }\r
- set\r
- {\r
- this.padCapture = value;\r
- }\r
- }\r
- public CConfigIni.CKeyAssign.STKEYASSIGN[] this[int index]\r
- {\r
- get\r
- {\r
- switch (index)\r
- {\r
- case (int)EKeyConfigPad.HH:\r
- return this.padHH_R;\r
-\r
- case (int)EKeyConfigPad.SD:\r
- return this.padSD_G;\r
-\r
- case (int)EKeyConfigPad.BD:\r
- return this.padBD_B;\r
-\r
- case (int)EKeyConfigPad.HT:\r
- return this.padHT_Pick;\r
-\r
- case (int)EKeyConfigPad.LT:\r
- return this.padLT_Wail;\r
-\r
- case (int)EKeyConfigPad.FT:\r
- return this.padFT_Cancel;\r
-\r
- case (int)EKeyConfigPad.CY:\r
- return this.padCY_Decide;\r
-\r
- case (int)EKeyConfigPad.HHO:\r
- return this.padHHO;\r
-\r
- case (int)EKeyConfigPad.RD:\r
- return this.padRD;\r
-\r
- case (int)EKeyConfigPad.LC:\r
- return this.padLC;\r
-\r
- case (int)EKeyConfigPad.HP: // #27029 2012.1.4 from\r
- return this.padHP; //\r
-\r
- case (int)EKeyConfigPad.Capture:\r
- return this.padCapture;\r
- }\r
- throw new IndexOutOfRangeException();\r
- }\r
- set\r
- {\r
- switch (index)\r
- {\r
- case (int)EKeyConfigPad.HH:\r
- this.padHH_R = value;\r
- return;\r
-\r
- case (int)EKeyConfigPad.SD:\r
- this.padSD_G = value;\r
- return;\r
-\r
- case (int)EKeyConfigPad.BD:\r
- this.padBD_B = value;\r
- return;\r
-\r
- case (int)EKeyConfigPad.Pick:\r
- this.padHT_Pick = value;\r
- return;\r
-\r
- case (int)EKeyConfigPad.LT:\r
- this.padLT_Wail = value;\r
- return;\r
-\r
- case (int)EKeyConfigPad.FT:\r
- this.padFT_Cancel = value;\r
- return;\r
-\r
- case (int)EKeyConfigPad.CY:\r
- this.padCY_Decide = value;\r
- return;\r
-\r
- case (int)EKeyConfigPad.HHO:\r
- this.padHHO = value;\r
- return;\r
-\r
- case (int)EKeyConfigPad.RD:\r
- this.padRD = value;\r
- return;\r
-\r
- case (int)EKeyConfigPad.LC:\r
- this.padLC = value;\r
- return;\r
-\r
- case (int)EKeyConfigPad.HP:\r
- this.padHP = value;\r
- return;\r
-\r
- case (int)EKeyConfigPad.Capture:\r
- this.padCapture = value;\r
- return;\r
- }\r
- throw new IndexOutOfRangeException();\r
- }\r
- }\r
-\r
- #region [ private ]\r
- //-----------------\r
- private CConfigIni.CKeyAssign.STKEYASSIGN[] padBD_B;\r
- private CConfigIni.CKeyAssign.STKEYASSIGN[] padCY_Decide;\r
- private CConfigIni.CKeyAssign.STKEYASSIGN[] padFT_Cancel;\r
- private CConfigIni.CKeyAssign.STKEYASSIGN[] padHH_R;\r
- private CConfigIni.CKeyAssign.STKEYASSIGN[] padHHO;\r
- private CConfigIni.CKeyAssign.STKEYASSIGN[] padHT_Pick;\r
- private CConfigIni.CKeyAssign.STKEYASSIGN[] padLC;\r
- private CConfigIni.CKeyAssign.STKEYASSIGN[] padLT_Wail;\r
- private CConfigIni.CKeyAssign.STKEYASSIGN[] padRD;\r
- private CConfigIni.CKeyAssign.STKEYASSIGN[] padSD_G;\r
- private CConfigIni.CKeyAssign.STKEYASSIGN[] padHP;\r
- private CConfigIni.CKeyAssign.STKEYASSIGN[] padCapture;\r
- //-----------------\r
- #endregion\r
- }\r
-\r
- [StructLayout(LayoutKind.Sequential)]\r
- public struct STKEYASSIGN\r
- {\r
- public E入力デバイス 入力デバイス;\r
- public int ID;\r
- public int コード;\r
- public STKEYASSIGN(E入力デバイス DeviceType, int nID, int nCode)\r
- {\r
- this.入力デバイス = DeviceType;\r
- this.ID = nID;\r
- this.コード = nCode;\r
- }\r
- }\r
-\r
- public CKeyAssignPad Bass = new CKeyAssignPad();\r
- public CKeyAssignPad Drums = new CKeyAssignPad();\r
- public CKeyAssignPad Guitar = new CKeyAssignPad();\r
- public CKeyAssignPad System = new CKeyAssignPad();\r
- public CKeyAssignPad this[int index]\r
- {\r
- get\r
- {\r
- switch (index)\r
- {\r
- case (int)EKeyConfigPart.DRUMS:\r
- return this.Drums;\r
-\r
- case (int)EKeyConfigPart.GUITAR:\r
- return this.Guitar;\r
-\r
- case (int)EKeyConfigPart.BASS:\r
- return this.Bass;\r
-\r
- case (int)EKeyConfigPart.SYSTEM:\r
- return this.System;\r
- }\r
- throw new IndexOutOfRangeException();\r
- }\r
- set\r
- {\r
- switch (index)\r
- {\r
- case (int)EKeyConfigPart.DRUMS:\r
- this.Drums = value;\r
- return;\r
-\r
- case (int)EKeyConfigPart.GUITAR:\r
- this.Guitar = value;\r
- return;\r
-\r
- case (int)EKeyConfigPart.BASS:\r
- this.Bass = value;\r
- return;\r
-\r
- case (int)EKeyConfigPart.SYSTEM:\r
- this.System = value;\r
- return;\r
- }\r
- throw new IndexOutOfRangeException();\r
- }\r
- }\r
- }\r
- #endregion\r
-\r
- //\r
- public enum ESoundDeviceTypeForConfig\r
- {\r
- ACM = 0,\r
- // DirectSound,\r
- ASIO,\r
- WASAPI,\r
- Unknown = 99\r
- }\r
- // プロパティ\r
-\r
-#if false // #23625 2011.1.11 Config.iniからダメージ/回復値の定数変更を行う場合はここを有効にする 087リリースに合わせ機能無効化\r
- //----------------------------------------\r
- public float[,] fGaugeFactor = new float[5,2];\r
- public float[] fDamageLevelFactor = new float[3];\r
- //----------------------------------------\r
-#endif\r
- public int nBGAlpha;\r
- public bool bForceAVIFullscreen;\r
- public bool bAVI有効;\r
- public bool bBGA有効;\r
- public bool bBGM音を発声する;\r
- public STDGBVALUE<bool> bHidden;\r
- public STDGBVALUE<bool> bLeft;\r
- public STDGBVALUE<bool> bLight;\r
- public bool bLogDTX詳細ログ出力;\r
- public bool bLog曲検索ログ出力;\r
- public bool bLog作成解放ログ出力;\r
- public STDGBVALUE<bool> bReverse;\r
- //public STDGBVALUE<E判定表示優先度> e判定表示優先度;\r
- public E判定表示優先度 e判定表示優先度;\r
- public STDGBVALUE<E判定位置> e判定位置; // #33891 2014.6.26 yyagi\r
- public Eドラムレーン表示位置 eドラムレーン表示位置;\r
- public bool bScoreIniを出力する;\r
- public bool bSTAGEFAILED有効;\r
- public STDGBVALUE<bool> bSudden;\r
- public bool bTight;\r
- public bool bGraph; // #24074 2011.01.23 add ikanick\r
- public bool bWave再生位置自動調整機能有効;\r
- public bool bシンバルフリー;\r
- public bool bストイックモード;\r
- public bool bドラム打音を発声する;\r
- public bool bフィルイン有効;\r
- public bool bランダムセレクトで子BOXを検索対象とする;\r
- public bool bログ出力;\r
- public STDGBVALUE<bool> b演奏音を強調する;\r
- public bool b演奏情報を表示する;\r
- public bool b歓声を発声する;\r
- public bool b垂直帰線待ちを行う;\r
- public bool b選曲リストフォントを斜体にする;\r
- public bool b選曲リストフォントを太字にする;\r
- public bool b全画面モード;\r
- public int n初期ウィンドウ開始位置X; // #30675 2013.02.04 ikanick add\r
- public int n初期ウィンドウ開始位置Y;\r
- public int nウインドウwidth; // #23510 2010.10.31 yyagi add\r
- public int nウインドウheight; // #23510 2010.10.31 yyagi add\r
- public Dictionary<int, string> dicJoystick;\r
- public ECYGroup eCYGroup;\r
- public Eダークモード eDark;\r
- public EFTGroup eFTGroup;\r
- public EHHGroup eHHGroup;\r
- public EBDGroup eBDGroup; // #27029 2012.1.4 from add\r
- public E打ち分け時の再生の優先順位 eHitSoundPriorityCY;\r
- public E打ち分け時の再生の優先順位 eHitSoundPriorityFT;\r
- public E打ち分け時の再生の優先順位 eHitSoundPriorityHH;\r
- public STDGBVALUE<Eランダムモード> eRandom;\r
- public Eダメージレベル eダメージレベル;\r
- public CKeyAssign KeyAssign;\r
- public int n非フォーカス時スリープms; // #23568 2010.11.04 ikanick add\r
- public int nフレーム毎スリープms; // #xxxxx 2011.11.27 yyagi add\r
- public int n演奏速度;\r
- public int n曲が選択されてからプレビュー音が鳴るまでのウェイトms;\r
- public int n曲が選択されてからプレビュー画像が表示開始されるまでのウェイトms;\r
- public int n自動再生音量;\r
- public int n手動再生音量;\r
- public int n選曲リストフォントのサイズdot;\r
- public STDGBVALUE<int> n表示可能な最小コンボ数;\r
- public STDGBVALUE<int> n譜面スクロール速度;\r
- public string strDTXManiaのバージョン;\r
- public string str曲データ検索パス;\r
- public string str選曲リストフォント;\r
- public Eドラムコンボ文字の表示位置 ドラムコンボ文字の表示位置;\r
- public STDGBVALUE<E判定文字表示位置> 判定文字表示位置;\r
- // public int nハイハット切り捨て下限Velocity;\r
- // public int n切り捨て下限Velocity; // #23857 2010.12.12 yyagi VelocityMin\r
- public STDGBVALUE<int> nInputAdjustTimeMs; // #23580 2011.1.3 yyagi タイミングアジャスト機能\r
- public STDGBVALUE<int> nJudgeLinePosOffset; // #31602 2013.6.23 yyagi 判定ライン表示位置のオフセット\r
- public STDGBVALUE<float> fJudgeLinePosOffsetBase;\r
- public int nShowLagType; // #25370 2011.6.5 yyagi ズレ時間表示機能\r
- public bool bIsAutoResultCapture; // #25399 2011.6.9 yyagi リザルト画像自動保存機能のON/OFF制御\r
- public int nPoliphonicSounds; // #28228 2012.5.1 yyagi レーン毎の最大同時発音数\r
- public bool bバッファ入力を行う;\r
- public bool bIsEnabledSystemMenu; // #28200 2012.5.1 yyagi System Menuの使用可否切替\r
- public string strSystemSkinSubfolderFullName; // #28195 2012.5.2 yyagi Skin切替用 System/以下のサブフォルダ名\r
- public bool bUseBoxDefSkin; // #28195 2012.5.6 yyagi Skin切替用 box.defによるスキン変更機能を使用するか否か\r
- public STDGBVALUE<EAutoGhostData> eAutoGhost; // #35411 2015.8.18 chnmr0 プレー時使用ゴーストデータ種別\r
- public STDGBVALUE<ETargetGhostData> eTargetGhost; // #35411 2015.8.18 chnmr0 ゴーストデータ再生方法\r
- public bool b曲読み込みを高速化する; // #36046 2016.2.21 ikanick\r
-\r
- public bool bConfigIniがないかDTXManiaのバージョンが異なる\r
- {\r
- get\r
- {\r
- return (!this.bConfigIniが存在している || !CDTXMania.VERSION.Equals(this.strDTXManiaのバージョン));\r
- }\r
- }\r
- public bool bDrums有効\r
- {\r
- get\r
- {\r
- return this._bDrums有効;\r
- }\r
- set\r
- {\r
- this._bDrums有効 = value;\r
- if(!this.bGuitar有効 && !this.bDrums有効)\r
- {\r
- this._bGuitar有効 = true;\r
- }\r
- _b楽器有効.Drums = value;\r
- }\r
- }\r
-\r
- public bool bEnterがキー割り当てのどこにも使用されていない\r
- {\r
- get\r
- {\r
- for (int i = 0; i <= (int)EKeyConfigPart.SYSTEM; i++)\r
- {\r
- for (int j = 0; j <= (int)EKeyConfigPad.Capture; j++)\r
- {\r
- for (int k = 0; k < 0x10; k++)\r
- {\r
- if ((this.KeyAssign[i][j][k].入力デバイス == E入力デバイス.キーボード) && (this.KeyAssign[i][j][k].コード == (int)SlimDX.DirectInput.Key.Return))\r
- {\r
- return false;\r
- }\r
- }\r
- }\r
- }\r
- return true;\r
- }\r
- }\r
-\r
- public bool bGuitar有効\r
- {\r
- get\r
- {\r
- return this._bGuitar有効;\r
- }\r
- set\r
- {\r
- this._bGuitar有効 = value;\r
- if (!this.bGuitar有効 && !this.bDrums有効)\r
- {\r
- this._bDrums有効 = true;\r
- }\r
- _b楽器有効.Bass = value;\r
- _b楽器有効.Guitar = value;\r
- }\r
- }\r
-\r
- public STDGBVALUE<bool> b楽器有効\r
- {\r
- get\r
- {\r
- return _b楽器有効;\r
- }\r
- }\r
-\r
- public bool bウィンドウモード\r
- {\r
- get\r
- {\r
- return !this.b全画面モード;\r
- }\r
- set\r
- {\r
- this.b全画面モード = !value;\r
- }\r
- }\r
-\r
- public bool bドラムが全部オートプレイである\r
- {\r
- get\r
- {\r
- for (int i = (int)Eレーン.LC; i <= (int)Eレーン.CY; i++)\r
- {\r
- if (!this.bAutoPlay[i])\r
- {\r
- return false;\r
- }\r
- }\r
- return true;\r
- }\r
- }\r
-\r
- public bool bギターが全部オートプレイである\r
- {\r
- get\r
- {\r
- for (int i = (int)Eレーン.GtR; i <= (int)Eレーン.GtW; i++)\r
- {\r
- if (!this.bAutoPlay[i])\r
- {\r
- return false;\r
- }\r
- }\r
- return true;\r
- }\r
- }\r
- public bool bベースが全部オートプレイである\r
- {\r
- get\r
- {\r
- for (int i = (int)Eレーン.BsR; i <= (int)Eレーン.BsW; i++)\r
- {\r
- if (!this.bAutoPlay[i])\r
- {\r
- return false;\r
- }\r
- }\r
- return true;\r
- }\r
- }\r
- public bool b演奏情報を表示しない\r
- {\r
- get\r
- {\r
- return !this.b演奏情報を表示する;\r
- }\r
- set\r
- {\r
- this.b演奏情報を表示する = !value;\r
- }\r
- }\r
- public int n背景の透過度\r
- {\r
- get\r
- {\r
- return this.nBGAlpha;\r
- }\r
- set\r
- {\r
- if (value < 0)\r
- {\r
- this.nBGAlpha = 0;\r
- }\r
- else if (value > 0xff)\r
- {\r
- this.nBGAlpha = 0xff;\r
- }\r
- else\r
- {\r
- this.nBGAlpha = value;\r
- }\r
- }\r
- }\r
- public int nRisky; // #23559 2011.6.20 yyagi Riskyでの残ミス数。0で閉店\r
- public bool bIsAllowedDoubleClickFullscreen; // #26752 2011.11.27 yyagi ダブルクリックしてもフルスクリーンに移行しない\r
- public bool bIsSwappedGuitarBass // #24063 2011.1.16 yyagi ギターとベースの切り替え中か否か\r
- {\r
- get;\r
- set;\r
- }\r
- public bool bIsSwappedGuitarBass_AutoFlagsAreSwapped // #24415 2011.2.21 yyagi FLIP中にalt-f4終了で、AUTOフラグがswapした状態でconfig.iniが出力されてしまうことを避けるためのフラグ\r
- {\r
- get;\r
- set;\r
- }\r
- public bool bIsSwappedGuitarBass_PlaySettingsAreSwapped // #35417 2015.8.18 yyagi FLIP中にalt-f4終了で、演奏設定がswapした状態でconfig.iniが出力されてしまうことを避けるためのフラグ\r
- {\r
- get;\r
- set;\r
- }\r
-\r
- public STAUTOPLAY bAutoPlay;\r
- public int nSoundDeviceType; // #24820 2012.12.23 yyagi 出力サウンドデバイス(0=ACM(にしたいが設計がきつそうならDirectShow), 1=ASIO, 2=WASAPI)\r
- public int nWASAPIBufferSizeMs; // #24820 2013.1.15 yyagi WASAPIのバッファサイズ\r
- // public int nASIOBufferSizeMs; // #24820 2012.12.28 yyagi ASIOのバッファサイズ\r
- public int nASIODevice; // #24820 2013.1.17 yyagi ASIOデバイス\r
- public bool bUseOSTimer; // #33689 2014.6.6 yyagi 演奏タイマーの種類\r
- public bool bDynamicBassMixerManagement; // #24820\r
- public bool bTimeStretch; // #23664 2013.2.24 yyagi ピッチ変更無しで再生速度を変更するかどうか\r
- public STDGBVALUE<EInvisible> eInvisible; // #32072 2013.9.20 yyagi チップを非表示にする\r
- public int nChipDisplayTimeMs, nChipFadeoutTimeMs; // Invisible対応\r
-\r
- public STDGBVALUE<int> nViewerScrollSpeed;\r
- public bool bViewerVSyncWait;\r
- public bool bViewerShowDebugStatus;\r
- public bool bViewerTimeStretch;\r
- public bool bViewerDrums有効, bViewerGuitar有効;\r
- public int nViewer初期ウィンドウ開始位置X;\r
- public int nViewer初期ウィンドウ開始位置Y;\r
- public int nViewerウインドウwidth;\r
- public int nViewerウインドウheight;\r
- //public bool bNoMP3Streaming; // 2014.4.14 yyagi; mp3のシーク位置がおかしくなる場合は、これをtrueにすることで、wavにデコードしてからオンメモリ再生する\r
- public int nMasterVolume;\r
-\r
- #region [ STRANGE ]\r
- public STRANGE nヒット範囲ms;\r
- [StructLayout(LayoutKind.Sequential)]\r
- public struct STRANGE\r
- {\r
- public int Perfect;\r
- public int Great;\r
- public int Good;\r
- public int Poor;\r
- public int this[int index]\r
- {\r
- get\r
- {\r
- switch (index)\r
- {\r
- case 0:\r
- return this.Perfect;\r
-\r
- case 1:\r
- return this.Great;\r
-\r
- case 2:\r
- return this.Good;\r
-\r
- case 3:\r
- return this.Poor;\r
- }\r
- throw new IndexOutOfRangeException();\r
- }\r
- set\r
- {\r
- switch (index)\r
- {\r
- case 0:\r
- this.Perfect = value;\r
- return;\r
-\r
- case 1:\r
- this.Great = value;\r
- return;\r
-\r
- case 2:\r
- this.Good = value;\r
- return;\r
-\r
- case 3:\r
- this.Poor = value;\r
- return;\r
- }\r
- throw new IndexOutOfRangeException();\r
- }\r
- }\r
- }\r
- #endregion\r
- #region [ STLANEVALUE ]\r
- public STLANEVALUE nVelocityMin;\r
- [StructLayout(LayoutKind.Sequential)]\r
- public struct STLANEVALUE\r
- {\r
- public int LC;\r
- public int HH;\r
- public int SD;\r
- public int BD;\r
- public int HT;\r
- public int LT;\r
- public int FT;\r
- public int CY;\r
- public int RD;\r
- public int Guitar;\r
- public int Bass;\r
- public int this[int index]\r
- {\r
- get\r
- {\r
- switch (index)\r
- {\r
- case 0:\r
- return this.LC;\r
-\r
- case 1:\r
- return this.HH;\r
-\r
- case 2:\r
- return this.SD;\r
-\r
- case 3:\r
- return this.BD;\r
-\r
- case 4:\r
- return this.HT;\r
-\r
- case 5:\r
- return this.LT;\r
-\r
- case 6:\r
- return this.FT;\r
-\r
- case 7:\r
- return this.CY;\r
-\r
- case 8:\r
- return this.RD;\r
-\r
- case 9:\r
- return this.Guitar;\r
-\r
- case 10:\r
- return this.Bass;\r
- }\r
- throw new IndexOutOfRangeException();\r
- }\r
- set\r
- {\r
- switch (index)\r
- {\r
- case 0:\r
- this.LC = value;\r
- return;\r
-\r
- case 1:\r
- this.HH = value;\r
- return;\r
-\r
- case 2:\r
- this.SD = value;\r
- return;\r
-\r
- case 3:\r
- this.BD = value;\r
- return;\r
-\r
- case 4:\r
- this.HT = value;\r
- return;\r
-\r
- case 5:\r
- this.LT = value;\r
- return;\r
-\r
- case 6:\r
- this.FT = value;\r
- return;\r
-\r
- case 7:\r
- this.CY = value;\r
- return;\r
-\r
- case 8:\r
- this.RD = value;\r
- return;\r
-\r
- case 9:\r
- this.Guitar = value;\r
- return;\r
-\r
- case 10:\r
- this.Bass = value;\r
- return;\r
- }\r
- throw new IndexOutOfRangeException();\r
- }\r
- }\r
- }\r
- #endregion\r
-\r
- // #27029 2012.1.5 from:\r
- // BDGroup が FP|BD→FP&BD に変化した際に自動変化するパラメータの値のバックアップ。FP&BD→FP|BD の時に元に戻す。\r
- // これらのバックアップ値は、BDGroup が FP&BD 状態の時にのみ Config.ini に出力され、BDGroup が FP|BD に戻ったら Config.ini から消える。\r
- public class CBackupOf1BD\r
- {\r
- public EHHGroup eHHGroup = EHHGroup.全部打ち分ける;\r
- public E打ち分け時の再生の優先順位 eHitSoundPriorityHH = E打ち分け時の再生の優先順位.ChipがPadより優先;\r
- }\r
- public CBackupOf1BD BackupOf1BD = null;\r
-\r
- public void SwapGuitarBassInfos_AutoFlags()\r
- {\r
- //bool ts = CDTXMania.Instance.ConfigIni.bAutoPlay.Bass; // #24415 2011.2.21 yyagi: FLIP時のリザルトにAUTOの記録が混ざらないよう、AUTOのフラグもswapする\r
- //CDTXMania.Instance.ConfigIni.bAutoPlay.Bass = CDTXMania.Instance.ConfigIni.bAutoPlay.Guitar;\r
- //CDTXMania.Instance.ConfigIni.bAutoPlay.Guitar = ts;\r
-\r
- int looptime = (int)Eレーン.GtW - (int)Eレーン.GtR + 1; // #29390 2013.1.25 yyagi ギターのAutoLane/AutoPick対応に伴い、FLIPもこれに対応\r
- for (int i = 0; i < looptime; i++) // こんなに離れたところを独立して修正しなければならない設計ではいけませんね・・・\r
- {\r
- bool b = CDTXMania.Instance.ConfigIni.bAutoPlay[i + (int)Eレーン.BsR];\r
- CDTXMania.Instance.ConfigIni.bAutoPlay[i + (int)Eレーン.BsR] = CDTXMania.Instance.ConfigIni.bAutoPlay[i + (int)Eレーン.GtR];\r
- CDTXMania.Instance.ConfigIni.bAutoPlay[i + (int)Eレーン.GtR] = b;\r
- }\r
-\r
- CDTXMania.Instance.ConfigIni.bIsSwappedGuitarBass_AutoFlagsAreSwapped = !CDTXMania.Instance.ConfigIni.bIsSwappedGuitarBass_AutoFlagsAreSwapped;\r
- }\r
- public void SwapGuitarBassInfos_PlaySettings() // #35417 2015.8.18 yyagi: 演奏設定のFLIP機能を追加\r
- {\r
- bool b;\r
- b = bHidden.Bass; bHidden.Bass = bHidden.Guitar; bHidden.Guitar = b;\r
- b = bLeft.Bass; bLeft.Bass = bLeft.Guitar; bLeft.Guitar = b;\r
- b = bLight.Bass; bLight.Bass = bLight.Guitar; bLight.Guitar = b;\r
- b = bReverse.Bass; bReverse.Bass = bReverse.Guitar; bReverse.Guitar = b;\r
- b = bSudden.Bass; bSudden.Bass = bSudden.Guitar; bSudden.Guitar = b;\r
-\r
- EInvisible ei;\r
- ei = eInvisible.Bass; eInvisible.Bass = eInvisible.Guitar; eInvisible.Guitar = ei;\r
- Eランダムモード er;\r
- er = eRandom.Bass; eRandom.Bass = eRandom.Guitar; eRandom.Guitar = er;\r
- E判定文字表示位置 ej;\r
- ej = 判定文字表示位置.Bass; 判定文字表示位置.Bass = 判定文字表示位置.Guitar; 判定文字表示位置.Guitar = ej;\r
- int n;\r
- n = n表示可能な最小コンボ数.Bass; n表示可能な最小コンボ数.Bass = n表示可能な最小コンボ数.Guitar; n表示可能な最小コンボ数.Guitar = n;\r
-\r
- // 譜面スクロール速度の変更だけは、On活性化()で行うこと。そうしないと、演奏開始直後にスクロール速度が変化して見苦しい。\r
- n = n譜面スクロール速度.Bass; n譜面スクロール速度.Bass = n譜面スクロール速度.Guitar; n譜面スクロール速度.Guitar = n;\r
-\r
- CDTXMania.Instance.ConfigIni.bIsSwappedGuitarBass_PlaySettingsAreSwapped = !CDTXMania.Instance.ConfigIni.bIsSwappedGuitarBass_PlaySettingsAreSwapped;\r
-\r
- }\r
- // コンストラクタ\r
-\r
- public CConfigIni()\r
- {\r
- this.strDTXManiaのバージョン = "Unknown";\r
- this.str曲データ検索パス = @".\";\r
- this.b全画面モード = false;\r
- this.b垂直帰線待ちを行う = true;\r
- this.n初期ウィンドウ開始位置X = 0; // #30675 2013.02.04 ikanick add\r
- this.n初期ウィンドウ開始位置Y = 0;\r
- this.nウインドウwidth = 0; // #34069 2014.7.23 yyagi 初回起動時のwindow sizeは、CDTXMania側で設定する(-> 1280x720にする)\r
- this.nウインドウheight = 0; //\r
- this.nフレーム毎スリープms = -1; // #xxxxx 2011.11.27 yyagi add\r
- this.n非フォーカス時スリープms = 1; // #23568 2010.11.04 ikanick add\r
- this._bGuitar有効 = true;\r
- this._bDrums有効 = true;\r
- this._b楽器有効 = new STDGBVALUE<bool>();\r
- this.nBGAlpha = 200;\r
- this.eダメージレベル = Eダメージレベル.普通;\r
- this.bSTAGEFAILED有効 = true;\r
- this.bForceAVIFullscreen = false;\r
- this.bAVI有効 = true;\r
- this.bBGA有効 = true;\r
- this.bフィルイン有効 = true;\r
- this.n曲が選択されてからプレビュー音が鳴るまでのウェイトms = 1000;\r
- this.n曲が選択されてからプレビュー画像が表示開始されるまでのウェイトms = 100;\r
- this.bWave再生位置自動調整機能有効 = true;\r
- this.bBGM音を発声する = true;\r
- this.bドラム打音を発声する = true;\r
- this.b歓声を発声する = true;\r
- this.bScoreIniを出力する = true;\r
- this.bランダムセレクトで子BOXを検索対象とする = true;\r
- this.n表示可能な最小コンボ数 = new STDGBVALUE<int>();\r
- this.n表示可能な最小コンボ数.Drums = 11;\r
- this.n表示可能な最小コンボ数.Guitar = 2;\r
- this.n表示可能な最小コンボ数.Bass = 2;\r
- this.str選曲リストフォント = "MS PGothic";\r
- this.n選曲リストフォントのサイズdot = 20;\r
- this.b選曲リストフォントを太字にする = true;\r
- this.n自動再生音量 = 80;\r
- this.n手動再生音量 = 100;\r
- this.bログ出力 = true;\r
- this.b演奏音を強調する = new STDGBVALUE<bool>();\r
- this.bSudden = new STDGBVALUE<bool>();\r
- this.bHidden = new STDGBVALUE<bool>();\r
- this.bReverse = new STDGBVALUE<bool>();\r
- this.eRandom = new STDGBVALUE<Eランダムモード>();\r
- this.bLight = new STDGBVALUE<bool>();\r
- this.bLeft = new STDGBVALUE<bool>();\r
- this.e判定位置 = new STDGBVALUE<E判定位置>(); // #33891 2014.6.26 yyagi\r
- this.判定文字表示位置 = new STDGBVALUE<E判定文字表示位置>();\r
- this.eドラムレーン表示位置 = new Eドラムレーン表示位置();\r
- this.n譜面スクロール速度 = new STDGBVALUE<int>();\r
- this.nInputAdjustTimeMs = new STDGBVALUE<int>(); // #23580 2011.1.3 yyagi\r
- this.nJudgeLinePosOffset = new STDGBVALUE<int>(); // #31602 2013.6.23 yyagi\r
- this.e判定表示優先度 = E判定表示優先度.Chipより下;\r
- for (E楽器パート i = E楽器パート.DRUMS; i <= E楽器パート.BASS; i++)\r
- {\r
- this.b演奏音を強調する[i] = true;\r
- this.bSudden[i] = false;\r
- this.bHidden[i] = false;\r
- this.bReverse[i] = false;\r
- this.eRandom[i] = Eランダムモード.OFF;\r
- this.bLight[i] = false;\r
- this.bLeft[i] = false;\r
- this.判定文字表示位置[i] = E判定文字表示位置.レーン上;\r
- this.n譜面スクロール速度[i] = 1;\r
- this.nInputAdjustTimeMs[i] = 0;\r
- this.nJudgeLinePosOffset[i] = 0;\r
- this.fJudgeLinePosOffsetBase[i] = 0.0f;\r
- this.eInvisible[i] = EInvisible.OFF;\r
- this.nViewerScrollSpeed[i] = 1;\r
- this.e判定位置[i] = E判定位置.標準;\r
- //this.e判定表示優先度[ i ] = E判定表示優先度.Chipより下;\r
- }\r
-\r
- this.n演奏速度 = 20;\r
- #region [ AutoPlay ]\r
- this.bAutoPlay = new STAUTOPLAY();\r
- this.bAutoPlay.HH = false;\r
- this.bAutoPlay.SD = false;\r
- this.bAutoPlay.BD = false;\r
- this.bAutoPlay.HT = false;\r
- this.bAutoPlay.LT = false;\r
- this.bAutoPlay.FT = false;\r
- this.bAutoPlay.CY = false;\r
- this.bAutoPlay.LC = false;\r
- //this.bAutoPlay.Guitar = true;\r
- //this.bAutoPlay.Bass = true;\r
- this.bAutoPlay.GtR = true;\r
- this.bAutoPlay.GtG = true;\r
- this.bAutoPlay.GtB = true;\r
- this.bAutoPlay.GtPick = true;\r
- this.bAutoPlay.GtW = true;\r
- this.bAutoPlay.BsR = true;\r
- this.bAutoPlay.BsG = true;\r
- this.bAutoPlay.BsB = true;\r
- this.bAutoPlay.BsPick = true;\r
- this.bAutoPlay.BsW = true;\r
- #endregion\r
- this.nヒット範囲ms = new STRANGE();\r
- this.nヒット範囲ms.Perfect = 34;\r
- this.nヒット範囲ms.Great = 67;\r
- this.nヒット範囲ms.Good = 84;\r
- this.nヒット範囲ms.Poor = 117;\r
- this.ConfigIniファイル名 = "";\r
- this.dicJoystick = new Dictionary<int, string>(10);\r
- this.tデフォルトのキーアサインに設定する();\r
- #region [ velocityMin ]\r
- this.nVelocityMin.LC = 0; // #23857 2011.1.31 yyagi VelocityMin\r
- this.nVelocityMin.HH = 20;\r
- this.nVelocityMin.SD = 0;\r
- this.nVelocityMin.BD = 0;\r
- this.nVelocityMin.HT = 0;\r
- this.nVelocityMin.LT = 0;\r
- this.nVelocityMin.FT = 0;\r
- this.nVelocityMin.CY = 0;\r
- this.nVelocityMin.RD = 0;\r
- #endregion\r
- this.nRisky = 0; // #23539 2011.7.26 yyagi RISKYモード\r
- this.nShowLagType = (int)EShowLagType.OFF; // #25370 2011.6.3 yyagi ズレ時間表示\r
- this.bIsAutoResultCapture = false; // #25399 2011.6.9 yyagi リザルト画像自動保存機能ON/OFF\r
-\r
- this.bバッファ入力を行う = true;\r
- this.bIsSwappedGuitarBass = false; // #24063 2011.1.16 yyagi ギターとベースの切り替え\r
- this.bIsAllowedDoubleClickFullscreen = true; // #26752 2011.11.26 ダブルクリックでのフルスクリーンモード移行を許可\r
- this.eBDGroup = EBDGroup.打ち分ける; // #27029 2012.1.4 from HHPedalとBassPedalのグルーピング\r
- this.nPoliphonicSounds = 4; // #28228 2012.5.1 yyagi レーン毎の最大同時発音数\r
- // #24820 2013.1.15 yyagi 初期値を4から2に変更。BASS.net使用時の負荷軽減のため。\r
- // #24820 2013.1.17 yyagi 初期値を4に戻した。動的なミキサー制御がうまく動作しているため。\r
- this.bIsEnabledSystemMenu = true; // #28200 2012.5.1 yyagi System Menuの利用可否切替(使用可)\r
- this.strSystemSkinSubfolderFullName = ""; // #28195 2012.5.2 yyagi 使用中のSkinサブフォルダ名\r
- this.bUseBoxDefSkin = true; // #28195 2012.5.6 yyagi box.defによるスキン切替機能を使用するか否か\r
- this.bTight = false; // #29500 2012.9.11 kairera0467 TIGHTモード\r
- #region [ WASAPI/ASIO ]\r
- this.nSoundDeviceType = FDK.COS.bIsVistaOrLater ?\r
- (int)ESoundDeviceTypeForConfig.WASAPI : (int)ESoundDeviceTypeForConfig.ACM; // #24820 2012.12.23 yyagi 初期値はACM | #31927 2013.8.25 yyagi OSにより初期値変更\r
- this.nWASAPIBufferSizeMs = 50; // #24820 2013.1.15 yyagi 初期値は50(0で自動設定)\r
- this.nASIODevice = 0; // #24820 2013.1.17 yyagi\r
- // this.nASIOBufferSizeMs = 0; // #24820 2012.12.25 yyagi 初期値は0(自動設定)\r
- #endregion\r
-\r
- this.bUseOSTimer = false; ; // #33689 2014.6.6 yyagi 初期値はfalse (FDKのタイマー。FROM氏考案の独自タイマー)\r
- this.bDynamicBassMixerManagement = true; //\r
- this.bTimeStretch = false; // #23664 2013.2.24 yyagi 初期値はfalse (再生速度変更を、ピッチ変更にて行う)\r
- this.nChipDisplayTimeMs = 3000; // #32072 2013.10.24 yyagi Semi-Invisibleでの、チップ再表示期間\r
- this.nChipFadeoutTimeMs = 2000; // #32072 2013.10.24 yyagi Semi-Invisibleでの、チップフェードアウト時間\r
-\r
- this.bViewerVSyncWait = true;\r
- this.bViewerShowDebugStatus = true;\r
- this.bViewerTimeStretch = false;\r
- this.bViewerDrums有効 = true;\r
- this.bViewerGuitar有効 = true;\r
- this.nViewer初期ウィンドウ開始位置X = 0;\r
- this.nViewer初期ウィンドウ開始位置Y = 0;\r
- this.nViewerウインドウwidth = 640;\r
- this.nViewerウインドウheight = 360;\r
-\r
- //this.bNoMP3Streaming = false;\r
- this.nMasterVolume = 100; // #33700 2014.4.26 yyagi マスターボリュームの設定(WASAPI/ASIO用)\r
- this.b曲読み込みを高速化する = true;\r
- }\r
- public CConfigIni(string iniファイル名)\r
- : this()\r
- {\r
- this.tファイルから読み込み(iniファイル名);\r
- }\r
-\r
-\r
- // メソッド\r
-\r
- public void t指定した入力が既にアサイン済みである場合はそれを全削除する(E入力デバイス DeviceType, int nID, int nCode)\r
- {\r
- for (int i = 0; i <= (int)EKeyConfigPart.SYSTEM; i++)\r
- {\r
- for (int j = 0; j <= (int)EKeyConfigPad.Capture; j++)\r
- {\r
- for (int k = 0; k < 0x10; k++)\r
- {\r
- if (((this.KeyAssign[i][j][k].入力デバイス == DeviceType) && (this.KeyAssign[i][j][k].ID == nID)) && (this.KeyAssign[i][j][k].コード == nCode))\r
- {\r
- for (int m = k; m < 15; m++)\r
- {\r
- this.KeyAssign[i][j][m] = this.KeyAssign[i][j][m + 1];\r
- }\r
- this.KeyAssign[i][j][15].入力デバイス = E入力デバイス.不明;\r
- this.KeyAssign[i][j][15].ID = 0;\r
- this.KeyAssign[i][j][15].コード = 0;\r
- k--;\r
- }\r
- }\r
- }\r
- }\r
- }\r
- public void t書き出し(string iniファイル名)\r
- {\r
- StreamWriter sw = new StreamWriter(iniファイル名, false, Encoding.GetEncoding("utf-16"));\r
- sw.WriteLine(";-------------------");\r
-\r
- #region [ System ]\r
- sw.WriteLine("[System]");\r
- sw.WriteLine();\r
-\r
-#if false // #23625 2011.1.11 Config.iniからダメージ/回復値の定数変更を行う場合はここを有効にする 087リリースに合わせ機能無効化\r
- //------------------------------\r
- sw.WriteLine("; ライフゲージのパラメータ調整(調整完了後削除予定)");\r
- sw.WriteLine("; GaugeFactorD: ドラムのPerfect, Great,... の回復量(ライフMAXを1.0としたときの値を指定)");\r
- sw.WriteLine("; GaugeFactorG: Gt/BsのPerfect, Great,... の回復量(ライフMAXを1.0としたときの値を指定)");\r
- sw.WriteLine("; DamageFactorD: DamageLevelがSmall, Normal, Largeの時に対するダメージ係数");\r
- sw.WriteLine("GaugeFactorD={0}, {1}, {2}, {3}, {4}", this.fGaugeFactor[0, 0], this.fGaugeFactor[1, 0], this.fGaugeFactor[2, 0], this.fGaugeFactor[3, 0], this.fGaugeFactor[4, 0]);\r
- sw.WriteLine("GaugeFactorG={0}, {1}, {2}, {3}, {4}", this.fGaugeFactor[0, 1], this.fGaugeFactor[1, 1], this.fGaugeFactor[2, 1], this.fGaugeFactor[3, 1], this.fGaugeFactor[4, 1]);\r
- sw.WriteLine("DamageFactor={0}, {1}, {2}", this.fDamageLevelFactor[0], this.fDamageLevelFactor[1], fDamageLevelFactor[2]);\r
- sw.WriteLine();\r
- //------------------------------\r
-#endif\r
- #region [ Version ]\r
- sw.WriteLine("; リリースバージョン");\r
- sw.WriteLine("; Release Version.");\r
- sw.WriteLine("Version={0}", CDTXMania.VERSION);\r
- sw.WriteLine();\r
- #endregion\r
- #region [ DTXPath ]\r
- sw.WriteLine("; 演奏データの格納されているフォルダへのパス。");\r
- sw.WriteLine(@"; セミコロン(;)で区切ることにより複数のパスを指定できます。(例: d:\DTXFiles1\;e:\DTXFiles2\)");\r
- sw.WriteLine("; Pathes for DTX data.");\r
- sw.WriteLine(@"; You can specify many pathes separated with semicolon(;). (e.g. d:\DTXFiles1\;e:\DTXFiles2\)");\r
- sw.WriteLine("DTXPath={0}", this.str曲データ検索パス);\r
- sw.WriteLine();\r
- #endregion\r
- #region [ スキン関連 ]\r
- #region [ Skinパスの絶対パス→相対パス変換 ]\r
- Uri uriRoot = new Uri(System.IO.Path.Combine(CDTXMania.Instance.strEXEのあるフォルダ, "System" + System.IO.Path.DirectorySeparatorChar));\r
- if (strSystemSkinSubfolderFullName != null && strSystemSkinSubfolderFullName.Length == 0)\r
- {\r
- // Config.iniが空の状態でDTXManiaをViewerとして起動・終了すると、strSystemSkinSubfolderFullName が空の状態でここに来る。\r
- // → 初期値として Default/ を設定する。\r
- strSystemSkinSubfolderFullName = System.IO.Path.Combine(CDTXMania.Instance.strEXEのあるフォルダ, "System" + System.IO.Path.DirectorySeparatorChar + "Default" + System.IO.Path.DirectorySeparatorChar);\r
- }\r
- Uri uriPath = new Uri(System.IO.Path.Combine(this.strSystemSkinSubfolderFullName, "." + System.IO.Path.DirectorySeparatorChar));\r
- string relPath = uriRoot.MakeRelativeUri(uriPath).ToString(); // 相対パスを取得\r
- relPath = System.Web.HttpUtility.UrlDecode(relPath); // デコードする\r
- relPath = relPath.Replace('/', System.IO.Path.DirectorySeparatorChar); // 区切り文字が\ではなく/なので置換する\r
- #endregion\r
- sw.WriteLine("; 使用するSkinのフォルダ名。");\r
- sw.WriteLine("; 例えば System\\Default\\Graphics\\... などの場合は、SkinPath=.\\Default\\ を指定します。");\r
- sw.WriteLine("; Skin folder path.");\r
- sw.WriteLine("; e.g. System\\Default\\Graphics\\... -> Set SkinPath=.\\Default\\");\r
- sw.WriteLine("SkinPath={0}", relPath);\r
- sw.WriteLine();\r
- sw.WriteLine("; box.defが指定するSkinに自動で切り替えるかどうか (0=切り替えない、1=切り替える)");\r
- sw.WriteLine("; Automatically change skin specified in box.def. (0=No 1=Yes)");\r
- sw.WriteLine("SkinChangeByBoxDef={0}", this.bUseBoxDefSkin ? 1 : 0);\r
- sw.WriteLine();\r
- #endregion\r
- #region [ Window関連 ]\r
- sw.WriteLine("; 画面モード(0:ウィンドウ, 1:全画面)");\r
- sw.WriteLine("; Screen mode. (0:Window, 1:Fullscreen)");\r
- sw.WriteLine("FullScreen={0}", this.b全画面モード ? 1 : 0);\r
- sw.WriteLine();\r
- sw.WriteLine("; ウインドウモード時の画面幅"); // #23510 2010.10.31 yyagi add\r
- sw.WriteLine("; A width size in the window mode."); //\r
- sw.WriteLine("WindowWidth={0}", this.nウインドウwidth); //\r
- sw.WriteLine(); //\r
- sw.WriteLine("; ウインドウモード時の画面高さ"); //\r
- sw.WriteLine("; A height size in the window mode."); //\r
- sw.WriteLine("WindowHeight={0}", this.nウインドウheight); //\r
- sw.WriteLine(); //\r
- sw.WriteLine("; ウィンドウモード時の位置X"); // #30675 2013.02.04 ikanick add\r
- sw.WriteLine("; X position in the window mode."); //\r
- sw.WriteLine("WindowX={0}", this.n初期ウィンドウ開始位置X); //\r
- sw.WriteLine(); //\r
- sw.WriteLine("; ウィンドウモード時の位置Y"); //\r
- sw.WriteLine("; Y position in the window mode."); //\r
- sw.WriteLine("WindowY={0}", this.n初期ウィンドウ開始位置Y); //\r
- sw.WriteLine(); //\r
-\r
- sw.WriteLine("; ウインドウをダブルクリックした時にフルスクリーンに移行するか(0:移行しない,1:移行する)"); // #26752 2011.11.27 yyagi\r
- sw.WriteLine("; Whether double click to go full screen mode or not.(0:No, 1:Yes)"); //\r
- sw.WriteLine("DoubleClickFullScreen={0}", this.bIsAllowedDoubleClickFullscreen ? 1 : 0); //\r
- sw.WriteLine(); //\r
- sw.WriteLine("; ALT+SPACEのメニュー表示を抑制するかどうか(0:抑制する 1:抑制しない)"); // #28200 2012.5.1 yyagi\r
- sw.WriteLine("; Whether ALT+SPACE menu would be masked or not.(0=masked 1=not masked)"); //\r
- sw.WriteLine("EnableSystemMenu={0}", this.bIsEnabledSystemMenu ? 1 : 0); //\r
- sw.WriteLine(); //\r
- sw.WriteLine("; 非フォーカス時のsleep値[ms]"); // #23568 2011.11.04 ikanick add\r
- sw.WriteLine("; A sleep time[ms] while the window is inactive."); //\r
- sw.WriteLine("BackSleep={0}", this.n非フォーカス時スリープms); // そのまま引用(苦笑)\r
- sw.WriteLine(); //\r
- #endregion\r
- #region [ フレーム処理関連(VSync, フレーム毎のsleep) ]\r
- sw.WriteLine("; 垂直帰線同期(0:OFF,1:ON)");\r
- sw.WriteLine("VSyncWait={0}", this.b垂直帰線待ちを行う ? 1 : 0);\r
- sw.WriteLine();\r
- sw.WriteLine("; フレーム毎のsleep値[ms] (-1でスリープ無し, 0以上で毎フレームスリープ。動画キャプチャ等で活用下さい)"); // #xxxxx 2011.11.27 yyagi add\r
- sw.WriteLine("; A sleep time[ms] per frame."); //\r
- sw.WriteLine("SleepTimePerFrame={0}", this.nフレーム毎スリープms); //\r
- sw.WriteLine(); //\r
- #endregion\r
- #region [ WASAPI/ASIO関連 ]\r
- sw.WriteLine("; サウンド出力方式(0=ACM(って今はまだDirectSoundですが), 1=ASIO, 2=WASAPI)");\r
- sw.WriteLine("; WASAPIはVista以降のOSで使用可能。推奨方式はWASAPI。");\r
- sw.WriteLine("; なお、WASAPIが使用不可ならASIOを、ASIOが使用不可ならACMを使用します。");\r
- sw.WriteLine("; Sound device type(0=ACM, 1=ASIO, 2=WASAPI)");\r
- sw.WriteLine("; WASAPI can use on Vista or later OSs.");\r
- sw.WriteLine("; If WASAPI is not available, DTXMania try to use ASIO. If ASIO can't be used, ACM is used.");\r
- sw.WriteLine("SoundDeviceType={0}", (int)this.nSoundDeviceType);\r
- sw.WriteLine();\r
-\r
- sw.WriteLine("; WASAPI使用時のサウンドバッファサイズ");\r
- sw.WriteLine("; (0=デバイスに設定可能な最小値を自動設定, 1~9999=バッファサイズ(単位:ms)の手動指定");\r
- sw.WriteLine("; WASAPI Sound Buffer Size.");\r
- sw.WriteLine("; (0=set minimum buffer size automaticcaly, 1-9999=specify the buffer size(ms) by yourself)");\r
- sw.WriteLine("WASAPIBufferSizeMs={0}", (int)this.nWASAPIBufferSizeMs);\r
- sw.WriteLine();\r
-\r
- sw.WriteLine("; ASIO使用時のサウンドデバイス");\r
- sw.WriteLine("; 存在しないデバイスを指定すると、DTXManiaが起動しないことがあります。");\r
- sw.WriteLine("; Sound device used by ASIO.");\r
- sw.WriteLine("; Don't specify unconnected device, as the DTXMania may not bootup.");\r
- string[] asiodev = CEnumerateAllAsioDevices.GetAllASIODevices();\r
- for (int i = 0; i < asiodev.Length; i++)\r
- {\r
- sw.WriteLine("; {0}: {1}", i, asiodev[i]);\r
- }\r
- sw.WriteLine("ASIODevice={0}", (int)this.nASIODevice);\r
- sw.WriteLine();\r
-\r
- //sw.WriteLine( "; ASIO使用時のサウンドバッファサイズ" );\r
- //sw.WriteLine( "; (0=デバイスに設定されている値を使用, 1~9999=バッファサイズ(単位:ms)の手動指定" );\r
- //sw.WriteLine( "; ASIO Sound Buffer Size." );\r
- //sw.WriteLine( "; (0=Use the value specified to the device, 1-9999=specify the buffer size(ms) by yourself)" );\r
- //sw.WriteLine( "ASIOBufferSizeMs={0}", (int) this.nASIOBufferSizeMs );\r
- //sw.WriteLine();\r
-\r
- //sw.WriteLine( "; Bass.Mixの制御を動的に行うか否か。" );\r
- //sw.WriteLine( "; ONにすると、ギター曲などチップ音の多い曲も再生できますが、画面が少しがたつきます。" );\r
- //sw.WriteLine( "; (0=行わない, 1=行う)" );\r
- //sw.WriteLine( "DynamicBassMixerManagement={0}", this.bDynamicBassMixerManagement ? 1 : 0 );\r
- //sw.WriteLine();\r
-\r
- sw.WriteLine("; WASAPI/ASIO時に使用する演奏タイマーの種類");\r
- sw.WriteLine("; Playback timer used for WASAPI/ASIO");\r
- sw.WriteLine("; (0=FDK Timer, 1=System Timer)");\r
- sw.WriteLine("SoundTimerType={0}", this.bUseOSTimer ? 1 : 0);\r
- sw.WriteLine();\r
-\r
- sw.WriteLine("; 全体ボリュームの設定");\r
- sw.WriteLine("; (0=無音 ~ 100=最大。WASAPI/ASIO時のみ有効)");\r
- sw.WriteLine("; Master volume settings");\r
- sw.WriteLine("; (0=Silent - 100=Max)");\r
- sw.WriteLine("MasterVolume={0}", this.nMasterVolume);\r
- sw.WriteLine();\r
-\r
- #endregion\r
- #region [ ギター/ベース/ドラム 有効/無効 ]\r
- sw.WriteLine("; ギター/ベース有効(0:OFF,1:ON)");\r
- sw.WriteLine("; Enable Guitar/Bass or not.(0:OFF,1:ON)");\r
- sw.WriteLine("Guitar={0}", this.bGuitar有効 ? 1 : 0);\r
- sw.WriteLine();\r
- sw.WriteLine("; ドラム有効(0:OFF,1:ON)");\r
- sw.WriteLine("; Enable Drums or not.(0:OFF,1:ON)");\r
- sw.WriteLine("Drums={0}", this.bDrums有効 ? 1 : 0);\r
- sw.WriteLine();\r
- #endregion\r
- sw.WriteLine("; 背景画像の半透明割合(0:不透明~255:透明)");\r
- sw.WriteLine("; Transparency for background image in playing screen.(0:no tranaparent - 255:transparent)");\r
- sw.WriteLine("BGAlpha={0}", this.nBGAlpha);\r
- sw.WriteLine();\r
- sw.WriteLine("; Missヒット時のゲージ減少割合(0:少, 1:普通, 2:大)");\r
- sw.WriteLine("DamageLevel={0}", (int)this.eダメージレベル);\r
- sw.WriteLine();\r
- sw.WriteLine("; ゲージゼロでSTAGE FAILED (0:OFF, 1:ON)");\r
- sw.WriteLine("StageFailed={0}", this.bSTAGEFAILED有効 ? 1 : 0);\r
- sw.WriteLine();\r
- #region [ 打ち分け関連 ]\r
- sw.WriteLine("; LC/HHC/HHO 打ち分けモード (0:LC|HHC|HHO, 1:LC&(HHC|HHO), 2:LC|(HHC&HHO), 3:LC&HHC&HHO)");\r
- sw.WriteLine("; LC/HHC/HHO Grouping (0:LC|HHC|HHO, 1:LC&(HHC|HHO), 2:LC|(HHC&HHO), 3:LC&HHC&HHO)");\r
- sw.WriteLine("HHGroup={0}", (int)this.eHHGroup);\r
- sw.WriteLine();\r
- sw.WriteLine("; LT/FT 打ち分けモード (0:LT|FT, 1:LT&FT)");\r
- sw.WriteLine("; LT/FT Grouping (0:LT|FT, 1:LT&FT)");\r
- sw.WriteLine("FTGroup={0}", (int)this.eFTGroup);\r
- sw.WriteLine();\r
- sw.WriteLine("; CY/RD 打ち分けモード (0:CY|RD, 1:CY&RD)");\r
- sw.WriteLine("; CY/RD Grouping (0:CY|RD, 1:CY&RD)");\r
- sw.WriteLine("CYGroup={0}", (int)this.eCYGroup);\r
- sw.WriteLine();\r
- sw.WriteLine("; HP/BD 打ち分けモード (0:HP|BD, 1:HP&BD)"); // #27029 2012.1.4 from\r
- sw.WriteLine("; HP/BD Grouping (0:HP|BD, 1:HP&BD)"); //\r
- sw.WriteLine("BDGroup={0}", (int)this.eBDGroup); // \r
- sw.WriteLine(); //\r
- sw.WriteLine("; 打ち分け時の再生音の優先順位(HHGroup)(0:Chip>Pad, 1:Pad>Chip)");\r
- sw.WriteLine("; Grouping sound priority(HHGroup)(0:Chip>Pad, 1:Pad>Chip)");\r
- sw.WriteLine("HitSoundPriorityHH={0}", (int)this.eHitSoundPriorityHH);\r
- sw.WriteLine();\r
- sw.WriteLine("; 打ち分け時の再生音の優先順位(FTGroup)(0:Chip>Pad, 1:Pad>Chip)");\r
- sw.WriteLine("; Grouping sound priority(FTGroup)(0:Chip>Pad, 1:Pad>Chip)");\r
- sw.WriteLine("HitSoundPriorityFT={0}", (int)this.eHitSoundPriorityFT);\r
- sw.WriteLine();\r
- sw.WriteLine("; 打ち分け時の再生音の優先順位(CYGroup)(0:Chip>Pad, 1:Pad>Chip)");\r
- sw.WriteLine("; Grouping sound priority(CYGroup)(0:Chip>Pad, 1:Pad>Chip)");\r
- sw.WriteLine("HitSoundPriorityCY={0}", (int)this.eHitSoundPriorityCY);\r
- sw.WriteLine();\r
- sw.WriteLine("; シンバルフリーモード(0:OFF, 1:ON)");\r
- sw.WriteLine("; Grouping CY and LC (0:OFF, 1:ON)");\r
- sw.WriteLine("CymbalFree={0}", this.bシンバルフリー ? 1 : 0);\r
- sw.WriteLine();\r
- #endregion\r
- #region [ AVI/BGA ]\r
- sw.WriteLine("; AVIの表示(0:OFF, 1:ON)");\r
- sw.WriteLine("AVI={0}", this.bAVI有効 ? 1 : 0);\r
- sw.WriteLine();\r
- sw.WriteLine("; 旧サイズのAVI表示を強制的に全画面化する(0:OFF, 1:ON)");\r
- sw.WriteLine("; Forcely show BGA-sized movie as Fullscreen.");\r
- sw.WriteLine("ForceAVIFullscreen={0}", this.bForceAVIFullscreen ? 1 : 0);\r
- sw.WriteLine();\r
- sw.WriteLine("; BGAの表示(0:OFF, 1:ON)");\r
- sw.WriteLine("BGA={0}", this.bBGA有効 ? 1 : 0);\r
- sw.WriteLine();\r
- #endregion\r
- #region [ フィルイン ]\r
- sw.WriteLine("; フィルイン効果(0:OFF, 1:ON)");\r
- sw.WriteLine("FillInEffect={0}", this.bフィルイン有効 ? 1 : 0);\r
- sw.WriteLine();\r
- sw.WriteLine("; フィルイン達成時の歓声の再生(0:OFF, 1:ON)");\r
- sw.WriteLine("AudienceSound={0}", this.b歓声を発声する ? 1 : 0);\r
- sw.WriteLine();\r
- #endregion\r
- #region [ プレビュー音 ]\r
- sw.WriteLine("; 曲選択からプレビュー音の再生までのウェイト[ms]");\r
- sw.WriteLine("PreviewSoundWait={0}", this.n曲が選択されてからプレビュー音が鳴るまでのウェイトms);\r
- sw.WriteLine();\r
- sw.WriteLine("; 曲選択からプレビュー画像表示までのウェイト[ms]");\r
- sw.WriteLine("PreviewImageWait={0}", this.n曲が選択されてからプレビュー画像が表示開始されるまでのウェイトms);\r
- sw.WriteLine();\r
- #endregion\r
- sw.WriteLine("; Waveの再生位置自動補正(0:OFF, 1:ON)");\r
- sw.WriteLine("AdjustWaves={0}", this.bWave再生位置自動調整機能有効 ? 1 : 0);\r
- sw.WriteLine();\r
- #region [ BGM/ドラムヒット音の再生 ]\r
- sw.WriteLine("; BGM の再生(0:OFF, 1:ON)");\r
- sw.WriteLine("BGMSound={0}", this.bBGM音を発声する ? 1 : 0);\r
- sw.WriteLine();\r
- sw.WriteLine("; ドラム打音の再生(0:OFF, 1:ON)");\r
- sw.WriteLine("HitSound={0}", this.bドラム打音を発声する ? 1 : 0);\r
- sw.WriteLine();\r
- #endregion\r
- sw.WriteLine("; 演奏記録(~.score.ini)の出力 (0:OFF, 1:ON)");\r
- sw.WriteLine("SaveScoreIni={0}", this.bScoreIniを出力する ? 1 : 0);\r
- sw.WriteLine();\r
- sw.WriteLine("; RANDOM SELECT で子BOXを検索対象に含める (0:OFF, 1:ON)");\r
- sw.WriteLine("RandomFromSubBox={0}", this.bランダムセレクトで子BOXを検索対象とする ? 1 : 0);\r
- sw.WriteLine();\r
- #region [ モニターサウンド(ヒット音の再生音量アップ) ]\r
- sw.WriteLine("; ドラム演奏時にドラム音を強調する (0:OFF, 1:ON)");\r
- sw.WriteLine("SoundMonitorDrums={0}", this.b演奏音を強調する.Drums ? 1 : 0);\r
- sw.WriteLine();\r
- sw.WriteLine("; ギター演奏時にギター音を強調する (0:OFF, 1:ON)");\r
- sw.WriteLine("SoundMonitorGuitar={0}", this.b演奏音を強調する.Guitar ? 1 : 0);\r
- sw.WriteLine();\r
- sw.WriteLine("; ベース演奏時にベース音を強調する (0:OFF, 1:ON)");\r
- sw.WriteLine("SoundMonitorBass={0}", this.b演奏音を強調する.Bass ? 1 : 0);\r
- sw.WriteLine();\r
- #endregion\r
- #region [ コンボ表示数 ]\r
- sw.WriteLine("; ドラムの表示可能な最小コンボ数(1~99999)");\r
- sw.WriteLine("MinComboDrums={0}", this.n表示可能な最小コンボ数.Drums);\r
- sw.WriteLine();\r
- sw.WriteLine("; ギターの表示可能な最小コンボ数(1~99999)");\r
- sw.WriteLine("MinComboGuitar={0}", this.n表示可能な最小コンボ数.Guitar);\r
- sw.WriteLine();\r
- sw.WriteLine("; ベースの表示可能な最小コンボ数(1~99999)");\r
- sw.WriteLine("MinComboBass={0}", this.n表示可能な最小コンボ数.Bass);\r
- sw.WriteLine();\r
- #endregion\r
- sw.WriteLine("; 演奏情報を表示する (0:OFF, 1:ON)");\r
- sw.WriteLine("; Showing playing info on the playing screen. (0:OFF, 1:ON)");\r
- sw.WriteLine("ShowDebugStatus={0}", this.b演奏情報を表示する ? 1 : 0);\r
- sw.WriteLine();\r
- #region [ 選曲リストのフォント ]\r
- sw.WriteLine("; 選曲リストのフォント名");\r
- sw.WriteLine("; Font name for select song item.");\r
- sw.WriteLine("SelectListFontName={0}", this.str選曲リストフォント);\r
- sw.WriteLine();\r
- sw.WriteLine("; 選曲リストのフォントのサイズ[dot]");\r
- sw.WriteLine("; Font size[dot] for select song item.");\r
- sw.WriteLine("SelectListFontSize={0}", this.n選曲リストフォントのサイズdot);\r
- sw.WriteLine();\r
- sw.WriteLine("; 選曲リストのフォントを斜体にする (0:OFF, 1:ON)");\r
- sw.WriteLine("; Using italic font style select song list. (0:OFF, 1:ON)");\r
- sw.WriteLine("SelectListFontItalic={0}", this.b選曲リストフォントを斜体にする ? 1 : 0);\r
- sw.WriteLine();\r
- sw.WriteLine("; 選曲リストのフォントを太字にする (0:OFF, 1:ON)");\r
- sw.WriteLine("; Using bold font style select song list. (0:OFF, 1:ON)");\r
- sw.WriteLine("SelectListFontBold={0}", this.b選曲リストフォントを太字にする ? 1 : 0);\r
- sw.WriteLine();\r
- #endregion\r
- sw.WriteLine("; 打音の音量(0~100%)");\r
- sw.WriteLine("; Sound volume (you're playing) (0-100%)");\r
- sw.WriteLine("ChipVolume={0}", this.n手動再生音量);\r
- sw.WriteLine();\r
- sw.WriteLine("; 自動再生音の音量(0~100%)");\r
- sw.WriteLine("; Sound volume (auto playing) (0-100%)");\r
- sw.WriteLine("AutoChipVolume={0}", this.n自動再生音量);\r
- sw.WriteLine();\r
- sw.WriteLine("; ストイックモード(0:OFF, 1:ON)");\r
- sw.WriteLine("; Stoic mode. (0:OFF, 1:ON)");\r
- sw.WriteLine("StoicMode={0}", this.bストイックモード ? 1 : 0);\r
- sw.WriteLine();\r
- sw.WriteLine("; バッファ入力モード(0:OFF, 1:ON)");\r
- sw.WriteLine("; Using Buffered input (0:OFF, 1:ON)");\r
- sw.WriteLine("BufferedInput={0}", this.bバッファ入力を行う ? 1 : 0);\r
- sw.WriteLine();\r
- sw.WriteLine("; レーン毎の最大同時発音数(1~8)");\r
- sw.WriteLine("; Number of polyphonic sounds per lane. (1-8)");\r
- sw.WriteLine("PolyphonicSounds={0}", this.nPoliphonicSounds);\r
- sw.WriteLine();\r
- sw.WriteLine("; 判定ズレ時間表示(0:OFF, 1:ON, 2=GREAT-POOR)"); // #25370 2011.6.3 yyagi\r
- sw.WriteLine("; Whether displaying the lag times from the just timing or not."); //\r
- sw.WriteLine("ShowLagTime={0}", this.nShowLagType); //\r
- sw.WriteLine();\r
- sw.WriteLine("; 判定・コンボ表示優先度(0:チップの下, 1:チップの上)");\r
- sw.WriteLine("; judgement/combo display priority (0:under chips, 1:over chips)");\r
- sw.WriteLine("JudgeDispPriority={0}", (int)this.e判定表示優先度);\r
- sw.WriteLine();\r
-\r
- sw.WriteLine("; ドラムのレーン表示位置(0:左側, 1:中央)"); // #2\r
- sw.WriteLine("; drums lane position (0:LEFT, 1:CENTER)");\r
- sw.WriteLine("DrumsLanePosition={0}", (int)this.eドラムレーン表示位置);\r
- sw.WriteLine();\r
-\r
-\r
- sw.WriteLine("; リザルト画像自動保存機能(0:OFF, 1:ON)"); // #25399 2011.6.9 yyagi\r
- sw.WriteLine("; Set \"1\" if you'd like to save result screen image automatically"); //\r
- sw.WriteLine("; when you get hiscore/hiskill."); //\r
- sw.WriteLine("AutoResultCapture={0}", this.bIsAutoResultCapture ? 1 : 0); //\r
- sw.WriteLine();\r
- sw.WriteLine("; 再生速度変更を、ピッチ変更で行うかどうか(0:ピッチ変更, 1:タイムストレッチ"); // #23664 2013.2.24 yyagi\r
- sw.WriteLine("; (WASAPI/ASIO使用時のみ有効) ");\r
- sw.WriteLine("; Set \"0\" if you'd like to use pitch shift with PlaySpeed."); //\r
- sw.WriteLine("; Set \"1\" for time stretch."); //\r
- sw.WriteLine("; (Only available when you're using using WASAPI or ASIO)"); //\r
- sw.WriteLine("TimeStretch={0}", this.bTimeStretch ? 1 : 0); //\r
- sw.WriteLine();\r
- //sw.WriteLine( "; WASAPI/ASIO使用時に、MP3をストリーム再生するかどうか(0:ストリーム再生する, 1:しない)" ); //\r
- //sw.WriteLine( "; (mp3のシークがおかしくなる場合は、これを1にしてください) " ); //\r
- //sw.WriteLine( "; Set \"0\" if you'd like to use mp3 streaming playback on WASAPI/ASIO." ); //\r
- //sw.WriteLine( "; Set \"1\" not to use streaming playback for mp3." ); //\r
- //sw.WriteLine( "; (If you feel illegal seek with mp3, please set it to 1.)" ); //\r
- //sw.WriteLine( "NoMP3Streaming={0}", this.bNoMP3Streaming ? 1 : 0 ); //\r
- //sw.WriteLine();\r
- #region [ Adjust ]\r
- sw.WriteLine("; 判定タイミング調整(ドラム, ギター, ベース)(-99~99)[ms]"); // #23580 2011.1.3 yyagi\r
- sw.WriteLine("; Revision value to adjust judgement timing for the drums, guitar and bass."); //\r
- sw.WriteLine("InputAdjustTimeDrums={0}", this.nInputAdjustTimeMs.Drums); //\r
- sw.WriteLine("InputAdjustTimeGuitar={0}", this.nInputAdjustTimeMs.Guitar); //\r
- sw.WriteLine("InputAdjustTimeBass={0}", this.nInputAdjustTimeMs.Bass); //\r
- sw.WriteLine();\r
-\r
- sw.WriteLine("; 判定ラインの表示位置調整(x0.5相当;ドラム, ギター, ベース)[px]"); // #31602 2013.6.23 yyagi 判定ラインの表示位置オフセット\r
- sw.WriteLine("; Offset value to adjust displaying judgement line for the drums, guitar and bass."); //\r
- sw.WriteLine("JudgeLinePosOffsetDrums={0}", (float)(this.nJudgeLinePosOffset.Drums / (this.n譜面スクロール速度.Drums + 1))); //\r
- sw.WriteLine("JudgeLinePosOffsetGuitar={0}", (float)(this.nJudgeLinePosOffset.Guitar / (this.n譜面スクロール速度.Guitar + 1))); //\r
- sw.WriteLine("JudgeLinePosOffsetBass={0}", (float)(this.nJudgeLinePosOffset.Bass / (this.n譜面スクロール速度.Bass + 1))); //\r
-\r
- sw.WriteLine("; 判定ラインの表示位置(ギター, ベース)"); // #33891 2014.6.26 yyagi\r
- sw.WriteLine("; 0=Normal, 1=Lower");\r
- sw.WriteLine("; Position of the Judgement line and RGB button; Vseries compatible(1) or not(0)."); //\r
- sw.WriteLine("JudgeLinePosModeGuitar={0}", (int)this.e判定位置.Guitar); //\r
- sw.WriteLine("JudgeLinePosModeBass={0} ", (int)this.e判定位置.Bass); //\r
-\r
- sw.WriteLine();\r
- #endregion\r
- #region [ VelocityMin ]\r
- sw.WriteLine("; LC, HH, SD,...の入力切り捨て下限Velocity値(0~127)"); // #23857 2011.1.31 yyagi\r
- sw.WriteLine("; Minimum velocity value for LC, HH, SD, ... to accept."); //\r
- sw.WriteLine("LCVelocityMin={0}", this.nVelocityMin.LC); //\r
- sw.WriteLine("HHVelocityMin={0}", this.nVelocityMin.HH); //\r
- // sw.WriteLine("; ハイハット以外の入力切り捨て下限Velocity値(0~127)"); // #23857 2010.12.12 yyagi\r
- // sw.WriteLine("; Minimum velocity value to accept. (except HiHat)"); //\r
- // sw.WriteLine("VelocityMin={0}", this.n切り捨て下限Velocity); //\r
- // sw.WriteLine(); //\r
- sw.WriteLine("SDVelocityMin={0}", this.nVelocityMin.SD); //\r
- sw.WriteLine("BDVelocityMin={0}", this.nVelocityMin.BD); //\r
- sw.WriteLine("HTVelocityMin={0}", this.nVelocityMin.HT); //\r
- sw.WriteLine("LTVelocityMin={0}", this.nVelocityMin.LT); //\r
- sw.WriteLine("FTVelocityMin={0}", this.nVelocityMin.FT); //\r
- sw.WriteLine("CYVelocityMin={0}", this.nVelocityMin.CY); //\r
- sw.WriteLine("RDVelocityMin={0}", this.nVelocityMin.RD); //\r
- sw.WriteLine(); //\r
- #endregion\r
-\r
- sw.WriteLine("; 曲の読み込み速度を変更(0:低速, 1:高速)"); // #36046 2016.2.21 add ikanick\r
- sw.WriteLine("; Load sounds speed (0:Low, 1:High)");\r
- sw.WriteLine("Loadsoundspeed={0}", this.b曲読み込みを高速化する ? 1 : 0);\r
- sw.WriteLine();\r
-\r
- sw.WriteLine(";-------------------");\r
- #endregion\r
- #region [ Log ]\r
- sw.WriteLine("[Log]");\r
- sw.WriteLine();\r
- sw.WriteLine("; Log出力(0:OFF, 1:ON)");\r
- sw.WriteLine("OutputLog={0}", this.bログ出力 ? 1 : 0);\r
- sw.WriteLine();\r
- sw.WriteLine("; 曲データ検索に関するLog出力(0:OFF, 1:ON)");\r
- sw.WriteLine("TraceSongSearch={0}", this.bLog曲検索ログ出力 ? 1 : 0);\r
- sw.WriteLine();\r
- sw.WriteLine("; 画像やサウンドの作成・解放に関するLog出力(0:OFF, 1:ON)");\r
- sw.WriteLine("TraceCreatedDisposed={0}", this.bLog作成解放ログ出力 ? 1 : 0);\r
- sw.WriteLine();\r
- sw.WriteLine("; DTX読み込み詳細に関するLog出力(0:OFF, 1:ON)");\r
- sw.WriteLine("TraceDTXDetails={0}", this.bLogDTX詳細ログ出力 ? 1 : 0);\r
- sw.WriteLine();\r
- sw.WriteLine(";-------------------");\r
- #endregion\r
-\r
- #region [ PlayOption ]\r
- sw.WriteLine("[PlayOption]");\r
- sw.WriteLine();\r
- sw.WriteLine("; DARKモード(0:OFF, 1:HALF, 2:FULL)");\r
- sw.WriteLine("Dark={0}", (int)this.eDark);\r
- sw.WriteLine();\r
- #region [ SUDDEN ]\r
- sw.WriteLine("; ドラムSUDDENモード(0:OFF, 1:ON)");\r
- sw.WriteLine("DrumsSudden={0}", this.bSudden.Drums ? 1 : 0);\r
- sw.WriteLine();\r
- sw.WriteLine("; ギターSUDDENモード(0:OFF, 1:ON)");\r
- sw.WriteLine("GuitarSudden={0}", this.bSudden.Guitar ? 1 : 0);\r
- sw.WriteLine();\r
- sw.WriteLine("; ベースSUDDENモード(0:OFF, 1:ON)");\r
- sw.WriteLine("BassSudden={0}", this.bSudden.Bass ? 1 : 0);\r
- sw.WriteLine();\r
- #endregion\r
- #region [ HIDDEN ]\r
- sw.WriteLine("; ドラムHIDDENモード(0:OFF, 1:ON)");\r
- sw.WriteLine("DrumsHidden={0}", this.bHidden.Drums ? 1 : 0);\r
- sw.WriteLine();\r
- sw.WriteLine("; ギターHIDDENモード(0:OFF, 1:ON)");\r
- sw.WriteLine("GuitarHidden={0}", this.bHidden.Guitar ? 1 : 0);\r
- sw.WriteLine();\r
- sw.WriteLine("; ベースHIDDENモード(0:OFF, 1:ON)");\r
- sw.WriteLine("BassHidden={0}", this.bHidden.Bass ? 1 : 0);\r
- sw.WriteLine();\r
- #endregion\r
- #region [ Invisible ]\r
- sw.WriteLine("; ドラムチップ非表示モード (0:OFF, 1=SEMI, 2:FULL)");\r
- sw.WriteLine("; Drums chip invisible mode");\r
- sw.WriteLine("DrumsInvisible={0}", (int)this.eInvisible.Drums);\r
- sw.WriteLine();\r
- sw.WriteLine("; ギターチップ非表示モード (0:OFF, 1=SEMI, 2:FULL)");\r
- sw.WriteLine("; Guitar chip invisible mode");\r
- sw.WriteLine("GuitarInvisible={0}", (int)this.eInvisible.Guitar);\r
- sw.WriteLine();\r
- sw.WriteLine("; ベースチップ非表示モード (0:OFF, 1=SEMI, 2:FULL)");\r
- sw.WriteLine("; Bbass chip invisible mode");\r
- sw.WriteLine("BassInvisible={0}", (int)this.eInvisible.Bass);\r
- sw.WriteLine();\r
- //sw.WriteLine( "; Semi-InvisibleでMissった時のチップ再表示時間(ms)" );\r
- //sw.WriteLine( "InvisibleDisplayTimeMs={0}", (int) this.nDisplayTimesMs );\r
- //sw.WriteLine();\r
- //sw.WriteLine( "; Semi-InvisibleでMissってチップ再表示時間終了後のフェードアウト時間(ms)" );\r
- //sw.WriteLine( "InvisibleFadeoutTimeMs={0}", (int) this.nFadeoutTimeMs );\r
- //sw.WriteLine();\r
- #endregion\r
- sw.WriteLine("; ドラムREVERSEモード(0:OFF, 1:ON)");\r
- sw.WriteLine("DrumsReverse={0}", this.bReverse.Drums ? 1 : 0);\r
- sw.WriteLine();\r
- sw.WriteLine("; ギターREVERSEモード(0:OFF, 1:ON)");\r
- sw.WriteLine("GuitarReverse={0}", this.bReverse.Guitar ? 1 : 0);\r
- sw.WriteLine();\r
- sw.WriteLine("; ベースREVERSEモード(0:OFF, 1:ON)");\r
- sw.WriteLine("BassReverse={0}", this.bReverse.Bass ? 1 : 0);\r
- sw.WriteLine();\r
- sw.WriteLine("; ギターRANDOMモード(0:OFF, 1:Random, 2:SuperRandom, 3:HyperRandom)");\r
- sw.WriteLine("GuitarRandom={0}", (int)this.eRandom.Guitar);\r
- sw.WriteLine();\r
- sw.WriteLine("; ベースRANDOMモード(0:OFF, 1:Random, 2:SuperRandom, 3:HyperRandom)");\r
- sw.WriteLine("BassRandom={0}", (int)this.eRandom.Bass);\r
- sw.WriteLine();\r
- sw.WriteLine("; ギターLIGHTモード(0:OFF, 1:ON)");\r
- sw.WriteLine("GuitarLight={0}", this.bLight.Guitar ? 1 : 0);\r
- sw.WriteLine();\r
- sw.WriteLine("; ベースLIGHTモード(0:OFF, 1:ON)");\r
- sw.WriteLine("BassLight={0}", this.bLight.Bass ? 1 : 0);\r
- sw.WriteLine();\r
- sw.WriteLine("; ギターLEFTモード(0:OFF, 1:ON)");\r
- sw.WriteLine("GuitarLeft={0}", this.bLeft.Guitar ? 1 : 0);\r
- sw.WriteLine();\r
- sw.WriteLine("; ベースLEFTモード(0:OFF, 1:ON)");\r
- sw.WriteLine("BassLeft={0}", this.bLeft.Bass ? 1 : 0);\r
- sw.WriteLine();\r
- sw.WriteLine("; RISKYモード(0:OFF, 1-10)"); // #23559 2011.6.23 yyagi\r
- sw.WriteLine("; RISKY mode. 0=OFF, 1-10 is the times of misses to be Failed."); //\r
- sw.WriteLine("Risky={0}", this.nRisky); //\r
- sw.WriteLine();\r
- sw.WriteLine("; TIGHTモード(0:OFF, 1:ON)"); // #29500 2012.9.11 kairera0467\r
- sw.WriteLine("; TIGHT mode. 0=OFF, 1=ON ");\r
- sw.WriteLine("DrumsTight={0}", this.bTight ? 1 : 0);\r
- sw.WriteLine();\r
- sw.WriteLine("; ドラム判定文字表示位置(0:表示OFF, 1:レーン上, 2:判定ライン上)");\r
- sw.WriteLine("; Drums Judgement display position (0:OFF, 1:on the lane, 2:over the judge line)");\r
- sw.WriteLine("DrumsPosition={0}", (int)this.判定文字表示位置.Drums);\r
- sw.WriteLine();\r
- sw.WriteLine("; ギター判定文字表示位置(0:表示IFF, 1:レーン上, 2:判定ライン上, 3:コンボ下)");\r
- sw.WriteLine("; Guitar Judgement display position (0:OFF, 1:on the lane, 2:over the judge line, 3:under combo)");\r
- sw.WriteLine("GuitarPosition={0}", (int)this.判定文字表示位置.Guitar);\r
- sw.WriteLine();\r
- sw.WriteLine("; ベース判定文字表示位置(0:表示OFF, 1:レーン上, 2:判定ライン上, 3:コンボ下)");\r
- sw.WriteLine("; Bass Judgement display position (0:OFF, 1:on the lane, 2:over the judge line, 3:under combo)");\r
- sw.WriteLine("BassPosition={0}", (int)this.判定文字表示位置.Bass);\r
- sw.WriteLine();\r
- sw.WriteLine("; ドラム譜面スクロール速度(0:x0.5, 1:x1.0, 2:x1.5,…,1999:x1000.0)");\r
- sw.WriteLine("DrumsScrollSpeed={0}", this.n譜面スクロール速度.Drums);\r
- sw.WriteLine();\r
- sw.WriteLine("; ギター譜面スクロール速度(0:x0.5, 1:x1.0, 2:x1.5,…,1999:x1000.0)");\r
- sw.WriteLine("GuitarScrollSpeed={0}", this.n譜面スクロール速度.Guitar);\r
- sw.WriteLine();\r
- sw.WriteLine("; ベース譜面スクロール速度(0:x0.5, 1:x1.0, 2:x1.5,…,1999:x1000.0)");\r
- sw.WriteLine("BassScrollSpeed={0}", this.n譜面スクロール速度.Bass);\r
- sw.WriteLine();\r
- sw.WriteLine("; 演奏速度(5~40)(→x5/20~x40/20)");\r
- sw.WriteLine("PlaySpeed={0}", this.n演奏速度);\r
- sw.WriteLine();\r
- sw.WriteLine("; ドラムCOMBO文字表示位置(0:左, 1:中, 2:右, 3:OFF)");\r
- sw.WriteLine("ComboPosition={0}", (int)this.ドラムコンボ文字の表示位置);\r
- sw.WriteLine();\r
- //sw.WriteLine( "; 判定・コンボ表示優先度(0:チップの下, 1:チップの上)" );\r
- //sw.WriteLine( "JudgeDispPriorityDrums={0}" , (int) this.e判定表示優先度.Drums );\r
- //sw.WriteLine( "JudgeDispPriorityGuitar={0}", (int) this.e判定表示優先度.Guitar );\r
- //sw.WriteLine( "JudgeDispPriorityBass={0}" , (int) this.e判定表示優先度.Bass );\r
- //sw.WriteLine();\r
-\r
- // #24074 2011.01.23 add ikanick\r
- sw.WriteLine("; ドラムグラフ表示(0:OFF, 1:ON)");\r
- sw.WriteLine("Graph={0}", this.bGraph ? 1 : 0);\r
- sw.WriteLine();\r
-\r
- // #35411 2015.8.18 chnmr0 add\r
- sw.WriteLine("; AUTOゴースト種別 (0:PERFECT, 1:LAST_PLAY, 2:HI_SKILL, 3:HI_SCORE, 4:ONLINE)");\r
- sw.WriteLine("DrumAutoGhost={0}", (int)eAutoGhost.Drums);\r
- sw.WriteLine("GuitarAutoGhost={0}", (int)eAutoGhost.Guitar);\r
- sw.WriteLine("BassAutoGhost={0}", (int)eAutoGhost.Bass);\r
- sw.WriteLine();\r
- sw.WriteLine("; ターゲットゴースト種別 (0:NONE, 1:PERFECT, 2:LAST_PLAY, 3:HI_SKILL, 4:HI_SCORE, 5:ONLINE)");\r
- sw.WriteLine("DrumTargetGhost={0}", (int)eTargetGhost.Drums);\r
- sw.WriteLine("GuitarTargetGhost={0}", (int)eTargetGhost.Guitar);\r
- sw.WriteLine("BassTargetGhost={0}", (int)eTargetGhost.Bass);\r
- sw.WriteLine();\r
-\r
- sw.WriteLine(";-------------------");\r
- #endregion\r
-\r
- #region [ ViewerOption ]\r
- sw.WriteLine("[ViewerOption]");\r
- sw.WriteLine();\r
- sw.WriteLine("; Viewerモード時専用 ドラム譜面スクロール速度(0:x0.5, 1:x1.0, 2:x1.5,…,1999:x1000.0)");\r
- sw.WriteLine("; for viewer mode; Drums Scroll Speed");\r
- sw.WriteLine("ViewerDrumsScrollSpeed={0}", this.nViewerScrollSpeed.Drums);\r
- sw.WriteLine();\r
- sw.WriteLine("; Viewerモード時専用 ギター譜面スクロール速度(0:x0.5, 1:x1.0, 2:x1.5,…,1999:x1000.0)");\r
- sw.WriteLine("; for viewer mode; Guitar Scroll Speed");\r
- sw.WriteLine("ViewerGuitarScrollSpeed={0}", this.nViewerScrollSpeed.Guitar);\r
- sw.WriteLine();\r
- sw.WriteLine("; Viewerモード時専用 ベース譜面スクロール速度(0:x0.5, 1:x1.0, 2:x1.5,…,1999:x1000.0)");\r
- sw.WriteLine("; for viewer mode; Bass Scroll Speed");\r
- sw.WriteLine("ViewerBassScrollSpeed={0}", this.nViewerScrollSpeed.Bass);\r
- sw.WriteLine();\r
- sw.WriteLine("; Viewerモード時専用 垂直帰線同期(0:OFF,1:ON)");\r
- sw.WriteLine("; for viewer mode; Use whether Vertical Sync or not.");\r
- sw.WriteLine("ViewerVSyncWait={0}", this.bViewerVSyncWait ? 1 : 0);\r
- sw.WriteLine();\r
- sw.WriteLine("; Viewerモード時専用 演奏情報を表示する (0:OFF, 1:ON) ");\r
- sw.WriteLine("; for viewer mode;");\r
- sw.WriteLine("; Showing playing info on the playing screen. (0:OFF, 1:ON) ");\r
- sw.WriteLine("ViewerShowDebugStatus={0}", this.bViewerShowDebugStatus ? 1 : 0);\r
- sw.WriteLine();\r
- sw.WriteLine("; Viewerモード時専用 再生速度変更を、ピッチ変更で行うかどうか(0:ピッチ変更, 1:タイムストレッチ ");\r
- sw.WriteLine("; (WASAPI/ASIO使用時のみ有効) ");\r
- sw.WriteLine("; for viewer mode;");\r
- sw.WriteLine("; Set \"0\" if you'd like to use pitch shift with PlaySpeed. ");\r
- sw.WriteLine("; Set \"1\" for time stretch. ");\r
- sw.WriteLine("; (Only available when you're using using WASAPI or ASIO) ");\r
- sw.WriteLine("ViewerTimeStretch={0}", this.bViewerTimeStretch ? 1 : 0);\r
- sw.WriteLine();\r
- sw.WriteLine("; Viewerモード時専用 ギター/ベース有効(0:OFF,1:ON) ");\r
- sw.WriteLine("; for viewer mode;");\r
- sw.WriteLine("; Enable Guitar/Bass or not.(0:OFF,1:ON) ");\r
- sw.WriteLine("ViewerGuitar={0}", this.bViewerGuitar有効 ? 1 : 0);\r
- sw.WriteLine();\r
- sw.WriteLine("; Viewerモード時専用 ドラム有効(0:OFF,1:ON) ");\r
- sw.WriteLine("; for viewer mode;");\r
- sw.WriteLine("; Enable Drums or not.(0:OFF,1:ON) ");\r
- sw.WriteLine("ViewerDrums={0}", this.bViewerDrums有効 ? 1 : 0);\r
- sw.WriteLine();\r
-\r
- sw.WriteLine("; Viewerモード専用 ウインドウモード時の画面幅");\r
- sw.WriteLine("; A width size in the window mode, for viewer mode.");\r
- sw.WriteLine("ViewerWindowWidth={0}", this.nViewerウインドウwidth);\r
- sw.WriteLine();\r
- sw.WriteLine("; Viewerモード専用 ウインドウモード時の画面高さ");\r
- sw.WriteLine("; A height size in the window mode, for viewer mode.");\r
- sw.WriteLine("ViewerWindowHeight={0}", this.nViewerウインドウheight);\r
- sw.WriteLine();\r
- sw.WriteLine("; Viewerモード専用 ウィンドウモード時の位置X");\r
- sw.WriteLine("; X position in the window mode, for viewer mode.");\r
- sw.WriteLine("ViewerWindowX={0}", this.nViewer初期ウィンドウ開始位置X);\r
- sw.WriteLine();\r
- sw.WriteLine("; Viewerモード専用 ウィンドウモード時の位置Y");\r
- sw.WriteLine("; Y position in the window mode, for viewer mode.");\r
- sw.WriteLine("ViewerWindowY={0}", this.nViewer初期ウィンドウ開始位置Y);\r
- sw.WriteLine();\r
- sw.WriteLine(";-------------------");\r
- #endregion\r
-\r
- #region [ AutoPlay ]\r
- sw.WriteLine("[AutoPlay]");\r
- sw.WriteLine();\r
- sw.WriteLine("; 自動演奏(0:OFF, 1:ON)");\r
- sw.WriteLine();\r
- sw.WriteLine("; Drums");\r
- sw.WriteLine("LC={0}", this.bAutoPlay.LC ? 1 : 0);\r
- sw.WriteLine("HH={0}", this.bAutoPlay.HH ? 1 : 0);\r
- sw.WriteLine("SD={0}", this.bAutoPlay.SD ? 1 : 0);\r
- sw.WriteLine("BD={0}", this.bAutoPlay.BD ? 1 : 0);\r
- sw.WriteLine("HT={0}", this.bAutoPlay.HT ? 1 : 0);\r
- sw.WriteLine("LT={0}", this.bAutoPlay.LT ? 1 : 0);\r
- sw.WriteLine("FT={0}", this.bAutoPlay.FT ? 1 : 0);\r
- sw.WriteLine("CY={0}", this.bAutoPlay.CY ? 1 : 0);\r
- sw.WriteLine();\r
- sw.WriteLine("; Guitar");\r
- //sw.WriteLine( "Guitar={0}", this.bAutoPlay.Guitar ? 1 : 0 );\r
- sw.WriteLine("GuitarR={0}", this.bAutoPlay.GtR ? 1 : 0);\r
- sw.WriteLine("GuitarG={0}", this.bAutoPlay.GtG ? 1 : 0);\r
- sw.WriteLine("GuitarB={0}", this.bAutoPlay.GtB ? 1 : 0);\r
- sw.WriteLine("GuitarPick={0}", this.bAutoPlay.GtPick ? 1 : 0);\r
- sw.WriteLine("GuitarWailing={0}", this.bAutoPlay.GtW ? 1 : 0);\r
- sw.WriteLine();\r
- sw.WriteLine("; Bass");\r
- // sw.WriteLine( "Bass={0}", this.bAutoPlay.Bass ? 1 : 0 );\r
- sw.WriteLine("BassR={0}", this.bAutoPlay.BsR ? 1 : 0);\r
- sw.WriteLine("BassG={0}", this.bAutoPlay.BsG ? 1 : 0);\r
- sw.WriteLine("BassB={0}", this.bAutoPlay.BsB ? 1 : 0);\r
- sw.WriteLine("BassPick={0}", this.bAutoPlay.BsPick ? 1 : 0);\r
- sw.WriteLine("BassWailing={0}", this.bAutoPlay.BsW ? 1 : 0);\r
- sw.WriteLine();\r
- sw.WriteLine(";-------------------");\r
- #endregion\r
-\r
- #region [ HitRange ]\r
- sw.WriteLine("[HitRange]");\r
- sw.WriteLine();\r
- sw.WriteLine("; Perfect~Poor とみなされる範囲[ms]");\r
- sw.WriteLine("Perfect={0}", this.nヒット範囲ms.Perfect);\r
- sw.WriteLine("Great={0}", this.nヒット範囲ms.Great);\r
- sw.WriteLine("Good={0}", this.nヒット範囲ms.Good);\r
- sw.WriteLine("Poor={0}", this.nヒット範囲ms.Poor);\r
- sw.WriteLine();\r
- sw.WriteLine(";-------------------");\r
- #endregion\r
- #region [ GUID ]\r
- sw.WriteLine("[GUID]");\r
- sw.WriteLine();\r
- foreach (KeyValuePair<int, string> pair in this.dicJoystick)\r
- {\r
- sw.WriteLine("JoystickID={0},{1}", pair.Key, pair.Value);\r
- }\r
- #endregion\r
- #region [ DrumsKeyAssign ]\r
- sw.WriteLine();\r
- sw.WriteLine(";-------------------");\r
- sw.WriteLine("; キーアサイン");\r
- sw.WriteLine("; 項 目:Keyboard → 'K'+'0'+キーコード(10進数)");\r
- sw.WriteLine("; Mouse → 'N'+'0'+ボタン番号(0~7)");\r
- sw.WriteLine("; MIDI In → 'M'+デバイス番号1桁(0~9,A~Z)+ノート番号(10進数)");\r
- sw.WriteLine("; Joystick → 'J'+デバイス番号1桁(0~9,A~Z)+ 0 ...... X減少(左)ボタン");\r
- sw.WriteLine("; 1 ...... X増加(右)ボタン");\r
- sw.WriteLine("; 2 ...... Y減少(上)ボタン");\r
- sw.WriteLine("; 3 ...... Y増加(下)ボタン");\r
- sw.WriteLine("; 4 ...... Z減少(前)ボタン");\r
- sw.WriteLine("; 5 ...... Z増加(後)ボタン");\r
- sw.WriteLine("; 6~133.. ボタン1~128");\r
- sw.WriteLine("; これらの項目を 16 個まで指定可能(',' で区切って記述)。");\r
- sw.WriteLine(";");\r
- sw.WriteLine("; 表記例:HH=K044,M042,J16");\r
- sw.WriteLine("; → HiHat を Keyboard の 44 ('Z'), MidiIn#0 の 42, JoyPad#1 の 6(ボタン1) に割当て");\r
- sw.WriteLine(";");\r
- sw.WriteLine("; ※Joystick のデバイス番号とデバイスとの関係は [GUID] セクションに記してあるものが有効。");\r
- sw.WriteLine(";");\r
- sw.WriteLine();\r
- sw.WriteLine("[DrumsKeyAssign]");\r
- sw.WriteLine();\r
- sw.Write("HH=");\r
- this.tキーの書き出し(sw, this.KeyAssign.Drums.HH);\r
- sw.WriteLine();\r
- sw.Write("SD=");\r
- this.tキーの書き出し(sw, this.KeyAssign.Drums.SD);\r
- sw.WriteLine();\r
- sw.Write("BD=");\r
- this.tキーの書き出し(sw, this.KeyAssign.Drums.BD);\r
- sw.WriteLine();\r
- sw.Write("HT=");\r
- this.tキーの書き出し(sw, this.KeyAssign.Drums.HT);\r
- sw.WriteLine();\r
- sw.Write("LT=");\r
- this.tキーの書き出し(sw, this.KeyAssign.Drums.LT);\r
- sw.WriteLine();\r
- sw.Write("FT=");\r
- this.tキーの書き出し(sw, this.KeyAssign.Drums.FT);\r
- sw.WriteLine();\r
- sw.Write("CY=");\r
- this.tキーの書き出し(sw, this.KeyAssign.Drums.CY);\r
- sw.WriteLine();\r
- sw.Write("HO=");\r
- this.tキーの書き出し(sw, this.KeyAssign.Drums.HHO);\r
- sw.WriteLine();\r
- sw.Write("RD=");\r
- this.tキーの書き出し(sw, this.KeyAssign.Drums.RD);\r
- sw.WriteLine();\r
- sw.Write("LC=");\r
- this.tキーの書き出し(sw, this.KeyAssign.Drums.LC);\r
- sw.WriteLine();\r
- sw.Write("HP="); // #27029 2012.1.4 from\r
- this.tキーの書き出し(sw, this.KeyAssign.Drums.HP); //\r
- sw.WriteLine(); //\r
- sw.WriteLine();\r
- #endregion\r
- #region [ GuitarKeyAssign ]\r
- sw.WriteLine("[GuitarKeyAssign]");\r
- sw.WriteLine();\r
- sw.Write("R=");\r
- this.tキーの書き出し(sw, this.KeyAssign.Guitar.R);\r
- sw.WriteLine();\r
- sw.Write("G=");\r
- this.tキーの書き出し(sw, this.KeyAssign.Guitar.G);\r
- sw.WriteLine();\r
- sw.Write("B=");\r
- this.tキーの書き出し(sw, this.KeyAssign.Guitar.B);\r
- sw.WriteLine();\r
- sw.Write("Pick=");\r
- this.tキーの書き出し(sw, this.KeyAssign.Guitar.Pick);\r
- sw.WriteLine();\r
- sw.Write("Wail=");\r
- this.tキーの書き出し(sw, this.KeyAssign.Guitar.Wail);\r
- sw.WriteLine();\r
- sw.Write("Decide=");\r
- this.tキーの書き出し(sw, this.KeyAssign.Guitar.Decide);\r
- sw.WriteLine();\r
- sw.Write("Cancel=");\r
- this.tキーの書き出し(sw, this.KeyAssign.Guitar.Cancel);\r
- sw.WriteLine();\r
- sw.WriteLine();\r
- #endregion\r
- #region [ BassKeyAssign ]\r
- sw.WriteLine("[BassKeyAssign]");\r
- sw.WriteLine();\r
- sw.Write("R=");\r
- this.tキーの書き出し(sw, this.KeyAssign.Bass.R);\r
- sw.WriteLine();\r
- sw.Write("G=");\r
- this.tキーの書き出し(sw, this.KeyAssign.Bass.G);\r
- sw.WriteLine();\r
- sw.Write("B=");\r
- this.tキーの書き出し(sw, this.KeyAssign.Bass.B);\r
- sw.WriteLine();\r
- sw.Write("Pick=");\r
- this.tキーの書き出し(sw, this.KeyAssign.Bass.Pick);\r
- sw.WriteLine();\r
- sw.Write("Wail=");\r
- this.tキーの書き出し(sw, this.KeyAssign.Bass.Wail);\r
- sw.WriteLine();\r
- sw.Write("Decide=");\r
- this.tキーの書き出し(sw, this.KeyAssign.Bass.Decide);\r
- sw.WriteLine();\r
- sw.Write("Cancel=");\r
- this.tキーの書き出し(sw, this.KeyAssign.Bass.Cancel);\r
- sw.WriteLine();\r
- sw.WriteLine();\r
- #endregion\r
- #region [ SystemkeyAssign ]\r
- sw.WriteLine("[SystemKeyAssign]");\r
- sw.WriteLine();\r
- sw.Write("Capture=");\r
- this.tキーの書き出し(sw, this.KeyAssign.System.Capture);\r
- sw.WriteLine();\r
- sw.WriteLine();\r
- #endregion\r
-\r
- #region [ Temp ] - 2012.1.5 from add\r
- sw.WriteLine("[Temp]");\r
- sw.WriteLine();\r
- if ((this.eBDGroup == EBDGroup.どっちもBD) && (this.BackupOf1BD != null)) // #27029 2012.1.5 from: 有効な場合にのみ出力する。\r
- {\r
- sw.WriteLine("; BDGroup が FP|BD→FP&BD に変わった時の LC/HHC/HHO 打ち分けモード(0:LC|HHC|HHO, 1:LC&(HHC|HHO), 2:LC&HHC&HHO)");\r
- sw.WriteLine("BackupOf1BD_HHGroup={0}", (int)this.BackupOf1BD.eHHGroup);\r
- sw.WriteLine();\r
- sw.WriteLine(";BDGropu が FP|BD→FP&BD に変わった時の打ち分け時の再生音の優先順位(HHGroup)(0:Chip>Pad, 1:Pad>Chip)");\r
- sw.WriteLine("BackupOf1BD_HitSoundPriorityHH={0}", (int)this.BackupOf1BD.eHitSoundPriorityHH);\r
- sw.WriteLine();\r
- }\r
- sw.WriteLine(";-------------------");\r
- #endregion\r
-\r
- sw.Close();\r
- }\r
- public void tファイルから読み込み(string iniファイル名)\r
- {\r
- this.ConfigIniファイル名 = iniファイル名;\r
- this.bConfigIniが存在している = File.Exists(this.ConfigIniファイル名);\r
- if (this.bConfigIniが存在している)\r
- {\r
- string str;\r
- this.tキーアサインを全部クリアする();\r
- using (StreamReader reader = new StreamReader(this.ConfigIniファイル名, Encoding.GetEncoding("Shift_JIS")))\r
- {\r
- str = reader.ReadToEnd();\r
- }\r
- t文字列から読み込み(str);\r
- CDTXVersion version = new CDTXVersion(this.strDTXManiaのバージョン);\r
- if (version.n整数部 <= 69)\r
- {\r
- this.tデフォルトのキーアサインに設定する();\r
- }\r
- if (version.n整数部 < 100) // 99以下 → 100の時は、ウインドウサイズをVGA→HDに変更。縦横比変更のため、ウインドウサイズを初期化する。\r
- {\r
- this.nウインドウwidth = 1280;\r
- this.nウインドウheight = 720;\r
- }\r
- }\r
- }\r
-\r
- private void t文字列から読み込み(string strAllSettings) // 2011.4.13 yyagi; refactored to make initial KeyConfig easier.\r
- {\r
- Eセクション種別 unknown = Eセクション種別.Unknown;\r
- string[] delimiter = { "\n" };\r
- string[] strSingleLine = strAllSettings.Split(delimiter, StringSplitOptions.RemoveEmptyEntries);\r
- foreach (string s in strSingleLine)\r
- {\r
- string str = s.Replace('\t', ' ').TrimStart(new char[] { '\t', ' ' });\r
- if ((str.Length != 0) && (str[0] != ';'))\r
- {\r
- try\r
- {\r
- string str3;\r
- string str4;\r
- if (str[0] == '[')\r
- {\r
- #region [ セクションの変更 ]\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("System"))\r
- {\r
- unknown = Eセクション種別.System;\r
- }\r
- else if (str2.Equals("Log"))\r
- {\r
- unknown = Eセクション種別.Log;\r
- }\r
- else if (str2.Equals("PlayOption"))\r
- {\r
- unknown = Eセクション種別.PlayOption;\r
- }\r
- else if (str2.Equals("ViewerOption"))\r
- {\r
- unknown = Eセクション種別.ViewerOption;\r
- }\r
- else if (str2.Equals("AutoPlay"))\r
- {\r
- unknown = Eセクション種別.AutoPlay;\r
- }\r
- else if (str2.Equals("HitRange"))\r
- {\r
- unknown = Eセクション種別.HitRange;\r
- }\r
- else if (str2.Equals("GUID"))\r
- {\r
- unknown = Eセクション種別.GUID;\r
- }\r
- else if (str2.Equals("DrumsKeyAssign"))\r
- {\r
- unknown = Eセクション種別.DrumsKeyAssign;\r
- }\r
- else if (str2.Equals("GuitarKeyAssign"))\r
- {\r
- unknown = Eセクション種別.GuitarKeyAssign;\r
- }\r
- else if (str2.Equals("BassKeyAssign"))\r
- {\r
- unknown = Eセクション種別.BassKeyAssign;\r
- }\r
- else if (str2.Equals("SystemKeyAssign"))\r
- {\r
- unknown = Eセクション種別.SystemKeyAssign;\r
- }\r
- else if (str2.Equals("Temp"))\r
- {\r
- unknown = Eセクション種別.Temp;\r
- }\r
- else\r
- {\r
- unknown = Eセクション種別.Unknown;\r
- }\r
- //-----------------------------\r
- #endregion\r
- }\r
- else\r
- {\r
- string[] strArray = str.Split(new char[] { '=' });\r
- if (strArray.Length == 2)\r
- {\r
- str3 = strArray[0].Trim();\r
- str4 = strArray[1].Trim();\r
- switch (unknown)\r
- {\r
- #region [ [System] ]\r
- //-----------------------------\r
- case Eセクション種別.System:\r
- {\r
-#if false // #23625 2011.1.11 Config.iniからダメージ/回復値の定数変更を行う場合はここを有効にする 087リリースに合わせ機能無効化\r
- //----------------------------------------\r
- if (str3.Equals("GaugeFactorD"))\r
- {\r
- int p = 0;\r
- string[] splittedFactor = str4.Split(',');\r
- foreach (string s in splittedFactor) {\r
- this.fGaugeFactor[p++, 0] = Convert.ToSingle(s);\r
- }\r
- } else\r
- if (str3.Equals("GaugeFactorG"))\r
- {\r
- int p = 0;\r
- string[] splittedFactor = str4.Split(',');\r
- foreach (string s in splittedFactor)\r
- {\r
- this.fGaugeFactor[p++, 1] = Convert.ToSingle(s);\r
- }\r
- }\r
- else\r
- if (str3.Equals("DamageFactor"))\r
- {\r
- int p = 0;\r
- string[] splittedFactor = str4.Split(',');\r
- foreach (string s in splittedFactor)\r
- {\r
- this.fDamageLevelFactor[p++] = Convert.ToSingle(s);\r
- }\r
- }\r
- else\r
- //----------------------------------------\r
-#endif\r
- #region [ Version ]\r
- if (str3.Equals("Version"))\r
- {\r
- this.strDTXManiaのバージョン = str4;\r
- }\r
- #endregion\r
- #region [ DTXPath ]\r
- else if (str3.Equals("DTXPath"))\r
- {\r
- this.str曲データ検索パス = str4;\r
- }\r
- #endregion\r
- #region [ skin関係 ]\r
- else if (str3.Equals("SkinPath"))\r
- {\r
- string absSkinPath = str4;\r
- if (!System.IO.Path.IsPathRooted(str4))\r
- {\r
- absSkinPath = System.IO.Path.Combine(CDTXMania.Instance.strEXEのあるフォルダ, "System");\r
- absSkinPath = System.IO.Path.Combine(absSkinPath, str4);\r
- Uri u = new Uri(absSkinPath);\r
- absSkinPath = u.AbsolutePath.ToString(); // str4内に相対パスがある場合に備える\r
- absSkinPath = System.Web.HttpUtility.UrlDecode(absSkinPath); // デコードする\r
- absSkinPath = absSkinPath.Replace('/', System.IO.Path.DirectorySeparatorChar); // 区切り文字が\ではなく/なので置換する\r
- }\r
- if (absSkinPath[absSkinPath.Length - 1] != System.IO.Path.DirectorySeparatorChar) // フォルダ名末尾に\を必ずつけて、CSkin側と表記を統一する\r
- {\r
- absSkinPath += System.IO.Path.DirectorySeparatorChar;\r
- }\r
- this.strSystemSkinSubfolderFullName = absSkinPath;\r
- }\r
- else if (str3.Equals("SkinChangeByBoxDef"))\r
- {\r
- this.bUseBoxDefSkin = C変換.bONorOFF(str4[0]);\r
- }\r
- #endregion\r
- #region [ Window関係 ]\r
- else if (str3.Equals("FullScreen"))\r
- {\r
- this.b全画面モード = C変換.bONorOFF(str4[0]);\r
- }\r
- else if (str3.Equals("WindowX")) // #30675 2013.02.04 ikanick add\r
- {\r
- this.n初期ウィンドウ開始位置X = C変換.n値を文字列から取得して範囲内に丸めて返す(\r
- str4, 0, System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width - 1, this.n初期ウィンドウ開始位置X);\r
- }\r
- else if (str3.Equals("WindowY")) // #30675 2013.02.04 ikanick add\r
- {\r
- this.n初期ウィンドウ開始位置Y = C変換.n値を文字列から取得して範囲内に丸めて返す(\r
- str4, 0, System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height - 1, this.n初期ウィンドウ開始位置Y);\r
- }\r
- else if (str3.Equals("WindowWidth")) // #23510 2010.10.31 yyagi add\r
- {\r
- this.nウインドウwidth = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 1, 65535, this.nウインドウwidth);\r
- if (this.nウインドウwidth <= 0)\r
- {\r
- this.nウインドウwidth = SampleFramework.GameWindowSize.Width;\r
- }\r
- }\r
- else if (str3.Equals("WindowHeight")) // #23510 2010.10.31 yyagi add\r
- {\r
- this.nウインドウheight = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 1, 65535, this.nウインドウheight);\r
- if (this.nウインドウheight <= 0)\r
- {\r
- this.nウインドウheight = SampleFramework.GameWindowSize.Height;\r
- }\r
- }\r
- else if (str3.Equals("DoubleClickFullScreen")) // #26752 2011.11.27 yyagi\r
- {\r
- this.bIsAllowedDoubleClickFullscreen = C変換.bONorOFF(str4[0]);\r
- }\r
- else if (str3.Equals("EnableSystemMenu")) // #28200 2012.5.1 yyagi\r
- {\r
- this.bIsEnabledSystemMenu = C変換.bONorOFF(str4[0]);\r
- }\r
- else if (str3.Equals("BackSleep")) // #23568 2010.11.04 ikanick add\r
- {\r
- this.n非フォーカス時スリープms = C変換.n値を文字列から取得して範囲内にちゃんと丸めて返す(str4, 0, 50, this.n非フォーカス時スリープms);\r
- }\r
- #endregion\r
- #region [ WASAPI/ASIO関係 ]\r
- else if (str3.Equals("SoundDeviceType"))\r
- {\r
- this.nSoundDeviceType = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 2, this.nSoundDeviceType);\r
- }\r
- else if (str3.Equals("WASAPIBufferSizeMs"))\r
- {\r
- this.nWASAPIBufferSizeMs = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 9999, this.nWASAPIBufferSizeMs);\r
- }\r
- else if (str3.Equals("ASIODevice"))\r
- {\r
- string[] asiodev = CEnumerateAllAsioDevices.GetAllASIODevices();\r
- this.nASIODevice = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, asiodev.Length - 1, this.nASIODevice);\r
- }\r
- //else if ( str3.Equals( "ASIOBufferSizeMs" ) )\r
- //{\r
- // this.nASIOBufferSizeMs = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 9999, this.nASIOBufferSizeMs );\r
- //}\r
- //else if ( str3.Equals( "DynamicBassMixerManagement" ) )\r
- //{\r
- // this.bDynamicBassMixerManagement = C変換.bONorOFF( str4[ 0 ] );\r
- //}\r
- else if (str3.Equals("SoundTimerType")) // #33689 2014.6.6 yyagi\r
- {\r
- this.bUseOSTimer = C変換.bONorOFF(str4[0]);\r
- }\r
- else if (str3.Equals("MasterVolume"))\r
- {\r
- this.nMasterVolume = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 100, this.nMasterVolume);\r
- }\r
- #endregion\r
- else if (str3.Equals("VSyncWait"))\r
- {\r
- this.b垂直帰線待ちを行う = C変換.bONorOFF(str4[0]);\r
- }\r
- else if (str3.Equals("SleepTimePerFrame")) // #23568 2011.11.27 yyagi\r
- {\r
- this.nフレーム毎スリープms = C変換.n値を文字列から取得して範囲内にちゃんと丸めて返す(str4, -1, 50, this.nフレーム毎スリープms);\r
- }\r
- #region [ ギター/ベース/ドラム 有効/無効 ]\r
- else if (str3.Equals("Guitar"))\r
- {\r
- this.bGuitar有効 = C変換.bONorOFF(str4[0]);\r
- }\r
- else if (str3.Equals("Drums"))\r
- {\r
- this.bDrums有効 = C変換.bONorOFF(str4[0]);\r
- }\r
- #endregion\r
- else if (str3.Equals("BGAlpha"))\r
- {\r
- this.n背景の透過度 = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 0xff, this.n背景の透過度);\r
- }\r
- else if (str3.Equals("DamageLevel"))\r
- {\r
- this.eダメージレベル = (Eダメージレベル)C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 2, (int)this.eダメージレベル);\r
- }\r
- else if (str3.Equals("StageFailed"))\r
- {\r
- this.bSTAGEFAILED有効 = C変換.bONorOFF(str4[0]);\r
- }\r
- #region [ 打ち分け関連 ]\r
- else if (str3.Equals("HHGroup"))\r
- {\r
- this.eHHGroup = (EHHGroup)C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 3, (int)this.eHHGroup);\r
- }\r
- else if (str3.Equals("FTGroup"))\r
- {\r
- this.eFTGroup = (EFTGroup)C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 2, (int)this.eFTGroup);\r
- }\r
- else if (str3.Equals("CYGroup"))\r
- {\r
- this.eCYGroup = (ECYGroup)C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 2, (int)this.eCYGroup);\r
- }\r
- else if (str3.Equals("BDGroup")) // #27029 2012.1.4 from\r
- {\r
- this.eBDGroup = (EBDGroup)C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 2, (int)this.eBDGroup);\r
- }\r
- else if (str3.Equals("HitSoundPriorityHH"))\r
- {\r
- this.eHitSoundPriorityHH = (E打ち分け時の再生の優先順位)C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 1, (int)this.eHitSoundPriorityHH);\r
- }\r
- else if (str3.Equals("HitSoundPriorityFT"))\r
- {\r
- this.eHitSoundPriorityFT = (E打ち分け時の再生の優先順位)C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 1, (int)this.eHitSoundPriorityFT);\r
- }\r
- else if (str3.Equals("HitSoundPriorityCY"))\r
- {\r
- this.eHitSoundPriorityCY = (E打ち分け時の再生の優先順位)C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 1, (int)this.eHitSoundPriorityCY);\r
- }\r
- else if (str3.Equals("CymbalFree"))\r
- {\r
- this.bシンバルフリー = C変換.bONorOFF(str4[0]);\r
- }\r
- #endregion\r
- #region [ AVI/BGA ]\r
- else if (str3.Equals("AVI"))\r
- {\r
- this.bAVI有効 = C変換.bONorOFF(str4[0]);\r
- }\r
- else if (str3.Equals("ForceAVIFullscreen"))\r
- {\r
- this.bForceAVIFullscreen = C変換.bONorOFF(str4[0]);\r
- }\r
- else if (str3.Equals("BGA"))\r
- {\r
- this.bBGA有効 = C変換.bONorOFF(str4[0]);\r
- }\r
- #endregion\r
- #region [ フィルイン関係 ]\r
- else if (str3.Equals("FillInEffect"))\r
- {\r
- this.bフィルイン有効 = C変換.bONorOFF(str4[0]);\r
- }\r
- else if (str3.Equals("AudienceSound"))\r
- {\r
- this.b歓声を発声する = C変換.bONorOFF(str4[0]);\r
- }\r
- #endregion\r
- #region [ プレビュー音 ]\r
- else if (str3.Equals("PreviewSoundWait"))\r
- {\r
- this.n曲が選択されてからプレビュー音が鳴るまでのウェイトms = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 0x5f5e0ff, this.n曲が選択されてからプレビュー音が鳴るまでのウェイトms);\r
- }\r
- else if (str3.Equals("PreviewImageWait"))\r
- {\r
- this.n曲が選択されてからプレビュー画像が表示開始されるまでのウェイトms = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 0x5f5e0ff, this.n曲が選択されてからプレビュー画像が表示開始されるまでのウェイトms);\r
- }\r
- #endregion\r
- else if (str3.Equals("AdjustWaves"))\r
- {\r
- this.bWave再生位置自動調整機能有効 = C変換.bONorOFF(str4[0]);\r
- }\r
- #region [ BGM/ドラムのヒット音 ]\r
- else if (str3.Equals("BGMSound"))\r
- {\r
- this.bBGM音を発声する = C変換.bONorOFF(str4[0]);\r
- }\r
- else if (str3.Equals("HitSound"))\r
- {\r
- this.bドラム打音を発声する = C変換.bONorOFF(str4[0]);\r
- }\r
- #endregion\r
- else if (str3.Equals("SaveScoreIni"))\r
- {\r
- this.bScoreIniを出力する = C変換.bONorOFF(str4[0]);\r
- }\r
- else if (str3.Equals("RandomFromSubBox"))\r
- {\r
- this.bランダムセレクトで子BOXを検索対象とする = C変換.bONorOFF(str4[0]);\r
- }\r
- #region [ SoundMonitor ]\r
- else if (str3.Equals("SoundMonitorDrums"))\r
- {\r
- this.b演奏音を強調する.Drums = C変換.bONorOFF(str4[0]);\r
- }\r
- else if (str3.Equals("SoundMonitorGuitar"))\r
- {\r
- this.b演奏音を強調する.Guitar = C変換.bONorOFF(str4[0]);\r
- }\r
- else if (str3.Equals("SoundMonitorBass"))\r
- {\r
- this.b演奏音を強調する.Bass = C変換.bONorOFF(str4[0]);\r
- }\r
- #endregion\r
- #region [ コンボ数 ]\r
- else if (str3.Equals("MinComboDrums"))\r
- {\r
- this.n表示可能な最小コンボ数.Drums = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 1, 0x1869f, this.n表示可能な最小コンボ数.Drums);\r
- }\r
- else if (str3.Equals("MinComboGuitar"))\r
- {\r
- this.n表示可能な最小コンボ数.Guitar = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 1, 0x1869f, this.n表示可能な最小コンボ数.Guitar);\r
- }\r
- else if (str3.Equals("MinComboBass"))\r
- {\r
- this.n表示可能な最小コンボ数.Bass = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 1, 0x1869f, this.n表示可能な最小コンボ数.Bass);\r
- }\r
- #endregion\r
- else if (str3.Equals("ShowDebugStatus"))\r
- {\r
- this.b演奏情報を表示する = C変換.bONorOFF(str4[0]);\r
- }\r
- #region [ 選曲リストフォント ]\r
- else if (str3.Equals("SelectListFontName"))\r
- {\r
- this.str選曲リストフォント = str4;\r
- }\r
- else if (str3.Equals("SelectListFontSize"))\r
- {\r
- this.n選曲リストフォントのサイズdot = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 1, 0x3e7, this.n選曲リストフォントのサイズdot);\r
- }\r
- else if (str3.Equals("SelectListFontItalic"))\r
- {\r
- this.b選曲リストフォントを斜体にする = C変換.bONorOFF(str4[0]);\r
- }\r
- else if (str3.Equals("SelectListFontBold"))\r
- {\r
- this.b選曲リストフォントを太字にする = C変換.bONorOFF(str4[0]);\r
- }\r
- #endregion\r
- else if (str3.Equals("ChipVolume"))\r
- {\r
- this.n手動再生音量 = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 100, this.n手動再生音量);\r
- }\r
- else if (str3.Equals("AutoChipVolume"))\r
- {\r
- this.n自動再生音量 = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 100, this.n自動再生音量);\r
- }\r
- else if (str3.Equals("StoicMode"))\r
- {\r
- this.bストイックモード = C変換.bONorOFF(str4[0]);\r
- }\r
- else if (str3.Equals("ShowLagTime")) // #25370 2011.6.3 yyagi\r
- {\r
- this.nShowLagType = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 2, this.nShowLagType);\r
- }\r
- else if (str3.Equals("JudgeDispPriority"))\r
- {\r
- this.e判定表示優先度 = (E判定表示優先度)C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 1, (int)this.e判定表示優先度);\r
- }\r
- else if (str3.Equals("DrumsLanePosition"))\r
- {\r
- this.eドラムレーン表示位置 = (Eドラムレーン表示位置)C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 1, (int)this.eドラムレーン表示位置);\r
- }\r
- else if (str3.Equals("AutoResultCapture")) // #25399 2011.6.9 yyagi\r
- {\r
- this.bIsAutoResultCapture = C変換.bONorOFF(str4[0]);\r
- }\r
- else if (str3.Equals("TimeStretch")) // #23664 2013.2.24 yyagi\r
- {\r
- this.bTimeStretch = C変換.bONorOFF(str4[0]);\r
- }\r
- #region [ AdjustTime ]\r
- else if (str3.Equals("InputAdjustTimeDrums")) // #23580 2011.1.3 yyagi\r
- {\r
- this.nInputAdjustTimeMs.Drums = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, -99, 99, this.nInputAdjustTimeMs.Drums);\r
- }\r
- else if (str3.Equals("InputAdjustTimeGuitar")) // #23580 2011.1.3 yyagi\r
- {\r
- this.nInputAdjustTimeMs.Guitar = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, -99, 99, this.nInputAdjustTimeMs.Guitar);\r
- }\r
- else if (str3.Equals("InputAdjustTimeBass")) // #23580 2011.1.3 yyagi\r
- {\r
- this.nInputAdjustTimeMs.Bass = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, -99, 99, this.nInputAdjustTimeMs.Bass);\r
- }\r
- else if (str3.Equals("JudgeLinePosOffsetDrums")) // #31602 2013.6.23 yyagi\r
- {\r
- this.fJudgeLinePosOffsetBase.Drums = C変換.n値を文字列から取得して範囲内にちゃんと丸めて返す(str4, -99, 99, this.nJudgeLinePosOffset.Drums);\r
- }\r
- else if (str3.Equals("JudgeLinePosOffsetGuitar")) // #31602 2013.6.23 yyagi\r
- {\r
- this.fJudgeLinePosOffsetBase.Guitar = C変換.n値を文字列から取得して範囲内にちゃんと丸めて返す(str4, -99, 99, this.nJudgeLinePosOffset.Guitar);\r
- }\r
- else if (str3.Equals("JudgeLinePosOffsetBass")) // #31602 2013.6.23 yyagi\r
- {\r
- this.fJudgeLinePosOffsetBase.Bass = C変換.n値を文字列から取得して範囲内にちゃんと丸めて返す(str4, -99, 99, this.nJudgeLinePosOffset.Bass);\r
- }\r
- else if (str3.Equals("JudgeLinePosModeGuitar")) // #33891 2014.6.26 yyagi\r
- {\r
- this.e判定位置.Guitar = (E判定位置)C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 2, (int)this.e判定位置.Guitar);\r
- }\r
- else if (str3.Equals("JudgeLinePosModeBass")) // #33891 2014.6.26 yyagi\r
- {\r
- this.e判定位置.Bass = (E判定位置)C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 2, (int)this.e判定位置.Bass);\r
- }\r
- #endregion\r
- else if (str3.Equals("BufferedInput"))\r
- {\r
- this.bバッファ入力を行う = C変換.bONorOFF(str4[0]);\r
- }\r
- else if (str3.Equals("PolyphonicSounds")) // #28228 2012.5.1 yyagi\r
- {\r
- this.nPoliphonicSounds = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 1, 8, this.nPoliphonicSounds);\r
- }\r
- #region [ VelocityMin ]\r
- else if (str3.Equals("LCVelocityMin")) // #23857 2010.12.12 yyagi\r
- {\r
- this.nVelocityMin.LC = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 127, this.nVelocityMin.LC);\r
- }\r
- else if (str3.Equals("HHVelocityMin"))\r
- {\r
- this.nVelocityMin.HH = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 127, this.nVelocityMin.HH);\r
- }\r
- else if (str3.Equals("SDVelocityMin")) // #23857 2011.1.31 yyagi\r
- {\r
- this.nVelocityMin.SD = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 127, this.nVelocityMin.SD);\r
- }\r
- else if (str3.Equals("BDVelocityMin")) // #23857 2011.1.31 yyagi\r
- {\r
- this.nVelocityMin.BD = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 127, this.nVelocityMin.BD);\r
- }\r
- else if (str3.Equals("HTVelocityMin")) // #23857 2011.1.31 yyagi\r
- {\r
- this.nVelocityMin.HT = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 127, this.nVelocityMin.HT);\r
- }\r
- else if (str3.Equals("LTVelocityMin")) // #23857 2011.1.31 yyagi\r
- {\r
- this.nVelocityMin.LT = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 127, this.nVelocityMin.LT);\r
- }\r
- else if (str3.Equals("FTVelocityMin")) // #23857 2011.1.31 yyagi\r
- {\r
- this.nVelocityMin.FT = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 127, this.nVelocityMin.FT);\r
- }\r
- else if (str3.Equals("CYVelocityMin")) // #23857 2011.1.31 yyagi\r
- {\r
- this.nVelocityMin.CY = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 127, this.nVelocityMin.CY);\r
- }\r
- else if (str3.Equals("RDVelocityMin")) // #23857 2011.1.31 yyagi\r
- {\r
- this.nVelocityMin.RD = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 127, this.nVelocityMin.RD);\r
- }\r
- #endregion\r
- else if (str3.Equals("Loadsoundspeed"))\r
- {\r
- this.b曲読み込みを高速化する = C変換.bONorOFF(str4[0]);\r
- }\r
- //else if ( str3.Equals( "NoMP3Streaming" ) )\r
- //{\r
- // this.bNoMP3Streaming = C変換.bONorOFF( str4[ 0 ] );\r
- //}\r
- continue;\r
- }\r
- //-----------------------------\r
- #endregion\r
-\r
- #region [ [Log] ]\r
- //-----------------------------\r
- case Eセクション種別.Log:\r
- {\r
- if (str3.Equals("OutputLog"))\r
- {\r
- this.bログ出力 = C変換.bONorOFF(str4[0]);\r
- }\r
- else if (str3.Equals("TraceCreatedDisposed"))\r
- {\r
- this.bLog作成解放ログ出力 = C変換.bONorOFF(str4[0]);\r
- }\r
- else if (str3.Equals("TraceDTXDetails"))\r
- {\r
- this.bLogDTX詳細ログ出力 = C変換.bONorOFF(str4[0]);\r
- }\r
- else if (str3.Equals("TraceSongSearch"))\r
- {\r
- this.bLog曲検索ログ出力 = C変換.bONorOFF(str4[0]);\r
- }\r
- continue;\r
- }\r
- //-----------------------------\r
- #endregion\r
-\r
- #region [ [PlayOption] ]\r
- //-----------------------------\r
- case Eセクション種別.PlayOption:\r
- {\r
- if (str3.Equals("Dark"))\r
- {\r
- this.eDark = (Eダークモード)C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 2, (int)this.eDark);\r
- }\r
- else if (str3.Equals("Graph")) // #24074 2011.01.23 addikanick\r
- {\r
- this.bGraph = C変換.bONorOFF(str4[0]);\r
- }\r
- else if (str3.Equals("DrumAutoGhost")) // #35411 2015.08.18 chnmr0 add\r
- {\r
- this.eAutoGhost.Drums = (EAutoGhostData)C変換.n値を文字列から取得して返す(str4, 0);\r
- }\r
- else if (str3.Equals("GuitarAutoGhost")) // #35411 2015.08.18 chnmr0 add\r
- {\r
- this.eAutoGhost.Guitar = (EAutoGhostData)C変換.n値を文字列から取得して返す(str4, 0);\r
- }\r
- else if (str3.Equals("BassAutoGhost")) // #35411 2015.08.18 chnmr0 add\r
- {\r
- this.eAutoGhost.Bass = (EAutoGhostData)C変換.n値を文字列から取得して返す(str4, 0);\r
- }\r
- else if (str3.Equals("DrumTargetGhost")) // #35411 2015.08.18 chnmr0 add\r
- {\r
- this.eTargetGhost.Drums = (ETargetGhostData)C変換.n値を文字列から取得して返す(str4, 0);\r
- }\r
- else if (str3.Equals("GuitarTargetGhost")) // #35411 2015.08.18 chnmr0 add\r
- {\r
- this.eTargetGhost.Guitar = (ETargetGhostData)C変換.n値を文字列から取得して返す(str4, 0);\r
- }\r
- else if (str3.Equals("BassTargetGhost")) // #35411 2015.08.18 chnmr0 add\r
- {\r
- this.eTargetGhost.Bass = (ETargetGhostData)C変換.n値を文字列から取得して返す(str4, 0);\r
- }\r
-\r
- #region [ Sudden ]\r
- else if (str3.Equals("DrumsSudden"))\r
- {\r
- this.bSudden.Drums = C変換.bONorOFF(str4[0]);\r
- }\r
- else if (str3.Equals("GuitarSudden"))\r
- {\r
- this.bSudden.Guitar = C変換.bONorOFF(str4[0]);\r
- }\r
- else if (str3.Equals("BassSudden"))\r
- {\r
- this.bSudden.Bass = C変換.bONorOFF(str4[0]);\r
- }\r
- #endregion\r
- #region [ Hidden ]\r
- else if (str3.Equals("DrumsHidden"))\r
- {\r
- this.bHidden.Drums = C変換.bONorOFF(str4[0]);\r
- }\r
- else if (str3.Equals("GuitarHidden"))\r
- {\r
- this.bHidden.Guitar = C変換.bONorOFF(str4[0]);\r
- }\r
- else if (str3.Equals("BassHidden"))\r
- {\r
- this.bHidden.Bass = C変換.bONorOFF(str4[0]);\r
- }\r
- #endregion\r
- #region [ Invisible ]\r
- else if (str3.Equals("DrumsInvisible"))\r
- {\r
- this.eInvisible.Drums = (EInvisible)C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 2, (int)this.eInvisible.Drums);\r
- }\r
- else if (str3.Equals("GuitarInvisible"))\r
- {\r
- this.eInvisible.Guitar = (EInvisible)C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 2, (int)this.eInvisible.Guitar);\r
- }\r
- else if (str3.Equals("BassInvisible"))\r
- {\r
- this.eInvisible.Bass = (EInvisible)C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 2, (int)this.eInvisible.Bass);\r
- }\r
- //else if ( str3.Equals( "InvisibleDisplayTimeMs" ) )\r
- //{\r
- // this.nDisplayTimesMs = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 9999999, (int) this.nDisplayTimesMs );\r
- //}\r
- //else if ( str3.Equals( "InvisibleFadeoutTimeMs" ) )\r
- //{\r
- // this.nFadeoutTimeMs = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 9999999, (int) this.nFadeoutTimeMs );\r
- //}\r
- #endregion\r
- else if (str3.Equals("DrumsReverse"))\r
- {\r
- this.bReverse.Drums = C変換.bONorOFF(str4[0]);\r
- }\r
- else if (str3.Equals("GuitarReverse"))\r
- {\r
- this.bReverse.Guitar = C変換.bONorOFF(str4[0]);\r
- }\r
- else if (str3.Equals("BassReverse"))\r
- {\r
- this.bReverse.Bass = C変換.bONorOFF(str4[0]);\r
- }\r
- else if (str3.Equals("GuitarRandom"))\r
- {\r
- this.eRandom.Guitar = (Eランダムモード)C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 3, (int)this.eRandom.Guitar);\r
- }\r
- else if (str3.Equals("BassRandom"))\r
- {\r
- this.eRandom.Bass = (Eランダムモード)C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 3, (int)this.eRandom.Bass);\r
- }\r
- else if (str3.Equals("GuitarLight"))\r
- {\r
- this.bLight.Guitar = C変換.bONorOFF(str4[0]);\r
- }\r
- else if (str3.Equals("BassLight"))\r
- {\r
- this.bLight.Bass = C変換.bONorOFF(str4[0]);\r
- }\r
- else if (str3.Equals("GuitarLeft"))\r
- {\r
- this.bLeft.Guitar = C変換.bONorOFF(str4[0]);\r
- }\r
- else if (str3.Equals("BassLeft"))\r
- {\r
- this.bLeft.Bass = C変換.bONorOFF(str4[0]);\r
- }\r
- else if (str3.Equals("DrumsPosition"))\r
- {\r
- this.判定文字表示位置.Drums = (E判定文字表示位置)C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 2, (int)this.判定文字表示位置.Drums);\r
- }\r
- else if (str3.Equals("GuitarPosition"))\r
- {\r
- this.判定文字表示位置.Guitar = (E判定文字表示位置)C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 3, (int)this.判定文字表示位置.Guitar);\r
- }\r
- else if (str3.Equals("BassPosition"))\r
- {\r
- this.判定文字表示位置.Bass = (E判定文字表示位置)C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 3, (int)this.判定文字表示位置.Bass);\r
- }\r
- else if (str3.Equals("DrumsScrollSpeed"))\r
- {\r
- this.n譜面スクロール速度.Drums = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 0x7cf, this.n譜面スクロール速度.Drums);\r
- }\r
- else if (str3.Equals("GuitarScrollSpeed"))\r
- {\r
- this.n譜面スクロール速度.Guitar = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 0x7cf, this.n譜面スクロール速度.Guitar);\r
- }\r
- else if (str3.Equals("BassScrollSpeed"))\r
- {\r
- this.n譜面スクロール速度.Bass = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 0x7cf, this.n譜面スクロール速度.Bass);\r
- }\r
- else if (str3.Equals("PlaySpeed"))\r
- {\r
- this.n演奏速度 = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 5, 40, this.n演奏速度);\r
- }\r
- else if (str3.Equals("ComboPosition"))\r
- {\r
- this.ドラムコンボ文字の表示位置 = (Eドラムコンボ文字の表示位置)C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 3, (int)this.ドラムコンボ文字の表示位置);\r
- }\r
- //else if ( str3.Equals( "JudgeDispPriorityDrums" ) )\r
- //{\r
- // this.e判定表示優先度.Drums = (E判定表示優先度) C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 1, (int) this.e判定表示優先度.Drums );\r
- //}\r
- //else if ( str3.Equals( "JudgeDispPriorityGuitar" ) )\r
- //{\r
- // this.e判定表示優先度.Guitar = (E判定表示優先度) C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 1, (int) this.e判定表示優先度.Guitar );\r
- //}\r
- //else if ( str3.Equals( "JudgeDispPriorityBass" ) )\r
- //{\r
- // this.e判定表示優先度.Bass = (E判定表示優先度) C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 1, (int) this.e判定表示優先度.Bass );\r
- //}\r
- else if (str3.Equals("Risky")) // #23559 2011.6.23 yyagi\r
- {\r
- this.nRisky = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 10, this.nRisky);\r
- }\r
- else if (str3.Equals("DrumsTight")) // #29500 2012.9.11 kairera0467\r
- {\r
- this.bTight = C変換.bONorOFF(str4[0]);\r
- }\r
- continue;\r
- }\r
- //-----------------------------\r
- #endregion\r
-\r
- #region [ [ViewerOption] ]\r
- //-----------------------------\r
- case Eセクション種別.ViewerOption:\r
- {\r
- if (str3.Equals("ViewerDrumsScrollSpeed"))\r
- {\r
- this.nViewerScrollSpeed.Drums = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 1999, this.nViewerScrollSpeed.Drums);\r
- }\r
- else if (str3.Equals("ViewerGuitarScrollSpeed"))\r
- {\r
- this.nViewerScrollSpeed.Guitar = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 1999, this.nViewerScrollSpeed.Guitar);\r
- }\r
- else if (str3.Equals("ViewerBassScrollSpeed"))\r
- {\r
- this.nViewerScrollSpeed.Bass = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 1999, this.nViewerScrollSpeed.Bass);\r
- }\r
- else if (str3.Equals("ViewerVSyncWait"))\r
- {\r
- this.bViewerVSyncWait = C変換.bONorOFF(str4[0]);\r
- }\r
- else if (str3.Equals("ViewerShowDebugStatus"))\r
- {\r
- this.bViewerShowDebugStatus = C変換.bONorOFF(str4[0]);\r
- }\r
- else if (str3.Equals("ViewerTimeStretch"))\r
- {\r
- this.bViewerTimeStretch = C変換.bONorOFF(str4[0]);\r
- }\r
- else if (str3.Equals("ViewerGuitar"))\r
- {\r
- this.bViewerGuitar有効 = C変換.bONorOFF(str4[0]);\r
- }\r
- else if (str3.Equals("ViewerDrums"))\r
- {\r
- this.bViewerDrums有効 = C変換.bONorOFF(str4[0]);\r
- }\r
-\r
- else if (str3.Equals("ViewerWindowWidth"))\r
- {\r
- this.nViewerウインドウwidth = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 65535, this.nViewerウインドウwidth);\r
- }\r
- else if (str3.Equals("ViewerWindowHeight"))\r
- {\r
- this.nViewerウインドウheight = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 65535, this.nViewerウインドウheight);\r
- }\r
- else if (str3.Equals("ViewerWindowX"))\r
- {\r
- this.nViewer初期ウィンドウ開始位置X = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 65535, this.nViewer初期ウィンドウ開始位置X);\r
- }\r
- else if (str3.Equals("ViewerWindowY"))\r
- {\r
- this.nViewer初期ウィンドウ開始位置Y = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 65535, this.nViewer初期ウィンドウ開始位置Y);\r
- }\r
- continue;\r
- }\r
- //-----------------------------\r
- #endregion\r
-\r
- #region [ [AutoPlay] ]\r
- //-----------------------------\r
- case Eセクション種別.AutoPlay:\r
- if (str3.Equals("LC"))\r
- {\r
- this.bAutoPlay.LC = C変換.bONorOFF(str4[0]);\r
- }\r
- if (str3.Equals("HH"))\r
- {\r
- this.bAutoPlay.HH = C変換.bONorOFF(str4[0]);\r
- }\r
- else if (str3.Equals("SD"))\r
- {\r
- this.bAutoPlay.SD = C変換.bONorOFF(str4[0]);\r
- }\r
- else if (str3.Equals("BD"))\r
- {\r
- this.bAutoPlay.BD = C変換.bONorOFF(str4[0]);\r
- }\r
- else if (str3.Equals("HT"))\r
- {\r
- this.bAutoPlay.HT = C変換.bONorOFF(str4[0]);\r
- }\r
- else if (str3.Equals("LT"))\r
- {\r
- this.bAutoPlay.LT = C変換.bONorOFF(str4[0]);\r
- }\r
- else if (str3.Equals("FT"))\r
- {\r
- this.bAutoPlay.FT = C変換.bONorOFF(str4[0]);\r
- }\r
- else if (str3.Equals("CY"))\r
- {\r
- this.bAutoPlay.CY = C変換.bONorOFF(str4[0]);\r
- }\r
- //else if( str3.Equals( "Guitar" ) )\r
- //{\r
- // this.bAutoPlay.Guitar = C変換.bONorOFF( str4[ 0 ] );\r
- //}\r
- else if (str3.Equals("GuitarR"))\r
- {\r
- this.bAutoPlay.GtR = C変換.bONorOFF(str4[0]);\r
- }\r
- else if (str3.Equals("GuitarG"))\r
- {\r
- this.bAutoPlay.GtG = C変換.bONorOFF(str4[0]);\r
- }\r
- else if (str3.Equals("GuitarB"))\r
- {\r
- this.bAutoPlay.GtB = C変換.bONorOFF(str4[0]);\r
- }\r
- else if (str3.Equals("GuitarPick"))\r
- {\r
- this.bAutoPlay.GtPick = C変換.bONorOFF(str4[0]);\r
- }\r
- else if (str3.Equals("GuitarWailing"))\r
- {\r
- this.bAutoPlay.GtW = C変換.bONorOFF(str4[0]);\r
- }\r
- //else if ( str3.Equals( "Bass" ) )\r
- //{\r
- // this.bAutoPlay.Bass = C変換.bONorOFF( str4[ 0 ] );\r
- //}\r
- else if (str3.Equals("BassR"))\r
- {\r
- this.bAutoPlay.BsR = C変換.bONorOFF(str4[0]);\r
- }\r
- else if (str3.Equals("BassG"))\r
- {\r
- this.bAutoPlay.BsG = C変換.bONorOFF(str4[0]);\r
- }\r
- else if (str3.Equals("BassB"))\r
- {\r
- this.bAutoPlay.BsB = C変換.bONorOFF(str4[0]);\r
- }\r
- else if (str3.Equals("BassPick"))\r
- {\r
- this.bAutoPlay.BsPick = C変換.bONorOFF(str4[0]);\r
- }\r
- else if (str3.Equals("BassWailing"))\r
- {\r
- this.bAutoPlay.BsW = C変換.bONorOFF(str4[0]);\r
- }\r
- continue;\r
- //-----------------------------\r
- #endregion\r
-\r
- #region [ [HitRange] ]\r
- //-----------------------------\r
- case Eセクション種別.HitRange:\r
- if (str3.Equals("Perfect"))\r
- {\r
- this.nヒット範囲ms.Perfect = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 0x3e7, this.nヒット範囲ms.Perfect);\r
- }\r
- else if (str3.Equals("Great"))\r
- {\r
- this.nヒット範囲ms.Great = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 0x3e7, this.nヒット範囲ms.Great);\r
- }\r
- else if (str3.Equals("Good"))\r
- {\r
- this.nヒット範囲ms.Good = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 0x3e7, this.nヒット範囲ms.Good);\r
- }\r
- else if (str3.Equals("Poor"))\r
- {\r
- this.nヒット範囲ms.Poor = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 0x3e7, this.nヒット範囲ms.Poor);\r
- }\r
- continue;\r
- //-----------------------------\r
- #endregion\r
-\r
- #region [ [GUID] ]\r
- //-----------------------------\r
- case Eセクション種別.GUID:\r
- if (str3.Equals("JoystickID"))\r
- {\r
- this.tJoystickIDの取得(str4);\r
- }\r
- continue;\r
- //-----------------------------\r
- #endregion\r
-\r
- #region [ [DrumsKeyAssign] ]\r
- //-----------------------------\r
- case Eセクション種別.DrumsKeyAssign:\r
- {\r
- if (str3.Equals("HH"))\r
- {\r
- this.tキーの読み出しと設定(str4, this.KeyAssign.Drums.HH);\r
- }\r
- else if (str3.Equals("SD"))\r
- {\r
- this.tキーの読み出しと設定(str4, this.KeyAssign.Drums.SD);\r
- }\r
- else if (str3.Equals("BD"))\r
- {\r
- this.tキーの読み出しと設定(str4, this.KeyAssign.Drums.BD);\r
- }\r
- else if (str3.Equals("HT"))\r
- {\r
- this.tキーの読み出しと設定(str4, this.KeyAssign.Drums.HT);\r
- }\r
- else if (str3.Equals("LT"))\r
- {\r
- this.tキーの読み出しと設定(str4, this.KeyAssign.Drums.LT);\r
- }\r
- else if (str3.Equals("FT"))\r
- {\r
- this.tキーの読み出しと設定(str4, this.KeyAssign.Drums.FT);\r
- }\r
- else if (str3.Equals("CY"))\r
- {\r
- this.tキーの読み出しと設定(str4, this.KeyAssign.Drums.CY);\r
- }\r
- else if (str3.Equals("HO"))\r
- {\r
- this.tキーの読み出しと設定(str4, this.KeyAssign.Drums.HHO);\r
- }\r
- else if (str3.Equals("RD"))\r
- {\r
- this.tキーの読み出しと設定(str4, this.KeyAssign.Drums.RD);\r
- }\r
- else if (str3.Equals("LC"))\r
- {\r
- this.tキーの読み出しと設定(str4, this.KeyAssign.Drums.LC);\r
- }\r
- else if (str3.Equals("HP")) // #27029 2012.1.4 from\r
- { //\r
- this.tキーの読み出しと設定(str4, this.KeyAssign.Drums.HP); //\r
- } //\r
- continue;\r
- }\r
- //-----------------------------\r
- #endregion\r
-\r
- #region [ [GuitarKeyAssign] ]\r
- //-----------------------------\r
- case Eセクション種別.GuitarKeyAssign:\r
- {\r
- if (str3.Equals("R"))\r
- {\r
- this.tキーの読み出しと設定(str4, this.KeyAssign.Guitar.R);\r
- }\r
- else if (str3.Equals("G"))\r
- {\r
- this.tキーの読み出しと設定(str4, this.KeyAssign.Guitar.G);\r
- }\r
- else if (str3.Equals("B"))\r
- {\r
- this.tキーの読み出しと設定(str4, this.KeyAssign.Guitar.B);\r
- }\r
- else if (str3.Equals("Pick"))\r
- {\r
- this.tキーの読み出しと設定(str4, this.KeyAssign.Guitar.Pick);\r
- }\r
- else if (str3.Equals("Wail"))\r
- {\r
- this.tキーの読み出しと設定(str4, this.KeyAssign.Guitar.Wail);\r
- }\r
- else if (str3.Equals("Decide"))\r
- {\r
- this.tキーの読み出しと設定(str4, this.KeyAssign.Guitar.Decide);\r
- }\r
- else if (str3.Equals("Cancel"))\r
- {\r
- this.tキーの読み出しと設定(str4, this.KeyAssign.Guitar.Cancel);\r
- }\r
- continue;\r
- }\r
- //-----------------------------\r
- #endregion\r
-\r
- #region [ [BassKeyAssign] ]\r
- //-----------------------------\r
- case Eセクション種別.BassKeyAssign:\r
- if (str3.Equals("R"))\r
- {\r
- this.tキーの読み出しと設定(str4, this.KeyAssign.Bass.R);\r
- }\r
- else if (str3.Equals("G"))\r
- {\r
- this.tキーの読み出しと設定(str4, this.KeyAssign.Bass.G);\r
- }\r
- else if (str3.Equals("B"))\r
- {\r
- this.tキーの読み出しと設定(str4, this.KeyAssign.Bass.B);\r
- }\r
- else if (str3.Equals("Pick"))\r
- {\r
- this.tキーの読み出しと設定(str4, this.KeyAssign.Bass.Pick);\r
- }\r
- else if (str3.Equals("Wail"))\r
- {\r
- this.tキーの読み出しと設定(str4, this.KeyAssign.Bass.Wail);\r
- }\r
- else if (str3.Equals("Decide"))\r
- {\r
- this.tキーの読み出しと設定(str4, this.KeyAssign.Bass.Decide);\r
- }\r
- else if (str3.Equals("Cancel"))\r
- {\r
- this.tキーの読み出しと設定(str4, this.KeyAssign.Bass.Cancel);\r
- }\r
- continue;\r
- //-----------------------------\r
- #endregion\r
-\r
- #region [ [SystemKeyAssign] ]\r
- //-----------------------------\r
- case Eセクション種別.SystemKeyAssign:\r
- if (str3.Equals("Capture"))\r
- {\r
- this.tキーの読み出しと設定(str4, this.KeyAssign.System.Capture);\r
- }\r
- continue;\r
- //-----------------------------\r
- #endregion\r
-\r
- #region [ [Temp] ]\r
- //-----------------------------\r
- case Eセクション種別.Temp: // #27029 2012.1.5 from\r
- if (str3.Equals("BackupOf1BD_HHGroup"))\r
- {\r
- if (this.BackupOf1BD == null) this.BackupOf1BD = new CBackupOf1BD();\r
- this.BackupOf1BD.eHHGroup = (EHHGroup)C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 3, (int)this.BackupOf1BD.eHHGroup);\r
- }\r
- else if (str3.Equals("BackupOf1BD_HitSoundPriorityHH"))\r
- {\r
- if (this.BackupOf1BD == null) this.BackupOf1BD = new CBackupOf1BD();\r
- this.BackupOf1BD.eHitSoundPriorityHH = (E打ち分け時の再生の優先順位)C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 3, (int)this.BackupOf1BD.eHitSoundPriorityHH);\r
- }\r
- continue;\r
- //-----------------------------\r
- #endregion\r
- }\r
- }\r
- }\r
- continue;\r
- }\r
- catch (Exception exception)\r
- {\r
- Trace.TraceError(exception.Message);\r
- continue;\r
- }\r
- }\r
- }\r
-\r
- for (E楽器パート i = E楽器パート.DRUMS; i <= E楽器パート.BASS; i++)\r
- {\r
- nJudgeLinePosOffset[i] = (int)(fJudgeLinePosOffsetBase[i] * (this.n譜面スクロール速度[i] + 1));\r
- }\r
- }\r
-\r
- // その他\r
-\r
- #region [ private ]\r
- //-----------------\r
- private enum Eセクション種別\r
- {\r
- Unknown,\r
- System,\r
- Log,\r
- PlayOption,\r
- ViewerOption,\r
- AutoPlay,\r
- HitRange,\r
- GUID,\r
- DrumsKeyAssign,\r
- GuitarKeyAssign,\r
- BassKeyAssign,\r
- SystemKeyAssign,\r
- Temp,\r
- }\r
-\r
- private bool _bDrums有効;\r
- private bool _bGuitar有効;\r
- STDGBVALUE<bool> _b楽器有効;\r
- private bool bConfigIniが存在している;\r
- private string ConfigIniファイル名;\r
-\r
- private void tJoystickIDの取得(string strキー記述)\r
- {\r
- string[] strArray = strキー記述.Split(new char[] { ',' });\r
- if (strArray.Length >= 2)\r
- {\r
- int result = 0;\r
- if ((int.TryParse(strArray[0], out result) && (result >= 0)) && (result <= 9))\r
- {\r
- if (this.dicJoystick.ContainsKey(result))\r
- {\r
- this.dicJoystick.Remove(result);\r
- }\r
- this.dicJoystick.Add(result, strArray[1]);\r
- }\r
- }\r
- }\r
- private void tキーアサインを全部クリアする()\r
- {\r
- this.KeyAssign = new CKeyAssign();\r
- for (int i = 0; i <= (int)EKeyConfigPart.SYSTEM; i++)\r
- {\r
- for (int j = 0; j <= (int)EKeyConfigPad.Capture; j++)\r
- {\r
- this.KeyAssign[i][j] = new CKeyAssign.STKEYASSIGN[16];\r
- for (int k = 0; k < 16; k++)\r
- {\r
- this.KeyAssign[i][j][k] = new CKeyAssign.STKEYASSIGN(E入力デバイス.不明, 0, 0);\r
- }\r
- }\r
- }\r
- }\r
- private void tキーの書き出し(StreamWriter sw, CKeyAssign.STKEYASSIGN[] assign)\r
- {\r
- bool flag = true;\r
- for (int i = 0; i < 0x10; i++)\r
- {\r
- if (assign[i].入力デバイス == E入力デバイス.不明)\r
- {\r
- continue;\r
- }\r
- if (!flag)\r
- {\r
- sw.Write(',');\r
- }\r
- flag = false;\r
- switch (assign[i].入力デバイス)\r
- {\r
- case E入力デバイス.キーボード:\r
- sw.Write('K');\r
- break;\r
-\r
- case E入力デバイス.MIDI入力:\r
- sw.Write('M');\r
- break;\r
-\r
- case E入力デバイス.ジョイパッド:\r
- sw.Write('J');\r
- break;\r
-\r
- case E入力デバイス.マウス:\r
- sw.Write('N');\r
- break;\r
- }\r
- sw.Write("{0}{1}", "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".Substring(assign[i].ID, 1), assign[i].コード); // #24166 2011.1.15 yyagi: to support ID > 10, change 2nd character from Decimal to 36-numeral system. (e.g. J1023 -> JA23)\r
- }\r
- }\r
- private void tキーの読み出しと設定(string strキー記述, CKeyAssign.STKEYASSIGN[] assign)\r
- {\r
- string[] strArray = strキー記述.Split(new char[] { ',' });\r
- for (int i = 0; (i < strArray.Length) && (i < 0x10); i++)\r
- {\r
- E入力デバイス e入力デバイス;\r
- int id;\r
- int code;\r
- string str = strArray[i].Trim().ToUpper();\r
- if (str.Length >= 3)\r
- {\r
- e入力デバイス = E入力デバイス.不明;\r
- switch (str[0])\r
- {\r
- case 'J':\r
- e入力デバイス = E入力デバイス.ジョイパッド;\r
- break;\r
-\r
- case 'K':\r
- e入力デバイス = E入力デバイス.キーボード;\r
- break;\r
-\r
- case 'L':\r
- continue;\r
-\r
- case 'M':\r
- e入力デバイス = E入力デバイス.MIDI入力;\r
- break;\r
-\r
- case 'N':\r
- e入力デバイス = E入力デバイス.マウス;\r
- break;\r
- }\r
- }\r
- else\r
- {\r
- continue;\r
- }\r
- id = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".IndexOf(str[1]); // #24166 2011.1.15 yyagi: to support ID > 10, change 2nd character from Decimal to 36-numeral system. (e.g. J1023 -> JA23)\r
- if (((id >= 0) && int.TryParse(str.Substring(2), out code)) && ((code >= 0) && (code <= 0xff)))\r
- {\r
- this.t指定した入力が既にアサイン済みである場合はそれを全削除する(e入力デバイス, id, code);\r
- assign[i].入力デバイス = e入力デバイス;\r
- assign[i].ID = id;\r
- assign[i].コード = code;\r
- }\r
- }\r
- }\r
- private void tデフォルトのキーアサインに設定する()\r
- {\r
- this.tキーアサインを全部クリアする();\r
-\r
- string strDefaultKeyAssign = @"\r
-[DrumsKeyAssign]\r
-\r
-HH=K035,M042,M093\r
-SD=K033,M025,M026,M027,M028,M029,M031,M032,M034,M037,M038,M040,M0113\r
-BD=K012,K0126,M033,M035,M036,M0112\r
-HT=K031,M048,M050\r
-LT=K011,M047\r
-FT=K023,M041,M043,M045\r
-CY=K022,M049,M052,M055,M057,M091\r
-HO=K010,M046,M092\r
-RD=K020,M051,M053,M059,M089\r
-LC=K026\r
-HP=M044\r
-\r
-[GuitarKeyAssign]\r
-\r
-R=K055\r
-G=K056,J012\r
-B=K057\r
-Pick=K0115,K046,J06\r
-Wail=K0116\r
-Decide=K060\r
-Cancel=K061\r
-\r
-[BassKeyAssign]\r
-\r
-R=K090\r
-G=K091,J013\r
-B=K092\r
-Pick=K0103,K0100,J08\r
-Wail=K089\r
-Decide=K096\r
-Cancel=K097\r
-\r
-[SystemKeyAssign]\r
-Capture=K065\r
-";\r
- t文字列から読み込み(strDefaultKeyAssign);\r
- }\r
- //-----------------\r
- #endregion\r
- }\r
-}\r