diff options
Diffstat (limited to 'src/Data/Level.cpp')
-rw-r--r-- | src/Data/Level.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/Data/Level.cpp b/src/Data/Level.cpp index 4da62ea..e3c69fd 100644 --- a/src/Data/Level.cpp +++ b/src/Data/Level.cpp @@ -22,7 +22,21 @@ namespace ZoomEdit { namespace Data { - +Level::Level(xmlpp::Element *levelNode) { + roomsNode = dynamic_cast<xmlpp::Element*>(levelNode->get_children("rooms").front()); + + if(!roomsNode) + return; + + xmlpp::Node::NodeList roomList = roomsNode->get_children("room"); + + for(xmlpp::Node::NodeList::iterator room = roomList.begin(); room != roomList.end(); ++room) { + xmlpp::Element *roomNode = dynamic_cast<xmlpp::Element*>(*room); + + if(roomNode) + rooms.push_front(Room(roomNode)); + } +} } } |