diff options
author | Torbjörn Andersson | 2013-01-02 22:18:09 +0100 |
---|---|---|
committer | Torbjörn Andersson | 2013-01-02 22:18:09 +0100 |
commit | ad36fb3366a68f6e49f00063371ca0ab6e02b929 (patch) | |
tree | b28ee6a33bf18561ba8257cbb83be919d4f3e7fc /engines/toltecs | |
parent | 6a8fc83f427a450c98fb9ecddbacbc823f7efac4 (diff) | |
download | scummvm-rg350-ad36fb3366a68f6e49f00063371ca0ab6e02b929.tar.gz scummvm-rg350-ad36fb3366a68f6e49f00063371ca0ab6e02b929.tar.bz2 scummvm-rg350-ad36fb3366a68f6e49f00063371ca0ab6e02b929.zip |
TOLTECS: Don't allow dialog skipping while movies are playing
Diffstat (limited to 'engines/toltecs')
-rw-r--r-- | engines/toltecs/movie.cpp | 4 | ||||
-rw-r--r-- | engines/toltecs/movie.h | 4 | ||||
-rw-r--r-- | engines/toltecs/toltecs.cpp | 2 |
3 files changed, 8 insertions, 2 deletions
diff --git a/engines/toltecs/movie.cpp b/engines/toltecs/movie.cpp index 35accb5d93..69303830f8 100644 --- a/engines/toltecs/movie.cpp +++ b/engines/toltecs/movie.cpp @@ -45,7 +45,7 @@ enum ChunkTypes { kChunkStopSubtitles = 8 }; -MoviePlayer::MoviePlayer(ToltecsEngine *vm) : _vm(vm) { +MoviePlayer::MoviePlayer(ToltecsEngine *vm) : _vm(vm), _isPlaying(false) { } MoviePlayer::~MoviePlayer() { @@ -62,6 +62,7 @@ void MoviePlayer::playMovie(uint resIndex) { int16 savedGuiHeight = _vm->_guiHeight; byte moviePalette[768]; + _isPlaying = true; _vm->_isSaveAllowed = false; memset(moviePalette, 0, sizeof(moviePalette)); @@ -200,6 +201,7 @@ void MoviePlayer::playMovie(uint resIndex) { _vm->_guiHeight = savedGuiHeight; _vm->_isSaveAllowed = true; + _isPlaying = false; } void MoviePlayer::fetchAudioChunks() { diff --git a/engines/toltecs/movie.h b/engines/toltecs/movie.h index 8fa48975d7..c1ed6d7ba0 100644 --- a/engines/toltecs/movie.h +++ b/engines/toltecs/movie.h @@ -37,11 +37,15 @@ public: void playMovie(uint resIndex); + bool isPlaying() { return _isPlaying; } + protected: ToltecsEngine *_vm; Audio::QueuingAudioStream *_audioStream; Audio::SoundHandle _audioStreamHandle; + bool _isPlaying; + uint32 _chunkCount, _frameCount, _lastPrefetchOfs; uint32 _soundChunkFramesLeft, _framesPerSoundChunk; diff --git a/engines/toltecs/toltecs.cpp b/engines/toltecs/toltecs.cpp index 6d8a5eb782..86b2474d9d 100644 --- a/engines/toltecs/toltecs.cpp +++ b/engines/toltecs/toltecs.cpp @@ -340,7 +340,7 @@ void ToltecsEngine::updateInput() { break; case Common::KEYCODE_SPACE: // Skip current dialog line, if a dialog is active - if (_screen->getTalkTextDuration() > 0) { + if (!_moviePlayer->isPlaying() && _screen->getTalkTextDuration() > 0) { _sound->stopSpeech(); _screen->finishTalkTextItems(); _keyState.reset(); // event consumed |