[Scummvm-cvs-logs] SF.net SVN: scummvm: [24165] scummvm/trunk/engines/scumm
fingolfin at users.sourceforge.net
fingolfin at users.sourceforge.net
Sat Oct 7 14:33:28 CEST 2006
Revision: 24165
http://svn.sourceforge.net/scummvm/?rev=24165&view=rev
Author: fingolfin
Date: 2006-10-07 05:33:22 -0700 (Sat, 07 Oct 2006)
Log Message:
-----------
Moved SCUMM keyboard handling code from processInput() to the new (sub)method processKeyboard
Modified Paths:
--------------
scummvm/trunk/engines/scumm/input.cpp
scummvm/trunk/engines/scumm/intern.h
scummvm/trunk/engines/scumm/scumm.cpp
scummvm/trunk/engines/scumm/scumm.h
Modified: scummvm/trunk/engines/scumm/input.cpp
===================================================================
--- scummvm/trunk/engines/scumm/input.cpp 2006-10-07 12:19:28 UTC (rev 24164)
+++ scummvm/trunk/engines/scumm/input.cpp 2006-10-07 12:33:22 UTC (rev 24165)
@@ -219,8 +219,6 @@
}
void ScummEngine::processInput(bool smushMode) {
- int saveloadkey;
-
_lastKeyHit = _keyPressed;
_keyPressed = 0;
if (((_game.version <= 2) || (_game.platform == Common::kPlatformFMTowns && _game.version == 3)) && 315 <= _lastKeyHit && _lastKeyHit < 315+12) {
@@ -317,7 +315,11 @@
if (!_lastKeyHit)
return;
+
+ processKeyboard(smushMode);
+}
+void ScummEngine_v8::processKeyboard(bool smushMode) {
// If a key script was specified (a V8 feature), and it's trigger
// key was pressed, run it.
if (_keyScriptNo && (_keyScriptKey == _lastKeyHit)) {
@@ -325,7 +327,13 @@
return;
}
- if (_game.version >= 6 && _lastKeyHit == 20) {
+ ScummEngine_v6::processKeyboard(smushMode);
+}
+
+void ScummEngine_v6::processKeyboard(bool smushMode) {
+ if (_lastKeyHit == 20) {
+ // FIXME: What key is '20' supposed to indicate? I can't trigger
+ // it with my keyboard, it seems...
char buf[256];
_voiceMode++;
@@ -357,7 +365,11 @@
runDialog(dialog);
return;
}
+}
+void ScummEngine::processKeyboard(bool smushMode) {
+ int saveloadkey;
+
if (VAR_RESTART_KEY != 0xFF && _lastKeyHit == VAR(VAR_RESTART_KEY) ||
(((_game.version <= 2) || (_game.platform == Common::kPlatformFMTowns && _game.version == 3)) && _lastKeyHit == 8)) {
confirmRestartDialog();
Modified: scummvm/trunk/engines/scumm/intern.h
===================================================================
--- scummvm/trunk/engines/scumm/intern.h 2006-10-07 12:19:28 UTC (rev 24164)
+++ scummvm/trunk/engines/scumm/intern.h 2006-10-07 12:33:22 UTC (rev 24165)
@@ -584,6 +584,7 @@
virtual const char *getOpcodeDesc(byte i);
virtual void scummLoop_handleActors();
+ virtual void processKeyboard(bool smushMode);
virtual void setupScummVars();
virtual void decodeParseString(int a, int b);
@@ -896,6 +897,8 @@
int _objectIDMapSize;
ObjectNameId *_objectIDMap;
+ int _keyScriptKey, _keyScriptNo;
+
public:
ScummEngine_v8(OSystem *syst, const DetectorResult &dr);
~ScummEngine_v8();
@@ -921,6 +924,7 @@
virtual int getObjectIdFromOBIM(const byte *obim);
+ virtual void processKeyboard(bool smushMode);
void desaturatePalette(int hueScale, int satScale, int lightScale, int startColor, int endColor);
Modified: scummvm/trunk/engines/scumm/scumm.cpp
===================================================================
--- scummvm/trunk/engines/scumm/scumm.cpp 2006-10-07 12:19:28 UTC (rev 24164)
+++ scummvm/trunk/engines/scumm/scumm.cpp 2006-10-07 12:33:22 UTC (rev 24165)
@@ -333,8 +333,6 @@
_resultVarNumber = 0;
_scummStackPos = 0;
memset(_vmStack, 0, sizeof(_vmStack));
- _keyScriptKey = 0;
- _keyScriptNo = 0;
_fileOffset = 0;
memset(_resourceMapper, 0, sizeof(_resourceMapper));
_lastLoadedRoom = 0;
@@ -942,6 +940,8 @@
ScummEngine_v8::ScummEngine_v8(OSystem *syst, const DetectorResult &dr)
: ScummEngine_v7(syst, dr) {
_objectIDMap = 0;
+ _keyScriptKey = 0;
+ _keyScriptNo = 0;
VAR_LANGUAGE = 0xFF;
}
Modified: scummvm/trunk/engines/scumm/scumm.h
===================================================================
--- scummvm/trunk/engines/scumm/scumm.h 2006-10-07 12:19:28 UTC (rev 24164)
+++ scummvm/trunk/engines/scumm/scumm.h 2006-10-07 12:33:22 UTC (rev 24165)
@@ -498,6 +498,7 @@
protected:
void waitForTimer(int msec_delay);
virtual void processInput(bool smushMode);
+ virtual void processKeyboard(bool smushMode);
virtual void clearClickedStatus();
// Cursor/palette
@@ -681,7 +682,6 @@
const byte * const *_lastCodePtr;
int _resultVarNumber, _scummStackPos;
int _vmStack[150];
- int _keyScriptKey, _keyScriptNo;
virtual void setupOpcodes() = 0;
virtual void executeOpcode(byte i) = 0;
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