[Scummvm-cvs-logs] SF.net SVN: scummvm: [24964] scummvm/trunk/engines/agos
eriktorbjorn at users.sourceforge.net
eriktorbjorn at users.sourceforge.net
Mon Jan 1 08:37:10 CET 2007
Revision: 24964
http://scummvm.svn.sourceforge.net/scummvm/?rev=24964&view=rev
Author: eriktorbjorn
Date: 2006-12-31 23:37:07 -0800 (Sun, 31 Dec 2006)
Log Message:
-----------
At Kirben's request, I've applied my old keyboard repeat patch for the AGOS
engine. Swampy's Adventures really needs it, and the more generic solution to
keyboard repeat is apparently stalled.
Modified Paths:
--------------
scummvm/trunk/engines/agos/agos.cpp
scummvm/trunk/engines/agos/agos.h
scummvm/trunk/engines/agos/event.cpp
Modified: scummvm/trunk/engines/agos/agos.cpp
===================================================================
--- scummvm/trunk/engines/agos/agos.cpp 2007-01-01 05:44:34 UTC (rev 24963)
+++ scummvm/trunk/engines/agos/agos.cpp 2007-01-01 07:37:07 UTC (rev 24964)
@@ -81,6 +81,8 @@
_debugger = 0;
_keyPressed = 0;
+ _keyRepeatKey = 0;
+ _keyRepeatTime = 0;
_gameFile = 0;
Modified: scummvm/trunk/engines/agos/agos.h
===================================================================
--- scummvm/trunk/engines/agos/agos.h 2007-01-01 05:44:34 UTC (rev 24963)
+++ scummvm/trunk/engines/agos/agos.h 2007-01-01 07:37:07 UTC (rev 24964)
@@ -213,6 +213,8 @@
const GameSpecificSettings *gss;
byte _keyPressed;
+ byte _keyRepeatKey;
+ uint32 _keyRepeatTime;
typedef enum {
FORMAT_NONE,
Modified: scummvm/trunk/engines/agos/event.cpp
===================================================================
--- scummvm/trunk/engines/agos/event.cpp 2007-01-01 05:44:34 UTC (rev 24963)
+++ scummvm/trunk/engines/agos/event.cpp 2007-01-01 07:37:07 UTC (rev 24964)
@@ -369,7 +369,14 @@
_keyPressed = 8;
else
_keyPressed = (byte)event.kbd.ascii;
+
+ _keyRepeatTime = _system->getMillis() + 400;
+ _keyRepeatKey = _keyPressed;
break;
+ case OSystem::EVENT_KEYUP:
+ _keyRepeatKey = 0;
+ _keyRepeatTime = 0;
+ break;
case OSystem::EVENT_MOUSEMOVE:
_sdlMouseX = event.mouse.x;
_sdlMouseY = event.mouse.y;
@@ -420,6 +427,11 @@
cur = _system->getMillis();
} while (cur < start + amount);
+
+ if (_keyPressed == 0 && _keyRepeatKey != 0 && _keyRepeatTime != 0 && cur >= _keyRepeatTime) {
+ _keyPressed = _keyRepeatKey;
+ _keyRepeatTime = cur + 100;
+ }
}
void AGOSEngine::timer_callback() {
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