[Scummvm-cvs-logs] SF.net SVN: scummvm:[53043] scummvm/trunk/engines/gob/scenery.cpp

drmccoy at users.sourceforge.net drmccoy at users.sourceforge.net
Thu Oct 7 11:18:16 CEST 2010


Revision: 53043
          http://scummvm.svn.sourceforge.net/scummvm/?rev=53043&view=rev
Author:   drmccoy
Date:     2010-10-07 09:18:15 +0000 (Thu, 07 Oct 2010)

Log Message:
-----------
GOB: Fix object videos with more than 255 frames

A regression of the CoktelDecoder rewrite.

Modified Paths:
--------------
    scummvm/trunk/engines/gob/scenery.cpp

Modified: scummvm/trunk/engines/gob/scenery.cpp
===================================================================
--- scummvm/trunk/engines/gob/scenery.cpp	2010-10-06 21:26:45 UTC (rev 53042)
+++ scummvm/trunk/engines/gob/scenery.cpp	2010-10-07 09:18:15 UTC (rev 53043)
@@ -623,6 +623,16 @@
 		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
 


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list