#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>
// deallocation of AIModel objects. To ensure we can safely
// shut down all subsystems, make sure we take down the
// AIModels system first.
- SGSubsystem* ai = subsystem_mgr->remove("ai-model");
+ SGSubsystem* ai = globals->get_subsystem("ai-model");
if (ai) {
ai->unbind();
- delete ai;
+ subsystem_mgr->remove("ai-model");
}
- SGSubsystem* sound = 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;
delete fontcache;
delete channellist;
- delete sound;
+ simgear::PropertyObjectBase::setDefaultRoot(NULL);
+ simgear::SGModelLib::resetPropertyRoot();
+
delete locale;
locale = NULL;
+
+ delete props;
}
// set the fg_root path
SGSubsystem *
FGGlobals::get_subsystem (const char * name)
{
+ if (!subsystem_mgr) {
+ return NULL;
+ }
+
return subsystem_mgr->get_subsystem(name);
}