[Scummvm-cvs-logs] CVS: scummvm/scumm scummvm.cpp,2.89,2.90

Max Horn fingolfin at users.sourceforge.net
Sat Apr 12 11:00:04 CEST 2003


Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1:/tmp/cvs-serv14180

Modified Files:
	scummvm.cpp 
Log Message:
fixed (?) local script offests for OLD_BUNDLE games

Index: scummvm.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/scummvm.cpp,v
retrieving revision 2.89
retrieving revision 2.90
diff -u -d -r2.89 -r2.90
--- scummvm.cpp	12 Apr 2003 12:03:55 -0000	2.89
+++ scummvm.cpp	12 Apr 2003 17:59:24 -0000	2.90
@@ -996,6 +996,9 @@
 		}
 	}
 
+	//
+	// Load sccale data
+	//
 	if (_features & GF_OLD_BUNDLE)
 		ptr = 0;	// TODO ?
 	else
@@ -1025,7 +1028,7 @@
 	}
 
 	//
-	// Setup local script
+	// Setup local scripts
 	//
 
 	// Determine the room script base address
@@ -1038,16 +1041,16 @@
 		int num_objects = *(roomResPtr + 20);
 		int num_sounds = *(roomResPtr + 23);
 		int num_scripts = *(roomResPtr + 24);
-		int offset = 29 + num_objects * 4 + num_sounds + num_scripts;
+		ptr = roomptr + 29 + num_objects * 4 + num_sounds + num_scripts;
 
 		if ((_gameId != GID_MANIAC) && (_gameId != GID_ZAK)) {
-			for (;;) {
-				int id = *(roomResPtr + offset);
-				if (id == 0)
-					break;
+			while (*ptr) {
+				int id = *ptr;
 
-				_localScriptList[id - _numGlobalScripts] = offset + 1;
-				offset += 3;
+				_localScriptList[id - _numGlobalScripts] = READ_LE_UINT16(ptr + 1);
+				ptr += 3;
+				
+				// TODO: add script dumping, but how do we determine the script length?
 			}
 		}
 	} else if (_features & GF_SMALL_HEADER) {





More information about the Scummvm-git-logs mailing list