From 800dad8273e7806a140b88e2f567e8876c45e29f Mon Sep 17 00:00:00 2001 From: ehofman Date: Thu, 16 Dec 2004 13:19:01 +0000 Subject: [PATCH] Make sound audiable not until after the scenery is loaded. --- src/Main/fg_init.cxx | 6 +++--- src/Main/main.cxx | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Main/fg_init.cxx b/src/Main/fg_init.cxx index 7d29df4d2..fe426c178 100644 --- a/src/Main/fg_init.cxx +++ b/src/Main/fg_init.cxx @@ -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); } diff --git a/src/Main/main.cxx b/src/Main/main.cxx index 103fb951b..41511d62a 100644 --- a/src/Main/main.cxx +++ b/src/Main/main.cxx @@ -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);