- if (!strcmp(entry->getName(), "entry")) {
- if (!strcmp(entry->getStringValue("type", ""), "aircraft")) {
-
- rval = createAircraft( entry->getStringValue("class", ""),
- entry->getStringValue("path"),
- entry->getDoubleValue("latitude"),
- entry->getDoubleValue("longitude"),
- entry->getDoubleValue("altitude-ft"),
- entry->getDoubleValue("heading"),
- entry->getDoubleValue("speed-KTAS"),
- 0.0,
- entry->getDoubleValue("bank") );
-
- } else if (!strcmp(entry->getStringValue("type", ""), "ship")) {
-
- rval = createShip( entry->getStringValue("path"),
- entry->getDoubleValue("latitude"),
- entry->getDoubleValue("longitude"),
- entry->getDoubleValue("altitude-ft"),
- entry->getDoubleValue("heading"),
- entry->getDoubleValue("speed-KTAS"),
- entry->getDoubleValue("rudder") );
-
- } else if (!strcmp(entry->getStringValue("type", ""), "ballistic")) {
-
- rval = createBallistic( entry->getStringValue("path"),
- entry->getDoubleValue("latitude"),
- entry->getDoubleValue("longitude"),
- entry->getDoubleValue("altitude-ft"),
- entry->getDoubleValue("azimuth"),
- entry->getDoubleValue("elevation"),
- entry->getDoubleValue("speed") );
-
- } else if (!strcmp(entry->getStringValue("type", ""), "storm")) {
-
- rval = createStorm( entry->getStringValue("path"),
- entry->getDoubleValue("latitude"),
- entry->getDoubleValue("longitude"),
- entry->getDoubleValue("altitude-ft"),
- entry->getDoubleValue("heading"),
- entry->getDoubleValue("speed-KTAS") );
-
- } else if (!strcmp(entry->getStringValue("type", ""), "thermal")) {
-
- rval = createThermal( entry->getDoubleValue("latitude"),
- entry->getDoubleValue("longitude"),
- entry->getDoubleValue("strength-fps"),
- entry->getDoubleValue("diameter-ft") );
-
- }
- }
- }
+void
+FGAIManager::postinit() {
+ // postinit, so that it can access the Nasal subsystem
+ 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;
+ }