diff options
author | Sven Hesse | 2010-08-08 00:47:54 +0000 |
---|---|---|
committer | Sven Hesse | 2010-08-08 00:47:54 +0000 |
commit | 7fe406a5ddbde7c46605437c13a9d79c6178f28e (patch) | |
tree | 7c8b318259e06b835821d49f910596d10ba6ff7a | |
parent | 53b67deaf0332f598168af4cbccc61ff4e5944c3 (diff) | |
download | scummvm-rg350-7fe406a5ddbde7c46605437c13a9d79c6178f28e.tar.gz scummvm-rg350-7fe406a5ddbde7c46605437c13a9d79c6178f28e.tar.bz2 scummvm-rg350-7fe406a5ddbde7c46605437c13a9d79c6178f28e.zip |
GOB: Fix video continuing
svn-id: r51878
-rw-r--r-- | engines/gob/inter_v2.cpp | 13 | ||||
-rw-r--r-- | engines/gob/videoplayer.cpp | 7 |
2 files changed, 12 insertions, 8 deletions
diff --git a/engines/gob/inter_v2.cpp b/engines/gob/inter_v2.cpp index 0ca2cc2d68..752d794127 100644 --- a/engines/gob/inter_v2.cpp +++ b/engines/gob/inter_v2.cpp @@ -982,12 +982,13 @@ void Inter_v2::o2_playImd() { props.x, props.y, props.startFrame, props.lastFrame, props.palCmd, props.palStart, props.palEnd, props.flags); - _vm->_vidPlayer->evaluateFlags(props); - - int slot; - if ((imd[0] != 0) && ((slot = _vm->_vidPlayer->openVideo(true, imd, props)) < 0)) { - WRITE_VAR(11, (uint32) -1); - return; + int slot = 0; + if (imd[0] != 0) { + _vm->_vidPlayer->evaluateFlags(props); + if ((slot = _vm->_vidPlayer->openVideo(true, imd, props)) < 0) { + WRITE_VAR(11, (uint32) -1); + return; + } } close = (props.lastFrame == -1); diff --git a/engines/gob/videoplayer.cpp b/engines/gob/videoplayer.cpp index b219d341da..bb9c232444 100644 --- a/engines/gob/videoplayer.cpp +++ b/engines/gob/videoplayer.cpp @@ -257,8 +257,11 @@ bool VideoPlayer::playFrame(int slot, Properties &properties) { bool primary = slot == 0; - if (video->decoder->getCurFrame() != properties.startFrame); - video->decoder->seek(properties.startFrame + 1); + if (video->decoder->getCurFrame() != properties.startFrame) { + video->decoder->disableSound(); + video->decoder->seek(properties.startFrame + 1, SEEK_SET, true); + video->decoder->enableSound(); + } bool modifiedPal = false; |