The previous workaround was introduced to fix fighting using the keypad
in Indy 3. It enforced genering a number on KEYCODE_KP# events even
when KBD_NUM is not set. The issue on AmigaOS is that SDL never reports
KBD_NUM as being set. Instead we get different keycodes depending if
numlock is on or off (e.g. KEYCODE_KP3 and KEYCODE_PAGEDOWN).
The new workaround is to set the KBD_NUM modifier whenever we receive
a KEYCODE_KP# event from SDL. This way we also generate a number, but
in addition this is consistent with the modifier and works with code
that checks the KDB_NUM modifier (such as the GUI code or the AGI
engine).
Different platforms have different levels of support of encodings and
often have slight variations. We already have tables for most encoding
with only CJK missing. Full transcoding inclusion allows us to get reliable
encoding results independently of platform. The biggest con is the need for
external tables encoding.dat.
It removes a duplicate table for korean in graphics/korfont.cpp
Before this commit, when typing in Hebrew, SDL reported the equivalent
English keycode. Thus, if user typed Hebrew letter Aleph, it was
reported as ascii of 't' (or 'T', I don't remember...).
It's still impossible to type Hebrew letters in the GUI's input dialogs,
but it's a step forward.
Game controller input is now enabled whenever a compatible device is
connected. The keymapper's keymaps are refreshed when a joystick is added
or removed.
Fixes#10366.
The cursor position was overflowing a signed 16-bits integer once
multiplied with MULTIPLIER when using a resolution such as 2560x1440.
It would be nice changing this code to make more sense, sadly it is
thightly coupled with platform specific subclasses.
Fixes#10996.
SDL1/2: Exclude AmigaOS4 from returning 0 for .ascii
*reset .ascii to 0, when Num-Lock is NOT enabled and keypad directional keys are pressed* (original description) is causing the numpad to play dead completely on AmigaOS4 (no matter if numlock is active or not). This is a workaround for the SCUMM engine, where keycodes are mixed with ASCII codes.
Check commit f5ed14e93d for reference.
Fixes bug #10558. Tested with both SDL1 and 2 on AmigaOS4 and with both Indiana Jones games.