simgear::Dir exportDir(simgear::Dir(dataPath).file("Export"));
if (!exportDir.exists()) {
- exportDir.create(0777);
+ exportDir.create(0755);
}
// Set /sim/fg-home and don't allow malign code to override it until
{
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,