[Scummvm-cvs-logs] CVS: scummvm/scumm script_v6.cpp,1.295,1.296

Eugene Sandulenko sev at users.sourceforge.net
Sat Feb 14 08:16:01 CET 2004


Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6635

Modified Files:
	script_v6.cpp 
Log Message:
Fix E4 opcode implemetnation. Now it works


Index: script_v6.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v6.cpp,v
retrieving revision 1.295
retrieving revision 1.296
diff -u -d -r1.295 -r1.296
--- script_v6.cpp	14 Feb 2004 15:01:27 -0000	1.295
+++ script_v6.cpp	14 Feb 2004 16:09:07 -0000	1.296
@@ -3115,15 +3115,15 @@
 void ScummEngine_v6::o6_unknownE4() {
 	int arg = pop();
 	const byte *room = getResourceAddress(rtRoom, _roomResource);
-	const byte *boxd = room;
-	const byte *boxm = room;
+	const byte *boxd, *boxm;
 	int32 dboxSize, mboxSize;
 
+	ResourceIterator boxds(room, false);
 	for (int i = 0; i < arg; i++)
-		boxd = findResource(MKID('BOXD'), boxd);
+		boxd = boxds.findNext(MKID('BOXD'));
 
 	if (!boxd)
-		error("ScummEngine_v6::o6_unknownE4: Can't find boxes for set %d", arg);
+		error("ScummEngine_v6::o6_unknownE4: Can't find dboxes for set %d", arg);
 
 	dboxSize = READ_BE_UINT32(boxd + 4);
 	byte *matrix = createResource(rtMatrix, 2, dboxSize);
@@ -3131,11 +3131,12 @@
 	assert(matrix);
 	memcpy(matrix, boxd, dboxSize);
 
+	ResourceIterator boxms(room, false);
 	for (int i = 0; i < arg; i++)
-		boxm = findResource(MKID('BOXM'), boxm);
+		boxm = boxms.findNext(MKID('BOXM'));
 
 	if (!boxm)
-		error("ScummEngine_v6::o6_unknownE4: Can't find boxes for set %d", arg);
+		error("ScummEngine_v6::o6_unknownE4: Can't find mboxes for set %d", arg);
 
 	mboxSize = READ_BE_UINT32(boxd + 4);
 	matrix = createResource(rtMatrix, 1, mboxSize);





More information about the Scummvm-git-logs mailing list