diff --git a/src/Main/fg_init.cxx b/src/Main/fg_init.cxx index 0e83ba131..a615eddee 100644 --- a/src/Main/fg_init.cxx +++ b/src/Main/fg_init.cxx @@ -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 ) { diff --git a/src/Scenery/tilemgr.cxx b/src/Scenery/tilemgr.cxx index adc200b86..6c19ec5c0 100644 --- a/src/Scenery/tilemgr.cxx +++ b/src/Scenery/tilemgr.cxx @@ -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;