private void RemoveAnchorPropertyXML(int AnchorId, int propertyIdx) { XmlNode propInfo = propInfoNode(); if (propInfo == null) { return; } int Idx = -1; foreach (XmlNode Anchors in propInfo.SelectNodes("aAnchors")) { foreach (XmlNode Anchor in Anchors.SelectNodes("Item")) { if (++Idx == AnchorId) { foreach (XmlNode props in Anchor.SelectNodes("props")) { string propsstr = props.InnerText; if (propsstr.Length > 2) { propsstr = propsstr.Substring(0, propsstr.Length - 2); } else { propsstr = ""; } props.InnerText = propsstr; } } } } foreach (XmlNode numAvail in propInfo.SelectNodes("numAvailProps")) { XmlElement elemnumAvail = (XmlElement)numAvail; elemnumAvail.SetAttribute("value", (Convert.ToInt32(elemnumAvail.GetAttribute("value")) - 1).ToString()); } foreach (XmlNode pmd in propInfo.SelectNodes("aPropMetaData")) { foreach (XmlNode item in pmd.SelectNodes("Item")) { foreach (XmlNode anchorId in item.SelectNodes("anchorId")) { XmlElement elemanchorId = (XmlElement)anchorId; foreach (XmlNode propId in item.SelectNodes("propId")) { XmlElement elempropId = (XmlElement)propId; if ((Convert.ToInt32(elemanchorId.GetAttribute("value")) == AnchorId) && (Convert.ToInt32(elempropId.GetAttribute("value")) == propertyIdx)) { pmd.RemoveChild(item); return; } } } } } }
public void AnchorTypeChanged(int AnchorID, string AnchorType) { XmlNode propInfo = propInfoNode(); if (propInfo == null) { return; } foreach (XmlNode Anchors in propInfo.SelectNodes("aAnchors")) { int Idx = -1; foreach (XmlNode Anchor in Anchors.SelectNodes("Item")) { if (++Idx == AnchorID) { foreach (XmlNode anchor in Anchor.SelectNodes("anchor")) { anchor.InnerText = "ANCHOR_" + AnchorType; } } } } RefreshXml(); }
private XmlNode AnchorPropertyAddEvnt(int AnchorID, int PropertyId) { XmlNode propInfo = propInfoNode(); if (propInfo == null) { return(null); } int Idx = -1; foreach (XmlNode Anchors in propInfo.SelectNodes("aAnchors")) { foreach (XmlNode Anchor in Anchors.SelectNodes("Item")) { if (++Idx == AnchorID) { foreach (XmlNode props in Anchor.SelectNodes("props")) { if (props.InnerText == "") { props.InnerText = "0"; } else { props.InnerText += " 0"; } } foreach (XmlNode numAvail in propInfo.SelectNodes("numAvailProps")) { XmlElement elemnumAvail = (XmlElement)numAvail; elemnumAvail.SetAttribute("value", (Convert.ToInt32(elemnumAvail.GetAttribute("value")) + 1).ToString()); } foreach (XmlNode pmd in propInfo.SelectNodes("aPropMetaData")) { XmlNode NextItem = null; foreach (XmlNode item in pmd.SelectNodes("Item")) { foreach (XmlNode anchorId in item.SelectNodes("anchorId")) { XmlElement elemanchorId = (XmlElement)anchorId; if (Convert.ToInt32(elemanchorId.GetAttribute("value")) > AnchorID) { NextItem = item; break; } } } XmlElement elemItem = doc.CreateElement("Item"); XmlElement elemaudioId = doc.CreateElement("audioId"); elemItem.AppendChild(elemaudioId); elemaudioId.InnerText = "none"; XmlElement elemexpressionMods = doc.CreateElement("expressionMods"); elemItem.AppendChild(elemexpressionMods); elemexpressionMods.SetAttribute("value", "0 0 0 0 0"); XmlElement elemTexData = doc.CreateElement("texData"); elemItem.AppendChild(elemTexData); elemTexData.SetAttribute("itemType", "CPedPropTexData"); XmlElement elemrenderFlags = doc.CreateElement("renderFlags"); elemItem.AppendChild(elemrenderFlags); XmlElement elempropFlags = doc.CreateElement("propFlags"); elemItem.AppendChild(elempropFlags); elempropFlags.SetAttribute("value", "0"); XmlElement elemflags = doc.CreateElement("flags"); elemItem.AppendChild(elemflags); elemflags.SetAttribute("value", "0"); XmlElement elem_anchorId = doc.CreateElement("anchorId"); elemItem.AppendChild(elem_anchorId); elem_anchorId.SetAttribute("value", AnchorID.ToString()); XmlElement elem_propId = doc.CreateElement("propId"); elemItem.AppendChild(elem_propId); elem_propId.SetAttribute("value", PropertyId.ToString()); XmlElement elemhash = doc.CreateElement("hash_AC887A91"); elemItem.AppendChild(elemhash); elemhash.SetAttribute("value", "0"); if (NextItem != null) { pmd.InsertBefore(elemItem, NextItem); } else { pmd.AppendChild(elemItem); } return(elemItem); } } } } return(null); }