Removed 'smushMode' param from processInput and processKeyboard in favor of a new member _smushActive of ScummEngine_v7
svn-id: r24175
This commit is contained in:
parent
71bea97de7
commit
ff6731e00a
6 changed files with 38 additions and 30 deletions
|
@ -467,7 +467,7 @@ protected:
|
||||||
virtual void scummLoop_handleDrawing();
|
virtual void scummLoop_handleDrawing();
|
||||||
virtual void runBootscript();
|
virtual void runBootscript();
|
||||||
|
|
||||||
virtual void processInput(bool smushMode);
|
virtual void processInput();
|
||||||
virtual void clearClickedStatus();
|
virtual void clearClickedStatus();
|
||||||
|
|
||||||
virtual void saveOrLoad(Serializer *s);
|
virtual void saveOrLoad(Serializer *s);
|
||||||
|
|
|
@ -202,11 +202,11 @@ void ScummEngine_v90he::clearClickedStatus() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScummEngine_v90he::processInput(bool smushMode) {
|
void ScummEngine_v90he::processInput() {
|
||||||
if (_game.heversion >= 98) {
|
if (_game.heversion >= 98) {
|
||||||
_logicHE->processKeyStroke(_keyPressed);
|
_logicHE->processKeyStroke(_keyPressed);
|
||||||
}
|
}
|
||||||
ScummEngine::processInput(smushMode);
|
ScummEngine::processInput();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -218,7 +218,7 @@ void ScummEngine::clearClickedStatus() {
|
||||||
_rightBtnPressed &= ~msClicked;
|
_rightBtnPressed &= ~msClicked;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScummEngine::processInput(bool smushMode) {
|
void ScummEngine::processInput() {
|
||||||
_lastKeyHit = _keyPressed;
|
_lastKeyHit = _keyPressed;
|
||||||
_keyPressed = 0;
|
_keyPressed = 0;
|
||||||
|
|
||||||
|
@ -296,7 +296,7 @@ void ScummEngine::processInput(bool smushMode) {
|
||||||
#ifdef _WIN32_WCE
|
#ifdef _WIN32_WCE
|
||||||
if (_lastKeyHit == KEY_ALL_SKIP) {
|
if (_lastKeyHit == KEY_ALL_SKIP) {
|
||||||
// Skip cutscene
|
// Skip cutscene
|
||||||
if (smushMode || vm.cutScenePtr[vm.cutSceneStackPointer])
|
if (_smushActive || vm.cutScenePtr[vm.cutSceneStackPointer])
|
||||||
_lastKeyHit = (VAR_CUTSCENEEXIT_KEY != 0xFF) ? (uint)VAR(VAR_CUTSCENEEXIT_KEY) : 27;
|
_lastKeyHit = (VAR_CUTSCENEEXIT_KEY != 0xFF) ? (uint)VAR(VAR_CUTSCENEEXIT_KEY) : 27;
|
||||||
else
|
else
|
||||||
// Skip talk
|
// Skip talk
|
||||||
|
@ -311,11 +311,11 @@ void ScummEngine::processInput(bool smushMode) {
|
||||||
if (!_lastKeyHit)
|
if (!_lastKeyHit)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
processKeyboard(smushMode);
|
processKeyboard();
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef DISABLE_SCUMM_7_8
|
#ifndef DISABLE_SCUMM_7_8
|
||||||
void ScummEngine_v8::processKeyboard(bool smushMode) {
|
void ScummEngine_v8::processKeyboard() {
|
||||||
// If a key script was specified (a V8 feature), and it's trigger
|
// If a key script was specified (a V8 feature), and it's trigger
|
||||||
// key was pressed, run it.
|
// key was pressed, run it.
|
||||||
if (_keyScriptNo && (_keyScriptKey == _lastKeyHit)) {
|
if (_keyScriptNo && (_keyScriptKey == _lastKeyHit)) {
|
||||||
|
@ -324,10 +324,10 @@ void ScummEngine_v8::processKeyboard(bool smushMode) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fall back to V7 behavior
|
// Fall back to V7 behavior
|
||||||
ScummEngine_v7::processKeyboard(smushMode);
|
ScummEngine_v7::processKeyboard();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScummEngine_v7::processKeyboard(bool smushMode) {
|
void ScummEngine_v7::processKeyboard() {
|
||||||
|
|
||||||
// COMI version string is hard coded in the engine, hence we don't
|
// COMI version string is hard coded in the engine, hence we don't
|
||||||
// invoke versionDialog here (it would only show nonsense).
|
// invoke versionDialog here (it would only show nonsense).
|
||||||
|
@ -339,13 +339,13 @@ void ScummEngine_v7::processKeyboard(bool smushMode) {
|
||||||
|
|
||||||
if (VAR_CUTSCENEEXIT_KEY != 0xFF && _lastKeyHit == VAR(VAR_CUTSCENEEXIT_KEY)) {
|
if (VAR_CUTSCENEEXIT_KEY != 0xFF && _lastKeyHit == VAR(VAR_CUTSCENEEXIT_KEY)) {
|
||||||
// Skip cutscene (or active SMUSH video).
|
// Skip cutscene (or active SMUSH video).
|
||||||
if (smushMode) {
|
if (_smushActive) {
|
||||||
if (_game.id == GID_FT)
|
if (_game.id == GID_FT)
|
||||||
_insane->escapeKeyHandler();
|
_insane->escapeKeyHandler();
|
||||||
else
|
else
|
||||||
_smushVideoShouldFinish = true;
|
_smushVideoShouldFinish = true;
|
||||||
}
|
}
|
||||||
if (!smushMode || _smushVideoShouldFinish)
|
if (!_smushActive || _smushVideoShouldFinish)
|
||||||
abortCutscene();
|
abortCutscene();
|
||||||
|
|
||||||
_mouseAndKeyboardStat = _lastKeyHit;
|
_mouseAndKeyboardStat = _lastKeyHit;
|
||||||
|
@ -353,11 +353,11 @@ void ScummEngine_v7::processKeyboard(bool smushMode) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fall back to V6 behavior
|
// Fall back to V6 behavior
|
||||||
ScummEngine_v6::processKeyboard(smushMode);
|
ScummEngine_v6::processKeyboard();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void ScummEngine_v6::processKeyboard(bool smushMode) {
|
void ScummEngine_v6::processKeyboard() {
|
||||||
if (_lastKeyHit == 20) {
|
if (_lastKeyHit == 20) {
|
||||||
// FIXME: What key is '20' supposed to indicate? I can't trigger
|
// FIXME: What key is '20' supposed to indicate? I can't trigger
|
||||||
// it with my keyboard, it seems...
|
// it with my keyboard, it seems...
|
||||||
|
@ -394,10 +394,10 @@ void ScummEngine_v6::processKeyboard(bool smushMode) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fall back to default behavior
|
// Fall back to default behavior
|
||||||
ScummEngine::processKeyboard(smushMode);
|
ScummEngine::processKeyboard();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScummEngine_v2::processKeyboard(bool smushMode) {
|
void ScummEngine_v2::processKeyboard() {
|
||||||
if (_lastKeyHit == ' ') { // space
|
if (_lastKeyHit == ' ') { // space
|
||||||
pauseGame();
|
pauseGame();
|
||||||
} else if (_lastKeyHit == 314+5) { // F5
|
} else if (_lastKeyHit == 314+5) { // F5
|
||||||
|
@ -411,7 +411,7 @@ void ScummEngine_v2::processKeyboard(bool smushMode) {
|
||||||
abortCutscene();
|
abortCutscene();
|
||||||
} else {
|
} else {
|
||||||
// Fall back to default behavior
|
// Fall back to default behavior
|
||||||
ScummEngine::processKeyboard(smushMode);
|
ScummEngine::processKeyboard();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Store the input type. So far we can't distinguish
|
// Store the input type. So far we can't distinguish
|
||||||
|
@ -429,16 +429,16 @@ void ScummEngine_v2::processKeyboard(bool smushMode) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScummEngine_v3::processKeyboard(bool smushMode) {
|
void ScummEngine_v3::processKeyboard() {
|
||||||
if (_game.platform == Common::kPlatformFMTowns && _lastKeyHit == 314+8) { // F8
|
if (_game.platform == Common::kPlatformFMTowns && _lastKeyHit == 314+8) { // F8
|
||||||
confirmRestartDialog();
|
confirmRestartDialog();
|
||||||
} else {
|
} else {
|
||||||
// Fall back to default behavior
|
// Fall back to default behavior
|
||||||
ScummEngine::processKeyboard(smushMode);
|
ScummEngine::processKeyboard();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScummEngine::processKeyboard(bool smushMode) {
|
void ScummEngine::processKeyboard() {
|
||||||
int saveloadkey;
|
int saveloadkey;
|
||||||
|
|
||||||
if ((_game.version <= 3) || (_game.id == GID_SAMNMAX) || (_game.id == GID_CMI) || (_game.heversion >= 72))
|
if ((_game.version <= 3) || (_game.id == GID_SAMNMAX) || (_game.id == GID_CMI) || (_game.heversion >= 72))
|
||||||
|
|
|
@ -28,6 +28,9 @@
|
||||||
|
|
||||||
namespace Scumm {
|
namespace Scumm {
|
||||||
|
|
||||||
|
class SmushMixer;
|
||||||
|
|
||||||
|
|
||||||
// This is to help devices with small memory (PDA, smartphones, ...)
|
// This is to help devices with small memory (PDA, smartphones, ...)
|
||||||
// to save abit of memory used by opcode names in the Scumm engine.
|
// to save abit of memory used by opcode names in the Scumm engine.
|
||||||
#ifndef REDUCE_MEMORY_USAGE
|
#ifndef REDUCE_MEMORY_USAGE
|
||||||
|
@ -230,7 +233,7 @@ protected:
|
||||||
virtual void readRoomsOffsets();
|
virtual void readRoomsOffsets();
|
||||||
virtual void loadCharset(int no);
|
virtual void loadCharset(int no);
|
||||||
|
|
||||||
virtual void processKeyboard(bool smushMode);
|
virtual void processKeyboard();
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -288,7 +291,7 @@ protected:
|
||||||
virtual void resetScummVars();
|
virtual void resetScummVars();
|
||||||
virtual void decodeParseString();
|
virtual void decodeParseString();
|
||||||
|
|
||||||
virtual void processKeyboard(bool smushMode);
|
virtual void processKeyboard();
|
||||||
|
|
||||||
virtual void readIndexFile();
|
virtual void readIndexFile();
|
||||||
void readClassicIndexFile(); // V1
|
void readClassicIndexFile(); // V1
|
||||||
|
@ -586,6 +589,8 @@ protected:
|
||||||
/** This flag is a hack to allow the pause dialog to pause SMUSH playback, too. */
|
/** This flag is a hack to allow the pause dialog to pause SMUSH playback, too. */
|
||||||
bool _smushPaused;
|
bool _smushPaused;
|
||||||
|
|
||||||
|
bool _smushActive;
|
||||||
|
|
||||||
Insane *_insane;
|
Insane *_insane;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
@ -605,7 +610,7 @@ protected:
|
||||||
virtual const char *getOpcodeDesc(byte i);
|
virtual const char *getOpcodeDesc(byte i);
|
||||||
|
|
||||||
virtual void scummLoop_handleActors();
|
virtual void scummLoop_handleActors();
|
||||||
virtual void processKeyboard(bool smushMode);
|
virtual void processKeyboard();
|
||||||
|
|
||||||
virtual void setupScummVars();
|
virtual void setupScummVars();
|
||||||
virtual void decodeParseString(int a, int b);
|
virtual void decodeParseString(int a, int b);
|
||||||
|
@ -878,7 +883,7 @@ protected:
|
||||||
|
|
||||||
virtual void scummLoop_handleSound();
|
virtual void scummLoop_handleSound();
|
||||||
virtual void scummLoop_handleDrawing();
|
virtual void scummLoop_handleDrawing();
|
||||||
virtual void processKeyboard(bool smushMode);
|
virtual void processKeyboard();
|
||||||
|
|
||||||
virtual void setupScumm();
|
virtual void setupScumm();
|
||||||
|
|
||||||
|
@ -952,7 +957,7 @@ protected:
|
||||||
|
|
||||||
virtual int getObjectIdFromOBIM(const byte *obim);
|
virtual int getObjectIdFromOBIM(const byte *obim);
|
||||||
|
|
||||||
virtual void processKeyboard(bool smushMode);
|
virtual void processKeyboard();
|
||||||
|
|
||||||
void desaturatePalette(int hueScale, int satScale, int lightScale, int startColor, int endColor);
|
void desaturatePalette(int hueScale, int satScale, int lightScale, int startColor, int endColor);
|
||||||
|
|
||||||
|
|
|
@ -777,6 +777,7 @@ ScummEngine_v7::ScummEngine_v7(OSystem *syst, const DetectorResult &dr)
|
||||||
_smushFrameRate = 0;
|
_smushFrameRate = 0;
|
||||||
_smushVideoShouldFinish = false;
|
_smushVideoShouldFinish = false;
|
||||||
_smushPaused = false;
|
_smushPaused = false;
|
||||||
|
_smushActive = false;
|
||||||
_insaneRunning = false;
|
_insaneRunning = false;
|
||||||
_smixer = NULL;
|
_smixer = NULL;
|
||||||
|
|
||||||
|
@ -1636,7 +1637,7 @@ int ScummEngine::scummLoop(int delta) {
|
||||||
if (_game.version <= 3)
|
if (_game.version <= 3)
|
||||||
CHARSET_1();
|
CHARSET_1();
|
||||||
|
|
||||||
processInput(false);
|
processInput();
|
||||||
|
|
||||||
scummLoop_updateScummVars();
|
scummLoop_updateScummVars();
|
||||||
|
|
||||||
|
|
|
@ -55,8 +55,6 @@ class BaseScummFile;
|
||||||
class CharsetRenderer;
|
class CharsetRenderer;
|
||||||
class IMuse;
|
class IMuse;
|
||||||
class IMuseDigital;
|
class IMuseDigital;
|
||||||
class Insane;
|
|
||||||
class SmushMixer;
|
|
||||||
class MusicEngine;
|
class MusicEngine;
|
||||||
class ScummEngine;
|
class ScummEngine;
|
||||||
class ScummDebugger;
|
class ScummDebugger;
|
||||||
|
@ -494,8 +492,8 @@ public:
|
||||||
void parseEvents(); // Used by IMuseDigital::startSound
|
void parseEvents(); // Used by IMuseDigital::startSound
|
||||||
protected:
|
protected:
|
||||||
void waitForTimer(int msec_delay);
|
void waitForTimer(int msec_delay);
|
||||||
virtual void processInput(bool smushMode);
|
virtual void processInput();
|
||||||
virtual void processKeyboard(bool smushMode);
|
virtual void processKeyboard();
|
||||||
virtual void clearClickedStatus();
|
virtual void clearClickedStatus();
|
||||||
|
|
||||||
// Cursor/palette
|
// Cursor/palette
|
||||||
|
|
|
@ -284,7 +284,10 @@ SmushPlayer::~SmushPlayer() {
|
||||||
void SmushPlayer::init() {
|
void SmushPlayer::init() {
|
||||||
_frame = 0;
|
_frame = 0;
|
||||||
_alreadyInit = false;
|
_alreadyInit = false;
|
||||||
|
|
||||||
_vm->_smushVideoShouldFinish = false;
|
_vm->_smushVideoShouldFinish = false;
|
||||||
|
_vm->_smushActive = true;
|
||||||
|
|
||||||
_vm->setDirtyColors(0, 255);
|
_vm->setDirtyColors(0, 255);
|
||||||
_dst = _vm->virtscr[0].getPixels(0, 0);
|
_dst = _vm->virtscr[0].getPixels(0, 0);
|
||||||
|
|
||||||
|
@ -342,6 +345,7 @@ void SmushPlayer::release() {
|
||||||
_vm->_mixer->stopHandle(_IACTchannel);
|
_vm->_mixer->stopHandle(_IACTchannel);
|
||||||
_IACTstream = NULL;
|
_IACTstream = NULL;
|
||||||
|
|
||||||
|
_vm->_smushActive = false;
|
||||||
_vm->_fullRedraw = true;
|
_vm->_fullRedraw = true;
|
||||||
|
|
||||||
// HACK HACK HACK: This is an *evil* trick, beware! See above for
|
// HACK HACK HACK: This is an *evil* trick, beware! See above for
|
||||||
|
@ -1320,7 +1324,7 @@ void SmushPlayer::play(const char *filename, int32 offset, int32 startFrame) {
|
||||||
_warpNeeded = false;
|
_warpNeeded = false;
|
||||||
}
|
}
|
||||||
_vm->parseEvents();
|
_vm->parseEvents();
|
||||||
_vm->processInput(true);
|
_vm->processInput();
|
||||||
if (_palDirtyMax >= _palDirtyMin) {
|
if (_palDirtyMax >= _palDirtyMin) {
|
||||||
byte palette_colors[1024];
|
byte palette_colors[1024];
|
||||||
byte *p = palette_colors;
|
byte *p = palette_colors;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue