]> git.mxchange.org Git - flightgear.git/blobdiff - src/AIModel/AIManager.cxx
backport from JSBSim/cvs: apply prop sense only once (OK'ed by JSB)
[flightgear.git] / src / AIModel / AIManager.cxx
index 19a6c76b1f9ecb4d85817dea778a663b64423d81..cec1980acae042af721f65470b2b95bcdcf2d148 100644 (file)
@@ -79,13 +79,24 @@ FGAIManager::init() {
 void
 FGAIManager::postinit() {
     // postinit, so that it can access the Nasal subsystem
-    for(int i = 0 ; i < root->nChildren() ; i++) {
-        SGPropertyNode *aiEntry = root->getChild( i );
-        if( !strcmp( aiEntry->getName(), "scenario" ) ) {
-            scenario_filename = aiEntry->getStringValue();
-            if (!scenario_filename.empty())
-                processScenario( scenario_filename );
+    map<string, bool> scenarios;
+    for (int i = 0 ; i < root->nChildren() ; i++) {
+        SGPropertyNode *n = root->getChild(i);
+        if (strcmp(n->getName(), "scenario"))
+            continue;
+
+        string name = n->getStringValue();
+        if (name.empty())
+            continue;
+
+        if (scenarios.find(name) != scenarios.end()) {
+            SG_LOG(SG_GENERAL, SG_WARN, "won't load scenario '" << name << "' twice");
+            continue;
         }
+
+        SG_LOG(SG_GENERAL, SG_INFO, "loading scenario '" << name << '\'');
+        processScenario(name);
+        scenarios[name] = true;
     }
 }