private ArrayList LoadRooms() { XmlDocument roomFile = new XmlDocument(); roomFile.Load("Assets/Rooms.xml"); if(roomFile == null){ //TODO: Display File Not Found Error return null; } //roomFile.ChildNodes.size(); ArrayList roomSets = new ArrayList(); roomSets.Add (new ArrayList()); //Basic Room roomSets.Add (new ArrayList()); //Mini-Boss Room roomSets.Add (new ArrayList()); //Boss room foreach( XmlNode roomXML in roomFile.SelectNodes("Rooms//Room")){ ArrayList rooms = null; switch(roomXML.SelectSingleNode("RoomType").InnerText){ case "Mini-Boss": rooms = ((ArrayList)roomSets[1]); break; case "Boss": rooms = ((ArrayList)roomSets[2]); break; default: rooms = ((ArrayList)roomSets[0]); break; } //TODO: add error checking code Room room = new Room(float.Parse(roomXML.SelectSingleNode("XOffSet").InnerText), float.Parse (roomXML.SelectSingleNode("YOffSet").InnerText)); foreach( XmlNode objXML in roomXML.SelectNodes("Object")){ room.addObj( objXML.SelectSingleNode("Type").InnerText, float.Parse( objXML.SelectSingleNode("PositionX").InnerText), float.Parse( objXML.SelectSingleNode("PositionY").InnerText), float.Parse( objXML.SelectSingleNode("RotationZ").InnerText), float.Parse( objXML.SelectSingleNode("ScaleX").InnerText), float.Parse( objXML.SelectSingleNode("ScaleY").InnerText) ); } rooms.Add(room); } return roomSets; }