diff options
author | Johannes Schickel | 2008-03-28 01:03:54 +0000 |
---|---|---|
committer | Johannes Schickel | 2008-03-28 01:03:54 +0000 |
commit | c5929561babc66df862e5b0b15b14b9430433e65 (patch) | |
tree | 826f196516b0de6ed6f6d54b09194ea4b9d33bfc | |
parent | b033c5f605559854e92bda06ffd54ec132a3c22c (diff) | |
download | scummvm-rg350-c5929561babc66df862e5b0b15b14b9430433e65.tar.gz scummvm-rg350-c5929561babc66df862e5b0b15b14b9430433e65.tar.bz2 scummvm-rg350-c5929561babc66df862e5b0b15b14b9430433e65.zip |
- Clear input queue after loading game via hotkeys.
- Fixed bug which caused the need for clicking twice to change pages in spellbook.
svn-id: r31282
-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(); |