} else if ( idle_state == 2 ) {
// start TerraSync up now, so it can be synchronizing shared models
- // and airports data in parallel with a nav-cahce rebuild.
+ // 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);
+
+
terra_sync->bind();
terra_sync->init();
+ // add the terrasync root as a data path so data can be retrieved from it
+ std::string terraSyncDir(fgGetString("/sim/terrasync/scenery-dir"));
+ globals->append_data_path(terraSyncDir);
+
idle_state++;
fgSplashProgress("loading-nav-dat");
// 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