X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FMain%2Fglobals.hxx;h=fccee8c5159bf6ae209b7c685baa059dd98cc163;hb=fdbfd6fd0b789eecf2c532d048a75d15f8d35ad8;hp=d962bae2c2937bbc6e2f12de46e177e6ac6d0f53;hpb=89010e6b0ac344970dfe3e802e4e51703fedc8ff;p=flightgear.git diff --git a/src/Main/globals.hxx b/src/Main/globals.hxx index d962bae2c..fccee8c51 100644 --- a/src/Main/globals.hxx +++ b/src/Main/globals.hxx @@ -27,6 +27,7 @@ #include #include #include +#include #include #include @@ -49,17 +50,15 @@ class SGMagVar; class SGMaterialLib; class SGPropertyNode; class SGTime; -class SGSoundMgr; class SGEventMgr; class SGSubsystemMgr; class SGSubsystem; +class SGSoundMgr; -class FGAIMgr; class FGATCMgr; class FGAircraftModel; class FGControls; class FGFlightPlanDispatcher; -class FGIO; class FGNavList; class FGAirwayNetwork; class FGTACANList; @@ -95,6 +94,7 @@ private: FGRenderer *renderer; SGSubsystemMgr *subsystem_mgr; SGEventMgr *event_mgr; + SGSoundMgr *soundmgr; // Number of milliseconds elapsed since the start of the program. double sim_time_sec; @@ -133,15 +133,9 @@ private: // 2D panel FGPanel *current_panel; - // sound manager - SGSoundMgr *soundmgr; - // ATC manager FGATCMgr *ATC_mgr; - // AI manager - FGAIMgr *AI_mgr; - // control input state FGControls *controls; @@ -169,9 +163,6 @@ private: // Tile manager FGTileMgr *tile_mgr; - // Input/Ouput subsystem - FGIO *io; - FGFontCache *fontcache; // Navigational Aids @@ -187,6 +178,8 @@ private: //Mulitplayer managers FGMultiplayMgr *multiplayer_mgr; + /// roots of Aircraft trees + string_list fg_aircraft_dirs; public: FGGlobals(); @@ -206,6 +199,8 @@ public: virtual SGEventMgr *get_event_mgr () const; + virtual SGSoundMgr *get_soundmgr () const; + inline double get_sim_time_sec () const { return sim_time_sec; } inline void inc_sim_time_sec (double dt) { sim_time_sec += dt; } inline void set_sim_time_sec (double t) { sim_time_sec = t; } @@ -216,6 +211,26 @@ public: inline const string_list &get_fg_scenery () const { return fg_scenery; } void set_fg_scenery (const std::string &scenery); + const string_list& get_aircraft_paths() const { return fg_aircraft_dirs; } + void append_aircraft_path(const std::string& path); + void append_aircraft_paths(const std::string& path); + + /** + * Given a path to an aircraft-related resource file, resolve it + * against the appropriate root. This means looking at the location + * defined by /sim/aircraft-dir, and then aircraft_path in turn, + * finishing with fg_root/Aircraft. + * + * if the path could not be resolved, an empty path is returned. + */ + SGPath resolve_aircraft_path(const std::string& branch) const; + + /** + * Same as above, but test for non 'Aircraft/' branch paths, and + * always resolve them against fg_root. + */ + SGPath resolve_maybe_aircraft_path(const std::string& branch) const; + inline const std::string &get_browser () const { return browser; } void set_browser (const std::string &b) { browser = b; } @@ -242,15 +257,9 @@ public: inline FGATCMgr *get_ATC_mgr() const { return ATC_mgr; } inline void set_ATC_mgr( FGATCMgr *a ) {ATC_mgr = a; } - inline FGAIMgr *get_AI_mgr() const { return AI_mgr; } - inline void set_AI_mgr( FGAIMgr *a ) {AI_mgr = a; } - inline FGPanel *get_current_panel() const { return current_panel; } inline void set_current_panel( FGPanel *cp ) { current_panel = cp; } - inline SGSoundMgr *get_soundmgr() const { return soundmgr; } - inline void set_soundmgr( SGSoundMgr *sm ) { soundmgr = sm; } - inline FGControls *get_controls() const { return controls; } inline void set_controls( FGControls *c ) { controls = c; } @@ -308,9 +317,8 @@ public: inline FGTileMgr * get_tile_mgr () const { return tile_mgr; } inline void set_tile_mgr ( FGTileMgr *t ) { tile_mgr = t; } - inline FGIO* get_io() const { return io; } inline FGFontCache *get_fontcache() const { return fontcache; } - + inline FGNavList *get_navlist() const { return navlist; } inline void set_navlist( FGNavList *n ) { navlist = n; } inline FGNavList *get_loclist() const { return loclist; }