diff options
-rw-r--r-- | engines/kyra/lol.cpp | 8 | ||||
-rw-r--r-- | engines/kyra/sound_lol.cpp | 10 |
2 files changed, 8 insertions, 10 deletions
diff --git a/engines/kyra/lol.cpp b/engines/kyra/lol.cpp index d947346c4d..e356187007 100644 --- a/engines/kyra/lol.cpp +++ b/engines/kyra/lol.cpp @@ -3216,18 +3216,20 @@ void LoLEngine::playSpellAnimation(WSAMovie_v2 *mov, int firstFrame, int lastFra if (del) { delay(step); del -= step; + } else { + updateInput(); } continue; } - if (!_screen->fadePaletteStep(pal1, pal2, _system->getMillis() - startTime, _tickLength * fadeDelay) && !mov) { - updateInput(); + if (!_screen->fadePaletteStep(pal1, pal2, _system->getMillis() - startTime, _tickLength * fadeDelay) && !mov) return; - } if (del) { delay(step); del -= step; + } else { + updateInput(); } } while (del); 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]); |