[Scummvm-cvs-logs] CVS: scummvm/sword2 sword2.cpp,1.89,1.90

Torbj?rn Andersson eriktorbjorn at users.sourceforge.net
Wed Dec 10 00:00:02 CET 2003


Update of /cvsroot/scummvm/scummvm/sword2
In directory sc8-pr-cvs1:/tmp/cvs-serv8013

Modified Files:
	sword2.cpp 
Log Message:
Cleaned up keyboard handling. The old code would misinterpret some keys,
e.g. it's 'C' or 'c' to display the credits, not some random function key.


Index: sword2.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sword2/sword2.cpp,v
retrieving revision 1.89
retrieving revision 1.90
diff -u -d -r1.89 -r1.90
--- sword2.cpp	1 Dec 2003 10:24:02 -0000	1.89
+++ sword2.cpp	10 Dec 2003 07:59:45 -0000	1.90
@@ -342,41 +342,35 @@
 		if (_input->keyWaiting()) {
 			_input->readKey(&ke);
 
-			char c = toupper(ke.ascii);
-
-			if ((ke.modifiers == OSystem::KBD_CTRL && ke.keycode == 'd') || c == '~' || c == '#') {
+			if ((ke.modifiers == OSystem::KBD_CTRL && ke.keycode == 'd') || ke.ascii == '#' || ke.ascii == '~') {
 				_debugger->attach();
-			}
-
-			if (_gamePaused) {	// if currently paused
-				if (c == 'P') {
-					// 'P' while paused = unpause!
-					unpauseGame();
-				}
+			} else if (ke.modifiers == 0 || ke.modifiers == OSystem::KBD_SHIFT) {
+				switch (ke.keycode) {
+				case 'p':
+					if (_gamePaused)
+						unpauseGame();
+					else
+						pauseGame();
+					break;
+				case 'c':
+					if (!(_features & GF_DEMO))
+						_logic->fnPlayCredits(NULL);
+					break;
 #ifdef _SWORD2_DEBUG
-				// frame-skipping only allowed on
-				// debug version
-
-				else if (c == ' ') {
-					// SPACE bar while paused =
-					// step one frame!
-					_stepOneCycle = true;
-					unpauseGame();
-				}
+				case ' ':
+					if (_gamePaused) {
+						_stepOneCycle = true;
+						unpauseGame();
+					}
+					break;
+				case 's':
+					_renderSkip = !_renderSkip;
+					break;
 #endif
-			} else if (c == 'P') {
-				// 'P' while not paused = pause!
-				pauseGame();
-			} else if (c == 'C' && !(_features & GF_DEMO)) {
-				_logic->fnPlayCredits(NULL);
-			}
-#ifdef _SWORD2_DEBUG
-			else if (c == 'S') {
-				// 'S' toggles speed up (by skipping
-				// display rendering)
-				_renderSkip = !_renderSkip;
+				default:
+					break;
+				}
 			}
-#endif
 		}
 
 		// skip GameCycle if we're paused





More information about the Scummvm-git-logs mailing list