[Scummvm-cvs-logs] CVS: scummvm/scumm intern.h,2.382,2.383 script_v100he.cpp,2.76,2.77 script_v90he.cpp,2.175,2.176

kirben kirben at users.sourceforge.net
Sun Mar 6 22:07:06 CET 2005


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

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

Fix dup_n, billboard in circdemo works now.


Index: intern.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/intern.h,v
retrieving revision 2.382
retrieving revision 2.383
diff -u -d -r2.382 -r2.383
--- intern.h	2 Mar 2005 20:02:58 -0000	2.382
+++ intern.h	7 Mar 2005 06:06:21 -0000	2.383
@@ -1013,7 +1013,7 @@
 
 protected:
 	/* HE version 90 script opcodes */
-	void o90_dup();
+	void o90_dup_n();
 	void o90_min();
 	void o90_max();
 	void o90_sin();

Index: script_v100he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v100he.cpp,v
retrieving revision 2.76
retrieving revision 2.77
diff -u -d -r2.76 -r2.77
--- script_v100he.cpp	7 Mar 2005 04:21:11 -0000	2.76
+++ script_v100he.cpp	7 Mar 2005 06:06:22 -0000	2.77
@@ -92,7 +92,7 @@
 		OPCODE(o100_drawObject),
 		/* 28 */
 		OPCODE(o6_dup),
-		OPCODE(o90_dup),
+		OPCODE(o90_dup_n),
 		OPCODE(o6_endCutscene),
 		OPCODE(o6_stopObjectCode),
 		/* 2C */

Index: script_v90he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v90he.cpp,v
retrieving revision 2.175
retrieving revision 2.176
diff -u -d -r2.175 -r2.176
--- script_v90he.cpp	4 Mar 2005 05:34:56 -0000	2.175
+++ script_v90he.cpp	7 Mar 2005 06:06:22 -0000	2.176
@@ -53,7 +53,7 @@
 		/* 08 */
 		OPCODE(o6_invalid),
 		OPCODE(o6_invalid),
-		OPCODE(o90_dup),
+		OPCODE(o90_dup_n),
 		OPCODE(o6_wordArrayIndexedRead),
 		/* 0C */
 		OPCODE(o6_dup),
@@ -374,14 +374,16 @@
 	return _opcodesV90he[i].desc;
 }
 
-void ScummEngine_v90he::o90_dup() {
-	int a, num;
+void ScummEngine_v90he::o90_dup_n() {
+	int num;
+	int args[16];
 
-	num = fetchScriptWord();
-	for (int i = 0; i < num; i++) {
-		a = pop();
-		push(a);
-		push(a);
+	push(fetchScriptWord());
+	num = getStackList(args, ARRAYSIZE(args));
+
+	for (int i = 0; i < 2; i++) {
+		for (int j = 0; j < num; j++)
+			push(args[j]);
 	}
 }
 





More information about the Scummvm-git-logs mailing list