]> git.mxchange.org Git - flightgear.git/commitdiff
Reset: tweak property PRESERVE
authorJames Turner <zakalawe@mac.com>
Tue, 11 Mar 2014 22:43:25 +0000 (22:43 +0000)
committerJames Turner <zakalawe@mac.com>
Tue, 11 Mar 2014 22:43:25 +0000 (22:43 +0000)
- ensure options are re-processed before restoring PRESERVEd
properties, so that sessions changes survive a reset.

src/Main/fg_init.cxx

index 52e59c722724f9844c58d75f1a253f9fcad5e0a6..2b293ce7f42de14ab46f5df1d8576d097f5be83f 100644 (file)
@@ -494,6 +494,9 @@ int fgInitAircraft(bool reinit)
             n->setAttribute(SGPropertyNode::WRITE, false);
 
         }
+        
+        SGPropertyNode* aircraftProp = fgGetNode("/sim/aircraft", true);
+        aircraftProp->setAttribute(SGPropertyNode::PRESERVE, true);
     } else {
         flightgear::Options::sharedInstance()->initAircraft();
     }
@@ -1005,6 +1008,9 @@ void fgStartNewReset()
     fgInitConfig(0, NULL, true);
     fgInitGeneral(); // all of this?
     
+    flightgear::Options::sharedInstance()->processOptions();
+    
+    // PRESERVED properties over-write state from options, intentionally
     if ( copyProperties(preserved, globals->get_props()) ) {
         SG_LOG( SG_GENERAL, SG_INFO, "Preserved state restored successfully" );
     } else {
@@ -1014,7 +1020,6 @@ void fgStartNewReset()
 
     fgGetNode("/sim")->removeChild("aircraft-dir");
     fgInitAircraft(true);
-    flightgear::Options::sharedInstance()->processOptions();
     
     render = new FGRenderer;
     render->setEventHandler(eventHandler);