Ejemplo n.º 1
0
        static public void ReplaceCharacter(CharConverter app, XmlNode parentNode, XmlNode newNode, XmlNode oldNode)
        {
            //powers

            /* DEBUG
             * XmlNodeList nodelist = newNode.SelectSingleNode("powers").ChildNodes;
             * for (int powercatindex = 0; powercatindex < nodelist.Count; powercatindex++)
             * {
             *  XmlNode powercat = nodelist[powercatindex];
             *  XmlNode powernode = powercat.SelectSingleNode("power");
             *  XmlNodeList powers = powernode.ChildNodes;
             *  foreach (XmlNode power in powers)
             *  {
             *      String value = app.ValueOf(power, "name");
             *      XmlNode existingpower = CheckForExistingPower(app, oldNode, value);
             *
             *      if (existingpower == null)
             *          continue;
             *
             *      powernode.RemoveChild(power);
             *      powernode.AppendChild(CharConverter.ImportIdNode(newNode.OwnerDocument, powernode, existingpower));
             *  }
             * }
             */
            XmlNode     nodePowers    = newNode.SelectSingleNode("powers");
            XmlNodeList nodePowerList = nodePowers.ChildNodes;

            foreach (XmlNode nodePower in nodePowerList)
            {
                String  value         = app.ValueOf(nodePower, "name");
                XmlNode existingpower = CheckForExistingPower(app, oldNode, value);

                if (existingpower == null)
                {
                    continue;
                }

                nodePowers.RemoveChild(nodePower);
                nodePowers.AppendChild(CharConverter.ImportIdNode(newNode.OwnerDocument, nodePower, existingpower));
            }

            //notes
            app.ReplaceElement(oldNode, newNode, "notes");

            //appearance
            app.ReplaceElement(oldNode, newNode, "appearance");
        }
Ejemplo n.º 2
0
        static public void ReplaceCharacter(CharConverter app, XmlNode parentNode, XmlNode newNode, XmlNode oldNode)
        {
            //spellset
            XmlNodeList nodelist = newNode.SelectSingleNode("spellset").ChildNodes;

            foreach (XmlNode spellset in nodelist)
            {
                if (spellset.SelectSingleNode("levels") == null)
                {
                    continue;
                }

                XmlNodeList levels = spellset.SelectSingleNode("levels").ChildNodes;
                for (int levelindex = 0; levelindex < levels.Count; levelindex++)
                {
                    XmlNode     level      = levels[levelindex];
                    XmlNode     spells     = level.SelectSingleNode("spells");
                    XmlNodeList spellslist = spells.ChildNodes;
                    for (int i = spellslist.Count - 1; i >= 0; i--)
                    {
                        XmlNode spell         = spellslist[i];
                        String  value         = app.ValueOf(spell, "name");
                        XmlNode existingspell = CheckForExistingSpell(app, oldNode, value, levelindex);

                        if (existingspell == null)
                        {
                            continue;
                        }

                        spells.RemoveChild(spell);
                        spells.AppendChild(CharConverter.ImportIdNode(newNode.OwnerDocument, spells, existingspell));
                    }
                }
            }

            //notes
            app.ReplaceElement(oldNode, newNode, "notes");

            //appearance
            app.ReplaceElement(oldNode, newNode, "appearance");
        }