out[0] = out[1] = out[2] = 0;
in[3] = out[3] = 1;
string contents_node;
+ contrail_altitude = 30000.0;
}
FGSubmodelMgr::~FGSubmodelMgr ()
FGSubmodelMgr::init ()
{
load();
- _serviceable_node = fgGetNode("/sim/systems/submodels/serviceable", true);
+ _serviceable_node = fgGetNode("/sim/submodels/serviceable", true);
_user_lat_node = fgGetNode("/position/latitude-deg", true);
_user_lon_node = fgGetNode("/position/longitude-deg", true);
_user_speed_east_fps_node = fgGetNode("/velocities/speed-east-fps",true);
_user_speed_north_fps_node = fgGetNode("/velocities/speed-north-fps",true);
- ai = (FGAIManager*)globals->get_subsystem("ai_model");
+ _contrail_altitude_node = fgGetNode("/environment/params/contrail-altitude", true);
+ contrail_altitude = _contrail_altitude_node->getDoubleValue();
+ _contrail_trigger = fgGetNode("ai/submodels/contrails", true);
+ _contrail_trigger->setBoolValue(false);
+ ai = (FGAIManager*)globals->get_subsystem("ai_model");
}
{
if (!(_serviceable_node->getBoolValue())) return;
int i=-1;
+
+ if (_user_alt_node->getDoubleValue() > contrail_altitude) {
+ _contrail_trigger->setBoolValue(true);
+ }
+
submodel_iterator = submodels.begin();
while(submodel_iterator != submodels.end()) {
i++;
entity.wind = sm->wind;
entity.cd = sm->cd;
entity.mass = IC.mass;
+ entity.aero_stabilised = sm->aero_stabilised;
ai->createBallistic( &entity );
if (sm->count > 0) (sm->count)--;
{
int i;
- SGPropertyNode *path = fgGetNode("/sim/systems/submodels/path");
+ SGPropertyNode *path = fgGetNode("/sim/submodels/path");
SGPropertyNode root;
if (path) {
sm->first_time = false;
sm->cd = entry_node->getDoubleValue("cd", 0.193);
sm->weight = entry_node->getDoubleValue("weight", 0.25);
+ sm->aero_stabilised = entry_node->getBoolValue ("aero-stabilised", true);
sm->contents_node = fgGetNode(entry_node->getStringValue("contents", "none"), true);
sm->trigger->setBoolValue(false);
sm->contents = sm->contents_node->getDoubleValue();
- sm->prop = fgGetNode("/systems/submodels/submodel", i, true);
+ sm->prop = fgGetNode("/ai/submodels/submodel", i, true);
sm->prop->tie("count", SGRawValuePointer<int>(&(sm->count)));
// sm->prop->tie("contents", SGRawValuePointer<double>(&(sm->contents)));