]> git.mxchange.org Git - flightgear.git/blobdiff - src/Environment/fgclouds.cxx
Merge branch 'next' into durk-atc
[flightgear.git] / src / Environment / fgclouds.cxx
index ccd21e0cec45317a5336747ff1b576630d9ff066..9b689d443af37f5c925706baa7b24e046fe97654 100644 (file)
@@ -30,7 +30,7 @@
 #include <simgear/constants.h>
 #include <simgear/sound/soundmgr_openal.hxx>
 #include <simgear/scene/sky/sky.hxx>
-#include <simgear/environment/visual_enviro.hxx>
+//#include <simgear/environment/visual_enviro.hxx>
 #include <simgear/scene/sky/cloudfield.hxx>
 #include <simgear/scene/sky/newcloud.hxx>
 #include <simgear/structure/commands.hxx>
 
 extern SGSky *thesky;
 
+static bool do_delete_3Dcloud (const SGPropertyNode *arg);
+static bool do_move_3Dcloud (const SGPropertyNode *arg);
+static bool do_add_3Dcloud (const SGPropertyNode *arg);
 
 FGClouds::FGClouds() :
+#if 0
     snd_lightning(0),
+#endif
     clouds_3d_enabled(false),
     index(0)
 {
@@ -68,6 +73,7 @@ void FGClouds::set_update_event(int count) {
 }
 
 void FGClouds::Init(void) {
+#if 0
        if( snd_lightning == NULL ) {
                snd_lightning = new SGSoundSample("Sounds/thunder.wav", SGPath());
                snd_lightning->set_max_dist(7000.0f);
@@ -75,8 +81,8 @@ void FGClouds::Init(void) {
                SGSoundMgr *smgr = globals->get_soundmgr();
                SGSampleGroup *sgr = smgr->find("weather", true);
                sgr->add( snd_lightning, "thunder" );
-               sgEnviro.set_sampleGroup( sgr );
        }
+#endif
 
        globals->get_commands()->addCommand("add-cloud", do_add_3Dcloud);
        globals->get_commands()->addCommand("del-cloud", do_delete_3Dcloud);
@@ -357,12 +363,18 @@ bool FGClouds::get_3dClouds() const
         float lon = arg->getFloatValue("lon-deg", 0.0f);
         float lat = arg->getFloatValue("lat-deg", 0.0f);
         float alt = arg->getFloatValue("alt-ft",  0.0f);
+        float x   = arg->getFloatValue("x-offset-m",  0.0f);
+        float y   = arg->getFloatValue("y-offset-m",  0.0f);
+
 
-   // Adding a 3D cloud immediately makes this layer 3D.
-   thesky->get_cloud_layer(l)->set_enable3dClouds(true);
    SGCloudField *layer = thesky->get_cloud_layer(l)->get_layer3D();
    SGNewCloud cld = SGNewCloud(texture_root, arg);
-        return layer->addCloud(lon, lat, alt, index, cld.genCloud());
+        bool success = layer->addCloud(lon, lat, alt, x, y, index, cld.genCloud());
+
+   // Adding a 3D cloud immediately makes this layer 3D.
+   thesky->get_cloud_layer(l)->set_enable3dClouds(true);
+
+   return success;
  }
 
  /**
@@ -402,7 +414,9 @@ bool FGClouds::get_3dClouds() const
         float lon = arg->getFloatValue("lon-deg", 0.0f);
         float lat = arg->getFloatValue("lat-deg", 0.0f);
         float alt = arg->getFloatValue("alt-ft",  0.0f);
+        float x   = arg->getFloatValue("x-offset-m",  0.0f);
+        float y   = arg->getFloatValue("y-offset-m",  0.0f);
 
    SGCloudField *layer = thesky->get_cloud_layer(l)->get_layer3D();
-        return layer->repositionCloud(i, lon, lat, alt);
+        return layer->repositionCloud(i, lon, lat, alt, x, y);
  }