]> git.mxchange.org Git - flightgear.git/blobdiff - src/Environment/realwx_ctrl.cxx
Bugfix: avoid sky colour errors when vis < 1000m
[flightgear.git] / src / Environment / realwx_ctrl.cxx
index f80a518e3c51f58cf331058ba3e4b831b4bc57c9..3db5d905845a8c08e5b93a4633935ae82a82e967 100644 (file)
@@ -232,30 +232,32 @@ BasicRealWxController::BasicRealWxController( SGPropertyNode_ptr rootNode, Metar
   _wasEnabled(false),
   _requester(metarRequester)
 {
-    // at least instantiate MetarProperties for /environment/metar
-    _metarProperties.push_back( new LiveMetarProperties( 
-            fgGetNode( rootNode->getStringValue("metar", "/environment/metar"), true ),
-            metarRequester,
-            getMetarMaxAgeMin()));
-
-    BOOST_FOREACH( SGPropertyNode_ptr n, rootNode->getChildren("metar") ) {
-        SGPropertyNode_ptr metarNode = fgGetNode( n->getStringValue(), true );
-        addMetarAtPath(metarNode->getPath(), "");
-    }
-  
-    SGCommandMgr::instance()->addCommand("request-metar", commandRequestMetar);
-    SGCommandMgr::instance()->addCommand("clear-metar", commandClearMetar);
+    
+    globals->get_commands()->addCommand("request-metar", commandRequestMetar);
+    globals->get_commands()->addCommand("clear-metar", commandClearMetar);
 }
 
 BasicRealWxController::~BasicRealWxController()
 {
-  //SGCommandMgr::instance()->removeCommand("request-metar");
+    globals->get_commands()->removeCommand("request-metar");
+    globals->get_commands()->removeCommand("clear-metar");
 }
 
 void BasicRealWxController::init()
 {
     _wasEnabled = false;
     
+    // at least instantiate MetarProperties for /environment/metar
+    SGPropertyNode_ptr metarNode = fgGetNode( _rootNode->getStringValue("metar", "/environment/metar"), true );
+    _metarProperties.push_back( new LiveMetarProperties(metarNode,
+                                                        _requester,
+                                                        getMetarMaxAgeMin()));
+    
+    BOOST_FOREACH( SGPropertyNode_ptr n, _rootNode->getChildren("metar") ) {
+        SGPropertyNode_ptr metarNode = fgGetNode( n->getStringValue(), true );
+        addMetarAtPath(metarNode->getPath(), "");
+    }
+
     checkNearbyMetar();
     update(0); // fetch data ASAP
     
@@ -382,6 +384,9 @@ public:
     // implementation of MetarRequester
     virtual void requestMetar( MetarDataHandler * metarDataHandler, const std::string & id );
 
+    virtual ~NoaaMetarRealWxController()
+    {
+    }
 private:
     
 };
@@ -457,11 +462,15 @@ void NoaaMetarRealWxController::requestMetar
 }
 
 /* -------------------------------------------------------------------------------- */
-
+    
 RealWxController * RealWxController::createInstance( SGPropertyNode_ptr rootNode )
 {
   return new NoaaMetarRealWxController( rootNode );
 }
+    
+RealWxController::~RealWxController()
+{
+}
 
 /* -------------------------------------------------------------------------------- */