]> git.mxchange.org Git - flightgear.git/blobdiff - src/Main/globals.cxx
Update for SGPropertyNode changes.
[flightgear.git] / src / Main / globals.cxx
index 3f469d05a2df3476a6888345bd555287750fd258..74e0656d88e06ea44a45b9ae6f5806f3c973624d 100644 (file)
@@ -46,7 +46,6 @@
 
 #include <Aircraft/controls.hxx>
 #include <Airports/runways.hxx>
-#include <ATCDCL/ATISmgr.hxx>
 #include <Autopilot/route_mgr.hxx>
 #include <GUI/FGFontCache.hxx>
 #include <GUI/gui.h>
@@ -145,9 +144,7 @@ FGGlobals::FGGlobals() :
     fg_home( "" ),
     time_params( NULL ),
     ephem( NULL ),
-    matlib( NULL ),
     route_mgr( NULL ),
-    ATIS_mgr( NULL ),
     controls( NULL ),
     viewmgr( NULL ),
     commands( SGCommandMgr::instance() ),
@@ -242,7 +239,6 @@ FGGlobals::~FGGlobals()
     delete time_params;
     set_matlib(NULL);
     delete route_mgr;
-    delete ATIS_mgr;
     delete channel_options_list;
     delete initial_waypoints;
     delete fontcache;
@@ -279,7 +275,7 @@ void FGGlobals::set_fg_root (const std::string &root) {
 
     // remove /sim/fg-root before writing to prevent hijacking
     SGPropertyNode *n = fgGetNode("/sim", true);
-    n->removeChild("fg-root", 0, false);
+    n->removeChild("fg-root", 0);
     n = n->getChild("fg-root", 0, true);
     n->setStringValue(fg_root.c_str());
     n->setAttribute(SGPropertyNode::WRITE, false);
@@ -401,17 +397,25 @@ void FGGlobals::append_aircraft_path(const std::string& path)
 {
   SGPath dirPath(path);
   if (!dirPath.exists()) {
-    SG_LOG(SG_GENERAL, SG_WARN, "aircraft path not found:" << path);
+    SG_LOG(SG_GENERAL, SG_ALERT, "aircraft path not found:" << path);
     return;
   }
+    
+  SGPath acSubdir(dirPath);
+  acSubdir.append("Aircraft");
+  if (acSubdir.exists()) {
+      SG_LOG(SG_GENERAL, SG_WARN, "Specified an aircraft-dir with an 'Aircraft' subdirectory:" << dirPath
+                 << ", will instead use child directory:" << acSubdir);
+      dirPath = acSubdir;
+  }
+    
   std::string abspath = dirPath.realpath();
-  
   unsigned int index = fg_aircraft_dirs.size();  
   fg_aircraft_dirs.push_back(abspath);
   
 // make aircraft dirs available to Nasal
   SGPropertyNode* sim = fgGetNode("/sim", true);
-  sim->removeChild("fg-aircraft", index, false);
+  sim->removeChild("fg-aircraft", index);
   SGPropertyNode* n = sim->getChild("fg-aircraft", index, true);
   n->setStringValue(abspath);
   n->setAttribute(SGPropertyNode::WRITE, false);
@@ -590,7 +594,7 @@ FGGlobals::resetPropertyRoot()
     
     // remove /sim/fg-root before writing to prevent hijacking
     SGPropertyNode *n = props->getNode("/sim", true);
-    n->removeChild("fg-root", 0, false);
+    n->removeChild("fg-root", 0);
     n = n->getChild("fg-root", 0, true);
     n->setStringValue(fg_root.c_str());
     n->setAttribute(SGPropertyNode::WRITE, false);
@@ -750,8 +754,6 @@ void FGGlobals::set_tile_mgr ( FGTileMgr *t )
 
 void FGGlobals::set_matlib( SGMaterialLib *m )
 {
-    if (matlib)
-        delete matlib;
     matlib = m;
 }