]> git.mxchange.org Git - simgear.git/blobdiff - simgear/structure/subsystem_mgr.cxx
Tweak APi for GCC happiness.
[simgear.git] / simgear / structure / subsystem_mgr.cxx
index 8a3d6a7081f315296e358889a85eb333695ffd7d..1e1425528e1a94f595e7b4de4e088c188b15d9a3 100644 (file)
@@ -150,7 +150,7 @@ public:
 SGSubsystemGroup::SGSubsystemGroup () :
   _fixedUpdateTime(-1.0),
   _updateTimeRemainder(0.0),
-  _initPosition(-1)
+  _initPosition(0)
 {
 }
 
@@ -173,9 +173,6 @@ SGSubsystemGroup::init ()
 SGSubsystem::InitStatus
 SGSubsystemGroup::incrementalInit()
 {
-  if (_initPosition < 0)
-    _initPosition = 0;
-  
   if (_initPosition >= _members.size())
     return INIT_DONE;
   
@@ -210,7 +207,7 @@ SGSubsystemGroup::shutdown ()
     // reverse order to prevent order dependency problems
     for (unsigned int i = _members.size(); i > 0; i--)
         _members[i-1]->subsystem->shutdown();
-  _initPosition = -1;
+  _initPosition = 0;
 }
 
 void
@@ -284,6 +281,16 @@ SGSubsystemGroup::resume ()
         _members[i]->subsystem->resume();
 }
 
+string_list
+SGSubsystemGroup::member_names() const
+{
+       string_list result;
+       for (unsigned int i = 0; i < _members.size(); i++)
+               result.push_back( _members[i]->name );
+       
+       return result;
+}
+
 bool
 SGSubsystemGroup::is_suspended () const
 {
@@ -412,7 +419,7 @@ SGSubsystemGroup::Member::update (double delta_time_sec)
 
 
 SGSubsystemMgr::SGSubsystemMgr () :
-  _initPosition(-1)
+  _initPosition(0)
 {
   for (int i = 0; i < MAX_GROUPS; i++) {
     _groups[i] = new SGSubsystemGroup;
@@ -440,9 +447,6 @@ SGSubsystemMgr::init ()
 SGSubsystem::InitStatus
 SGSubsystemMgr::incrementalInit()
 {
-  if (_initPosition < 0)
-    _initPosition = 0;
-  
   if (_initPosition >= MAX_GROUPS)
     return INIT_DONE;
   
@@ -474,7 +478,7 @@ SGSubsystemMgr::shutdown ()
     for (int i = MAX_GROUPS-1; i >= 0; i--)
         _groups[i]->shutdown();
   
-    _initPosition = -1;
+    _initPosition = 0;
 }