1
0
Fork 0

prevent multiple loading of one and the same scenario

This commit is contained in:
mfranz 2007-08-03 18:02:33 +00:00
parent e1019eb359
commit fad737b41e
2 changed files with 17 additions and 8 deletions

View 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;
}
}

View file

@ -110,8 +110,6 @@ private:
SGPropertyNode_ptr wind_from_east_node;
SGPropertyNode_ptr wind_from_north_node;
string scenario_filename;
double user_latitude;
double user_longitude;
double user_altitude;