aboutsummaryrefslogtreecommitdiff
path: root/engines/wintermute/base/base_keyboard_state.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/wintermute/base/base_keyboard_state.cpp')
-rw-r--r--engines/wintermute/base/base_keyboard_state.cpp119
1 files changed, 102 insertions, 17 deletions
diff --git a/engines/wintermute/base/base_keyboard_state.cpp b/engines/wintermute/base/base_keyboard_state.cpp
index 61087c5836..f672c83d39 100644
--- a/engines/wintermute/base/base_keyboard_state.cpp
+++ b/engines/wintermute/base/base_keyboard_state.cpp
@@ -262,27 +262,92 @@ bool BaseKeyboardState::isCurrentPrintable() const {
}
//////////////////////////////////////////////////////////////////////////
+enum VKeyCodes {
+ kVkReturn = 13,
+
+ kVkEscape = 27,
+
+ kVkSpace = 32,
+ kVkEnd = 35,
+ kVkHome = 36,
+ kVkLeft = 37,
+ kVkUp = 38,
+ kVkRight = 39,
+ kVkDown = 40,
+
+ kVkF1 = 112,
+ kVkF2 = 113,
+ kVkF3 = 114,
+ kVkF4 = 115,
+ kVkF5 = 116,
+ kVkF6 = 117,
+ kVkF7 = 118,
+ kVkF8 = 119,
+ kVkF9 = 120,
+ kVkF10 = 121,
+ kVkF11 = 122,
+ kVkF12 = 123
+
+};
+
+//////////////////////////////////////////////////////////////////////////
uint32 BaseKeyboardState::keyCodeToVKey(Common::Event *event) {
+ // todo
if (event->type != Common::EVENT_KEYDOWN) {
return 0;
}
switch (event->kbd.keycode) {
+ case Common::KEYCODE_RETURN:
case Common::KEYCODE_KP_ENTER:
- return Common::KEYCODE_RETURN;
+ return kVkReturn;
+ case Common::KEYCODE_ESCAPE:
+ return kVkEscape;
+ case Common::KEYCODE_SPACE:
+ return kVkSpace;
+ case Common::KEYCODE_END:
+ return kVkEnd;
+ case Common::KEYCODE_HOME:
+ return kVkHome;
+ case Common::KEYCODE_LEFT:
+ return kVkLeft;
+ case Common::KEYCODE_RIGHT:
+ return kVkRight;
+ case Common::KEYCODE_UP:
+ return kVkUp;
+ case Common::KEYCODE_DOWN:
+ return kVkDown;
+ case Common::KEYCODE_F1:
+ return kVkF1;
+ case Common::KEYCODE_F2:
+ return kVkF2;
+ case Common::KEYCODE_F3:
+ return kVkF3;
+ case Common::KEYCODE_F4:
+ return kVkF4;
+ case Common::KEYCODE_F5:
+ return kVkF5;
+ case Common::KEYCODE_F6:
+ return kVkF6;
+ case Common::KEYCODE_F7:
+ return kVkF7;
+ case Common::KEYCODE_F8:
+ return kVkF8;
+ case Common::KEYCODE_F9:
+ return kVkF9;
+ case Common::KEYCODE_F10:
+ return kVkF10;
+ case Common::KEYCODE_F11:
+ return kVkF11;
+ case Common::KEYCODE_F12:
+ return kVkF12;
default:
- return (uint32)event->kbd.ascii;
+ warning("Key not handled: %d '%c'", event->kbd.keycode, event->kbd.keycode);
+ return event->kbd.keycode;
+ break;
}
-}
-enum VKeyCodes {
- kVkEscape = 27,
- kVkSpace = 32,
- kVkLeft = 37,
- kVkUp = 38,
- kVkRight = 39,
- kVkDown = 40
-};
+}
//////////////////////////////////////////////////////////////////////////
Common::KeyCode BaseKeyboardState::vKeyToKeyCode(uint32 vkey) {
@@ -290,22 +355,42 @@ Common::KeyCode BaseKeyboardState::vKeyToKeyCode(uint32 vkey) {
switch (vkey) {
case kVkEscape:
return Common::KEYCODE_ESCAPE;
- break;
case kVkSpace:
return Common::KEYCODE_SPACE;
- break;
+ case kVkHome:
+ return Common::KEYCODE_HOME;
case kVkLeft:
return Common::KEYCODE_LEFT;
- break;
case kVkRight:
return Common::KEYCODE_RIGHT;
- break;
case kVkUp:
return Common::KEYCODE_UP;
- break;
case kVkDown:
return Common::KEYCODE_DOWN;
- break;
+ case kVkF1:
+ return Common::KEYCODE_F1;
+ case kVkF2:
+ return Common::KEYCODE_F2;
+ case kVkF3:
+ return Common::KEYCODE_F3;
+ case kVkF4:
+ return Common::KEYCODE_F4;
+ case kVkF5:
+ return Common::KEYCODE_F5;
+ case kVkF6:
+ return Common::KEYCODE_F6;
+ case kVkF7:
+ return Common::KEYCODE_F7;
+ case kVkF8:
+ return Common::KEYCODE_F8;
+ case kVkF9:
+ return Common::KEYCODE_F9;
+ case kVkF10:
+ return Common::KEYCODE_F10;
+ case kVkF11:
+ return Common::KEYCODE_F11;
+ case kVkF12:
+ return Common::KEYCODE_F12;
default:
warning("Unknown VKEY: %d", vkey);
return (Common::KeyCode)vkey;