[Scummvm-cvs-logs] CVS: scummvm/scumm intern.h,2.88,2.89 script_v6.cpp,1.117,1.118

Jonathan Gray khalek at users.sourceforge.net
Sun May 18 21:30:23 CEST 2003


Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1:/tmp/cvs-serv18748

Modified Files:
	intern.h script_v6.cpp 
Log Message:
sync local changes, fix pickOneOf

Index: intern.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/intern.h,v
retrieving revision 2.88
retrieving revision 2.89
diff -u -d -r2.88 -r2.89
--- intern.h	18 May 2003 12:52:27 -0000	2.88
+++ intern.h	19 May 2003 04:29:41 -0000	2.89
@@ -326,6 +326,7 @@
 	int getStackList(int *args, uint maxnum);
 	int popRoomAndObj(int *room);
 	void shuffleArray(int num, int minIdx, int maxIdx);
+	void unknownEA_func(int a, int b, int c, int d, int e);
 
 	/* Version 6 script opcodes */
 	void o6_setBlastObjectWindow();
@@ -494,6 +495,7 @@
 	void o6_localizeArray();
 	void o6_shuffle();
 	void o6_unknownFA();
+	void o6_unknownEA();
 
 	byte VAR_VIDEONAME;
 

Index: script_v6.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v6.cpp,v
retrieving revision 1.117
retrieving revision 1.118
diff -u -d -r1.117 -r1.118
--- script_v6.cpp	18 May 2003 21:03:57 -0000	1.117
+++ script_v6.cpp	19 May 2003 04:29:41 -0000	1.118
@@ -334,7 +334,7 @@
 		/* E8 */
 		OPCODE(o6_invalid),
 		OPCODE(o6_invalid),
-		OPCODE(o6_invalid),
+		OPCODE(o6_unknownEA),
 		OPCODE(o6_invalid),
 		/* EC */
 		OPCODE(o6_getActorLayer),
@@ -783,8 +783,9 @@
 void Scumm_v6::o6_cursorCommand() {
 	int a, i;
 	int args[16];
+	int op = fetchScriptByte();
 
-	switch (fetchScriptByte()) {
+	switch (op) {
 	case 0x90:
 		_cursor.state = 1;
 		verbMouseOver(0);
@@ -816,6 +817,10 @@
 		_userPut--;
 		break;
 	case 0x99:{
+			if (_features & GF_AFTER_HEV7) {
+				warning("cursorCommand 0x99 PC_SetCursorToID(%d) stub", pop());
+				break;
+			}
 			int room, obj = popRoomAndObj(&room);
 			setCursorImg(obj, room, 1);
 			break;
@@ -836,7 +841,7 @@
 		makeCursorColorTransparent(pop());
 		break;
 	default:
-		error("o6_cursorCommand: default case");
+		error("o6_cursorCommand: default case %x", op);
 	}
 
 	VAR(VAR_CURSORSTATE) = _cursor.state;
@@ -1353,9 +1358,10 @@
 }
 
 void Scumm_v6::o6_resourceRoutines() {
-	int resid;
+	int resid, op;
+	op = fetchScriptByte();
 
-	switch (fetchScriptByte()) {
+	switch (op) {
 	case 100:										/* load script */
 		resid = pop();
 		if (_features & GF_AFTER_V7)
@@ -1453,7 +1459,7 @@
 			break;
 		}
 	default:
-		error("o6_resourceRoutines: default case");
+		error("o6_resourceRoutines: default case %d", op);
 	}
 }
 
@@ -2769,8 +2775,8 @@
 
 	num = getStackList(args, ARRAYSIZE(args));
 	i = pop();
-	if (i < 0 || i >= num)
-		error("o6_pickOneOf: out of range");
+	if (i < 0 || i > num)
+		error("o6_pickOneOf: %d out of range (0, %d)", i, num - 1);
 	push(args[i]);
 }
 
@@ -3010,6 +3016,34 @@
 	len = resStrLen(_scriptPointer);
 	warning("stub o6_unknownFA(%d, \"%s\")", a, _scriptPointer);
 	_scriptPointer += len + 1;
+}
+
+void Scumm_v6::o6_unknownEA() {
+	int edi, esi, eax;
+	edi = pop();
+	esi = pop();
+
+	if (edi == 0) {
+		eax = esi;
+		esi = edi;
+		edi = eax;
+	}
+
+	eax = fetchScriptByte();
+	switch (eax) {
+		case 197:
+			unknownEA_func(5, esi, edi, fetchScriptWord(), eax);
+			break;
+		case 202:
+			unknownEA_func(3, esi, edi, fetchScriptWord(), eax);
+			break;
+		default:
+			break;
+	}
+}
+
+void Scumm_v6::unknownEA_func(int a, int b, int c, int d, int e) {
+	warning("unknownEA_func(%d, %d, %d, %d, %d) stub\n", a, b, c, d, e);
 }
 
 void Scumm_v6::o6_localizeArray() {





More information about the Scummvm-git-logs mailing list