[Scummvm-cvs-logs] SF.net SVN: scummvm:[46803] scummvm/trunk/engines/sci
m_kiewitz at users.sourceforge.net
m_kiewitz at users.sourceforge.net
Thu Dec 31 18:43:54 CET 2009
Revision: 46803
http://scummvm.svn.sourceforge.net/scummvm/?rev=46803&view=rev
Author: m_kiewitz
Date: 2009-12-31 17:43:54 +0000 (Thu, 31 Dec 2009)
Log Message:
-----------
SCI: keyboard change cleanup, fixed Ctrl and Alt related keys on foreign keyboards as well
Modified Paths:
--------------
scummvm/trunk/engines/sci/engine/kevent.cpp
scummvm/trunk/engines/sci/event.cpp
Modified: scummvm/trunk/engines/sci/engine/kevent.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kevent.cpp 2009-12-31 17:43:17 UTC (rev 46802)
+++ scummvm/trunk/engines/sci/engine/kevent.cpp 2009-12-31 17:43:54 UTC (rev 46803)
@@ -75,22 +75,12 @@
break;
case SCI_EVENT_KEYBOARD:
- if ((curEvent.modifiers & SCI_KEYMOD_LSHIFT) && (curEvent.modifiers & SCI_KEYMOD_RSHIFT) && (curEvent.data == '-')) {
- printf("Debug mode activated\n");
- g_debugState.seeking = kDebugSeekNothing;
- g_debugState.runningStep = 0;
- } else if ((curEvent.modifiers & SCI_KEYMOD_CTRL) && (curEvent.data == '`')) {
- printf("Debug mode activated\n");
- g_debugState.seeking = kDebugSeekNothing;
- g_debugState.runningStep = 0;
- } else {
- PUT_SEL32V(segMan, obj, type, SCI_EVENT_KEYBOARD); // Keyboard event
- s->r_acc = make_reg(0, 1);
+ PUT_SEL32V(segMan, obj, type, SCI_EVENT_KEYBOARD); // Keyboard event
+ s->r_acc = make_reg(0, 1);
- PUT_SEL32V(segMan, obj, message, curEvent.character);
- // We only care about the translated character
- PUT_SEL32V(segMan, obj, modifiers, curEvent.modifiers & modifier_mask);
- }
+ PUT_SEL32V(segMan, obj, message, curEvent.character);
+ // We only care about the translated character
+ PUT_SEL32V(segMan, obj, modifiers, curEvent.modifiers & modifier_mask);
break;
case SCI_EVENT_MOUSE_RELEASE:
Modified: scummvm/trunk/engines/sci/event.cpp
===================================================================
--- scummvm/trunk/engines/sci/event.cpp 2009-12-31 17:43:17 UTC (rev 46802)
+++ scummvm/trunk/engines/sci/event.cpp 2009-12-31 17:43:54 UTC (rev 46803)
@@ -52,9 +52,8 @@
};
int SciEvent::controlify(int ch) {
- if ((ch >= 97) && (ch <= 121)) {
- ch -= 96; // 'a' -> 0x01, etc.
- }
+ if (ch < 26)
+ ch += 96; // 0x01 -> 'a'
return ch;
}
@@ -79,54 +78,6 @@
return ch;
}
-int SciEvent::shiftify (int c) {
- char shifted_numbers[] = ")!@#$%^&*(";
-
- if (c < 256) {
- c = toupper((char)c);
-
- if (c >= 'A' && c <= 'Z')
- return c;
-
- if (c >= '0' && c <= '9')
- return shifted_numbers[c-'0'];
-
- switch (c) {
- case SCI_KEY_TAB:
- return SCI_KEY_SHIFT_TAB;
- case ']':
- return '}';
- case '[':
- return '{';
- case '`':
- return '~';
- case '-':
- return '_';
- case '=':
- return '+';
- case ';':
- return ':';
- case '\'':
- return '"';
- case '\\':
- return '|';
- case ',':
- return '<';
- case '.':
- return '>';
- case '/':
- return '?';
- default:
- return c; // No match
- }
- }
-
- if (c >= SCI_KEY_F1 && c <= SCI_KEY_F10)
- return c + 25;
-
- return c;
-}
-
int SciEvent::numlockify (int c) {
switch (c) {
case SCI_KEY_DELETE:
@@ -397,26 +348,18 @@
if (event.type == SCI_EVENT_KEYBOARD) {
// Do we still have to translate the key?
- // TODO: Needs cleanup
- //event.character = event.data;
-
// Scancodify if appropriate
if (event.modifiers & SCI_KEYMOD_ALT) {
- event.character = altify(event.data);
+ event.character = altify(event.character);
} else if (event.modifiers & SCI_KEYMOD_CTRL) {
- event.character = event.data;
- //event.character = controlify(event.data);
+ //event.character = event.data;
+ event.character = controlify(event.character);
}
- // Shift if appropriate
- // else
- //if (((event.modifiers & (SCI_KEYMOD_RSHIFT | SCI_KEYMOD_LSHIFT)) && !(event.modifiers & SCI_KEYMOD_CAPSLOCK))
- // || (!(event.modifiers & (SCI_KEYMOD_RSHIFT | SCI_KEYMOD_LSHIFT)) && (event.modifiers & SCI_KEYMOD_CAPSLOCK)))
- // event.character = shiftify(event.character);
-
// Numlockify if appropriate
- //else if (event.modifiers & SCI_KEYMOD_NUMLOCK)
+ //if (event.modifiers & SCI_KEYMOD_NUMLOCK)
// event.data = numlockify(event.data);
+ // TODO: dont know yet if this can get dumped as well
}
return event;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list