Example #1
0
        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;
                            }
                        }
                    }
                }
            }
        }
Example #2
0
        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();
        }
Example #3
0
        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);
        }