From: Rebecca Palmer Date: Tue, 17 Dec 2013 18:09:12 +0000 (+0000) Subject: Always make sure the Terrasync directory is set and exists X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=4427ee7406a783f60ae80f2ad05e584ac7002245;p=flightgear.git Always make sure the Terrasync directory is set and exists This was previously done only if Terrasync was on, but this made it impossible to use the GUI dialog to turn it on for the first time in a fresh install --- diff --git a/src/Main/options.cxx b/src/Main/options.cxx index c7d13a7f3..3c20cdee8 100644 --- a/src/Main/options.cxx +++ b/src/Main/options.cxx @@ -2167,31 +2167,30 @@ OptionResult Options::processOptions() } // terrasync directory fixup + string terrasyncDir = fgGetString("/sim/terrasync/scenery-dir"); + if (terrasyncDir.empty()) { + SGPath p(globals->get_fg_home()); + p.append("TerraSync"); + terrasyncDir = p.str(); + SG_LOG(SG_GENERAL, SG_INFO, + "Using default TerraSync dir: " << terrasyncDir); + fgSetString("/sim/terrasync/scenery-dir", terrasyncDir); + } + + SGPath p(terrasyncDir); + // following is necessary to ensure NavDataCache sees stable scenery paths from + // terrasync. Ensure the Terrain and Objects subdirs exist immediately, rather + // than waiting for the first tiles to be scheduled. + simgear::Dir terrainDir(SGPath(p, "Terrain")), + objectsDir(SGPath(p, "Objects")); + if (!terrainDir.exists()) { + terrainDir.create(0755); + } + + if (!objectsDir.exists()) { + objectsDir.create(0755); + } if (fgGetBool("/sim/terrasync/enabled")) { - string terrasyncDir = fgGetString("/sim/terrasync/scenery-dir"); - if (terrasyncDir.empty()) { - SGPath p(globals->get_fg_home()); - p.append("TerraSync"); - terrasyncDir = p.str(); - SG_LOG(SG_GENERAL, SG_INFO, - "Using default TerraSync dir: " << terrasyncDir); - fgSetString("/sim/terrasync/scenery-dir", terrasyncDir); - } - - SGPath p(terrasyncDir); - // following is necessary to ensure NavDataCache sees stable scenery paths from - // terrasync. Ensure the Terrain and Objects subdirs exist immediately, rather - // than waiting for the first tiles to be scheduled. - simgear::Dir terrainDir(SGPath(p, "Terrain")), - objectsDir(SGPath(p, "Objects")); - if (!terrainDir.exists()) { - terrainDir.create(0755); - } - - if (!objectsDir.exists()) { - objectsDir.create(0755); - } - const string_list& scenery_paths(globals->get_fg_scenery()); if (std::find(scenery_paths.begin(), scenery_paths.end(), terrasyncDir) == scenery_paths.end()) { // terrasync dir is not in the scenery paths, add it @@ -2206,7 +2205,7 @@ OptionResult Options::processOptions() globals->append_fg_scenery(root.str()); } - return FG_OPTIONS_OK; + return FG_OPTIONS_OK; } void Options::showUsage() const