From 453afd7bbc7b83506638bf87b830384078f729e1 Mon Sep 17 00:00:00 2001 From: Martin Kiewitz Date: Sun, 3 Jan 2016 18:32:25 +0100 Subject: SCI: kGetEvent modifiers bug was fixed in SCI1 - SCI1 EGA QfG2 keyboard driver resets AH In the original commit I forgot to mention: - thanks to lskovlun for figuring out that bit 9 is checked/set - thanks to wjp for checking SCI32 --- engines/sci/engine/kevent.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'engines/sci/engine/kevent.cpp') diff --git a/engines/sci/engine/kevent.cpp b/engines/sci/engine/kevent.cpp index 1d9dbdcbb4..beaad2628a 100644 --- a/engines/sci/engine/kevent.cpp +++ b/engines/sci/engine/kevent.cpp @@ -124,8 +124,9 @@ reg_t kGetEvent(EngineState *s, int argc, reg_t *argv) { // At least one fan-made game (Betrayed Alliance) requires 0x02 to be in the upper byte, // otherwise the darts game (script 111) will not work properly. - // It seems Sierra fixed this behaviour (effectively bug) in SCI32 - if (getSciVersion() <= SCI_VERSION_1_1) { + // It seems Sierra fixed this behaviour (effectively bug) in the SCI1 keyboard driver. + // SCI32 also resets the upper byte. + if (getSciVersion() <= SCI_VERSION_01) { modifiers |= 0x0200; } } -- cgit v1.2.3