diff options
-rw-r--r-- | engines/kyra/lol.cpp | 12 | ||||
-rw-r--r-- | engines/kyra/script_lol.cpp | 2 |
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; } |