From 90a5b24e192d141af76461d5298f27841cff76ea Mon Sep 17 00:00:00 2001
From: dg <dg@51575b47-30f0-44d4-a5cc-537603b46e54>
Date: Sat, 25 Jun 2011 10:19:43 +0000
Subject: [PATCH] plop

git-svn-id: http://svn.net-core.org/repos/t-engine4@3718 51575b47-30f0-44d4-a5cc-537603b46e54
---
 game/engines/default/engine/init.lua              |  3 ++-
 .../default/engine/interface/GameMusic.lua        | 11 ++++++++---
 .../default/engine/interface/GameSound.lua        | 15 ++++++++++++++-
 3 files changed, 24 insertions(+), 5 deletions(-)

diff --git a/game/engines/default/engine/init.lua b/game/engines/default/engine/init.lua
index a8b1f1991c..ad2beffaf7 100644
--- a/game/engines/default/engine/init.lua
+++ b/game/engines/default/engine/init.lua
@@ -48,7 +48,8 @@ fs.setWritePath(fs.getHomePath())
 fs.mount(engine.homepath, "/")
 config.loadString[[
 sound.enabled = true
-music.volume = 60
+audio.music_volume = 60
+audio.effects_volume = 100
 aa_text = true
 fbo_active = true
 shaders_active = true
diff --git a/game/engines/default/engine/interface/GameMusic.lua b/game/engines/default/engine/interface/GameMusic.lua
index 52d459a14a..cf5b6eaf90 100644
--- a/game/engines/default/engine/interface/GameMusic.lua
+++ b/game/engines/default/engine/interface/GameMusic.lua
@@ -51,6 +51,7 @@ function _M:playMusic(name)
 	m = m:use() -- Get the source
 	m:loop(true)
 	m:play()
+	m:volume(config.settings.audio.music_volume / 100)
 	self.playing_musics[name] = {source=m}
 end
 
@@ -74,9 +75,13 @@ function _M:playAndStopMusic(...)
 end
 
 function _M:volumeMusic(vol)
-do return end
+	vol = util.bound(vol, 0, 100)
 	if vol then
-		self:saveSettings("music", ("music.volume = %q\n"):format(vol))
+		self:saveSettings("audio", ("audio.music_volume = %q\n"):format(vol))
+		config.settings.audio = config.settings.audio or {}
+		config.settings.audio.music_volume = vol
+	end
+	for name, m in pairs(self.playing_musics) do
+		m.source:volume(vol / 100)
 	end
-	return core.sound.musicVolume(vol) or 0
 end
diff --git a/game/engines/default/engine/interface/GameSound.lua b/game/engines/default/engine/interface/GameSound.lua
index 871f5fb2d4..34952839ae 100644
--- a/game/engines/default/engine/interface/GameSound.lua
+++ b/game/engines/default/engine/interface/GameSound.lua
@@ -61,7 +61,8 @@ function _M:playSound(name)
 	end
 	if not s or not s.sample then return end
 	local source = s.sample:use()
-	if s.volume then source:volume(s.volume / 100) end
+	if s.volume then source:volume((s.volume / 100) * (config.settings.audio.effects_volume / 100))
+	else source:volume(config.settings.audio.effects_volume / 100) end
 	source:play()
 	self.playing_sounds[source] = true
 	return source
@@ -76,3 +77,15 @@ function _M:cleanSounds()
 	end
 	for i = 1, #todel do self.playing_sounds[todel[i]] = nil end
 end
+
+function _M:volumeSoundEffects(vol)
+	vol = util.bound(vol, 0, 100)
+	if vol then
+		self:saveSettings("audio", ("audio.effects_volume = %q\n"):format(vol))
+		config.settings.audio = config.settings.audio or {}
+		config.settings.audio.effects_volume = vol
+	end
+	for source, _ in pairs(self.playing_sounds) do
+		source:volume(vol / 100)
+	end
+end
-- 
GitLab