[Scummvm-cvs-logs] SF.net SVN: scummvm:[44687] scummvm/trunk/engines/sci/gui/gui_view.cpp

m_kiewitz at users.sourceforge.net m_kiewitz at users.sourceforge.net
Tue Oct 6 09:25:07 CEST 2009


Revision: 44687
          http://scummvm.svn.sourceforge.net/scummvm/?rev=44687&view=rev
Author:   m_kiewitz
Date:     2009-10-06 07:25:07 +0000 (Tue, 06 Oct 2009)

Log Message:
-----------
SCI/newgui: view 1.1 loading now completely fixed, included sanity check and one fixme

Modified Paths:
--------------
    scummvm/trunk/engines/sci/gui/gui_view.cpp

Modified: scummvm/trunk/engines/sci/gui/gui_view.cpp
===================================================================
--- scummvm/trunk/engines/sci/gui/gui_view.cpp	2009-10-06 07:12:09 UTC (rev 44686)
+++ scummvm/trunk/engines/sci/gui/gui_view.cpp	2009-10-06 07:25:07 UTC (rev 44687)
@@ -129,10 +129,11 @@
 
 	case kViewVga11: // View-format SCI1.1
 		// LoopCount:WORD MirrorMask:WORD Version:WORD PaletteOffset:WORD LoopOffset0:WORD LoopOffset1:WORD...
-		// HeaderSize:WORD LoopCount:WORD Version:WORD Unknown:WORD PaletteOffset:WORD
+		// HeaderSize:WORD LoopCount:BYTE Unknown:BYTE Version:WORD Unknown:WORD PaletteOffset:WORD
 		headerSize = READ_LE_UINT16(_resourceData + 0);
-		_loopCount = READ_LE_UINT16(_resourceData + 2);
+		_loopCount = _resourceData[2];
 		palOffset = READ_LE_UINT16(_resourceData + 8);
+		// FIXME: After LoopCount there is another byte and its set for view 50 within Laura Bow 2 CD, check what it means
 
 		loopData = _resourceData + headerSize;
 		loopSize = _resourceData[12];
@@ -149,6 +150,8 @@
 
 			seekEntry = loopData[2];
 			if (seekEntry != 255) {
+				if (seekEntry >= _loopCount)
+					error("Bad loop-pointer in sci 1.1 view");
 				_loop[loopNo].mirrorFlag = true;
 				loopData = _resourceData + headerSize + (seekEntry * loopSize);
 			} else {


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