Limit properly the sound setting at updateSound runtime step (#5753)

* Limit properly the sound setting at updateSound runtime step

Fix #5026

* Add a comment
This commit is contained in:
Loïc Blot 2017-05-13 12:03:11 +02:00 committed by GitHub
parent 9b8ca3a746
commit 6673aff685
2 changed files with 11 additions and 4 deletions

@ -3444,7 +3444,15 @@ void Game::updateSound(f32 dtime)
v3f(0, 0, 0), // velocity v3f(0, 0, 0), // velocity
camera->getDirection(), camera->getDirection(),
camera->getCameraNode()->getUpVector()); camera->getCameraNode()->getUpVector());
sound->setListenerGain(g_settings->getFloat("sound_volume"));
// Check if volume is in the proper range, else fix it.
float old_volume = g_settings->getFloat("sound_volume");
float new_volume = rangelim(old_volume, 0.0f, 1.0f);
sound->setListenerGain(new_volume);
if (old_volume != new_volume) {
g_settings->setFloat("sound_volume", new_volume);
}
LocalPlayer *player = client->getEnv().getLocalPlayer(); LocalPlayer *player = client->getEnv().getLocalPlayer();

@ -69,7 +69,7 @@ void GUIVolumeChange::regenerateGui(v2u32 screensize)
Remove stuff Remove stuff
*/ */
removeChildren(); removeChildren();
/* /*
Calculate new sizes and positions Calculate new sizes and positions
*/ */
@ -79,12 +79,11 @@ void GUIVolumeChange::regenerateGui(v2u32 screensize)
screensize.X/2 + 380/2, screensize.X/2 + 380/2,
screensize.Y/2 + 200/2 screensize.Y/2 + 200/2
); );
DesiredRect = rect; DesiredRect = rect;
recalculateAbsolutePosition(false); recalculateAbsolutePosition(false);
v2s32 size = rect.getSize(); v2s32 size = rect.getSize();
v2s32 topleft_client(40, 0);
int volume = (int)(g_settings->getFloat("sound_volume")*100); int volume = (int)(g_settings->getFloat("sound_volume")*100);
/* /*
Add stuff Add stuff