]> git.mxchange.org Git - flightgear.git/blobdiff - src/Main/fg_init.cxx
allow disabling sound completely (note: openal gets initialized but shuts down a...
[flightgear.git] / src / Main / fg_init.cxx
index fd245f754e788245edc7aa53a1bde06c3d821c65..a78759c42f1a0c2384951f1b1293081f0d987c46 100644 (file)
 #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 <simgear/scene/model/particles.hxx>
+#include <simgear/sound/soundmgr_openal.hxx>
 #include <simgear/timing/sg_time.hxx>
 #include <simgear/timing/lowleveltime.h>
 
 #include <Scenery/scenery.hxx>
 #include <Scenery/tilemgr.hxx>
 #include <Scripting/NasalSys.hxx>
-#include <Sound/fg_fx.hxx>
-#include <Sound/beacon.hxx>
-#include <Sound/morse.hxx>
 #include <Sound/voice.hxx>
 #include <Systems/system_mgr.hxx>
 #include <Time/light.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;
 extern const char *default_root;
-float init_volume;
 
 
 // Scan the command line options for the specified option and return
@@ -969,7 +965,11 @@ fgInitNav ()
     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;
@@ -995,8 +995,8 @@ fgInitNav ()
     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() );
@@ -1280,7 +1280,7 @@ void fgInitFDM() {
     } 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.");
     }
 }
@@ -1466,8 +1466,7 @@ bool fgInitSubsystems() {
 
     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);
@@ -1510,6 +1509,12 @@ bool fgInitSubsystems() {
     // 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
@@ -1526,13 +1531,17 @@ bool fgInitSubsystems() {
     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.
     ////////////////////////////////////////////////////////////////////
@@ -1568,22 +1577,9 @@ bool fgInitSubsystems() {
     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
 
@@ -1628,14 +1624,6 @@ bool fgInitSubsystems() {
     }
 
 
-    ////////////////////////////////////////////////////////////////////
-    // Initialize I/O subsystem.
-    ////////////////////////////////////////////////////////////////////
-
-    globals->get_io()->init();
-    globals->get_io()->bind();
-
-
     ////////////////////////////////////////////////////////////////////
     // Add a new 2D panel.
     ////////////////////////////////////////////////////////////////////
@@ -1674,6 +1662,7 @@ bool fgInitSubsystems() {
     ////////////////////////////////////////////////////////////////////
     globals->add_subsystem("replay", new FGReplay);
 
+
     ////////////////////////////////////////////////////////////////////
     // Bind and initialize subsystems.
     ////////////////////////////////////////////////////////////////////