[Scummvm-cvs-logs] SF.net SVN: scummvm:[54568] scummvm/trunk/engines/made/made.cpp
thebluegr at users.sourceforge.net
thebluegr at users.sourceforge.net
Mon Nov 29 11:20:45 CET 2010
Revision: 54568
http://scummvm.svn.sourceforge.net/scummvm/?rev=54568&view=rev
Author: thebluegr
Date: 2010-11-29 10:20:45 +0000 (Mon, 29 Nov 2010)
Log Message:
-----------
MADE: Fixed bug #3090034 - "RTZ: Keyboard unresponsive", by properly handling keyboard keys
Modified Paths:
--------------
scummvm/trunk/engines/made/made.cpp
Modified: scummvm/trunk/engines/made/made.cpp
===================================================================
--- scummvm/trunk/engines/made/made.cpp 2010-11-29 07:52:38 UTC (rev 54567)
+++ scummvm/trunk/engines/made/made.cpp 2010-11-29 10:20:45 UTC (rev 54568)
@@ -232,12 +232,52 @@
break;
case Common::EVENT_KEYDOWN:
- _eventKey = event.kbd.ascii;
- // For unknown reasons, the game accepts ASCII code
- // 9 as backspace
- if (_eventKey == Common::KEYCODE_BACKSPACE)
+ // Handle any special keys here
+ // Supported keys taken from http://www.allgame.com/game.php?id=13542&tab=controls
+
+ switch (event.kbd.keycode) {
+ case Common::KEYCODE_KP_PLUS: // action (same as left mouse click)
+ _eventNum = 1; // left mouse button up
+ break;
+ case Common::KEYCODE_KP_MINUS: // inventory (same as right mouse click)
+ _eventNum = 3; // right mouse button up
+ break;
+ case Common::KEYCODE_UP:
+ case Common::KEYCODE_KP8:
+ _eventMouseY = MAX<int16>(0, _eventMouseY - 1);
+ g_system->warpMouse(_eventMouseX, _eventMouseY);
+ break;
+ case Common::KEYCODE_DOWN:
+ case Common::KEYCODE_KP2:
+ _eventMouseY = MIN<int16>(199, _eventMouseY + 1);
+ g_system->warpMouse(_eventMouseX, _eventMouseY);
+ break;
+ case Common::KEYCODE_LEFT:
+ case Common::KEYCODE_KP4:
+ _eventMouseX = MAX<int16>(0, _eventMouseX - 1);
+ g_system->warpMouse(_eventMouseX, _eventMouseY);
+ break;
+ case Common::KEYCODE_RIGHT:
+ case Common::KEYCODE_KP6:
+ _eventMouseX = MIN<int16>(319, _eventMouseX + 1);
+ g_system->warpMouse(_eventMouseX, _eventMouseY);
+ break;
+ case Common::KEYCODE_F1: // menu
+ case Common::KEYCODE_F2: // save game
+ case Common::KEYCODE_F3: // load game
+ case Common::KEYCODE_F4: // repeat last message
+ _eventNum = 5;
+ _eventKey = (event.kbd.keycode - Common::KEYCODE_F1) + 21;
+ break;
+ case Common::KEYCODE_BACKSPACE:
+ _eventNum = 5;
_eventKey = 9;
- _eventNum = 5;
+ break;
+ default:
+ _eventNum = 5;
+ _eventKey = event.kbd.ascii;
+ break;
+ }
// Check for Debugger Activation
if (event.kbd.hasFlags(Common::KBD_CTRL) && event.kbd.keycode == Common::KEYCODE_d) {
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