]> git.mxchange.org Git - simgear.git/blobdiff - simgear/structure/subsystem_mgr.cxx
Fix wrong difference calculation in SGExpression
[simgear.git] / simgear / structure / subsystem_mgr.cxx
index 6e4dff2901ed9677b02962a316051878cfb9ef65..387d097a091bd855ebfe189aeb38b092135ded59 100644 (file)
@@ -38,6 +38,11 @@ SGSubsystem::reinit ()
 {
 }
 
+void
+SGSubsystem::shutdown ()
+{
+}
+
 void
 SGSubsystem::bind ()
 {
@@ -141,6 +146,14 @@ SGSubsystemGroup::reinit ()
         _members[i]->subsystem->reinit();
 }
 
+void
+SGSubsystemGroup::shutdown ()
+{
+    // reverse order to prevent order dependency problems
+    for (unsigned int i = _members.size(); i > 0; i--)
+        _members[i-1]->subsystem->shutdown();
+}
+
 void
 SGSubsystemGroup::bind ()
 {
@@ -420,6 +433,15 @@ SGSubsystemMgr::reinit ()
             _groups[i]->reinit();
 }
 
+void
+SGSubsystemMgr::shutdown ()
+{
+    // reverse order to prevent order dependency problems
+    for (int i = MAX_GROUPS-1; i >= 0; i--)
+        _groups[i]->shutdown();
+}
+
+
 void
 SGSubsystemMgr::bind ()
 {