1
0
Fork 0

Reset: tweak property PRESERVE

- ensure options are re-processed before restoring PRESERVEd
properties, so that sessions changes survive a reset.
This commit is contained in:
James Turner 2014-03-11 22:43:25 +00:00
parent f2a3090384
commit afe02b9b36

View file

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