-// FGAIScenario - class for loading an AI scenario
+// FGAIScenario.cxx - class for loading an AI scenario
// Written by David Culp, started May 2004
// - davidculp2@comcast.net
//
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-#include "AIScenario.hxx"
#include <simgear/misc/sg_path.hxx>
#include <simgear/debug/logstream.hxx>
#include <simgear/structure/exception.hxx>
# define exception c_exception
#endif
#include <simgear/props/props.hxx>
+
#include <Main/globals.hxx>
#include <Main/fg_props.hxx>
+#include "AIScenario.hxx"
+#include "AIFlightPlan.hxx"
+
+
-FGAIScenario::FGAIScenario(string filename)
+FGAIScenario::FGAIScenario(string &filename)
{
int i;
SGPath path( globals->get_fg_root() );
return;
}
+ entries.clear();
SGPropertyNode * node = root.getNode("scenario");
for (i = 0; i < node->nChildren(); i++) {
//cout << "Reading entry " << i << endl;
- entry* en = new entry;
- entries.push_back( en );
SGPropertyNode * entry_node = node->getChild(i);
+
+ FGAIModelEntity* en = new FGAIModelEntity;
en->callsign = entry_node->getStringValue("callsign", "none");
- en->aitype = entry_node->getStringValue("type", "aircraft");
- en->aircraft_class = entry_node->getStringValue("class", "jet_transport");
- en->model_path = entry_node->getStringValue("model", "Models/Geometry/glider.ac");
+ en->m_type = entry_node->getStringValue("type", "aircraft");
+ en->m_class = entry_node->getStringValue("class", "jet_transport");
+ en->path = entry_node->getStringValue("model", "Models/Geometry/glider.ac");
en->flightplan = entry_node->getStringValue("flightplan", "");
en->repeat = entry_node->getDoubleValue("repeat", 0.0);
en->latitude = entry_node->getDoubleValue("latitude", 0.0);
en->strength = entry_node->getDoubleValue("strength-fps", 0.0);
en->diameter = entry_node->getDoubleValue("diameter-ft", 0.0);
en->eda = entry_node->getDoubleValue("eda", 0.007);
+ en->life = entry_node->getDoubleValue("life", 900.0);
+ en->buoyancy = entry_node->getDoubleValue("buoyancy", 0);
+ en->wind_from_east = entry_node->getDoubleValue("wind_from_east", 0);
+ en->wind_from_north = entry_node->getDoubleValue("wind_from_north", 0);
+ en->wind = entry_node->getBoolValue("wind", false);
+ en->cd = entry_node->getDoubleValue ("cd", 0.029);
+ en->mass = entry_node->getDoubleValue ("mass", 0.007);
+
+
+ en->fp = NULL;
+ if (en->flightplan != ""){
+ en->fp = new FGAIFlightPlan( en->flightplan );
+ }
+ entries.push_back( en );
}
entry_iterator = entries.begin();
}
-FGAIScenario::entry*
+FGAIModelEntity*
FGAIScenario::getNextEntry( void )
{
if (entries.size() == 0) return 0;
return entries.size();
}
+// end scenario.cxx