From 8e523d9d2fc471ef1ef25ac26b9f7053a382192e Mon Sep 17 00:00:00 2001 From: Sven Hesse Date: Thu, 7 Oct 2010 09:18:15 +0000 Subject: GOB: Fix object videos with more than 255 frames A regression of the CoktelDecoder rewrite. svn-id: r53043 --- engines/gob/scenery.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'engines') diff --git a/engines/gob/scenery.cpp b/engines/gob/scenery.cpp index 0efdf9983c..8b8b55eff8 100644 --- a/engines/gob/scenery.cpp +++ b/engines/gob/scenery.cpp @@ -623,6 +623,16 @@ void Scenery::updateAnim(int16 layer, int16 frame, int16 animation, int16 flags, if (frame >= (int32)_vm->_vidPlayer->getFrameCount(obj.videoSlot - 1)) frame = _vm->_vidPlayer->getFrameCount(obj.videoSlot - 1) - 1; + if (_vm->_vidPlayer->getCurrentFrame(obj.videoSlot - 1) >= 255) { + // Allow for object videos with more than 255 frames, although the + // object frame counter is just a byte. + + uint32 curFrame = _vm->_vidPlayer->getCurrentFrame(obj.videoSlot - 1) + 1; + uint16 frameWrap = curFrame / 256; + + frame = ((frame + 1) % 256) + frameWrap * 256; + } + if (frame != (int32)_vm->_vidPlayer->getCurrentFrame(obj.videoSlot - 1)) { // Seek to frame -- cgit v1.2.3