{
SGPropertyNode_ptr preserved(new SGPropertyNode);
- // copy properties which are USERARCHIVEd or PRESERVEd
- int checked = SGPropertyNode::USERARCHIVE+SGPropertyNode::PRESERVE;
- if (!copyProperties(globals->get_props(), preserved, checked, checked))
+ if (!copyPropertiesWithAttribute(globals->get_props(), preserved, SGPropertyNode::PRESERVE))
SG_LOG(SG_GENERAL, SG_ALERT, "Error saving preserved state");
fgSetBool("/sim/signals/reinit", true);
subsystemManger->shutdown();
subsystemManger->unbind();
- // remove them all (with some exceptions?)
+ // remove most subsystems, with a few exceptions.
for (int g=0; g<SGSubsystemMgr::MAX_GROUPS; ++g) {
SGSubsystemGroup* grp = subsystemManger->get_group(static_cast<SGSubsystemMgr::GroupType>(g));
const string_list& names(grp->member_names());
simgear::clearEffectCache();
simgear::SGModelLib::resetPropertyRoot();
- globals->resetPropertyRoot();
+ simgear::GlobalParticleCallback::setSwitch(NULL);
+ globals->resetPropertyRoot();
fgInitConfig(0, NULL, true);
fgInitGeneral(); // all of this?
- if ( copyProperties(preserved, globals->get_props(), checked, checked)) {
+ if ( copyProperties(preserved, globals->get_props()) ) {
SG_LOG( SG_GENERAL, SG_INFO, "Preserved state restored successfully" );
} else {
SG_LOG( SG_GENERAL, SG_INFO,
SG_LOG(SG_INPUT, SG_INFO, "No user specified aircraft, using default" );
}
+// persist across reset
+ SGPropertyNode* aircraftProp = fgGetNode("/sim/aircraft", true);
+ aircraftProp->setAttribute(SGPropertyNode::PRESERVE, true);
+
if (p->showAircraft) {
fgOptLogLevel( "alert" );
SGPath path( globals->get_fg_root() );