]> git.mxchange.org Git - flightgear.git/commitdiff
Make sound audiable not until after the scenery is loaded.
authorehofman <ehofman>
Thu, 16 Dec 2004 13:19:01 +0000 (13:19 +0000)
committerehofman <ehofman>
Thu, 16 Dec 2004 13:19:01 +0000 (13:19 +0000)
src/Main/fg_init.cxx
src/Main/main.cxx

index 7d29df4d245804d257eefc4c5a132bd0fc95ba2b..fe426c178aac3b09f8cb864798ea191221293f15 100644 (file)
@@ -142,8 +142,8 @@ SG_USING_STD(string);
 
 
 class Sound;
-
 extern const char *default_root;
+float init_volume;
 
 
 #ifdef FG_USE_CLOUDS_3D
@@ -1654,6 +1654,8 @@ bool fgInitSubsystems() {
     // 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();
@@ -1850,7 +1852,6 @@ void fgReInitSubsystems()
         fgSetBool("/sim/freeze/master", true);
     }
     fgSetBool("/sim/crashed", false);
-    fgSetBool("/sim/initialised", false);
 
     // Initialize the FDM
     fgInitFDM();
@@ -1874,7 +1875,6 @@ void fgReInitSubsystems()
     if ( !freeze ) {
         fgSetBool("/sim/freeze/master", false);
     }
-    fgSetBool("/sim/initialised", true);
     fgSetBool("/sim/sceneryloaded",false);
 }
 
index 103fb951bb3a4a55f8da7fdc8598790dfceb75aa..41511d62a53da545f9f1e5520f129189b4bfd221 100644 (file)
@@ -96,6 +96,7 @@
 
 static double real_delta_time_sec = 0.0;
 double delta_time_sec = 0.0;
+extern float init_volume;
 
 
 #ifdef macintosh
@@ -550,6 +551,8 @@ static void fgMainLoop( void ) {
 
     if (!scenery_loaded && globals->get_tile_mgr()->all_queues_empty() && cur_fdm_state->get_inited()) {
         fgSetBool("sim/sceneryloaded",true);
+        fgSetFloat("/sim/sound/volume", init_volume);
+        globals->get_soundmgr()->set_volume(init_volume);
     }
 
     if (fgGetBool("/sim/rendering/specular-highlight")) {
@@ -577,8 +580,6 @@ static void fgIdleFunction ( void ) {
     // printf("idle state == %d\n", idle_state);
 
     if ( idle_state == 0 ) {
-        fgSetBool("sim/initialised", false);
-
         // Initialize the splash screen right away
         if ( fgGetBool("/sim/startup/splash-screen") ) {
             fgSplashInit(fgGetString("/sim/startup/splash-texture"));
@@ -662,7 +663,6 @@ static void fgIdleFunction ( void ) {
     if ( idle_state == 1000 ) {
         // We've finished all our initialization steps, from now on we
         // run the main loop.
-        fgSetBool("sim/initialised",true);
         fgSetBool("sim/sceneryloaded",false);
 
         fgRegisterIdleHandler(fgMainLoop);