aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLoïc Blot <nerzhul@users.noreply.github.com>2017-05-13 12:03:11 +0200
committerGitHub <noreply@github.com>2017-05-13 12:03:11 +0200
commit6673aff685047d4a0e6254f3b62313425e8f5b3c (patch)
tree9edf8177760eec9fcde5accb9a91cecd2307bf6d
parent9b8ca3a746cdb9478a46939d36c30484a97255e1 (diff)
downloadminetest-6673aff685047d4a0e6254f3b62313425e8f5b3c.tar.gz
minetest-6673aff685047d4a0e6254f3b62313425e8f5b3c.tar.bz2
minetest-6673aff685047d4a0e6254f3b62313425e8f5b3c.zip
Limit properly the sound setting at updateSound runtime step (#5753)
* Limit properly the sound setting at updateSound runtime step Fix #5026 * Add a comment
-rw-r--r--src/game.cpp10
-rw-r--r--src/guiVolumeChange.cpp5
2 files changed, 11 insertions, 4 deletions
diff --git a/src/game.cpp b/src/game.cpp
index ab8eb5c70..f237a87aa 100644
--- a/src/game.cpp
+++ b/src/game.cpp
@@ -3444,7 +3444,15 @@ void Game::updateSound(f32 dtime)
v3f(0, 0, 0), // velocity
camera->getDirection(),
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();
diff --git a/src/guiVolumeChange.cpp b/src/guiVolumeChange.cpp
index 8425bc04f..cdb70b4bf 100644
--- a/src/guiVolumeChange.cpp
+++ b/src/guiVolumeChange.cpp
@@ -69,7 +69,7 @@ void GUIVolumeChange::regenerateGui(v2u32 screensize)
Remove stuff
*/
removeChildren();
-
+
/*
Calculate new sizes and positions
*/
@@ -79,12 +79,11 @@ void GUIVolumeChange::regenerateGui(v2u32 screensize)
screensize.X/2 + 380/2,
screensize.Y/2 + 200/2
);
-
+
DesiredRect = rect;
recalculateAbsolutePosition(false);
v2s32 size = rect.getSize();
- v2s32 topleft_client(40, 0);
int volume = (int)(g_settings->getFloat("sound_volume")*100);
/*
Add stuff