#include <simgear/ephemeris/ephemeris.hxx>
#include <simgear/magvar/magvar.hxx>
#include <simgear/scene/material/matlib.hxx>
+#include <simgear/structure/subsystem_mgr.hxx>
+#include <simgear/structure/event_mgr.hxx>
#include <Aircraft/controls.hxx>
#include <Airports/runways.hxx>
#include <Navaids/awynet.hxx>
#include <Scenery/scenery.hxx>
#include <Scenery/tilemgr.hxx>
+#include <Navaids/navlist.hxx>
+#include <Navaids/fixlist.hxx>
#include "globals.hxx"
#include "renderer.hxx"
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 ),
route_mgr( NULL ),
current_panel( NULL ),
soundmgr( NULL ),
- airports( NULL ),
- runways( NULL ),
ATC_mgr( NULL ),
AI_mgr( NULL ),
controls( NULL ),
loclist( NULL ),
gslist( NULL ),
dmelist( NULL ),
- mkrlist( NULL ),
tacanlist( NULL ),
carrierlist( NULL ),
channellist( NULL ),
- fixlist( NULL ),
airwaynet( NULL ),
multiplayer_mgr( NULL )
{
delete route_mgr;
delete current_panel;
delete soundmgr;
- delete airports;
- delete runways;
delete ATC_mgr;
delete AI_mgr;
delete controls;
delete loclist;
delete gslist;
delete dmelist;
- delete mkrlist;
delete tacanlist;
delete carrierlist;
delete channellist;
- delete fixlist;
delete airwaynet;
delete multiplayer_mgr;
}
// 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) {