makefile rules for cross-compiling with mingw-w64
[laserbrain_demo] / src / scene.cc
index a31a3ce..35b562d 100644 (file)
@@ -11,6 +11,9 @@ Scene::Scene()
        nodes = 0;
 
        walk_mesh = 0;
+
+       texset = 0;
+       loader_data = 0;
 }
 
 Scene::~Scene()
@@ -20,6 +23,17 @@ Scene::~Scene()
 
 void Scene::destroy()
 {
+       clear();
+
+       metascn = 0;
+       texset = 0;
+       loader_data = 0;
+
+       datamap.clear();
+}
+
+void Scene::clear()
+{
        destroy_node_tree(nodes);
        nodes = 0;
 
@@ -182,6 +196,8 @@ static void find_nodes_rec(std::list<SceneNode*> *res, SceneNode *tree, const st
 
 Scene *Scene::extract_nodes(const char *qstr)
 {
+       if(!nodes) return 0;
+
        std::regex re{qstr};
 
        std::list<SceneNode*> nodelist;