[Scummvm-cvs-logs] CVS: scummvm/scumm script_v6.cpp,1.293,1.294

Eugene Sandulenko sev at users.sourceforge.net
Sat Feb 14 06:55:02 CET 2004


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

Modified Files:
	script_v6.cpp 
Log Message:
Implementation of o6_unknownE4


Index: script_v6.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v6.cpp,v
retrieving revision 1.293
retrieving revision 1.294
diff -u -d -r1.293 -r1.294
--- script_v6.cpp	13 Feb 2004 01:06:31 -0000	1.293
+++ script_v6.cpp	14 Feb 2004 14:48:14 -0000	1.294
@@ -3113,7 +3113,37 @@
 }
 
 void ScummEngine_v6::o6_unknownE4() {
-	warning("o6_unknownE4(%d) stub", pop());
+	int arg = pop();
+	const byte *room = getResourceAddress(rtRoom, _roomResource);
+	const byte *boxd = room;
+	const byte *boxm = room;
+	int32 dboxSize, mboxSize;
+
+	for (int i = 0; i < arg; i++)
+		boxd = findResource(MKID('BOXD'), boxd);
+
+	if (!boxd)
+		error("ScummEngine_v6::o6_unknownE4: Can't find boxes for set %d", arg);
+
+	dboxSize = READ_BE_UINT32(boxd + 4);
+	byte *matrix = createResource(rtMatrix, 2, dboxSize);
+
+	assert(matrix);
+	memcpy(matrix, boxd, dboxSize);
+
+	for (int i = 0; i < arg; i++)
+		boxm = findResource(MKID('BOXM'), boxm);
+
+	if (!boxm)
+		error("ScummEngine_v6::o6_unknownE4: Can't find boxes for set %d", arg);
+
+	mboxSize = READ_BE_UINT32(boxd + 4);
+	matrix = createResource(rtMatrix, 1, mboxSize);
+
+	assert(matrix);
+	memcpy(matrix, boxm, mboxSize);
+
+	showActors();
 }
 
 void ScummEngine_v6::decodeParseString(int m, int n) {





More information about the Scummvm-git-logs mailing list