X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FMain%2Fglobals.cxx;h=782a229a88a7498568d031ae670bd5a6192dc489;hb=18d1593c42c2df60d7fb44ace722ca3e8a7fd82c;hp=e028c94171a8bd48e4e6887e47c683ecb5f3f0b9;hpb=4e24fba0d54faa961f6d236f2ded4d66685d5a7d;p=flightgear.git diff --git a/src/Main/globals.cxx b/src/Main/globals.cxx index e028c9417..782a229a8 100644 --- a/src/Main/globals.cxx +++ b/src/Main/globals.cxx @@ -31,6 +31,8 @@ #include #include #include +#include +#include #include #include @@ -45,6 +47,8 @@ #include #include #include +#include +#include #include "globals.hxx" #include "renderer.hxx" @@ -69,9 +73,6 @@ FGGlobals::FGGlobals() : event_mgr( new SGEventMgr ), sim_time_sec( 0.0 ), fg_root( "" ), -#if defined(FX) && defined(XMESA) - fullscreen( true ), -#endif warp( 0 ), warp_delta( 0 ), time_params( NULL ), @@ -81,8 +82,6 @@ FGGlobals::FGGlobals() : route_mgr( NULL ), current_panel( NULL ), soundmgr( NULL ), - airports( NULL ), - runways( NULL ), ATC_mgr( NULL ), AI_mgr( NULL ), controls( NULL ), @@ -103,11 +102,9 @@ FGGlobals::FGGlobals() : loclist( NULL ), gslist( NULL ), dmelist( NULL ), - mkrlist( NULL ), tacanlist( NULL ), carrierlist( NULL ), channellist( NULL ), - fixlist( NULL ), airwaynet( NULL ), multiplayer_mgr( NULL ) { @@ -134,9 +131,7 @@ FGGlobals::~FGGlobals() delete route_mgr; delete current_panel; delete soundmgr; - delete airports; - delete runways; delete ATC_mgr; delete AI_mgr; delete controls; @@ -156,11 +151,9 @@ FGGlobals::~FGGlobals() delete loclist; delete gslist; delete dmelist; - delete mkrlist; delete tacanlist; delete carrierlist; delete channellist; - delete fixlist; delete airwaynet; delete multiplayer_mgr; } @@ -169,16 +162,23 @@ FGGlobals::~FGGlobals() // set the fg_root path void FGGlobals::set_fg_root (const string &root) { fg_root = root; - + // append /data to root if it exists SGPath tmp( fg_root ); tmp.append( "data" ); tmp.append( "version" ); if ( ulFileExists( tmp.c_str() ) ) { fg_root += "/data"; + SG_LOG(SG_GENERAL, SG_WARN, "Warning: changing bad FG_ROOT/--fg-root to '" + << fg_root << '\''); } - fgSetString("/sim/fg-root", fg_root.c_str()); + // remove /sim/fg-root before writing to prevent hijacking + SGPropertyNode *n = fgGetNode("/sim", true); + n->removeChild("fg-root", 0, false); + n = n->getChild("fg-root", 0, true); + n->setStringValue(fg_root.c_str()); + n->setAttribute(SGPropertyNode::WRITE, false); } void FGGlobals::set_fg_scenery (const string &scenery) {