diff options
Diffstat (limited to 'engines/agi/agi.cpp')
-rw-r--r-- | engines/agi/agi.cpp | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/engines/agi/agi.cpp b/engines/agi/agi.cpp index 03b1615e85..5064b437ab 100644 --- a/engines/agi/agi.cpp +++ b/engines/agi/agi.cpp @@ -53,6 +53,10 @@ namespace Agi { static uint32 g_tickTimer; struct Mouse g_mouse; +void AgiEngine::allowSynthetic(bool allow) { + _allowSynthetic = allow; +} + void AgiEngine::processEvents() { OSystem::Event event; int key = 0; @@ -113,42 +117,42 @@ void AgiEngine::processEvents() { switch (key = event.kbd.keycode) { case 256 + 20: // left arrow case 260: // key pad 4 - if (!event.synthetic) + if (_allowSynthetic || !event.synthetic) key = KEY_LEFT; break; case 256 + 19: // right arrow case 262: // key pad 6 - if (!event.synthetic) + if (_allowSynthetic || !event.synthetic) key = KEY_RIGHT; break; case 256 + 17: // up arrow case 264: // key pad 8 - if (!event.synthetic) + if (_allowSynthetic || !event.synthetic) key = KEY_UP; break; case 256 + 18: // down arrow case 258: // key pad 2 - if (!event.synthetic) + if (_allowSynthetic || !event.synthetic) key = KEY_DOWN; break; case 256 + 24: // page up case 265: // key pad 9 - if (!event.synthetic) + if (_allowSynthetic || !event.synthetic) key = KEY_UP_RIGHT; break; case 256 + 25: // page down case 259: // key pad 3 - if (!event.synthetic) + if (_allowSynthetic || !event.synthetic) key = KEY_DOWN_RIGHT; break; case 256 + 22: // home case 263: // key pad 7 - if (!event.synthetic) + if (_allowSynthetic || !event.synthetic) key = KEY_UP_LEFT; break; case 256 + 23: // end case 257: // key pad 1 - if (!event.synthetic) + if (_allowSynthetic || !event.synthetic) key = KEY_DOWN_LEFT; break; case 261: // key pad 5 @@ -552,6 +556,8 @@ AgiEngine::AgiEngine(OSystem *syst) : Engine(syst) { _keyControl = 0; _keyAlt = 0; + _allowSynthetic = false; + g_tickTimer = 0; _intobj = NULL; |