Ejemplo n.º 1
0
    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;
    }