public void Clone(KeyJoySettingPair src)
 {
     _key     = src._key;
     _joy     = src._joy;
     _keyDesc = src._keyDesc;
     _joyDesc = src._joyDesc;
     _keyLock = src._keyLock;
     _joyLock = src._joyLock;
 }
    public static void SaveInputConfig(string configFile, bool bApply = true)
    {
        XmlDocument xmlDoc = new XmlDocument();

        try{
            using (FileStream fs = new FileStream(configFile, FileMode.Open, FileAccess.Read, FileShare.Read)) {
                xmlDoc.Load(fs);
            }
        }catch (Exception e) {
            GameLog.HandleIOException(e, GameLog.EIOFileType.Settings);
            xmlDoc = new XmlDocument();
        }

        XmlElement rootNode = (XmlElement)xmlDoc.DocumentElement.SelectSingleNode(s_inputConfRootName);

        if (null == rootNode)
        {
            rootNode = xmlDoc.CreateElement(s_inputConfRootName);
            xmlDoc.DocumentElement.AppendChild(rootNode);
        }
        else
        {
            rootNode.RemoveAll();
        }
        rootNode.SetAttribute("Ver", s_inputConfVersion);

        for (int i = 0; i < s_settingsAll.Length; i++)
        {
            XmlElement typeNode = xmlDoc.CreateElement(((EPeInputSettingsType)i).ToString());
            rootNode.AppendChild(typeNode);
            for (int j = 0; j < s_settingsAll[i].Length; j++)
            {
                XmlElement keysetNode = xmlDoc.CreateElement(GetSettingName(i, j));
                typeNode.AppendChild(keysetNode);

                KeyJoySettingPair conf = s_settingsAll[i][j];
                keysetNode.SetAttribute("Key", ((int)conf._key).ToString());
                keysetNode.SetAttribute("Joy", ((int)conf._joy).ToString());
                keysetNode.SetAttribute("KeyLock", Convert.ToString(conf._keyLock));
                keysetNode.SetAttribute("JoyLock", Convert.ToString(conf._joyLock));
                keysetNode.SetAttribute("KeyDes", conf._keyDesc);
                keysetNode.SetAttribute("JoyDes", conf._joyDesc);
            }
        }
        try{
            using (FileStream fs = new FileStream(configFile, FileMode.Create, FileAccess.Write, FileShare.None)) {
                xmlDoc.Save(fs);
            }
        }catch (Exception e) {
            GameLog.HandleIOException(e, GameLog.EIOFileType.Settings);
        }

        if (bApply)
        {
            ResetLogicInput();
        }
    }
Exemple #3
0
 public LogicInput(KeyJoySettingPair keyJoy,
                   Func <bool> excluder      = null,
                   KeyPressType keyPressType = KeyPressType.Down, float[] keyPara    = null,
                   KeyPressType joyPressType = KeyPressType.JoyDown, float[] joyPara = null, LogicInput alternate = null)
 {
     _keyPressType = keyPressType;
     _joyPressType = joyPressType;
     KeyJoy        = keyJoy;
     Excluder      = excluder;
     Alternate     = alternate;
 }