aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/gfx/gfx_driver.cpp
diff options
context:
space:
mode:
authorFilippos Karapetis2009-02-25 19:52:17 +0000
committerFilippos Karapetis2009-02-25 19:52:17 +0000
commit71ae2d3aba4a47a3fecf2cea02528ec2763ee6fc (patch)
treebc4352b722674d261ce8059a72164a343eff3d2e /engines/sci/gfx/gfx_driver.cpp
parentc199c6c6c4652306c4660e4736f054175e4f0b25 (diff)
downloadscummvm-rg350-71ae2d3aba4a47a3fecf2cea02528ec2763ee6fc.tar.gz
scummvm-rg350-71ae2d3aba4a47a3fecf2cea02528ec2763ee6fc.tar.bz2
scummvm-rg350-71ae2d3aba4a47a3fecf2cea02528ec2763ee6fc.zip
Reverted my wrong commit #38870. Most of the key codes are handled by the engine itself, however there are cases where they are handled by the game scripts, e.g. in save/load dialogs. The arrow keys in the save/load dialogs should work properly again. The numpad keys still look to be broken by some other commit
svn-id: r38886
Diffstat (limited to 'engines/sci/gfx/gfx_driver.cpp')
-rw-r--r--engines/sci/gfx/gfx_driver.cpp24
1 files changed, 21 insertions, 3 deletions
diff --git a/engines/sci/gfx/gfx_driver.cpp b/engines/sci/gfx/gfx_driver.cpp
index e9b1036d79..28c16ee820 100644
--- a/engines/sci/gfx/gfx_driver.cpp
+++ b/engines/sci/gfx/gfx_driver.cpp
@@ -375,11 +375,11 @@ static sci_event_t scummvm_get_event(gfx_driver_t *drv) {
if (input.data == Common::KEYCODE_TAB) {
// Tab
input.type = SCI_EVT_KEYBOARD;
- input.data = Common::KEYCODE_TAB;
+ input.data = SCI_K_TAB;
if (input.buckybits & (SCI_EVM_LSHIFT | SCI_EVM_RSHIFT))
input.character = SCI_K_SHIFT_TAB;
else
- input.character = Common::KEYCODE_TAB;
+ input.character = SCI_K_TAB;
}
} else if ((input.data >= Common::KEYCODE_F1) && input.data <= Common::KEYCODE_F10) {
// F1-F10
@@ -396,16 +396,34 @@ static sci_event_t scummvm_get_event(gfx_driver_t *drv) {
input.type = SCI_EVT_KEYBOARD;
switch (ev.kbd.keycode) {
case Common::KEYCODE_UP:
+ input.data = SCI_K_UP;
+ break;
case Common::KEYCODE_DOWN:
+ input.data = SCI_K_DOWN;
+ break;
case Common::KEYCODE_RIGHT:
+ input.data = SCI_K_RIGHT;
+ break;
case Common::KEYCODE_LEFT:
+ input.data = SCI_K_LEFT;
+ break;
case Common::KEYCODE_INSERT:
+ input.data = SCI_K_INSERT;
+ break;
case Common::KEYCODE_HOME:
+ input.data = SCI_K_HOME;
+ break;
case Common::KEYCODE_END:
+ input.data = SCI_K_END;
+ break;
case Common::KEYCODE_PAGEUP:
+ input.data = SCI_K_PGUP;
+ break;
case Common::KEYCODE_PAGEDOWN:
+ input.data = SCI_K_PGDOWN;
+ break;
case Common::KEYCODE_DELETE:
- input.data = ev.kbd.keycode;
+ input.data = SCI_K_DELETE;
break;
//TODO: SCI_K_CENTER
default: