summaryrefslogtreecommitdiffstats
path: root/src/Data/Level.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Data/Level.cpp')
-rw-r--r--src/Data/Level.cpp16
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));
+ }
+}
}
}