]> git.mxchange.org Git - flightgear.git/commitdiff
Fixed a bug in radiostack->search() when switching freq. to a different
authorcurt <curt>
Mon, 12 Mar 2001 13:42:32 +0000 (13:42 +0000)
committercurt <curt>
Mon, 12 Mar 2001 13:42:32 +0000 (13:42 +0000)
station that has the same ident (i.e. from a vor to a ils as in EAU.)

src/Cockpit/radiostack.cxx

index e706317b7cff008b442da6f8ad5b0498d8d45a8d..498322be59be390a542695cfa32ef589f05ff2c0 100644 (file)
@@ -376,12 +376,14 @@ void FGRadioStack::search()
 
     static string last_nav1_ident = "";
     static string last_nav2_ident = "";
-
+    static bool last_nav1_vor = false;
+    static bool last_nav2_vor = false;
     if ( current_ilslist->query( lon, lat, elev, nav1_freq, &ils ) ) {
        nav1_ident = ils.get_locident();
-       if ( last_nav1_ident != nav1_ident ) {
+       if ( last_nav1_ident != nav1_ident || last_nav1_vor ) {
            nav1_trans_ident = ils.get_trans_ident();
            last_nav1_ident = nav1_ident;
+           last_nav1_vor = false;
            nav1_valid = true;
            nav1_loc = true;
            nav1_has_dme = ils.get_has_dme();
@@ -438,8 +440,9 @@ void FGRadioStack::search()
        }
     } else if ( current_navlist->query( lon, lat, elev, nav1_freq, &nav ) ) {
        nav1_ident = nav.get_ident();
-       if ( last_nav1_ident != nav1_ident ) {
+       if ( last_nav1_ident != nav1_ident || !last_nav1_vor ) {
            last_nav1_ident = nav1_ident;
+           last_nav1_vor = true;
            nav1_trans_ident = nav.get_trans_ident();
            nav1_valid = true;
            nav1_loc = false;
@@ -495,8 +498,9 @@ void FGRadioStack::search()
 
     if ( current_ilslist->query( lon, lat, elev, nav2_freq, &ils ) ) {
        nav2_ident = ils.get_locident();
-       if ( last_nav2_ident != nav2_ident ) {
+       if ( last_nav2_ident != nav2_ident || last_nav2_vor ) {
            last_nav2_ident = nav2_ident;
+           last_nav2_vor = false;
            nav2_trans_ident = ils.get_trans_ident();
            nav2_valid = true;
            nav2_loc = true;
@@ -526,8 +530,9 @@ void FGRadioStack::search()
        }
     } else if ( current_navlist->query( lon, lat, elev, nav2_freq, &nav ) ) {
        nav2_ident = nav.get_ident();
-       if ( last_nav2_ident != nav2_ident ) {
+       if ( last_nav2_ident != nav2_ident || !last_nav2_vor ) {
            last_nav2_ident = nav2_ident;
+           last_nav2_vor = true;
            nav2_trans_ident = nav.get_trans_ident();
            nav2_valid = true;
            nav2_loc = false;