aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra/sound_lol.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/kyra/sound_lol.cpp')
-rw-r--r--engines/kyra/sound_lol.cpp10
1 files changed, 3 insertions, 7 deletions
diff --git a/engines/kyra/sound_lol.cpp b/engines/kyra/sound_lol.cpp
index 52fb9eeb43..41a3936172 100644
--- a/engines/kyra/sound_lol.cpp
+++ b/engines/kyra/sound_lol.cpp
@@ -167,15 +167,11 @@ void LoLEngine::snd_playSoundEffect(int track, int volume) {
if (track == -1)
return;
+ volume &= 0xff;
int16 volIndex = (int16)READ_LE_UINT16(&_ingameSoundIndex[track * 2 + 1]);
- if (volIndex > 0)
- volume = (volIndex * volume) >> 8;
- else if (volIndex < 0)
- volume = -volIndex;
-
- // volume TODO
- volume = 254 - volume;
+ volume = (volIndex > 0) ? (volIndex * volume) >> 8 : -volIndex;
+ volume = CLIP(volume >> 4, 2, 13) * 7 + 164;
int16 vocIndex = (int16)READ_LE_UINT16(&_ingameSoundIndex[track * 2]);