]> git.mxchange.org Git - flightgear.git/blobdiff - src/Main/fgfs.cxx
Moved random ground cover object management code (userdata.[ch]xx) over
[flightgear.git] / src / Main / fgfs.cxx
index fda5ddf4ef2851a8a6a81cf81331a051ced0afec..c92e995267766e0e7ae734ecbdc88ad21fc05631 100644 (file)
@@ -80,67 +80,63 @@ FGSubsystemGroup::FGSubsystemGroup ()
 
 FGSubsystemGroup::~FGSubsystemGroup ()
 {
-    for (int i = 0; i < _members.size(); i++)
+    for (unsigned int i = 0; i < _members.size(); i++)
         delete _members[i];
 }
 
 void
 FGSubsystemGroup::init ()
 {
-    for (int i = 0; i < _members.size(); i++)
+    for (unsigned int i = 0; i < _members.size(); i++)
         _members[i]->subsystem->init();
 }
 
 void
 FGSubsystemGroup::reinit ()
 {
-    for (int i = 0; i < _members.size(); i++)
+    for (unsigned int i = 0; i < _members.size(); i++)
         _members[i]->subsystem->reinit();
 }
 
 void
 FGSubsystemGroup::bind ()
 {
-    for (int i = 0; i < _members.size(); i++)
+    for (unsigned int i = 0; i < _members.size(); i++)
         _members[i]->subsystem->bind();
 }
 
 void
 FGSubsystemGroup::unbind ()
 {
-    for (int i = 0; i < _members.size(); i++)
+    for (unsigned int i = 0; i < _members.size(); i++)
         _members[i]->subsystem->unbind();
 }
 
 void
 FGSubsystemGroup::update (double delta_time_sec)
 {
-    if (!is_suspended()) {
-        for (int i = 0; i < _members.size(); i++)
-            _members[i]->update(delta_time_sec); // indirect call
-    }
+    for (unsigned int i = 0; i < _members.size(); i++)
+        _members[i]->update(delta_time_sec); // indirect call
 }
 
 void
 FGSubsystemGroup::suspend ()
 {
-    FGSubsystem::suspend();
-    for (int i = 0; i < _members.size(); i++)
+    for (unsigned int i = 0; i < _members.size(); i++)
         _members[i]->subsystem->suspend();
 }
 
 void
 FGSubsystemGroup::resume ()
 {
-    FGSubsystem::resume();
-    for (int i = 0; i < _members.size(); i++)
+    for (unsigned int i = 0; i < _members.size(); i++)
         _members[i]->subsystem->resume();
 }
 
 bool
 FGSubsystemGroup::is_suspended () const
 {
-    return FGSubsystem::is_suspended();
+    return false;
 }
 
 void
@@ -168,7 +164,7 @@ FGSubsystemGroup::get_subsystem (const string &name)
 void
 FGSubsystemGroup::remove_subsystem (const string &name)
 {
-    for (int i = 0; i < _members.size(); i++) {
+    for (unsigned int i = 0; i < _members.size(); i++) {
         if (name == _members[i]->name) {
             _members.erase(_members.begin() + i);
             return;
@@ -185,7 +181,7 @@ FGSubsystemGroup::has_subsystem (const string &name) const
 FGSubsystemGroup::Member *
 FGSubsystemGroup::get_member (const string &name, bool create)
 {
-    for (int i = 0; i < _members.size(); i++) {
+    for (unsigned int i = 0; i < _members.size(); i++) {
         if (_members[i]->name == name)
             return _members[i];
     }
@@ -229,8 +225,10 @@ FGSubsystemGroup::Member::update (double delta_time_sec)
 {
     elapsed_sec += delta_time_sec;
     if (elapsed_sec >= min_step_sec) {
-        subsystem->update(delta_time_sec);
-        elapsed_sec -= min_step_sec;
+        if (!subsystem->is_suspended()) {
+            subsystem->update(elapsed_sec);
+            elapsed_sec = 0;
+        }
     }
 }
 
@@ -280,16 +278,14 @@ FGSubsystemMgr::unbind ()
 void
 FGSubsystemMgr::update (double delta_time_sec)
 {
-    if (!is_suspended()) {
-        for (int i = 0; i < MAX_GROUPS; i++)
-            _groups[i].update(delta_time_sec);
+    for (int i = 0; i < MAX_GROUPS; i++) {
+        _groups[i].update(delta_time_sec);
     }
 }
 
 void
 FGSubsystemMgr::suspend ()
 {
-    FGSubsystem::suspend();
     for (int i = 0; i < MAX_GROUPS; i++)
         _groups[i].suspend();
 }
@@ -297,7 +293,6 @@ FGSubsystemMgr::suspend ()
 void
 FGSubsystemMgr::resume ()
 {
-    FGSubsystem::resume();
     for (int i = 0; i < MAX_GROUPS; i++)
         _groups[i].resume();
 }
@@ -305,12 +300,12 @@ FGSubsystemMgr::resume ()
 bool
 FGSubsystemMgr::is_suspended () const
 {
-    return FGSubsystem::is_suspended();
+    return false;
 }
 
 void
-FGSubsystemMgr::add (GroupType group, const string &name,
-                     FGSubsystem * subsystem, double min_time_sec)
+FGSubsystemMgr::add (const char * name, FGSubsystem * subsystem,
+                     GroupType group, double min_time_sec)
 {
     SG_LOG(SG_GENERAL, SG_INFO, "Adding subsystem " << name);
     get_group(group)->set_subsystem(name, subsystem, min_time_sec);