input->setStringValue("");
input->addChangeListener(listener);
- SGCommandMgr* cmdMgr = SGCommandMgr::instance();
+ SGCommandMgr* cmdMgr = globals->get_commands();
cmdMgr->addCommand("define-user-waypoint", this, &FGRouteMgr::commandDefineUserWaypoint);
cmdMgr->addCommand("delete-user-waypoint", this, &FGRouteMgr::commandDeleteUserWaypoint);
_plan->removeDelegate(this);
}
- SGCommandMgr* cmdMgr = SGCommandMgr::instance();
+ SGCommandMgr* cmdMgr = globals->get_commands();
cmdMgr->removeCommand("define-user-waypoint");
cmdMgr->removeCommand("delete-user-waypoint");
cmdMgr->removeCommand("load-flightplan");
departure->tie("name", SGRawValueMethods<FGRouteMgr, const char*>(*this,
&FGRouteMgr::getDepartureName, NULL));
departure->tie("field-elevation-ft", SGRawValueMethods<FGRouteMgr, double>(*this,
- &FGRouteMgr::getDestinationFieldElevation, NULL));
+ &FGRouteMgr::getDepartureFieldElevation, NULL));
departure->getChild("etd", 0, true);
departure->getChild("takeoff-time", 0, true);
&FGRouteMgr::getDestinationFieldElevation, NULL));
destination->getChild("eta", 0, true);
+ destination->getChild("eta-seconds", 0, true);
destination->getChild("touchdown-time", 0, true);
alternate = fgGetNode(RM "alternate", true);
wp0->getChild("id", 0, true);
wp0->getChild("dist", 0, true);
wp0->getChild("eta", 0, true);
+ wp0->getChild("eta-seconds", 0, true);
wp0->getChild("bearing-deg", 0, true);
wp1 = fgGetNode(RM "wp", 1, true);
wp1->getChild("id", 0, true);
wp1->getChild("dist", 0, true);
wp1->getChild("eta", 0, true);
+ wp1->getChild("eta-seconds", 0, true);
wpn = fgGetNode(RM "wp-last", 0, true);
wpn->getChild("dist", 0, true);
wpn->getChild("eta", 0, true);
+ wpn->getChild("eta-seconds", 0, true);
_pathNode = fgGetNode(RM "file-path", 0, true);
}
wp0->setDoubleValue("true-bearing-deg", courseDeg);
courseDeg -= magvar->getDoubleValue(); // expose magnetic bearing
wp0->setDoubleValue("bearing-deg", courseDeg);
- setETAPropertyFromDistance(wp0->getChild("eta"), distanceM);
+ setETAPropertyFromDistance(wp0, distanceM);
double totalPathDistanceNm = _plan->totalDistanceNm();
double totalDistanceRemaining = distanceM * SG_METER_TO_NM; // distance to current waypoint
wp1->setDoubleValue("true-bearing-deg", courseDeg);
courseDeg -= magvar->getDoubleValue(); // expose magnetic bearing
wp1->setDoubleValue("bearing-deg", courseDeg);
- setETAPropertyFromDistance(wp1->getChild("eta"), distanceM);
+ setETAPropertyFromDistance(wp1, distanceM);
wp1->setDoubleValue("distance-along-route-nm",
nextLeg->distanceAlongRoute());
wp1->setDoubleValue("remaining-distance-nm",
distanceToGo->setDoubleValue(totalDistanceRemaining);
wpn->setDoubleValue("dist", totalDistanceRemaining);
ete->setDoubleValue(totalDistanceRemaining / gs * 3600.0);
- setETAPropertyFromDistance(wpn->getChild("eta"), totalDistanceRemaining);
+ setETAPropertyFromDistance(wpn, totalDistanceRemaining);
}
void FGRouteMgr::clearRoute()
char eta_str[64];
double eta = aDistance * SG_METER_TO_NM / speed;
+ aProp->getChild("eta-seconds")->setIntValue( eta * 3600 );
if ( eta >= 100.0 ) {
eta = 99.999; // clamp
}
int major = (int)eta,
minor = (int)((eta - (int)eta) * 60.0);
snprintf( eta_str, 64, "%d:%02d", major, minor );
- aProp->setStringValue( eta_str );
+ aProp->getChild("eta")->setStringValue( eta_str );
}
void FGRouteMgr::removeLegAtIndex(int aIndex)
void FGRouteMgr::setDepartureRunway(const char* aIdent)
{
+ if (!_plan) {
+ return;
+ }
+
FGAirport* apt = _plan->departureAirport();
if (!apt || (aIdent == NULL)) {
_plan->setDeparture(apt);
void FGRouteMgr::setDepartureICAO(const char* aIdent)
{
+ if (!_plan) {
+ return;
+ }
+
if ((aIdent == NULL) || (strlen(aIdent) < 4)) {
_plan->setDeparture((FGAirport*) NULL);
} else {
void FGRouteMgr::setSID(const char* aIdent)
{
+ if (!_plan) {
+ return;
+ }
+
FGAirport* apt = _plan->departureAirport();
if (!apt || (aIdent == NULL)) {
_plan->setSID((flightgear::SID*) NULL);
void FGRouteMgr::setDestinationICAO(const char* aIdent)
{
+ if (!_plan) {
+ return;
+ }
+
if ((aIdent == NULL) || (strlen(aIdent) < 4)) {
_plan->setDestination((FGAirport*) NULL);
} else {
void FGRouteMgr::setDestinationRunway(const char* aIdent)
{
+ if (!_plan) {
+ return;
+ }
+
FGAirport* apt = _plan->destinationAirport();
if (!apt || (aIdent == NULL)) {
_plan->setDestination(apt);
void FGRouteMgr::setApproach(const char* aIdent)
{
+ if (!_plan) {
+ return;
+ }
+
FGAirport* apt = _plan->destinationAirport();
if (!strcmp(aIdent, "DEFAULT")) {
double enrouteCourse = -1.0;
void FGRouteMgr::setSTAR(const char* aIdent)
{
+ if (!_plan) {
+ return;
+ }
+
FGAirport* apt = _plan->destinationAirport();
if (!apt || (aIdent == NULL)) {
_plan->setSTAR((STAR*) NULL);