From: curt Date: Tue, 1 Apr 2003 03:44:20 +0000 (+0000) Subject: Previously if a freq search matched an ILS that had no dme, it would X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=d25fa96db3554e20c9227a060f48e57c8027c856;p=flightgear.git Previously if a freq search matched an ILS that had no dme, it would proceed to search for an VOR of that same frequency. On rare occasion this search could return true with a far distant VOR and cause a small amount of confusion. --- diff --git a/src/Instrumentation/dme.cxx b/src/Instrumentation/dme.cxx index 089ec4d53..48070d7b3 100644 --- a/src/Instrumentation/dme.cxx +++ b/src/Instrumentation/dme.cxx @@ -151,14 +151,19 @@ DME::search (double frequency_mhz, double longitude_rad, longitude_rad, latitude_rad, altitude_m); - if (ils != 0 && ils->get_has_dme()) { - _transmitter_valid = true; - _transmitter = Point3D(ils->get_dme_x(), - ils->get_dme_y(), - ils->get_dme_z()); - _transmitter_elevation_ft = ils->get_gselev() * SG_METER_TO_FEET; - _transmitter_range_nm = 50; // arbitrary - return; + if (ils !=0) { + if (ils->get_has_dme()) { + _transmitter_valid = true; + _transmitter = Point3D(ils->get_dme_x(), + ils->get_dme_y(), + ils->get_dme_z()); + _transmitter_elevation_ft = ils->get_gselev() * SG_METER_TO_FEET; + _transmitter_range_nm = 50; // arbitrary + return; + } else { + _transmitter_valid = false; + return; + } } // try the VORs next @@ -166,14 +171,18 @@ DME::search (double frequency_mhz, double longitude_rad, longitude_rad, latitude_rad, altitude_m); - if (nav != 0) - if (nav != 0 && nav->get_has_dme()) { - _transmitter_valid = true; - _transmitter = Point3D(nav->get_x(), - nav->get_y(), - nav->get_z()); - _transmitter_elevation_ft = nav->get_elev() * SG_METER_TO_FEET; - _transmitter_range_nm = nav->get_range(); // fixme + if (nav != 0) { + if (nav->get_has_dme()) { + _transmitter_valid = true; + _transmitter = Point3D(nav->get_x(), + nav->get_y(), + nav->get_z()); + _transmitter_elevation_ft = nav->get_elev() * SG_METER_TO_FEET; + _transmitter_range_nm = nav->get_range(); // fixme + return; + } + } else { + _transmitter_valid = false; return; }