aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra/script_tim.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/kyra/script_tim.cpp')
-rw-r--r--engines/kyra/script_tim.cpp20
1 files changed, 14 insertions, 6 deletions
diff --git a/engines/kyra/script_tim.cpp b/engines/kyra/script_tim.cpp
index a3f3268db3..4165053c15 100644
--- a/engines/kyra/script_tim.cpp
+++ b/engines/kyra/script_tim.cpp
@@ -1028,7 +1028,10 @@ void TIMInterpreter_LoL::playAnimationPart(int animIndex, int firstFrame, int la
anim->wsa->displayFrame(i - 1, 0);
_screen->updateScreen();
}
- _vm->delay(next - _system->getMillis());
+ while ((int)(next - _system->getMillis()) > 0) {
+ _vm->updateInput();
+ _vm->delay(_vm->_tickLength);
+ }
}
}
@@ -1064,11 +1067,14 @@ uint16 TIMInterpreter_LoL::processDialogue() {
if (_dialogueNumButtons == 0) {
int e = _vm->checkInput(0, false) & 0xFF;
_vm->removeInputTop();
- _vm->gui_notifyButtonListChanged();
- if (e == 43 || e == 61) {
- _vm->snd_stopSpeech(true);
- //_dlgTimer = 0;
+ if (e) {
+ _vm->gui_notifyButtonListChanged();
+
+ if (e == 43 || e == 61) {
+ _vm->snd_stopSpeech(true);
+ //_dlgTimer = 0;
+ }
}
if (_vm->snd_characterSpeaking() != 2) {
@@ -1083,7 +1089,9 @@ uint16 TIMInterpreter_LoL::processDialogue() {
} else {
int e = _vm->checkInput(0, false) & 0xFF;
_vm->removeInputTop();
- _vm->gui_notifyButtonListChanged();
+ if (e)
+ _vm->gui_notifyButtonListChanged();
+
switch (e) {
case 43:
case 61: