aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/kyra/lol.cpp12
-rw-r--r--engines/kyra/script_lol.cpp2
2 files changed, 10 insertions, 4 deletions
diff --git a/engines/kyra/lol.cpp b/engines/kyra/lol.cpp
index efa17305e7..18d24569f6 100644
--- a/engines/kyra/lol.cpp
+++ b/engines/kyra/lol.cpp
@@ -1548,15 +1548,21 @@ void LoLEngine::snd_playSoundEffect(int track, int volume) {
if (volIndex > 0)
volume = (volIndex * volume) >> 8;
- else
+ else if (volIndex < 0)
volume = -volIndex;
// volume TODO
volume = 254 - volume;
int16 vocIndex = (int16)READ_LE_UINT16(&_ingameSoundIndex[track * 2]);
- if (vocIndex != -1
-) {
+
+ bool hasVocFile = false;
+ if (vocIndex != -1) {
+ if (scumm_stricmp(_ingameSoundList[vocIndex], "EMPTY"))
+ hasVocFile = true;
+ }
+
+ if (hasVocFile) {
_sound->voicePlay(_ingameSoundList[vocIndex], volume & 0xff, true);
} else if (_flags.platform == Common::kPlatformPC) {
if (_sound->getSfxType() == Sound::kMidiMT32)
diff --git a/engines/kyra/script_lol.cpp b/engines/kyra/script_lol.cpp
index 582e99d4b0..94ccef3909 100644
--- a/engines/kyra/script_lol.cpp
+++ b/engines/kyra/script_lol.cpp
@@ -1023,7 +1023,7 @@ int LoLEngine::olol_loadLangFile(EMCState *script) {
int LoLEngine::olol_playSoundEffect(EMCState *script) {
debugC(3, kDebugLevelScriptFuncs, "LoLEngine::olol_playSoundEffect(%p) (%d)", (const void *)script, stackPos(0));
- snd_playSoundEffect(stackPos(0), 255);
+ snd_playSoundEffect(stackPos(0), -1);
return 1;
}