public static Room LoadFile(ContentManager Content, String s_File) { XmlReaderSettings settings = new XmlReaderSettings(); settings.ConformanceLevel = ConformanceLevel.Fragment; settings.IgnoreWhitespace = true; settings.IgnoreComments = true; Room instance = new Room(); using (XmlReader XMLReader = XmlReader.Create(s_File, settings)) { //go through the file finding these nodes and loading them while (XMLReader.Read()) { if (XMLReader.IsStartElement()) { switch (XMLReader.Name) { case "Room": //Console.WriteLine("Start <Room> element."); break; case "AnimatedSprite": //Console.WriteLine("Start <AnimatedSprite> element."); instance.RoomBase = new AnimatedSprite(); instance.RoomBase.xmlImport(XMLReader, Content); break; case "Weapon": //Console.WriteLine("Start <Weapon> element."); Items.Weapon wpn = new Items.Weapon(); wpn.xmlImport(XMLReader, Content); instance.AddItem(wpn); break; case "Psyche": //Console.WriteLine("Start <Psyche> element."); Items.Psyche psy = new Items.Psyche(); psy.xmlImport(XMLReader, Content); instance.AddItem(psy); break; case "Player": //Console.WriteLine("Start <Player> element."); Game1.ePlayer = new Entities.Player(Content); Game1.ePlayer.xmlImport(XMLReader, Content); break; case "Enemy": //Console.WriteLine("Start <Enemy> element."); Entities.Enemy eny = new Entities.Enemy(); eny.xmlImport(XMLReader, Content); instance.AddEntity(eny); break; case "BasicEnemy": //Console.WriteLine("Start <BasicEnemy> element."); Entities.BasicEnemy bsceny = new Entities.BasicEnemy(); bsceny.xmlImport(XMLReader, Content); instance.AddEntity(bsceny); break; case "SpawnerEnemy": //Console.WriteLine("Start <SpawnerEnemy> element."); Entities.SpawnerEnemy swpeny = new Entities.SpawnerEnemy(); swpeny.xmlImport(XMLReader, Content); instance.AddEntity(swpeny); break; case "BossEnemy": //Console.WriteLine("Start <BossEnemy> element."); Entities.BossEnemy bosseny = new Entities.BossEnemy(); bosseny.xmlImport(XMLReader, Content); instance.AddEntity(bosseny); break; case "Obstacle": //Console.WriteLine("Start <Obstacle> element."); Obstacle obs = new Obstacle(); obs.xmlImport(XMLReader, Content); instance.AddObject(obs); break; } } } //Console.WriteLine("End <Room> element."); } return instance; }
public new void xmlImport(XmlReader xml_Reader, ContentManager Content) { //lPsycheQueue.Clear(); while (xml_Reader.Read()) { String attrib; //Console.WriteLine("Player : " + xml_Reader.Name); switch (xml_Reader.Name) { case "Variables": //attrib = xml_Reader["PsycheMax"]; //if (attrib != null) { iPsycheMax = int.Parse(attrib); } attrib = xml_Reader["ItemPickupRange"]; if (attrib != null) { fItemPickupRange = float.Parse(attrib); } attrib = xml_Reader["ShieldDuration"]; if (attrib != null) { fShieldDuration = float.Parse(attrib); } attrib = xml_Reader["HealAmount"]; if (attrib != null) { fHealAmount = float.Parse(attrib); } attrib = xml_Reader["HealDuration"]; if (attrib != null) { fHealDuration = float.Parse(attrib); } attrib = xml_Reader["InvisibleAmount"]; if (attrib != null) { fInvisibleAmount = float.Parse(attrib); } attrib = xml_Reader["InvisibleDuration"]; if (attrib != null) { fInvisibleDuration = float.Parse(attrib); } attrib = xml_Reader["Sound_AttackSwing"]; if (attrib != null) { Content.Load<SoundEffect>(attrib); } break; case "Weapon": wWeapon = new Items.Weapon(); wWeapon.xmlImport(xml_Reader, Content); break; //case "Psyche": //if (lPsycheQueue.Count < iPsycheMax) //{ // Items.Psyche p = new Items.Psyche(); // p.xmlImport(xml_Reader, Content); // lPsycheQueue.Add(p); //} //break; case "AnimatedSprite": asAttackSprite = new AnimatedSprite(); asAttackSprite.xmlImport(xml_Reader, Content); break; case "Entity": base.xmlImport(xml_Reader, Content); break; case "Player": return; } } }