]> git.mxchange.org Git - flightgear.git/blobdiff - src/Main/globals.cxx
One more Mac helper moved into CocoaHelpers.mm
[flightgear.git] / src / Main / globals.cxx
index 767dcb5a242728a7b21f89f5fb5afca24e887b7a..163e26180c78e9d3123e431d38033c685d7cb028 100644 (file)
@@ -39,6 +39,7 @@
 #include <simgear/misc/ResourceManager.hxx>
 #include <simgear/props/propertyObject.hxx>
 #include <simgear/props/props_io.hxx>
+#include <simgear/scene/model/modellib.hxx>
 
 #include <Aircraft/controls.hxx>
 #include <Airports/runways.hxx>
@@ -190,15 +191,15 @@ FGGlobals::~FGGlobals()
         ai->unbind();
         subsystem_mgr->remove("ai-model");
     }
-    
-    subsystem_mgr->remove("fx");
-    subsystem_mgr->remove("sound");
+
+    subsystem_mgr->remove("aircraft-model");
     subsystem_mgr->remove("tile-manager");
     subsystem_mgr->remove("model-manager");
     
     subsystem_mgr->shutdown();
     subsystem_mgr->unbind();
     delete subsystem_mgr;
+    subsystem_mgr = NULL; // important so ::get_subsystem returns NULL 
     
     delete renderer;
     renderer = NULL;
@@ -216,8 +217,13 @@ FGGlobals::~FGGlobals()
 
     delete channellist;
 
+    simgear::PropertyObjectBase::setDefaultRoot(NULL);
+    simgear::SGModelLib::resetPropertyRoot();
+    
     delete locale;
     locale = NULL;
+    
+    delete props;
 }
 
 // set the fg_root path
@@ -415,6 +421,10 @@ FGGlobals::get_subsystem_mgr () const
 SGSubsystem *
 FGGlobals::get_subsystem (const char * name)
 {
+    if (!subsystem_mgr) {
+        return NULL;
+    }
+    
     return subsystem_mgr->get_subsystem(name);
 }