aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
Diffstat (limited to 'engines')
-rw-r--r--engines/cge/events.cpp11
-rw-r--r--engines/cge/events.h2
2 files changed, 9 insertions, 4 deletions
diff --git a/engines/cge/events.cpp b/engines/cge/events.cpp
index 1c2738f62e..e2aaaa587d 100644
--- a/engines/cge/events.cpp
+++ b/engines/cge/events.cpp
@@ -99,11 +99,16 @@ Sprite *Keyboard::setClient(Sprite *spr) {
return spr;
}
-bool Keyboard::getKey(uint16 keycode, int &cgeCode) {
+bool Keyboard::getKey(Common::Event &event, int &cgeCode) {
+ Common::KeyCode keycode = event.kbd.keycode;
if ((keycode == Common::KEYCODE_LCTRL) || (keycode == Common::KEYCODE_RCTRL)) {
cgeCode = 29;
return true;
}
+ if ((keycode == Common::KEYCODE_LALT) || (keycode == Common::KEYCODE_RALT)) {
+ cgeCode = 56;
+ return true;
+ }
if (keycode == Common::KEYCODE_KP_ENTER) {
cgeCode = 28;
return true;
@@ -111,7 +116,7 @@ bool Keyboard::getKey(uint16 keycode, int &cgeCode) {
// Scan through the ScummVM mapping list
for (int idx = 0; idx < 0x60; idx++) {
- if (_scummVmCodes[idx] == keycode) {
+ if (_scummVmCodes[idx] == event.kbd.ascii) {
cgeCode = idx;
return true;
}
@@ -122,7 +127,7 @@ bool Keyboard::getKey(uint16 keycode, int &cgeCode) {
void Keyboard::newKeyboard(Common::Event &event) {
int keycode;
- if (!getKey(event.kbd.keycode, keycode))
+ if (!getKey(event, keycode))
return;
if (event.type == Common::EVENT_KEYUP) {
diff --git a/engines/cge/events.h b/engines/cge/events.h
index 671878f69a..2d85574bd7 100644
--- a/engines/cge/events.h
+++ b/engines/cge/events.h
@@ -47,7 +47,7 @@ namespace CGE {
class Keyboard {
private:
- bool getKey(uint16 keycode, int &cgeCode);
+ bool getKey(Common::Event &event, int &cgeCode);
public:
static const uint16 _code[0x60];
static const uint16 _scummVmCodes[0x60];