[Scummvm-cvs-logs] CVS: scummvm/scumm scummvm.cpp,2.164,2.165 boxes.cpp,1.27,1.28

Max Horn fingolfin at users.sourceforge.net
Sun May 18 17:18:02 CEST 2003


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

Modified Files:
	scummvm.cpp boxes.cpp 
Log Message:
V2 walkbox matrix fixes

Index: scummvm.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/scummvm.cpp,v
retrieving revision 2.164
retrieving revision 2.165
diff -u -d -r2.164 -r2.165
--- scummvm.cpp	18 May 2003 19:44:22 -0000	2.164
+++ scummvm.cpp	19 May 2003 00:17:34 -0000	2.165
@@ -1358,9 +1358,9 @@
 			createResource(rtMatrix, 2, size);
 			memcpy(getResourceAddress(rtMatrix, 2), ptr, size);
 			ptr += size;
-			if (_features & GF_AFTER_V2)
-				size = (READ_LE_UINT16(roomptr + 0x0A) - *(roomptr + 0x15)) - size;
-			else if (_features & GF_OLD_BUNDLE)
+			if (_features & GF_AFTER_V2) {
+				size = numOfBoxes * (numOfBoxes + 1);
+			} else if (_features & GF_OLD_BUNDLE)
 				// FIXME. This is an evil HACK!!!
 				size = (READ_LE_UINT16(roomptr + 0x0A) - READ_LE_UINT16(roomptr + 0x15)) - size;
 			else

Index: boxes.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/boxes.cpp,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -d -r1.27 -r1.28
--- boxes.cpp	18 May 2003 19:44:22 -0000	1.27
+++ boxes.cpp	19 May 2003 00:17:34 -0000	1.28
@@ -566,11 +566,21 @@
 	byte *boxm;
 	byte i;
 	int dest = -1;
-
+	const int numOfBoxes = getNumBoxes();
+	
 	if (from == to)
 		return to;
 
+	assert(from < numOfBoxes);
+	assert(to < numOfBoxes);
+
 	boxm = getBoxMatrixBaseAddr();
+
+	if (_features & GF_AFTER_V2) {
+		i = boxm[from];
+		boxm += numOfBoxes;
+		return boxm[to];
+	}
 
 	i = 0;
 	while (i != from) {





More information about the Scummvm-git-logs mailing list