void
FGDME::init ()
{
- search();
- update(0); // FIXME: use dt
}
void
freq = navcom2_freq->getDoubleValue();
need_update = true;
}
+ } else if ( switch_pos == 2 && has_power() ) {
+ // no-op
} else {
freq = 0;
inrange = false;
}
- FGILS ils;
- FGNav nav;
+ FGILS *ils;
+ FGNav *nav;
- if ( current_ilslist->query( lon, lat, elev, freq, &ils ) ) {
- if (ils.get_has_dme()) {
+ if ( (ils = current_ilslist->findByFreq( freq, lon, lat, elev )) != NULL ) {
+ if ( ils->get_has_dme() ) {
valid = true;
- lon = ils.get_loclon();
- lat = ils.get_loclat();
- elev = ils.get_gselev();
+ lon = ils->get_loclon();
+ lat = ils->get_loclat();
+ elev = ils->get_gselev();
range = FG_ILS_DEFAULT_RANGE;
effective_range = kludgeRange(elev, elev, range);
- x = ils.get_dme_x();
- y = ils.get_dme_y();
- z = ils.get_dme_z();
+ x = ils->get_dme_x();
+ y = ils->get_dme_y();
+ z = ils->get_dme_z();
}
- } else if ( current_navlist->query( lon, lat, elev, freq, &nav ) ) {
- if (nav.get_has_dme()) {
+ } else if ( (nav = current_navlist->findByFreq(freq, lon, lat, elev)) != NULL ) {
+ if (nav->get_has_dme()) {
valid = true;
- lon = nav.get_lon();
- lat = nav.get_lat();
- elev = nav.get_elev();
- range = nav.get_range();
+ lon = nav->get_lon();
+ lat = nav->get_lat();
+ elev = nav->get_elev();
+ range = nav->get_range();
effective_range = kludgeRange(elev, elev, range);
- x = nav.get_x();
- y = nav.get_y();
- z = nav.get_z();
+ x = nav->get_x();
+ y = nav->get_y();
+ z = nav->get_z();
}
} else {
valid = false;