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 void addLevel()
 {
     Level item = new Level();
     selectedLevelIndex = levels.Count;
     item.number = selectedLevelIndex;
     item.loc.X = Mouse.GetState().X;
     item.loc.Y = Mouse.GetState().Y;
     levels.Add(item);
     control.setLevelInfo(item.loc.X, item.loc.Y, item.name, item.number, false);
 }