From: James Turner Date: Tue, 11 Mar 2014 22:43:25 +0000 (+0000) Subject: Reset: tweak property PRESERVE X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=afe02b9b36ccabef8e0e9c7afd541fefc07eff0e;p=flightgear.git Reset: tweak property PRESERVE - ensure options are re-processed before restoring PRESERVEd properties, so that sessions changes survive a reset. --- diff --git a/src/Main/fg_init.cxx b/src/Main/fg_init.cxx index 52e59c722..2b293ce7f 100644 --- a/src/Main/fg_init.cxx +++ b/src/Main/fg_init.cxx @@ -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);