]> git.mxchange.org Git - flightgear.git/blobdiff - src/Main/fg_init.cxx
Migrate FlightGear code to use "#include SG_GL*" defined in
[flightgear.git] / src / Main / fg_init.cxx
index 43f699fd650194562bf10db6bebb44586a68f7d9..9c09a6cf188cf21cff39da310d06aa69235240a6 100644 (file)
 #include <Cockpit/radiostack.hxx>
 #include <Cockpit/panel.hxx>
 #include <Cockpit/panel_io.hxx>
-#include <FDM/ADA.hxx>
+#ifdef ENABLE_SP_FMDS
+#include <FDM/SP/ADA.hxx>
+#include <FDM/SP/ACMS.hxx>
+#endif
 #include <FDM/Balloon.h>
 #include <FDM/ExternalNet/ExternalNet.hxx>
 #include <FDM/ExternalPipe/ExternalPipe.hxx>
 #include <Input/input.hxx>
 #include <Instrumentation/instrument_mgr.hxx>
 #include <Model/acmodel.hxx>
+#include <AIModel/submodel.hxx>
 #include <AIModel/AIManager.hxx>
 #include <Navaids/navdb.hxx>
 #include <Navaids/navlist.hxx>
 #include <Time/sunpos.hxx>
 #include <Time/sunsolver.hxx>
 #include <Time/tmp.hxx>
+#include <Traffic/TrafficMgr.hxx>
 
 #ifdef FG_MPLAYER_AS
 #include <MultiPlayer/multiplaytxmgr.hxx>
@@ -1057,7 +1062,7 @@ fgInitNav ()
     globals->set_dmelist( dmelist );
     globals->set_mkrlist( mkrlist );
 
-    if ( !fgNavDBInit( navlist, loclist, gslist, dmelist, mkrlist ) ) {
+    if ( !fgNavDBInit(airports, navlist, loclist, gslist, dmelist, mkrlist) ) {
         SG_LOG( SG_GENERAL, SG_ALERT,
                 "Problems loading one or more navigational database" );
     }
@@ -1251,8 +1256,12 @@ void fgInitFDM() {
             cur_fdm_state = new FGLaRCsim( dt );
         } else if ( model == "jsb" ) {
             cur_fdm_state = new FGJSBsim( dt );
+#ifdef ENABLE_SP_FMDS
         } else if ( model == "ada" ) {
             cur_fdm_state = new FGADA( dt );
+        } else if ( model == "acms" ) {
+            cur_fdm_state = new FGACMS( dt );
+#endif
         } else if ( model == "balloon" ) {
             cur_fdm_state = new FGBalloonSim( dt );
         } else if ( model == "magic" ) {
@@ -1468,6 +1477,7 @@ void fgInitTimeOffset() {
             << globals->get_warp() );
 }
 
+
 // This is the top level init routine which calls all the other
 // initialization routines.  If you are adding a subsystem to flight
 // gear, its initialization call should located in this routine.
@@ -1487,8 +1497,8 @@ bool fgInitSubsystems() {
     // Initialize the event manager subsystem.
     ////////////////////////////////////////////////////////////////////
 
-     globals->get_event_mgr()->init();
-     globals->get_event_mgr()->setFreezeProperty(fgGetNode("/sim/freeze/clock"));
+    globals->get_event_mgr()->init();
+    globals->get_event_mgr()->setFreezeProperty(fgGetNode("/sim/freeze/clock"));
 
     ////////////////////////////////////////////////////////////////////
     // Initialize the property interpolator subsystem
@@ -1602,8 +1612,7 @@ bool fgInitSubsystems() {
     //////////////////////////////////////////////////////////////////////
     // Initialize the 2D cloud subsystem.
     ////////////////////////////////////////////////////////////////////
-    fgGetNode("/sim/rendering/bump-mapping", true);
-    fgSetBool("/sim/rendering/bump-mapping", true);
+    fgGetBool("/sim/rendering/bump-mapping", false);
 
 #ifdef FG_USE_CLOUDS_3D
     ////////////////////////////////////////////////////////////////////
@@ -1684,18 +1693,30 @@ bool fgInitSubsystems() {
     ////////////////////////////////////////////////////////////////////
     // Initialise the AI Model Manager
     ////////////////////////////////////////////////////////////////////
-
     SG_LOG(SG_GENERAL, SG_INFO, "  AI Model Manager");
     globals->add_subsystem("ai_model", new FGAIManager);
+    globals->add_subsystem("submodel_mgr", new FGSubmodelMgr);
+
 
+     // It's probably a good idea to initialize the top level traffic manager
+     // After the AI and ATC systems have been initialized properly.
+     // AI Traffic manager
+     globals->add_subsystem("Traffic Manager", new FGTrafficManager);
+            FGTrafficManager *dispatcher = 
+            (FGTrafficManager*) globals->get_subsystem("Traffic Manager");
+
+     readXML(string(globals->get_fg_root() + string("/Traffic/fgtraffic.xml")),
+            *dispatcher);
+     globals->get_subsystem("Traffic Manager")->init();
 
     globals->add_subsystem("instrumentation", new FGInstrumentMgr);
     globals->add_subsystem("systems", new FGSystemMgr);
 
+
+
     ////////////////////////////////////////////////////////////////////
     // Initialize the radio stack subsystem.
     ////////////////////////////////////////////////////////////////////
-
     current_radiostack = new FGRadioStack;
     current_radiostack->init();
     current_radiostack->bind();
@@ -1704,7 +1725,6 @@ bool fgInitSubsystems() {
     ////////////////////////////////////////////////////////////////////
     // Initialize the cockpit subsystem
     ////////////////////////////////////////////////////////////////////
-
     if( fgCockpitInit( &current_aircraft )) {
         // Cockpit initialized ok.
     } else {
@@ -1862,5 +1882,6 @@ void fgReInitSubsystems()
         fgSetBool("/sim/freeze/master", false);
     }
     fgSetBool("/sim/initialised", true);
+    fgSetBool("/sim/sceneryloaded",false);
 }