[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