public static Level fromXML(XmlElement node, Game gameref, String campaignPath)
        {
            Level newLvl = new Level();

            newLvl.number = int.Parse(node.GetElementsByTagName("number")[0].FirstChild.Value);
            if (node.HasAttribute("autoProgress"))
            {
                newLvl.autoProgress = bool.Parse(node.GetAttribute("autoProgress"));
            }
            newLvl.name = node.GetAttribute("name");
            foreach (string singleAdj in node.GetElementsByTagName("adj")[0].FirstChild.Value.Split(','))
            {
                newLvl.adjacent.Add(Int32.Parse(singleAdj));
            }
            XmlNodeList list = node.GetElementsByTagName("prereq");

            if (list.Count > 0 && list[0].FirstChild != null)
            {
                foreach (string singlePrereq in node.GetElementsByTagName("prereq")[0].FirstChild.Value.Split(','))
                {
                    newLvl.prereq.Add(Int32.Parse(singlePrereq));
                }
            }
            newLvl.loc = XMLUtil.fromXMLVector2(node.GetElementsByTagName("location")[0]);
            if (node.GetElementsByTagName("horizonPath").Count > 0)
            {
                newLvl.horizon = node.GetElementsByTagName("horizonPath")[0].FirstChild.Value;
            }
            if (node.GetElementsByTagName("items").Count > 0)
            {
                foreach (XmlElement item in node.GetElementsByTagName("items")[0].ChildNodes)
                {
                    newLvl.items.Add(GameItem.fromXML(item));
                }
            }
            if (node.GetElementsByTagName("spawns").Count > 0)
            {
                foreach (XmlElement item in node.GetElementsByTagName("spawns")[0].ChildNodes)
                {
                    newLvl.spawns.Add(SpawnPoint.fromXML(item));
                }
            }

            /*XmlNodeList storyNodes = node.GetElementsByTagName("story");
             * if (storyNodes.Count > 0 && storyNodes[0].ChildNodes.Count > 0)
             *  foreach (XmlNode item in storyNodes[0].ChildNodes)
             *      newLvl.storyElements.Add(StoryElement.fromXML(item, gameref));*/
            newLvl.levelLength = int.Parse(node.GetAttribute("length"));
            foreach (XmlElement graphic in node.GetElementsByTagName("graphic"))
            {
                newLvl.backgroundItems.Add(BackgroundItemStruct.fromXML(graphic));
            }
            return(newLvl);
        }
 public SpawnPoint Clone()
 {
     return(SpawnPoint.fromXML(fromNode));
 }