[Scummvm-cvs-logs] CVS: scummvm/scumm script.cpp,1.32,1.33

Max Horn fingolfin at users.sourceforge.net
Fri Dec 27 07:12:05 CET 2002


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

Modified Files:
	script.cpp 
Log Message:
fixed verb entry code for V8

Index: script.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script.cpp,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -d -r1.32 -r1.33
--- script.cpp	27 Dec 2002 14:04:25 -0000	1.32
+++ script.cpp	27 Dec 2002 15:11:43 -0000	1.33
@@ -883,18 +883,32 @@
 	if (!(_features & GF_SMALL_HEADER))
 		verbptr += _resourceHeaderSize;
 
-	do {
-		if (!*verbptr)
-			return 0;
-		if (*verbptr == entry || *verbptr == 0xFF)
-			break;
-		verbptr += 3;
-	} while (1);
-
-	if (_features & GF_SMALL_HEADER)
-		return READ_LE_UINT16(verbptr + 1);
-	else
-		return verboffs + READ_LE_UINT16(verbptr + 1);
+	if (_features & GF_AFTER_V8) {
+		uint32 *ptr = (uint32 *)verbptr;
+		uint32 verb;
+		do {
+			verb = READ_LE_UINT32(ptr);
+			if (!verb)
+				return 0;
+			if (verb == (uint32)entry || verb == 0xFFFFFFFF)
+				break;
+			ptr += 2;
+		} while (1);
+		return verboffs + 8 + READ_LE_UINT32(ptr + 1);
+	} else {
+		do {
+			if (!*verbptr)
+				return 0;
+			if (*verbptr == entry || *verbptr == 0xFF)
+				break;
+			verbptr += 3;
+		} while (1);
+	
+		if (_features & GF_SMALL_HEADER)
+			return READ_LE_UINT16(verbptr + 1);
+		else
+			return verboffs + READ_LE_UINT16(verbptr + 1);
+	}
 }
 
 void Scumm::endCutscene()





More information about the Scummvm-git-logs mailing list