+ virtual void add_subsystem (const char * name,
+ SGSubsystem * subsystem,
+ SGSubsystemMgr::GroupType
+ type = SGSubsystemMgr::GENERAL,
+ double min_time_sec = 0);
+
+ 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; }
+
+ inline const std::string &get_fg_root () const { return fg_root; }
+ void set_fg_root (const std::string &root);
+
+ 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; }