aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/gob/scenery.cpp3
-rw-r--r--engines/gob/videoplayer.cpp3
2 files changed, 6 insertions, 0 deletions
diff --git a/engines/gob/scenery.cpp b/engines/gob/scenery.cpp
index 7338dab15b..3f9ec9e6f2 100644
--- a/engines/gob/scenery.cpp
+++ b/engines/gob/scenery.cpp
@@ -625,6 +625,9 @@ void Scenery::updateAnim(int16 layer, int16 frame, int16 animation, int16 flags,
return;
}
+ if (frame >= _vm->_vidPlayer->getFramesCount(obj.videoSlot - 1))
+ frame = _vm->_vidPlayer->getFramesCount(obj.videoSlot - 1) - 1;
+
// Seek to frame
while (_vm->_vidPlayer->getCurrentFrame(obj.videoSlot - 1) <= frame)
_vm->_vidPlayer->slotPlay(obj.videoSlot - 1);
diff --git a/engines/gob/videoplayer.cpp b/engines/gob/videoplayer.cpp
index d0e2090453..e088646498 100644
--- a/engines/gob/videoplayer.cpp
+++ b/engines/gob/videoplayer.cpp
@@ -352,6 +352,9 @@ void VideoPlayer::slotPlay(int slot, int16 frame) {
if (frame < 0)
frame = video.getCurrentFrame();
+ if (frame >= video.getFramesCount())
+ return;
+
if (video.getCurrentFrame() != frame)
video.seekFrame(frame);