diff --git a/src/Instrumentation/adf.cxx b/src/Instrumentation/adf.cxx index 9d15b2bbd..4cc7d269a 100644 --- a/src/Instrumentation/adf.cxx +++ b/src/Instrumentation/adf.cxx @@ -6,6 +6,7 @@ #include #include #include +#include #include
#include
@@ -197,8 +198,7 @@ ADF::update (double delta_time_sec) _in_range_node->setBoolValue(true); bearing -= heading; - if (bearing < 0) - bearing += 360; + SG_NORMALIZE_RANGE(bearing, 0.0, 360.0); set_bearing(delta_time_sec, bearing); // adf ident sound @@ -291,13 +291,8 @@ ADF::set_bearing (double dt, double bearing_deg) { double old_bearing_deg = _bearing_node->getDoubleValue(); + SG_NORMALIZE_RANGE(old_bearing_deg, 0.0, 360.0); bearing_deg += _error_node->getDoubleValue(); - - while ((bearing_deg - old_bearing_deg) >= 180) - old_bearing_deg += 360; - while ((bearing_deg - old_bearing_deg) <= -180) - old_bearing_deg -= 360; - bearing_deg = fgGetLowPass(old_bearing_deg, bearing_deg, dt * RESPONSIVENESS);