diff --git a/source/glest_game/main/main.cpp b/source/glest_game/main/main.cpp index 1df8902d..0ff7f4f9 100644 --- a/source/glest_game/main/main.cpp +++ b/source/glest_game/main/main.cpp @@ -2537,7 +2537,7 @@ int glestMain(int argc, char** argv) { ExceptionHandler exceptionHandler; exceptionHandler.install( getCrashDumpFileName() ); - int shutdownFadeSoundMilliseconds = 1750; + int shutdownFadeSoundMilliseconds = 1000; Chrono chronoshutdownFadeSound; SimpleTaskThread *soundThreadManager = NULL; @@ -3573,9 +3573,13 @@ int glestMain(int argc, char** argv) { SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__); if(soundThreadManager) { - //printf("chronoshutdownFadeSound.getMillis() = %llu\n",chronoshutdownFadeSound.getMillis()); - for(;chronoshutdownFadeSound.getMillis() <= shutdownFadeSoundMilliseconds;) { - sleep(10); + SoundRenderer &soundRenderer= SoundRenderer::getInstance(); + if( Config::getInstance().getString("FactorySound","") != "None" && + soundRenderer.isVolumeTurnedOff() == false) { + //printf("chronoshutdownFadeSound.getMillis() = %llu\n",chronoshutdownFadeSound.getMillis()); + for(;chronoshutdownFadeSound.getMillis() <= shutdownFadeSoundMilliseconds;) { + sleep(10); + } } BaseThread::shutdownAndWait(soundThreadManager); diff --git a/source/glest_game/sound/sound_renderer.cpp b/source/glest_game/sound/sound_renderer.cpp index a8fe829e..a4f0fa91 100644 --- a/source/glest_game/sound/sound_renderer.cpp +++ b/source/glest_game/sound/sound_renderer.cpp @@ -251,6 +251,10 @@ void SoundRenderer::stopAllSounds(int64 fadeOff) { } } +bool SoundRenderer::isVolumeTurnedOff() const { + return (fxVolume <= 0 && musicVolume <= 0 && ambientVolume <= 0); +} + void SoundRenderer::loadConfig() { Config &config= Config::getInstance(); diff --git a/source/glest_game/sound/sound_renderer.h b/source/glest_game/sound/sound_renderer.h index e34f2a0b..1b650757 100644 --- a/source/glest_game/sound/sound_renderer.h +++ b/source/glest_game/sound/sound_renderer.h @@ -83,6 +83,8 @@ public: bool wasInitOk() const; bool runningThreaded() const { return runThreadSafe; } + + bool isVolumeTurnedOff() const; }; }}//end namespace