aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTorbjörn Andersson2013-01-02 22:18:09 +0100
committerTorbjörn Andersson2013-01-02 22:18:09 +0100
commitad36fb3366a68f6e49f00063371ca0ab6e02b929 (patch)
treeb28ee6a33bf18561ba8257cbb83be919d4f3e7fc
parent6a8fc83f427a450c98fb9ecddbacbc823f7efac4 (diff)
downloadscummvm-rg350-ad36fb3366a68f6e49f00063371ca0ab6e02b929.tar.gz
scummvm-rg350-ad36fb3366a68f6e49f00063371ca0ab6e02b929.tar.bz2
scummvm-rg350-ad36fb3366a68f6e49f00063371ca0ab6e02b929.zip
TOLTECS: Don't allow dialog skipping while movies are playing
-rw-r--r--engines/toltecs/movie.cpp4
-rw-r--r--engines/toltecs/movie.h4
-rw-r--r--engines/toltecs/toltecs.cpp2
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