]> git.mxchange.org Git - flightgear.git/blobdiff - src/Instrumentation/navradio.cxx
fix a typo
[flightgear.git] / src / Instrumentation / navradio.cxx
index 60fd4415561b0b47ee9997ffa5f1b484beaf0825..ceeefc8c599ab18ec53014d6edc70a9f2a8f3495 100644 (file)
@@ -320,6 +320,7 @@ FGNavRadio::update(double dt)
     bool has_gs = false;
     if ( nav_slaved_to_gps_node->getBoolValue() ) {
        has_gs = gps_has_gs_node->getBoolValue();
+       has_gs_node->setBoolValue( has_gs );
        inrange = gps_to_flag_node->getBoolValue()
            || gps_from_flag_node->getBoolValue();
     } else {
@@ -459,7 +460,10 @@ FGNavRadio::update(double dt)
                    signal_quality_norm, dt );
         }
         signal_quality_norm_node->setDoubleValue( signal_quality_norm );
-        inrange = signal_quality_norm > 0.2;
+        if ( ! nav_slaved_to_gps_node->getBoolValue() ) {
+           /* not slaved to gps */
+            inrange = signal_quality_norm > 0.2;
+        }
         inrange_node->setBoolValue( inrange );
 
        if ( !is_loc ) {
@@ -589,16 +593,18 @@ FGNavRadio::update(double dt)
         // compute the time to intercept selected radial (based on
         // current and last cross track errors and dt
         //////////////////////////////////////////////////////////
-        double t = 0.0;
-        if ( inrange && cdi_serviceable ) {
-            double xrate_ms = (last_xtrack_error - xtrack_error) / dt;
-            if ( fabs(xrate_ms) > 0.00001 ) {
-                t = xtrack_error / xrate_ms;
-            } else {
-                t = 9999.9;
+        if (dt > 0) { // Are we paused?
+            double t = 0.0;
+            if ( inrange && cdi_serviceable ) {
+                double xrate_ms = (last_xtrack_error - xtrack_error) / dt;
+                if ( fabs(xrate_ms) > 0.00001 ) {
+                    t = xtrack_error / xrate_ms;
+                } else {
+                    t = 9999.9;
+                }
             }
+            time_to_intercept->setDoubleValue( t );
         }
-        time_to_intercept->setDoubleValue( t );
 
         //////////////////////////////////////////////////////////
         // compute the amount of glide slope needle deflection