]> git.mxchange.org Git - flightgear.git/blobdiff - src/Instrumentation/wxradar.cxx
NavDisplay enhancements for Syd.
[flightgear.git] / src / Instrumentation / wxradar.cxx
index 885754ea22d9db1575059ce68bbb1d62fcb2f46a..b1f81be656ebf2e293ba902f662e6331943a4990 100644 (file)
@@ -77,7 +77,6 @@ wxRadarBg::wxRadarBg(SGPropertyNode *node) :
     _interval(node->getDoubleValue("update-interval-sec", 1.0)),
     _elapsed_time(0),
     _persistance(0),
-    _sim_init_done(false),
     _odg(0),
     _range_nm(0),
     _scale(0),
@@ -120,6 +119,7 @@ wxRadarBg::wxRadarBg(SGPropertyNode *node) :
 wxRadarBg::~wxRadarBg ()
 {
     _font_node->removeChangeListener(this);
+    delete _odg;
 }
 
 
@@ -127,6 +127,7 @@ void
 wxRadarBg::init ()
 {
     _serviceable_node = _Instrument->getNode("serviceable", true);
+    _sceneryLoaded = fgGetNode("/sim/sceneryloaded", true);
 
     // texture name to use in 2D and 3D instruments
     _texture_path = _Instrument->getStringValue("radar-texture-path",
@@ -155,8 +156,7 @@ wxRadarBg::init ()
     // input range = n nm (20/40/80)
     // input display-mode = arc | rose | map | plan
 
-    FGInstrumentMgr *imgr = (FGInstrumentMgr *)globals->get_subsystem("instrumentation");
-    _odg = (FGODGauge *)imgr->get_subsystem("od_gauge");
+    _odg = new FGODGauge;
     _odg->setSize(512);
 
     _ai_enabled_node = fgGetNode("/sim/ai/enabled", true);
@@ -287,22 +287,17 @@ osg::Matrixf wxRotate(float angle)
 void
 wxRadarBg::update (double delta_time_sec)
 {
-    if (!_sim_init_done) {
-        if (!fgGetBool("sim/sceneryloaded", false))
-            return;
+    if (!_sceneryLoaded->getBoolValue())
+        return;
 
-        _sim_init_done = true;
-    }
     if (!_odg || !_serviceable_node->getBoolValue()) {
         _Instrument->setStringValue("status", "");
         return;
     }
+
     _time += delta_time_sec;
-    if (_time < _interval){
-//        cout << "WXradar update too soon " << _time << endl;
+    if (_time < _interval)
         return;
-    }
-//        cout << "WXradar updating" << _time<< endl;
 
     _time = 0.0;