]> git.mxchange.org Git - flightgear.git/blobdiff - src/Instrumentation/navradio.cxx
remove old .cvsignore files
[flightgear.git] / src / Instrumentation / navradio.cxx
index b3d621b7d68a396557a80e75bd07f10e5f19dfeb..2aac4b26d1cc4fbdd2c0db4a64c9544f110c2bca 100644 (file)
 #include "navradio.hxx"
 
 #include <sstream>
+#include <cstring>
 
 #include <simgear/sg_inlines.h>
 #include <simgear/timing/sg_time.hxx>
-#include <simgear/math/vector.hxx>
 #include <simgear/math/sg_random.h>
 #include <simgear/misc/sg_path.hxx>
 #include <simgear/math/sg_geodesy.hxx>
 #include <simgear/structure/exception.hxx>
 #include <simgear/math/interpolater.hxx>
+#include <simgear/misc/strutils.hxx>
 
 #include <Navaids/navrecord.hxx>
 
@@ -129,9 +130,14 @@ FGNavRadio::FGNavRadio(SGPropertyNode *node) :
 // Destructor
 FGNavRadio::~FGNavRadio() 
 {
-    gps_course_node->removeChangeListener(this);
-    nav_slaved_to_gps_node->removeChangeListener(this);
-  
+    if (gps_course_node) {
+      gps_course_node->removeChangeListener(this);
+    }
+    
+    if (nav_slaved_to_gps_node) {
+      nav_slaved_to_gps_node->removeChangeListener(this);
+    }
+    
     delete term_tbl;
     delete low_tbl;
     delete high_tbl;
@@ -384,6 +390,7 @@ void FGNavRadio::clearOutputs()
   
   _dmeInRange = false;
   _operable = false;
+  _navaid = NULL;
 }
 
 void FGNavRadio::updateReceiver(double dt)
@@ -873,12 +880,12 @@ void FGNavRadio::search()
   }
   
   _navaid = nav;
-  char identBuffer[5] = "    ";
+  string identBuffer(4, ' ');
   if (nav) {
     _dme = globals->get_dmelist()->findByFreq(freq, pos);
     
     nav_id_node->setStringValue(nav->get_ident());
-    strncpy(identBuffer, nav->ident().c_str(), 5);
+    identBuffer =  simgear::strutils::rpad( nav->ident(), 4, ' ' );
     
     effective_range = adjustNavRange(nav->get_elev_ft(), pos.getElevationM(), nav->get_range());
     loc_node->setBoolValue(nav->type() != FGPositioned::VOR);