void RemoveFromXML(LoadoutPreset loadout)
    {
        XmlNode nodeToRemove = GetXmlNode(loadout);

        if (nodeToRemove != null)
        {
            XmlNode prevNode = nodeToRemove.PreviousSibling;
            nodeToRemove.OwnerDocument.DocumentElement.RemoveChild(nodeToRemove);

            if (prevNode != null && (prevNode.NodeType == XmlNodeType.Whitespace || prevNode.NodeType == XmlNodeType.SignificantWhitespace))
            {
                prevNode.OwnerDocument.DocumentElement.RemoveChild(prevNode);
            }
        }

        LoadoutPresetDoc.Save(LoadoutPresetPath);
    }
    void AddPresetToXML(LoadoutPreset loadout)
    {
        if (LoadoutPresetDoc.DocumentElement == null)
        {
            LoadoutPresetDoc = new XmlDocument();
            XmlDeclaration xmlDec = LoadoutPresetDoc.CreateXmlDeclaration("1.0", "UTF-8", null);
            XmlElement     root   = LoadoutPresetDoc.DocumentElement;
            LoadoutPresetDoc.InsertBefore(xmlDec, root);
            XmlElement presets = LoadoutPresetDoc.CreateElement("Presets");
            LoadoutPresetDoc.AppendChild(presets);
        }

        XmlNode preset = LoadoutPresetDoc.CreateElement("Preset");

        LoadoutPresetDoc.DocumentElement.AppendChild(preset);

        XmlAttribute nameAttr = LoadoutPresetDoc.CreateAttribute("name");

        nameAttr.Value = loadout.presetName;
        preset.Attributes.Prepend(nameAttr);

        XmlNode activeAbilities = LoadoutPresetDoc.CreateElement("ActiveAbilities");

        preset.AppendChild(activeAbilities);

        for (int i = 0; i < loadout.activeAbilityNames.Count; i++)
        {
            XmlNode ability = LoadoutPresetDoc.CreateElement("Ability");
            ability.InnerText = loadout.activeAbilityNames[i];
            activeAbilities.AppendChild(ability);
        }

        XmlNode loadoutAbilities = LoadoutPresetDoc.CreateElement("LoadoutAbilities");

        preset.AppendChild(loadoutAbilities);

        for (int i = 0; i < loadout.loadoutAbilityNames.Count; i++)
        {
            XmlNode ability = LoadoutPresetDoc.CreateElement("Ability");
            ability.InnerText = loadout.loadoutAbilityNames[i];
            loadoutAbilities.AppendChild(ability);
        }

        LoadoutPresetDoc.Save(LoadoutPresetPath);
    }