[Scummvm-cvs-logs] CVS: scummvm/scumm intern.h,2.227,2.228 script_v90he.cpp,2.11,2.12

Travis Howell kirben at users.sourceforge.net
Tue Sep 7 05:57:25 CEST 2004


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

Modified Files:
	intern.h script_v90he.cpp 
Log Message:

Add another opcode/stub


Index: intern.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/intern.h,v
retrieving revision 2.227
retrieving revision 2.228
diff -u -d -r2.227 -r2.228
--- intern.h	7 Sep 2004 09:25:36 -0000	2.227
+++ intern.h	7 Sep 2004 12:56:12 -0000	2.228
@@ -808,6 +808,7 @@
 	void o90_unknown27();
 	void o90_unknown28();
 	void o90_unknown29();
+	void o90_unknown37();
 };
 
 class ScummEngine_v7 : public ScummEngine_v6 {

Index: script_v90he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v90he.cpp,v
retrieving revision 2.11
retrieving revision 2.12
diff -u -d -r2.11 -r2.12
--- script_v90he.cpp	7 Sep 2004 09:25:37 -0000	2.11
+++ script_v90he.cpp	7 Sep 2004 12:56:12 -0000	2.12
@@ -110,10 +110,10 @@
 		OPCODE(o6_invalid),
 		OPCODE(o6_invalid),
 		/* 34 */
+		OPCODE(o72_findAllObjects),
 		OPCODE(o6_invalid),
 		OPCODE(o6_invalid),
-		OPCODE(o6_invalid),
-		OPCODE(o6_invalid),
+		OPCODE(o90_unknown37),
 		/* 38 */
 		OPCODE(o6_invalid),
 		OPCODE(o6_invalid),
@@ -505,6 +505,7 @@
 
 void ScummEngine_v90he::o90_unknown26() {
 	// Incomplete
+	int args[16];
 	int subOp = fetchScriptByte();
 	subOp -= 34;
 
@@ -537,6 +538,8 @@
 			break;
 		case 23:
 			pop();
+			if (_heversion >= 98)
+				pop();
 			break;
 		case 29:
 			pop();
@@ -558,6 +561,9 @@
 		case 90:
 			pop();
 			break;
+		case 91:
+			getStackList(args, ARRAYSIZE(args));
+			break;
 		case 124:
 			break;
 		case 164:
@@ -676,4 +682,48 @@
 	debug(1,"o90_unknown29 stub (%d)", subOp);
 }
 
+void ScummEngine_v90he::o90_unknown37() {
+	int data, dim1start, dim1end, dim2start, dim2end;
+	int type = fetchScriptByte();
+
+	switch (type) {
+	case 2:		// SO_BIT_ARRAY
+		data = kBitArray;
+		break;
+	case 3:		// SO_NIBBLE_ARRAY
+		data = kNibbleArray;
+		break;
+	case 4:		// SO_BYTE_ARRAY
+		data = kByteArray;
+		break;
+	case 5:		// SO_INT_ARRAY
+		data = kIntArray;
+		break;
+	case 6:
+		data = kDwordArray;
+		break;
+	case 7:		// SO_STRING_ARRAY
+		data = kStringArray;
+		break;
+	default:
+		error("o90_unknown37: default case %d", type);
+	}
+
+	if (pop() == 2) {
+		dim1end = pop();
+		dim1start = pop();
+		dim2end = pop();
+		dim2start = pop();
+	} else {
+		dim2end = pop();
+		dim2start = pop();
+		dim1end = pop();
+		dim1start = pop();
+	}
+
+	defineArray(fetchScriptWord(), data, dim2start, dim2end, dim1start, dim1end);
+
+	debug(1,"o90_unknown37 stub");
+}
+
 } // End of namespace Scumm





More information about the Scummvm-git-logs mailing list