#include "AICarrier.hxx"
#include "AIStatic.hxx"
#include "AIMultiplayer.hxx"
+#include "AITanker.hxx"
#include <simgear/math/sg_geodesy.hxx>
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;
}
}
props->setIntValue("id", -1);
props->setBoolValue("radar/in-range", false);
props->setIntValue("refuel/tanker", false);
+ props->setStringValue("sim/multiplay/chat", "");
+ props->setStringValue("sim/multiplay/transmission-freq-hz", "");
ai_list_itr = ai_list.erase(ai_list_itr);
} else {
continue;
std::string type = scEntry->getStringValue("type", "aircraft");
- if (type == "aircraft") {
+ if (type == "tanker") { // refueling scenarios
+ FGAITanker* tanker = new FGAITanker;
+ tanker->readFromScenario(scEntry);
+ attach(tanker);
+ } else if (type == "aircraft") {
FGAIAircraft* aircraft = new FGAIAircraft;
aircraft->readFromScenario(scEntry);
attach(aircraft);