diff options
-rw-r--r-- | engines/gob/scenery.cpp | 3 | ||||
-rw-r--r-- | engines/gob/videoplayer.cpp | 3 |
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); |