diff options
author | athrxx | 2011-06-17 17:35:00 +0200 |
---|---|---|
committer | Johannes Schickel | 2011-12-26 16:18:11 +0100 |
commit | 6853452bcbed083aa84638f11e4ce04ca189f0a1 (patch) | |
tree | 35ce230273f8c3a1377cc35728ddea85267a7843 | |
parent | 514c77625f3f4d60ca463c1af34fc0672c75df45 (diff) | |
download | scummvm-rg350-6853452bcbed083aa84638f11e4ce04ca189f0a1.tar.gz scummvm-rg350-6853452bcbed083aa84638f11e4ce04ca189f0a1.tar.bz2 scummvm-rg350-6853452bcbed083aa84638f11e4ce04ca189f0a1.zip |
KYRA: (EOB) - fix shift key input
-rw-r--r-- | engines/kyra/eobcommon.cpp | 6 | ||||
-rw-r--r-- | engines/kyra/gui_eob.cpp | 12 | ||||
-rw-r--r-- | engines/kyra/kyra_v1.cpp | 7 | ||||
-rw-r--r-- | engines/kyra/loleobbase.cpp | 2 | ||||
-rw-r--r-- | engines/kyra/loleobbase.h | 2 |
5 files changed, 17 insertions, 12 deletions
diff --git a/engines/kyra/eobcommon.cpp b/engines/kyra/eobcommon.cpp index b7f31702dd..89a20a0ea3 100644 --- a/engines/kyra/eobcommon.cpp +++ b/engines/kyra/eobcommon.cpp @@ -40,7 +40,7 @@ EobCoreEngine::EobCoreEngine(OSystem *system, const GameFlags &flags) : LolEobBa _teleporterWallId(flags.gameID == GI_EOB1 ? 52 : 44) { _screen = 0; _gui = 0; -TTTTT=false; + //_processingButtons=false; //_runLoopUnk2 = 0; //_runLoopTimerUnk = 0; _playFinale = false; @@ -411,7 +411,7 @@ void EobCoreEngine::runLoop() { while (!shouldQuit() && _runFlag) { //_runLoopUnk2 = _currentBlock; updateCharacterEvents(true); - checkInput(_activeButtons, true); + checkInput(_activeButtons, true, 0); removeInputTop(); if (_updateHandItemCursor) { @@ -1269,7 +1269,7 @@ void EobCoreEngine::displayParchment(int id) { removeInputTop(); while (!shouldQuit()) { delay(_tickLength); - if (checkInput(0) & 0xff) + if (checkInput(0, false, 0) & 0xff) break; removeInputTop(); } diff --git a/engines/kyra/gui_eob.cpp b/engines/kyra/gui_eob.cpp index 56c5acd3df..10eabe937f 100644 --- a/engines/kyra/gui_eob.cpp +++ b/engines/kyra/gui_eob.cpp @@ -1570,7 +1570,7 @@ int GUI_Eob::processButtonList(Kyra::Button *buttonList, uint16 inputFlags, int8 uint16 in = inputFlags & 0xff; uint16 buttonReleaseFlag = 0; bool clickEvt = false; - _vm->TTTTT = true; + //_vm->_processingButtons = true; _flagsMouseLeft = (_vm->_mouseClick == 1) ? 2 : 4; _flagsMouseRight = (_vm->_mouseClick == 2) ? 2 : 4; _vm->_mouseClick = 0; @@ -1589,7 +1589,7 @@ int GUI_Eob::processButtonList(Kyra::Button *buttonList, uint16 inputFlags, int8 inputFlags = 0; clickEvt = true; - } else { + } else if (inputFlags & 0x8000) { inputFlags &= 0xff; } @@ -1668,13 +1668,13 @@ int GUI_Eob::processButtonList(Kyra::Button *buttonList, uint16 inputFlags, int8 uint16 vR = 0; if (inputFlags) { - if (buttonList->keyCode == in) { + if (buttonList->keyCode == inputFlags) { _progress = 1; _flagsMouseLeft = 1; flgs2 ^= 1; result = iFlag; v6 = 1; - } else if (buttonList->keyCode2 == in) { + } else if (buttonList->keyCode2 == inputFlags) { _progress = 2; _flagsMouseRight = 1; result = iFlag; @@ -1941,7 +1941,9 @@ int GUI_Eob::processButtonList(Kyra::Button *buttonList, uint16 inputFlags, int8 if (!result) result = inputFlags; -_vm-> TTTTT=false; + + //_vm->_processingButtons=false; + return result; } diff --git a/engines/kyra/kyra_v1.cpp b/engines/kyra/kyra_v1.cpp index f5ef0d09ac..c1b9f2a453 100644 --- a/engines/kyra/kyra_v1.cpp +++ b/engines/kyra/kyra_v1.cpp @@ -285,10 +285,13 @@ int KyraEngine_v1::checkInput(Button *buttonList, bool mainLoop, int eventFlag) } } else { KeyMap::const_iterator keycode = _keyMap.find(event.kbd.keycode); - if (keycode != _keyMap.end()) + if (keycode != _keyMap.end()) { keys = keycode->_value; - else + if (event.kbd.flags & Common::KBD_SHIFT) + keys |= 0x100; + } else { keys = 0; + } // When we got an keypress, which we might need to handle, // break the event loop and pass it to GUI code. diff --git a/engines/kyra/loleobbase.cpp b/engines/kyra/loleobbase.cpp index 7db1a4ac68..47a261be6f 100644 --- a/engines/kyra/loleobbase.cpp +++ b/engines/kyra/loleobbase.cpp @@ -255,7 +255,7 @@ uint16 LolEobBaseEngine::processDialogue() { } } } else { - int e = checkInput(0, false) & 0xFF; + int e = checkInput(0, false, 0) & 0xFF; removeInputTop(); if (e) gui_notifyButtonListChanged(); diff --git a/engines/kyra/loleobbase.h b/engines/kyra/loleobbase.h index 1be2a8b07f..a2c13827fc 100644 --- a/engines/kyra/loleobbase.h +++ b/engines/kyra/loleobbase.h @@ -253,7 +253,7 @@ protected: Button *_activeButtons; Button _activeButtonData[70]; -bool TTTTT; + //bool _processingButtons; uint8 _mouseClick; bool _preserveEvents; |