_load_resistance(0),
_solid(false),
_impact_data(false),
+ _impact_report_node(0),
_impact_energy(0),
_impact_speed(0),
_impact_lat(0),
setNoRoll(scFileNode->getBoolValue("no-roll", false));
setRandom(scFileNode->getBoolValue("random", false));
setImpact(scFileNode->getBoolValue("impact", false));
+ setImpactReportNode(scFileNode->getStringValue("impact-reports"));
setName(scFileNode->getStringValue("name", "Bomb"));
}
_impact = i;
}
+void FGAIBallistic::setImpactReportNode(const string& path) {
+ if (path.empty())
+ _impact_report_node = 0;
+ else
+ _impact_report_node = fgGetNode(path.c_str(), true);
+}
+
void FGAIBallistic::setName(const string& n) {
_name = n;
}
// report impact by setting tied variables
if (_ht_agl_ft <= 0) {
+ _impact_data = true;
+
_impact_lat = pos.getLatitudeDeg();
_impact_lon = pos.getLongitudeDeg();
_impact_elev = elevation_m;
_impact_energy = (_mass * slugs_to_kgs) * _impact_speed
* _impact_speed / (2 * 1000);
- props->setBoolValue("impact/signal", true); // for listeners
- _impact_data = true;
+ if (_impact_report_node)
+ _impact_report_node->setStringValue(props->getPath());
}
}
void setRandom( bool r );
void setName(const string&);
void setImpact(bool i);
+ void setImpactReportNode(const string&);
double _getTime() const;
bool _solid; // if true ground is solid for FDMs
bool _impact; // if true an impact point on the terrain is calculated
bool _impact_data; // if true impact data have been set
-
+ SGPropertyNode_ptr _impact_report_node;
+
double _impact_energy;
double _impact_speed;
double _impact_lat;
ballist->setNoRoll(sm->no_roll);
ballist->setName(sm->name);
ballist->setImpact(sm->impact);
+ ballist->setImpactReportNode(sm->impact_reports);
ai->attach(ballist);
if (sm->count > 0)
sm->aero_stabilised = entry_node->getBoolValue("aero-stabilised", true);
sm->no_roll = entry_node->getBoolValue("no-roll", false);
sm->impact = entry_node->getBoolValue("impact", false);
+ sm->impact_reports = entry_node->getStringValue("impact-reports");
sm->contents_node = fgGetNode(entry_node->getStringValue("contents", "none"), false);
sm->speed_node = fgGetNode(entry_node->getStringValue("speed-node", "none"), false);