diff options
-rw-r--r-- | engines/agi/keyboard.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/engines/agi/keyboard.cpp b/engines/agi/keyboard.cpp index 07aec985c8..9fb837badb 100644 --- a/engines/agi/keyboard.cpp +++ b/engines/agi/keyboard.cpp @@ -136,6 +136,7 @@ void AgiEngine::processEvents() { } key = event.kbd.ascii; +#if 0 if (event.kbd.keycode >= Common::KEYCODE_KP0 && event.kbd.keycode <= Common::KEYCODE_KP9) { if (!(event.kbd.flags & Common::KBD_NUM)) { // HACK: Num-Lock not enabled @@ -144,8 +145,13 @@ void AgiEngine::processEvents() { key = 0; } } - - if ((key) && (key <= 0xFF)) { +#endif + // FIXME: Checking .ascii this way seems to cause issues on at least AmigaOS + // See bug #7009. For detailed information see engines/sci/event.cpp, EventManager::getScummVMEvent(). + // For now we are using the same code as in SCI to make it work. + // Needs to get fixed in SDL backend / SDL itself. + //if ((key) && (key <= 0xFF)) { + if ((key) && (!(event.kbd.keycode & 0xFF00))) { // No special key, directly accept it // Is ISO-8859-1, we need lower 128 characters only, which is plain ASCII, so no mapping required if (Common::isAlpha(key)) { |