int xsize = fgGetInt("/sim/startup/xsize");
int ysize = fgGetInt("/sim/startup/ysize");
+ // viewports also needs to be saved/restored as
+ // restoreInitialState() overwrites these
+ SGPropertyNode *guiNode = new SGPropertyNode;
+ SGPropertyNode *cameraNode = new SGPropertyNode;
+ SGPropertyNode *cameraGroupNode = fgGetNode("/sim/rendering/camera-group");
+ copyProperties(cameraGroupNode->getChild("camera"), cameraNode);
+ copyProperties(cameraGroupNode->getChild("gui"), guiNode);
+
globals->restoreInitialState();
// update our position based on current presets
fgSetInt("/sim/startup/xsize", xsize);
fgSetInt("/sim/startup/ysize", ysize);
+ copyProperties(cameraNode, cameraGroupNode->getChild("camera"));
+ copyProperties(guiNode, cameraGroupNode->getChild("gui"));
+
+ delete guiNode;
+ delete cameraNode;
+
SGTime *t = globals->get_time_params();
delete t;
t = fgInitTime();