]> git.mxchange.org Git - flightgear.git/blobdiff - src/Main/fg_init.cxx
Work around a problem in certain NVidia adapters hat don't support fgPushAttrib(FG_FO...
[flightgear.git] / src / Main / fg_init.cxx
index 58d25bfccc918703b19dc84c7df2054160ef7f15..419d7e5fc2cd265d6944ca79b224a989f8a87855 100644 (file)
 #  include <math.h>
 #endif
 
-#ifdef HAVE_WINDOWS_H
-#  include <windows.h>
-#endif
-
-#include GLUT_H
-
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>             // strcmp()
@@ -65,8 +59,9 @@
 #include <simgear/misc/sg_path.hxx>
 #include <simgear/scene/material/matlib.hxx>
 #ifdef FG_USE_CLOUDS_3D
-#  include <simgear/sky/clouds3d/SkySceneLoader.hpp>
-#  include <simgear/sky/clouds3d/SkyUtil.hpp>
+#  include <simgear/scene/sky/clouds3d/SkySceneLoader.hpp>
+#  include <simgear/scene/sky/clouds3d/SkyUtil.hpp>
+#  include <simgear/screen/texture.hxx>
 #endif
 #include <simgear/timing/sg_time.hxx>
 #include <simgear/timing/lowleveltime.h>
 #include <Navaids/ilslist.hxx>
 #include <Navaids/mkrbeacons.hxx>
 #include <Navaids/navlist.hxx>
+#include <Replay/replay.hxx>
 #include <Scenery/scenery.hxx>
 #include <Scenery/tilemgr.hxx>
 #if defined(HAVE_PLIB_PSL)
@@ -699,6 +695,7 @@ static bool fgSetPosFromAirportIDandHdg( const string& id, double tgt_hdg ) {
         double oaz = azimuth;
         if ( fabs(fgGetDouble("/sim/presets/offset-azimuth")) > SG_EPSILON ) {
             oaz = fgGetDouble("/sim/presets/offset-azimuth") + 180;
+            heading = tgt_hdg;
         }
         while ( oaz >= 360.0 ) { oaz -= 360.0; }
         geo_direct_wgs_84 ( 0, lat2, lon2, oaz, odist, &olat, &olon, &az2 );
@@ -776,6 +773,7 @@ static bool fgSetPosFromAirportIDandRwy( const string& id, const string& rwy ) {
        if ( fabs(fgGetDouble("/sim/presets/offset-azimuth")) > SG_EPSILON )
        {
            oaz = fgGetDouble("/sim/presets/offset-azimuth") + 180;
+            heading = fgGetDouble("/sim/presets/heading-deg");
        }
        while ( oaz >= 360.0 ) { oaz -= 360.0; }
        geo_direct_wgs_84 ( 0, lat2, lon2, oaz, odist, &olat, &olon, &az2 );
@@ -1481,10 +1479,25 @@ bool fgInitSubsystems() {
     // Initialize the 3D cloud subsystem.
     ////////////////////////////////////////////////////////////////////
     if ( fgGetBool("/sim/rendering/clouds3d") ) {
+        static const SGPropertyNode *longitude
+           = fgGetNode("/sim/presets/longitude-deg");
+        static const SGPropertyNode *latitude
+           = fgGetNode("/sim/presets/latitude-deg");
+        static const SGPropertyNode *altitude
+           = fgGetNode("/sim/presets/altitude-ft");
+
         SGPath cloud_path(globals->get_fg_root());
-        cloud_path.append("large.sky");
+#if 0
+        cloud_path.append("Textures/Sky/scattered.rgba");
         SG_LOG(SG_GENERAL, SG_INFO, "Loading CLOUDS3d from: " << cloud_path.c_str());
+
+        SGTexture tx;
+        tx.read_rgba_texture(cloud_path.c_str());
+        if ( !sgCloud3d->Load( tx.texture(), tx.width(),
+#else
+        cloud_path.append("large.sky");
         if ( !sgCloud3d->Load( cloud_path.str(),
+#endif
                                latitude->getDoubleValue(),
                                longitude->getDoubleValue()) )
         {
@@ -1625,6 +1638,11 @@ bool fgInitSubsystems() {
     globals->add_subsystem("input", new FGInput);
 
 
+    ////////////////////////////////////////////////////////////////////
+    // Initialize the replay subsystem
+    ////////////////////////////////////////////////////////////////////
+    globals->add_subsystem("replay", new FGReplay);
+
     ////////////////////////////////////////////////////////////////////
     // Bind and initialize subsystems.
     ////////////////////////////////////////////////////////////////////