diff options
-rw-r--r-- | engines/kyra/gui_v2.cpp | 9 | ||||
-rw-r--r-- | engines/kyra/kyra_v2.cpp | 7 |
2 files changed, 9 insertions, 7 deletions
diff --git a/engines/kyra/gui_v2.cpp b/engines/kyra/gui_v2.cpp index 6b472a66ad..7afed9eb04 100644 --- a/engines/kyra/gui_v2.cpp +++ b/engines/kyra/gui_v2.cpp @@ -376,10 +376,8 @@ int KyraEngine_v2::processButtonList(Button *buttonList, uint16 inputFlag) { // but did some other magic, which looks like it depends on how the handle // key input... so we just enable 0x1000 and 0x4000 here to allow // all GUI buttons to work (for now at least...) - if (inFlags == 199 || inFlags == 198) { + if (inFlags == 199 || inFlags == 198) temp = 0x1000 | 0x4000; - removeInputTop(); - } //if (inputFlag & 0x800) // temp <<= 2; @@ -555,9 +553,12 @@ int KyraEngine_v2::processButtonList(Button *buttonList, uint16 inputFlag) { buttonList->flags2 &= 0xFF; buttonList->flags2 |= flags; - if (buttonList->buttonCallback) + if (buttonList->buttonCallback) { + removeInputTop(); if ((this->*buttonList->buttonCallback)(buttonList)) break; + } + if (buttonList->flags & 0x20) break; } diff --git a/engines/kyra/kyra_v2.cpp b/engines/kyra/kyra_v2.cpp index 0d183d2c09..392ffc7406 100644 --- a/engines/kyra/kyra_v2.cpp +++ b/engines/kyra/kyra_v2.cpp @@ -781,14 +781,15 @@ int KyraEngine_v2::checkInput(Button *buttonList, bool mainLoop) { (event.kbd.flags == Common::KBD_CTRL || event.kbd.flags == Common::KBD_ALT) && mainLoop) { const char *saveLoadSlot = getSavegameFilename(event.kbd.keycode - '0'); - if (event.kbd.flags == Common::KBD_CTRL) + if (event.kbd.flags == Common::KBD_CTRL) { loadGame(saveLoadSlot); - else { + _eventList.clear(); + breakLoop = true; + } else { char savegameName[14]; sprintf(savegameName, "Quicksave %d", event.kbd.keycode - '0'); saveGame(saveLoadSlot, savegameName); } - breakLoop = true; } else if (event.kbd.flags == Common::KBD_CTRL) { if (event.kbd.keycode == 'd') _debugger->attach(); |