diff options
Diffstat (limited to 'Level.h')
-rw-r--r-- | Level.h | 14 |
1 files changed, 12 insertions, 2 deletions
@@ -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); } }; |