using System.Collections.Generic;\r
using System.Threading;\r
using System.Runtime.Serialization;\r
+using System.Diagnostics;\r
using System;\r
using FDK;\r
\r
strSongDataPath = new COptionString(@".\");\r
strFontSongSelect = new COptionString("MS PGothic");\r
strDTXManiaVersion = new COptionString(CDTXMania.VERSION);\r
- strSystemSkinSubfolderPath = new COptionString("");\r
+ strSystemSkinSubfolderPath = new COptionString(@".\Default\");\r
\r
// enum\r
eDamageLevel = new COptionEnum<EDamage>(EDamage.Normal);\r
cdLaneOrder.BsW.Value = 3;\r
\r
bConfigIniが存在している = System.IO.File.Exists(CDTXMania.Instance.strEXEのあるフォルダ + "Config.xml");\r
- ClearKeyAssign();\r
+ SetDefaultKeyAssign();\r
}\r
\r
/// <summary>\r
eHitSoundPriorityCY.Initialize("CY Priority", Properties.Resources.strCfgDrCYPriority, typeof(EHitSoundPriority));\r
eHitSoundPriorityFT.Initialize("FT Priority", Properties.Resources.strCfgDrFTPriority, typeof(EHitSoundPriority));\r
eHitSoundPriorityHH.Initialize("HH Priority", Properties.Resources.strCfgDrHHPriority, typeof(EHitSoundPriority));\r
- eJudgePriority.Initialize("Judge Priority", Properties.Resources.strCfgSysJudgePriority, typeof(EJudgeDisplayPriority));\r
+// eJudgePriority.Initialize("Judge Priority", Properties.Resources.strCfgSysJudgePriority, typeof(EJudgeDisplayPriority));\r
eActiveInst.Initialize("PlayMode", Properties.Resources.strCfgSysPlayMode, typeof(EActiveInstrument));\r
nShowLagType.Initialize("ShowLagType", Properties.Resources.strCfgSysShowLagType, typeof(EShowLagType));\r
\r
}\r
}\r
}\r
+ private void SetDefaultKeyAssign()\r
+ {\r
+ if (KeyAssign == null)\r
+ {\r
+ ClearKeyAssign();\r
+ }\r
+\r
+ SetKeyAssignFromString( strDefaultKeyAssign );\r
+ }\r
+ private void SetKeyAssignFromString( string strParam )\r
+ {\r
+ if (strParam == null)\r
+ {\r
+ return;\r
+ }\r
+ string[] paramLines = strParam.Split( new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries );\r
+ if (paramLines.Length <= 1)\r
+ {\r
+ Debug.WriteLine( "デフォルトのキーアサインを設定できませんでした1: " + strParam );\r
+ return;\r
+ }\r
+\r
+ Dictionary<string, EPad> dicStrEPad = new Dictionary<string, EPad>()\r
+ {\r
+ { "HH", EPad.HH },\r
+ { "SD", EPad.SD },\r
+ { "BD", EPad.BD },\r
+ { "HT", EPad.HT },\r
+ { "LT", EPad.LT },\r
+ { "FT", EPad.FT },\r
+ { "CY", EPad.CY },\r
+ { "HHO", EPad.HHO },\r
+ { "RD", EPad.RD },\r
+ { "LC", EPad.LC },\r
+ { "HP", EPad.HP },\r
+ { "GtR", EPad.GtR },\r
+ { "GtG", EPad.GtG },\r
+ { "GtB", EPad.GtB },\r
+ { "GtPick", EPad.GtPick },\r
+ { "GtWail", EPad.GtWail },\r
+ { "GtDecide", EPad.GtDecide },\r
+ { "GtCancel", EPad.GtCancel },\r
+ { "BsR", EPad.BsR },\r
+ { "BsG", EPad.BsG },\r
+ { "BsB", EPad.BsB },\r
+ { "BsPick", EPad.BsPick },\r
+ { "BsWail", EPad.BsWail },\r
+ { "BsDecide", EPad.BsDecide },\r
+ { "BsCancel", EPad.BsCancel },\r
+ { "Capture", EPad.Capture}\r
+ };\r
+\r
+ foreach ( string param in paramLines )\r
+ {\r
+ string[] tmp = param.Split( '=' );\r
+ if ( tmp.Length != 2 )\r
+ {\r
+ Debug.WriteLine( "デフォルトのキーアサインを設定できませんでした2: " + param );\r
+ return;\r
+ }\r
+\r
+ string strPad = tmp[ 0 ];\r
+ string[] keys = tmp[ 1 ].Split( ',' );\r
+ if ( keys.Length <= 0 )\r
+ {\r
+ Debug.WriteLine( "デフォルトのキーアサインを設定できませんでした3: " + tmp[ 1 ] );\r
+ return;\r
+ }\r
+ EPad e;\r
+ bool b = dicStrEPad.TryGetValue( strPad, out e );\r
+ if ( b == false )\r
+ {\r
+ Debug.WriteLine( "デフォルトキーアサインの文字列に誤りがあります1: " + strPad );\r
+ }\r
+ int count = 0;\r
+ foreach ( string key in keys )\r
+ {\r
+ char cInputDevice = key[ 0 ];\r
+ EInputDevice eid;\r
+ switch (cInputDevice)\r
+ {\r
+ case 'K': eid = EInputDevice.Keyboard; break;\r
+ case 'M': eid = EInputDevice.MIDIIn; break;\r
+ case 'J': eid = EInputDevice.JoyPad; break;\r
+ case 'N': eid = EInputDevice.Mouse; break;\r
+ default: eid = EInputDevice.Unknown; break;\r
+ }\r
+ int nID = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".IndexOf( key[ 1 ] ); // #24166 2011.1.15 yyagi: to support ID > 10, change 2nd character from Decimal to 36-numeral system. (e.g. J1023 -> JA23)\r
+ int nCode = Convert.ToInt32( key.Substring( 2 ) );\r
+\r
+ KeyAssign[ e ][ count ].Value.InputDevice = eid;\r
+ KeyAssign[ e ][ count ].Value.ID = nID;\r
+ KeyAssign[ e ][ count ].Value.Code = nCode;\r
+ count++;\r
+\r
+ // Debug.WriteLine( eid.ToString() + nID.ToString() + nCode.ToString() );\r
+ }\r
+ }\r
+ }\r
+const string strDefaultKeyAssign = @"\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
+HHO=K010,M046,M092\r
+RD=K020,M051,M053,M059,M089\r
+LC=K026\r
+HP=M044\r
+\r
+GtR=K055\r
+GtG=K056,J012\r
+GtB=K057\r
+GtPick=K0115,K046,J06\r
+GtWail=K0116\r
+GtDecide=K060\r
+GtCancel=K061\r
+\r
+BsR=K090\r
+BsG=K091,J013\r
+BsB=K092\r
+BsPick=K0103,K0100,J08\r
+BsWail=K089\r
+BsDecide=K096\r
+BsCancel=K097\r
+\r
+Capture=K065\r
+";\r
+ private string GetRelativePath( string strBasePath, string strTargetPath )\r
+ {\r
+ string strRelativePath = strTargetPath;\r
+ try\r
+ {\r
+ Uri uri = new Uri( strBasePath );\r
+ strRelativePath = Uri.UnescapeDataString( uri.MakeRelativeUri( new Uri( strTargetPath ) ).ToString() ).Replace( '/', '\\' );\r
+ }\r
+ catch ( UriFormatException )\r
+ {\r
+ }\r
+\r
+ return strRelativePath;\r
+ }\r
}\r
}\r