[Scummvm-cvs-logs] CVS: scummvm/scumm intern.h,2.180,2.181 script_v6he.cpp,2.89,2.90 script_v7he.cpp,2.39,2.40

Travis Howell kirben at users.sourceforge.net
Mon Aug 23 02:20:00 CEST 2004


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

Modified Files:
	intern.h script_v6he.cpp script_v7he.cpp 
Log Message:

More HE 7.2 changes


Index: intern.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/intern.h,v
retrieving revision 2.180
retrieving revision 2.181
diff -u -d -r2.180 -r2.181
--- intern.h	23 Aug 2004 08:41:22 -0000	2.180
+++ intern.h	23 Aug 2004 09:18:54 -0000	2.181
@@ -636,6 +636,7 @@
 	void o7_pickupObject();
 	void o7_arrayOps();
 	void o7_dimArray();
+	void o7_jumpToScript();
 	void o7_startScript();
 	void o7_startSound();
 	void o7_cursorCommand();

Index: script_v6he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v6he.cpp,v
retrieving revision 2.89
retrieving revision 2.90
diff -u -d -r2.89 -r2.90
--- script_v6he.cpp	23 Aug 2004 05:23:58 -0000	2.89
+++ script_v6he.cpp	23 Aug 2004 09:18:55 -0000	2.90
@@ -1265,6 +1265,7 @@
 		_string[m].no_talk_anim = true;
 		break;
 	case 75:		// SO_TEXTSTRING
+	case 194:		// HE 7.2
 		switch (m) {
 		case 0:
 			actorTalk(_scriptPointer);

Index: script_v7he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v7he.cpp,v
retrieving revision 2.39
retrieving revision 2.40
diff -u -d -r2.39 -r2.40
--- script_v7he.cpp	23 Aug 2004 08:49:04 -0000	2.39
+++ script_v7he.cpp	23 Aug 2004 09:18:55 -0000	2.40
@@ -318,7 +318,7 @@
 		OPCODE(o6_invalid),
 		/* D4 */
 		OPCODE(o6_shuffle),
-		OPCODE(o6_jumpToScript),
+		OPCODE(o7_jumpToScript),
 		OPCODE(o6_band),
 		OPCODE(o6_bor),
 		/* D8 */
@@ -496,15 +496,20 @@
 	int retval;
 
 	// we pretend that we don't have .ini file
-	len = resStrLen(_scriptPointer);
-	_scriptPointer += len + 1;
-	type = pop();
+	if (_heversion <= 71) {
+		len = resStrLen(_scriptPointer);
+		_scriptPointer += len + 1;
+	}
+
+	type = fetchScriptByte();
 
 	switch (type) {
 	case 1: // number
+	case 6: // HE 7.2
 		push(0);
 		break;
 	case 2: // string
+	case 7: // HE 7.2
 		defineArray(0, kStringArray, 0, 0);
 		retval = readVar(0);
 		writeArray(0, 0, 0, 0);
@@ -751,6 +756,21 @@
 	}
 }
 
+void ScummEngine_v7he::o7_jumpToScript() {
+	if (_heversion <= 71) {
+		ScummEngine_v6::o6_jumpToScript();
+		return;
+	}
+	int args[16];
+	int script, flags;
+
+	getStackList(args, ARRAYSIZE(args));
+	script = pop();
+	flags = fetchScriptByte();
+	stopObjectCode();
+	runScript(script, (flags == 199 || flags == 200), (flags == 195 || flags == 200), args);
+}
+
 void ScummEngine_v7he::o7_startScript() {
 	if (_heversion <= 71) {
 		ScummEngine_v6::o6_startScript();





More information about the Scummvm-git-logs mailing list