#include <simgear/debug/logstream.hxx>
#include <simgear/structure/exception.hxx>
#include <simgear/structure/event_mgr.hxx>
-#include <simgear/math/polar3d.hxx>
-#include <simgear/math/sg_geodesy.hxx>
#include <simgear/misc/sg_path.hxx>
#include <simgear/misc/interpolator.hxx>
#include <simgear/scene/material/matlib.hxx>
#include <MultiPlayer/multiplaymgr.hxx>
#include <Environment/environment_mgr.hxx>
+#include <Environment/ridge_lift.hxx>
#include "fg_init.hxx"
#include "fg_io.hxx"
#include "renderer.hxx"
#include "viewmgr.hxx"
#include "main.hxx"
+#include "ATCDCL/commlist.hxx"
#ifdef __APPLE__
# include <CoreFoundation/CoreFoundation.h>
using std::string;
class Sound;
+class SGSoundMgr;
extern const char *default_root;
float init_volume;
SGPath p_metar( globals->get_fg_root() );
p_metar.append( "Airports/metar.dat" );
- fgAirportDBLoad( aptdb.str(), p_metar.str() );
+// Initialise the frequency search map BEFORE reading
+// the airport database:
+ current_commlist = new FGCommList;
+ current_commlist->init( globals->get_fg_root() );
+ fgAirportDBLoad( aptdb.str(), current_commlist, p_metar.str() );
FGNavList *navlist = new FGNavList;
FGNavList *loclist = new FGNavList;
SG_LOG(SG_GENERAL, SG_INFO, " Fixes");
SGPath p_fix( globals->get_fg_root() );
p_fix.append( "Navaids/fix.dat" );
- FGFixList *fixlist = new FGFixList;
- fixlist->init( p_fix );
+ FGFixList fixlist;
+ fixlist.init( p_fix ); // adds fixes to the DB in positioned.cxx
SG_LOG(SG_GENERAL, SG_INFO, " Airways");
SGPath p_awy( globals->get_fg_root() );
} else if ( model == "yasim" ) {
cur_fdm_state = new YASim( dt );
} else {
- throw sg_throwable(string("Unrecognized flight model '") + model
+ throw sg_exception(string("Unrecognized flight model '") + model
+ "', cannot init flight dynamics model.");
}
}
SGPath mpath( globals->get_fg_root() );
mpath.append( "materials.xml" );
- string season = fgGetString("/sim/startup/season", "summer");
- if ( ! globals->get_matlib()->load(globals->get_fg_root(), mpath.str(), season.c_str(),
+ if ( ! globals->get_matlib()->load(globals->get_fg_root(), mpath.str(),
globals->get_props()) ) {
SG_LOG( SG_GENERAL, SG_ALERT, "Error loading material lib!" );
exit(-1);
// Initialize the weather modeling subsystem
globals->add_subsystem("environment", new FGEnvironmentMgr);
+ ////////////////////////////////////////////////////////////////////
+ // Initialize the ridge lift simulation.
+ ////////////////////////////////////////////////////////////////////
+
+ // Initialize the ridgelift subsystem
+ globals->add_subsystem("ridgelift", new FGRidgeLift);
////////////////////////////////////////////////////////////////////
// Initialize the aircraft systems and instrumentation (before the
globals->add_subsystem( "xml-autopilot", new FGXMLAutopilot );
globals->add_subsystem( "route-manager", new FGRouteMgr );
-
////////////////////////////////////////////////////////////////////
// Initialize the view manager subsystem.
////////////////////////////////////////////////////////////////////
fgInitView();
+ ////////////////////////////////////////////////////////////////////
+ // Initialize the Input-Output subsystem
+ ////////////////////////////////////////////////////////////////////
+ globals->add_subsystem( "io", new FGIO );
+
////////////////////////////////////////////////////////////////////
// Create and register the logger.
////////////////////////////////////////////////////////////////////
fgGetBool("/sim/rendering/bump-mapping", false);
#ifdef ENABLE_AUDIO_SUPPORT
- ////////////////////////////////////////////////////////////////////
- // Initialize the sound subsystem.
- ////////////////////////////////////////////////////////////////////
-
- init_volume = fgGetFloat("/sim/sound/volume");
- fgSetFloat("/sim/sound/volume", 0.0f);
- globals->set_soundmgr(new SGSoundMgr);
- globals->get_soundmgr()->init();
- globals->get_soundmgr()->bind();
-
-
////////////////////////////////////////////////////////////////////
// Initialize the sound-effects subsystem.
////////////////////////////////////////////////////////////////////
-
- globals->add_subsystem("fx", new FGFX);
globals->add_subsystem("voice", new FGVoiceMgr);
#endif
}
- ////////////////////////////////////////////////////////////////////
- // Initialize I/O subsystem.
- ////////////////////////////////////////////////////////////////////
-
- globals->get_io()->init();
- globals->get_io()->bind();
-
-
////////////////////////////////////////////////////////////////////
// Add a new 2D panel.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
globals->add_subsystem("replay", new FGReplay);
+
+ ////////////////////////////////////////////////////////////////////
+ // Add Sound Manager.
+ // Put the sound manager last so it can use the CPU while the GPU
+ // is processing the scenery (doubled the frame-rate for me) -EMH-
+ ////////////////////////////////////////////////////////////////////
+#ifdef ENABLE_AUDIO_SUPPORT
+ init_volume = fgGetFloat("/sim/sound/volume");
+ fgSetFloat("/sim/sound/volume", 0.0f);
+
+ globals->add_subsystem("soundmgr", new SGSoundMgr);
+#endif
+
////////////////////////////////////////////////////////////////////
// Bind and initialize subsystems.
////////////////////////////////////////////////////////////////////