[Scummvm-cvs-logs] SF.net SVN: scummvm: [22818] scummvm/trunk/engines/agi/agi.cpp

sev at users.sourceforge.net sev at users.sourceforge.net
Thu Jun 1 06:58:03 CEST 2006


Revision: 22818
Author:   sev
Date:     2006-06-01 06:57:19 -0700 (Thu, 01 Jun 2006)
ViewCVS:  http://svn.sourceforge.net/scummvm/?rev=22818&view=rev

Log Message:
-----------
Fix keyboard input. Now it is possible to use key modifiers freely.

Modified Paths:
--------------
    scummvm/trunk/engines/agi/agi.cpp
Modified: scummvm/trunk/engines/agi/agi.cpp
===================================================================
--- scummvm/trunk/engines/agi/agi.cpp	2006-06-01 12:23:08 UTC (rev 22817)
+++ scummvm/trunk/engines/agi/agi.cpp	2006-06-01 13:57:19 UTC (rev 22818)
@@ -122,18 +122,11 @@
 				break;
 			}
 
-			if (event.kbd.flags == OSystem::KBD_CTRL) {
+			if (event.kbd.flags & OSystem::KBD_CTRL)
 				key_control = 1;
-				key = 0;
-				break;
-			} else if (event.kbd.flags == OSystem::KBD_ALT) {
+			
+			if (event.kbd.flags & OSystem::KBD_ALT)
 				key_alt = 1;
-				key = 0;
-				break;
-			} else if (event.kbd.flags == OSystem::KBD_SHIFT) {
-				key = 0;
-				break;
-			}
 
 			switch (key = event.kbd.keycode) {
 			case 256 + 20:	// left arrow
@@ -224,12 +217,16 @@
 				key = KEY_ENTER;
 				break;
 			default:
-				if (key < 256 && !isalpha(key))
+				if (key < 256 && !isalpha(key)) {
+					key = event.kbd.ascii;
 					break;
+				}
 				if (key_control)
 					key = (key & ~0x20) - 0x40;
 				else if (key_alt)
 					key = scancode_table[(key & ~0x20) - 0x41] << 8;
+				else if (event.kbd.flags & OSystem::KBD_SHIFT)
+					key = event.kbd.ascii;
 				break;
 			}
 			if (key)


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