]> git.mxchange.org Git - flightgear.git/commitdiff
immediately fetch a metar if real-weather-fetch is re-enabled at runtime
authortorsten <torsten>
Mon, 8 Jun 2009 19:39:37 +0000 (19:39 +0000)
committerTim Moore <timoore@redhat.com>
Thu, 11 Jun 2009 14:05:20 +0000 (16:05 +0200)
src/Environment/environment_ctrl.cxx
src/Environment/environment_ctrl.hxx

index b11dc450e938535ce89ab3880928252e1794bf60..79b86bea7782a67f5a989d54c073aa3e7e2e8412 100644 (file)
@@ -836,7 +836,8 @@ FGMetarFetcher::FGMetarFetcher() :
        search_timer(0.0),
        error_timer(0.0),
        _stale_count(0),
-       _error_count(0)
+       _error_count(0),
+       enabled(false)
 {
        longitude_n = fgGetNode( "/position/longitude-deg", true );
        latitude_n  = fgGetNode( "/position/latitude-deg", true );
@@ -901,8 +902,19 @@ void FGMetarFetcher::update (double delta_time_sec)
                _error_count = 0;
        }
 
-       if( enable_n->getBoolValue() == false ) 
+       if( enable_n->getBoolValue() == false ) {
+               enabled = false;
                return;
+       }
+
+       // we were just enabled, reset all timers to 
+       // trigger immediate metar fetch
+       if( !enabled ) {
+               search_timer = 0.0;
+               fetch_timer = 0.0;
+               error_timer = error_timer_sec;
+               enabled = true;
+       }
 
        FGAirport * a = NULL;
 
index a641557987bd1bb6e2baa679ede8e101e6a8be2a..f5a5024cc80f0c35937c5490fd4eaad266c06c97 100644 (file)
@@ -249,6 +249,7 @@ private:
 
        long _stale_count;
        long _error_count;
+       bool enabled;
 };