]> git.mxchange.org Git - flightgear.git/blobdiff - src/Main/main.cxx
Linux needs stdarg.h for va_args
[flightgear.git] / src / Main / main.cxx
index 47817c6f1bdb2febcecc8365e40912763fbf95a8..3f82429bf1c7f39d6b6718215bf5a4dc934607a7 100644 (file)
@@ -131,9 +131,20 @@ static void fgIdleFunction ( void ) {
         // and airports data in parallel with a nav-cache rebuild.
         SGPath tsyncCache(globals->get_fg_home());
         tsyncCache.append("terrasync-cache.xml");
+        
+        // wipe the cache file if requested
+        if (flightgear::Options::sharedInstance()->isOptionSet("restore-defaults")) {
+            SG_LOG(SG_GENERAL, SG_INFO, "restore-defaults requested, wiping terrasync update cache at " <<
+                   tsyncCache);
+            if (tsyncCache.exists()) {
+                tsyncCache.remove();
+            }
+        }
+        
         fgSetString("/sim/terrasync/cache-path", tsyncCache.c_str());
         
-        simgear::SGTerraSync* terra_sync = new simgear::SGTerraSync(globals->get_props());
+        simgear::SGTerraSync* terra_sync = new simgear::SGTerraSync();
+        terra_sync->setRoot(globals->get_props());
         globals->add_subsystem("terrasync", terra_sync);
         
         
@@ -328,12 +339,6 @@ int fgMainInit( int argc, char **argv ) {
     SG_LOG( SG_GENERAL, SG_INFO, "FlightGear:  Version "
             << version );
     SG_LOG( SG_GENERAL, SG_INFO, "Built with " << SG_COMPILER_STR << std::endl );
-    SG_LOG( SG_GL,
-            SG_INFO,
-            "osg::Referenced thread safe reference counting is "
-            << (osg::Referenced::getThreadSafeReferenceCounting() ? "enabled"
-                                                                  : "disabled")
-          );
 
     // Allocate global data structures.  This needs to happen before
     // we parse command line options
@@ -387,6 +392,8 @@ int fgMainInit( int argc, char **argv ) {
     
     // pass control off to the master event handler
     int result = fgOSMainLoop();
+    frame_signal.clear();
+    fgOSCloseWindow();
     
     // clean up here; ensure we null globals to avoid
     // confusing the atexit() handler