mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-01 08:23:15 +00:00
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
@ -467,7 +467,7 @@ protected:
|
||||
virtual void scummLoop_handleDrawing();
|
||||
virtual void runBootscript();
|
||||
|
||||
virtual void processInput(bool smushMode);
|
||||
virtual void processInput();
|
||||
virtual void clearClickedStatus();
|
||||
|
||||
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) {
|
||||
_logicHE->processKeyStroke(_keyPressed);
|
||||
}
|
||||
ScummEngine::processInput(smushMode);
|
||||
ScummEngine::processInput();
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -218,7 +218,7 @@ void ScummEngine::clearClickedStatus() {
|
||||
_rightBtnPressed &= ~msClicked;
|
||||
}
|
||||
|
||||
void ScummEngine::processInput(bool smushMode) {
|
||||
void ScummEngine::processInput() {
|
||||
_lastKeyHit = _keyPressed;
|
||||
_keyPressed = 0;
|
||||
|
||||
@ -296,7 +296,7 @@ void ScummEngine::processInput(bool smushMode) {
|
||||
#ifdef _WIN32_WCE
|
||||
if (_lastKeyHit == KEY_ALL_SKIP) {
|
||||
// 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;
|
||||
else
|
||||
// Skip talk
|
||||
@ -311,11 +311,11 @@ void ScummEngine::processInput(bool smushMode) {
|
||||
if (!_lastKeyHit)
|
||||
return;
|
||||
|
||||
processKeyboard(smushMode);
|
||||
processKeyboard();
|
||||
}
|
||||
|
||||
#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
|
||||
// key was pressed, run it.
|
||||
if (_keyScriptNo && (_keyScriptKey == _lastKeyHit)) {
|
||||
@ -324,10 +324,10 @@ void ScummEngine_v8::processKeyboard(bool smushMode) {
|
||||
}
|
||||
|
||||
// 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
|
||||
// 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)) {
|
||||
// Skip cutscene (or active SMUSH video).
|
||||
if (smushMode) {
|
||||
if (_smushActive) {
|
||||
if (_game.id == GID_FT)
|
||||
_insane->escapeKeyHandler();
|
||||
else
|
||||
_smushVideoShouldFinish = true;
|
||||
}
|
||||
if (!smushMode || _smushVideoShouldFinish)
|
||||
if (!_smushActive || _smushVideoShouldFinish)
|
||||
abortCutscene();
|
||||
|
||||
_mouseAndKeyboardStat = _lastKeyHit;
|
||||
@ -353,11 +353,11 @@ void ScummEngine_v7::processKeyboard(bool smushMode) {
|
||||
}
|
||||
|
||||
// Fall back to V6 behavior
|
||||
ScummEngine_v6::processKeyboard(smushMode);
|
||||
ScummEngine_v6::processKeyboard();
|
||||
}
|
||||
#endif
|
||||
|
||||
void ScummEngine_v6::processKeyboard(bool smushMode) {
|
||||
void ScummEngine_v6::processKeyboard() {
|
||||
if (_lastKeyHit == 20) {
|
||||
// FIXME: What key is '20' supposed to indicate? I can't trigger
|
||||
// it with my keyboard, it seems...
|
||||
@ -394,10 +394,10 @@ void ScummEngine_v6::processKeyboard(bool smushMode) {
|
||||
}
|
||||
|
||||
// Fall back to default behavior
|
||||
ScummEngine::processKeyboard(smushMode);
|
||||
ScummEngine::processKeyboard();
|
||||
}
|
||||
|
||||
void ScummEngine_v2::processKeyboard(bool smushMode) {
|
||||
void ScummEngine_v2::processKeyboard() {
|
||||
if (_lastKeyHit == ' ') { // space
|
||||
pauseGame();
|
||||
} else if (_lastKeyHit == 314+5) { // F5
|
||||
@ -411,7 +411,7 @@ void ScummEngine_v2::processKeyboard(bool smushMode) {
|
||||
abortCutscene();
|
||||
} else {
|
||||
// Fall back to default behavior
|
||||
ScummEngine::processKeyboard(smushMode);
|
||||
ScummEngine::processKeyboard();
|
||||
}
|
||||
|
||||
// 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
|
||||
confirmRestartDialog();
|
||||
} else {
|
||||
// Fall back to default behavior
|
||||
ScummEngine::processKeyboard(smushMode);
|
||||
ScummEngine::processKeyboard();
|
||||
}
|
||||
}
|
||||
|
||||
void ScummEngine::processKeyboard(bool smushMode) {
|
||||
void ScummEngine::processKeyboard() {
|
||||
int saveloadkey;
|
||||
|
||||
if ((_game.version <= 3) || (_game.id == GID_SAMNMAX) || (_game.id == GID_CMI) || (_game.heversion >= 72))
|
||||
|
@ -28,6 +28,9 @@
|
||||
|
||||
namespace Scumm {
|
||||
|
||||
class SmushMixer;
|
||||
|
||||
|
||||
// This is to help devices with small memory (PDA, smartphones, ...)
|
||||
// to save abit of memory used by opcode names in the Scumm engine.
|
||||
#ifndef REDUCE_MEMORY_USAGE
|
||||
@ -230,7 +233,7 @@ protected:
|
||||
virtual void readRoomsOffsets();
|
||||
virtual void loadCharset(int no);
|
||||
|
||||
virtual void processKeyboard(bool smushMode);
|
||||
virtual void processKeyboard();
|
||||
};
|
||||
|
||||
/**
|
||||
@ -288,7 +291,7 @@ protected:
|
||||
virtual void resetScummVars();
|
||||
virtual void decodeParseString();
|
||||
|
||||
virtual void processKeyboard(bool smushMode);
|
||||
virtual void processKeyboard();
|
||||
|
||||
virtual void readIndexFile();
|
||||
void readClassicIndexFile(); // V1
|
||||
@ -586,6 +589,8 @@ protected:
|
||||
/** This flag is a hack to allow the pause dialog to pause SMUSH playback, too. */
|
||||
bool _smushPaused;
|
||||
|
||||
bool _smushActive;
|
||||
|
||||
Insane *_insane;
|
||||
|
||||
public:
|
||||
@ -605,7 +610,7 @@ protected:
|
||||
virtual const char *getOpcodeDesc(byte i);
|
||||
|
||||
virtual void scummLoop_handleActors();
|
||||
virtual void processKeyboard(bool smushMode);
|
||||
virtual void processKeyboard();
|
||||
|
||||
virtual void setupScummVars();
|
||||
virtual void decodeParseString(int a, int b);
|
||||
@ -878,7 +883,7 @@ protected:
|
||||
|
||||
virtual void scummLoop_handleSound();
|
||||
virtual void scummLoop_handleDrawing();
|
||||
virtual void processKeyboard(bool smushMode);
|
||||
virtual void processKeyboard();
|
||||
|
||||
virtual void setupScumm();
|
||||
|
||||
@ -952,7 +957,7 @@ protected:
|
||||
|
||||
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);
|
||||
|
||||
|
@ -777,6 +777,7 @@ ScummEngine_v7::ScummEngine_v7(OSystem *syst, const DetectorResult &dr)
|
||||
_smushFrameRate = 0;
|
||||
_smushVideoShouldFinish = false;
|
||||
_smushPaused = false;
|
||||
_smushActive = false;
|
||||
_insaneRunning = false;
|
||||
_smixer = NULL;
|
||||
|
||||
@ -1636,7 +1637,7 @@ int ScummEngine::scummLoop(int delta) {
|
||||
if (_game.version <= 3)
|
||||
CHARSET_1();
|
||||
|
||||
processInput(false);
|
||||
processInput();
|
||||
|
||||
scummLoop_updateScummVars();
|
||||
|
||||
|
@ -55,8 +55,6 @@ class BaseScummFile;
|
||||
class CharsetRenderer;
|
||||
class IMuse;
|
||||
class IMuseDigital;
|
||||
class Insane;
|
||||
class SmushMixer;
|
||||
class MusicEngine;
|
||||
class ScummEngine;
|
||||
class ScummDebugger;
|
||||
@ -494,8 +492,8 @@ public:
|
||||
void parseEvents(); // Used by IMuseDigital::startSound
|
||||
protected:
|
||||
void waitForTimer(int msec_delay);
|
||||
virtual void processInput(bool smushMode);
|
||||
virtual void processKeyboard(bool smushMode);
|
||||
virtual void processInput();
|
||||
virtual void processKeyboard();
|
||||
virtual void clearClickedStatus();
|
||||
|
||||
// Cursor/palette
|
||||
|
@ -284,7 +284,10 @@ SmushPlayer::~SmushPlayer() {
|
||||
void SmushPlayer::init() {
|
||||
_frame = 0;
|
||||
_alreadyInit = false;
|
||||
|
||||
_vm->_smushVideoShouldFinish = false;
|
||||
_vm->_smushActive = true;
|
||||
|
||||
_vm->setDirtyColors(0, 255);
|
||||
_dst = _vm->virtscr[0].getPixels(0, 0);
|
||||
|
||||
@ -342,6 +345,7 @@ void SmushPlayer::release() {
|
||||
_vm->_mixer->stopHandle(_IACTchannel);
|
||||
_IACTstream = NULL;
|
||||
|
||||
_vm->_smushActive = false;
|
||||
_vm->_fullRedraw = true;
|
||||
|
||||
// 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;
|
||||
}
|
||||
_vm->parseEvents();
|
||||
_vm->processInput(true);
|
||||
_vm->processInput();
|
||||
if (_palDirtyMax >= _palDirtyMin) {
|
||||
byte palette_colors[1024];
|
||||
byte *p = palette_colors;
|
||||
|
Loading…
x
Reference in New Issue
Block a user