aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSven Hesse2010-08-08 00:47:54 +0000
committerSven Hesse2010-08-08 00:47:54 +0000
commit7fe406a5ddbde7c46605437c13a9d79c6178f28e (patch)
tree7c8b318259e06b835821d49f910596d10ba6ff7a
parent53b67deaf0332f598168af4cbccc61ff4e5944c3 (diff)
downloadscummvm-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.cpp13
-rw-r--r--engines/gob/videoplayer.cpp7
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;