summaryrefslogtreecommitdiffstats
path: root/Level.h
diff options
context:
space:
mode:
Diffstat (limited to 'Level.h')
-rw-r--r--Level.h14
1 files changed, 12 insertions, 2 deletions
diff --git a/Level.h b/Level.h
index ede34db..792a8fc 100644
--- a/Level.h
+++ b/Level.h
@@ -6,13 +6,23 @@
#include "SharedPtr.h"
#include "PlayerStart.h"
#include "Portal.h"
+#include "LevelVertex.h"
#include <vector>
class Level : public std::vector<SharedPtr<LevelObject> > {
public:
Level() {
- push_back(SharedPtr<LevelObject>(new PlayerStart()));
- push_back(SharedPtr<LevelObject>(new Portal(2, 2, 0.4f)));
+ addWithChildren(SharedPtr<LevelObject>(new PlayerStart()));
+ addWithChildren(SharedPtr<LevelObject>(new Portal(2, 2, 0.4f)));
+ }
+
+ void addWithChildren(SharedPtr<LevelObject> object) {
+ push_back(object);
+
+ std::vector<SharedPtr<LevelObject> > children = object->getChildren();
+
+ for(std::vector<SharedPtr<LevelObject> >::iterator child = children.begin(); child != children.end(); child++)
+ addWithChildren(*child);
}
};