diff options
| author | Paul Gilbert | 2018-04-06 22:30:29 -0400 |
|---|---|---|
| committer | Paul Gilbert | 2018-04-06 22:30:29 -0400 |
| commit | fa00855a109e6ba11aad663c2d41d8a503f7d31d (patch) | |
| tree | 8735be3f09015ac81ebdaf254fea2314091b320d /engines/xeen/dialogs | |
| parent | 9d94d97cc60006eac16808c14efdff85fd17f910 (diff) | |
| download | scummvm-rg350-fa00855a109e6ba11aad663c2d41d8a503f7d31d.tar.gz scummvm-rg350-fa00855a109e6ba11aad663c2d41d8a503f7d31d.tar.bz2 scummvm-rg350-fa00855a109e6ba11aad663c2d41d8a503f7d31d.zip | |
XEEN: Don't set a _buttonValue when Ctrl or Alt is pressed
This avoids a problem where holding down Ctrl for the GMM
was passing multiple turns.. very noticeable if there were
monsters nearby, or the party is standing on a trap tile
Diffstat (limited to 'engines/xeen/dialogs')
| -rw-r--r-- | engines/xeen/dialogs/dialogs.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/engines/xeen/dialogs/dialogs.cpp b/engines/xeen/dialogs/dialogs.cpp index 3e777ba232..f404996b56 100644 --- a/engines/xeen/dialogs/dialogs.cpp +++ b/engines/xeen/dialogs/dialogs.cpp @@ -99,15 +99,18 @@ bool ButtonContainer::checkEvents(XeenEngine *vm) { Common::KeyState keyState; events.getKey(keyState); - _buttonValue = keyState.keycode; - if (_buttonValue == Common::KEYCODE_KP8) + if (keyState.keycode == Common::KEYCODE_KP8) _buttonValue = Common::KEYCODE_UP; - else if (_buttonValue == Common::KEYCODE_KP2) + else if (keyState.keycode == Common::KEYCODE_KP2) _buttonValue = Common::KEYCODE_DOWN; - else if (_buttonValue == Common::KEYCODE_KP_ENTER) + else if (keyState.keycode == Common::KEYCODE_KP_ENTER) _buttonValue = Common::KEYCODE_RETURN; + else if (keyState.keycode != Common::KEYCODE_LCTRL && keyState.keycode != Common::KEYCODE_RCTRL + && keyState.keycode != Common::KEYCODE_LALT && keyState.keycode != Common::KEYCODE_RALT) + _buttonValue = keyState.keycode; - _buttonValue |= (keyState.flags & ~Common::KBD_STICKY) << 16; + if (_buttonValue) + _buttonValue |= (keyState.flags & ~Common::KBD_STICKY) << 16; } if (_buttonValue) { |
