aboutsummaryrefslogtreecommitdiff
path: root/engines/agi/agi.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/agi/agi.cpp')
-rw-r--r--engines/agi/agi.cpp22
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;