X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=laserbrain_demo;a=blobdiff_plain;f=src%2Fmetascene.h;h=c363901346afac6a92680591e4a522b4326cc34e;hp=8d512eb9ee6b398fa32d16d9a57a8f0ee3aa86f1;hb=fb11663a3654acd0132e71e5652e35b0ea72d544;hpb=72b941af07bbf2673539ad4eea073e68d3bcbbfc diff --git a/src/metascene.h b/src/metascene.h index 8d512eb..c363901 100644 --- a/src/metascene.h +++ b/src/metascene.h @@ -1,8 +1,43 @@ #ifndef METASCENE_H_ #define METASCENE_H_ -class Scene; +#include +#include "scene.h" +#include "mesh.h" +#include "audio/ovstream.h" +#include "datamap.h" -bool load_scene(Scene *scn, const char *fname); +class MetaScene { +public: + DataMap datamap; + + std::vector scenes; + + Mesh *walk_mesh; + Vec3 start_pos; + Quat start_rot; + + std::map scndata; + + AudioStream *music; + + MetaScene(); + ~MetaScene(); + + bool load(const char *fname); + bool scene_loaded(Scene *scn); + + void update(float dt); + void draw() const; + + /* helper functions which end up calling the corresponding Scene functions + * for every scene + */ + SceneNode *find_node(const char *name) const; + SceneNode *match_node(const char *qstr) const; + std::list match_nodes(const char *qstr) const; + + Scene *extract_nodes(const char *qstr); +}; #endif // METASCENE_H_