]> git.mxchange.org Git - flightgear.git/commitdiff
Fix fg-aircraft, fg-scenery props after reset.
authorJames Turner <zakalawe@mac.com>
Mon, 10 Mar 2014 13:26:58 +0000 (13:26 +0000)
committerJames Turner <zakalawe@mac.com>
Mon, 10 Mar 2014 17:24:42 +0000 (17:24 +0000)
- restore fg-aircraft properties, and PRESERVE fg-scenery ones,
across reset.

src/Main/fg_init.cxx
src/Main/globals.cxx

index d0022f6dd50626fffcd1e8a30817c1cdc0b366c9..6c5ca203c28a3c3491042e5ed9a297e14a89387d 100644 (file)
@@ -480,7 +480,21 @@ int fgInitConfig ( int argc, char **argv, bool reinit )
 int fgInitAircraft(bool reinit)
 {
     // Scan user config files and command line for a specified aircraft.
-    if (!reinit) {
+    if (reinit) {
+        SGPropertyNode* sim = fgGetNode("/sim", true);
+        sim->removeChildren("fg-aircraft");
+        // after reset, add aircraft dirs to props, neede for Nasal IO rules
+        string_list::const_iterator it;
+        int index = 0;
+        for (it = globals->get_aircraft_paths().begin();
+             it != globals->get_aircraft_paths().end(); ++it, ++index)
+        {
+            SGPropertyNode* n = sim->getChild("fg-aircraft", index, true);
+            n->setStringValue(*it);
+            n->setAttribute(SGPropertyNode::WRITE, false);
+
+        }
+    } else {
         flightgear::Options::sharedInstance()->initAircraft();
     }
     
index 74e0656d88e06ea44a45b9ae6f5806f3c973624d..8ed71cbd50f9d48dc424359efaa0e57f64ec0950 100644 (file)
@@ -390,6 +390,9 @@ void FGGlobals::append_fg_scenery (const std::string &paths)
         SGPropertyNode* n = sim->getChild("fg-scenery", propIndex++, true);
         n->setStringValue(abspath.str());
         n->setAttribute(SGPropertyNode::WRITE, false);
+        
+        // temporary fix so these values survive reset
+        n->setAttribute(SGPropertyNode::PRESERVE, true);
     } // of path list iteration
 }