]> git.mxchange.org Git - flightgear.git/commitdiff
Support scenery reloading (needs simgear update).
authorThorstenB <brehmt@gmail.com>
Sun, 13 Feb 2011 18:24:54 +0000 (19:24 +0100)
committerThorstenB <brehmt@gmail.com>
Sun, 13 Feb 2011 18:26:55 +0000 (19:26 +0100)
TileMgr subsystem reinit: remove all scenery tiles from scenegraph and
clear cache (simgear update required).
"normal" sim resets: no TileMgr reset is needed (avoid reloading scenery).

src/Main/fg_init.cxx
src/Scenery/tilemgr.cxx

index 0e83ba131b952db0859ab0286f97fa38747f93b5..a615eddeecbad54c0f2dbc042f493233e92c2c11 100644 (file)
@@ -1557,8 +1557,7 @@ void fgReInitSubsystems()
     globals->get_viewmgr()->reinit();
 
     globals->get_subsystem("time")->reinit();
-    globals->get_subsystem("tile-manager")->reinit();
-    
+
 // setup state to end re-init
     fgSetBool("/sim/signals/reinit", false);
     if ( !freeze ) {
index adc200b86e8d44d7b4ed6d9cbb2a13baf9db58d9..6c19ec5c0e25a94dd6d03ccfc53d963f61027791 100644 (file)
@@ -117,6 +117,9 @@ void FGTileMgr::init() {
 
 void FGTileMgr::reinit()
 {
+    // remove all old scenery nodes from scenegraph and clear cache
+    osg::Group* group = globals->get_scenery()->get_terrain_branch();
+    group->removeChildren(0, group->getNumChildren());
     tile_cache.init();
     
     state = Inited;