diff options
author | Sven Hesse | 2008-05-01 18:38:36 +0000 |
---|---|---|
committer | Sven Hesse | 2008-05-01 18:38:36 +0000 |
commit | a666136b8ee0569e52441968e0e7853c8483a104 (patch) | |
tree | 0685db03238bd0923919bad69418431b97cd2726 | |
parent | c0db9c0d25372a59347b7c72f7e4be7fc2f0f251 (diff) | |
download | scummvm-rg350-a666136b8ee0569e52441968e0e7853c8483a104.tar.gz scummvm-rg350-a666136b8ee0569e52441968e0e7853c8483a104.tar.bz2 scummvm-rg350-a666136b8ee0569e52441968e0e7853c8483a104.zip |
Fixing object video related segfault
svn-id: r31797
-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); |