From 5f7441f77802138bbd5f2b105a2adb3e7581bfd9 Mon Sep 17 00:00:00 2001 From: timoore Date: Tue, 25 Nov 2008 22:50:20 +0000 Subject: [PATCH] Restore camera properties on reInit From Tatsuhiro Nishioka --- src/Main/fg_init.cxx | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/Main/fg_init.cxx b/src/Main/fg_init.cxx index a23532db1..a6d12bf2b 100644 --- a/src/Main/fg_init.cxx +++ b/src/Main/fg_init.cxx @@ -1784,6 +1784,14 @@ void reInit(void) // from gui_local.cxx -- TODO merge with fgReInitSubsystems() 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 @@ -1794,6 +1802,12 @@ void reInit(void) // from gui_local.cxx -- TODO merge with fgReInitSubsystems() 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(); -- 2.39.5