[Scummvm-cvs-logs] CVS: scummvm/scumm script.cpp,1.20,1.21 script_v6.cpp,1.15,1.16 script_v8.cpp,2.12,2.13

Max Horn fingolfin at users.sourceforge.net
Mon Dec 23 10:57:03 CET 2002


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

Modified Files:
	script.cpp script_v6.cpp script_v8.cpp 
Log Message:
and more V8. Now we again hit the charset limit, but this time caused by the script itself :-)

Index: script.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script.cpp,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -d -r1.20 -r1.21
--- script.cpp	23 Dec 2002 18:37:56 -0000	1.20
+++ script.cpp	23 Dec 2002 18:56:42 -0000	1.21
@@ -1063,17 +1063,6 @@
 	return -1;
 }
 
-void Scumm::arrayop_1(int a, byte *ptr)
-{
-	ArrayHeader *ah;
-	int r;
-	int len = getStringLen(ptr);
-
-	r = defineArray(a, 4, 0, len);
-	ah = (ArrayHeader *)getResourceAddress(rtString, r);
-	copyString(ah->data, ptr, len);
-}
-
 void Scumm::copyString(byte *dst, byte *src, int len)
 {
 	if (!src) {

Index: script_v6.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v6.cpp,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -d -r1.15 -r1.16
--- script_v6.cpp	23 Dec 2002 15:46:53 -0000	1.15
+++ script_v6.cpp	23 Dec 2002 18:56:43 -0000	1.16
@@ -1924,6 +1924,17 @@
 	push(getVerbEntrypoint(v, e));
 }
 
+void Scumm::arrayop_1(int a, byte *ptr)
+{
+	ArrayHeader *ah;
+	int r;
+	int len = getStringLen(ptr);
+
+	r = defineArray(a, 4, 0, len);
+	ah = (ArrayHeader *)getResourceAddress(rtString, r);
+	copyString(ah->data, ptr, len);
+}
+
 void Scumm_v6::o6_arrayOps()
 {
 	int a, b, c, d, num;

Index: script_v8.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v8.cpp,v
retrieving revision 2.12
retrieving revision 2.13
diff -u -d -r2.12 -r2.13
--- script_v8.cpp	23 Dec 2002 18:37:56 -0000	2.12
+++ script_v8.cpp	23 Dec 2002 18:56:43 -0000	2.13
@@ -598,8 +598,21 @@
 	
 	switch (subOp) {
 	case 0x14:		// SO_ASSIGN_STRING
+		{
+		int idx = pop();
+		ArrayHeader *ah;
+		int r;
+		int len = getStringLen(NULL);
+	
+		r = defineArray(array, 4, 0, len);
+		ah = (ArrayHeader *)getResourceAddress(rtString, r);
+		copyString(ah->data + idx, NULL, len);
+		}
+		break;
 	case 0x15:		// SO_ASSIGN_SCUMMVAR_LIST
+		// TODO
 	case 0x16:		// SO_ASSIGN_2DIM_LIST
+		// TODO
 	default:
 		error("o8_arrayOps: default case %d (array %d)", subOp, array);
 	}
@@ -764,13 +777,22 @@
 {
 	// TODO
 	byte subOp = fetchScriptByte();
+	int a;
+	
 	switch (subOp) {
 	case 0x52:		// SO_ROOM_PALETTE Set room palette
-//	case 0x53:		// SO_339
-//	case 0x54:		// SO_340
 	case 0x55:		// SO_ROOM_INTENSITY Set room intensity
-//	case 0x56:		// SO_342
+		error("o8_roomOps: default case %d", subOp);
+		break;
 	case 0x57:		// SO_ROOM_FADE Fade room
+		a = pop();
+		if (a) {
+			_switchRoomEffect = (byte)(a);
+			_switchRoomEffect2 = (byte)(a >> 8);
+		} else {
+			fadeIn(_newEffect);
+		}
+		break;
 	case 0x58:		// SO_ROOM_RGB_INTENSITY Set room color intensity
 	case 0x59:		// SO_ROOM_TRANSFORM Transform room
 	case 0x5A:		// SO_ROOM_CYCLE_SPEED Set palette cycling speed
@@ -881,10 +903,24 @@
 
 void Scumm_v8::o8_system()
 {
+	// TODO
+	byte subOp = fetchScriptByte();
+	switch (subOp) {
+	default:
+		error("o8_system: default case %d", subOp);
+	}
 }
 
 void Scumm_v8::o8_kludge()
 {
+	// TODO
+	int16 args[30];
+	getStackList(args, sizeof(args) / sizeof(args[0]));
+
+	switch (args[0]) {
+	default:
+		warning("o8_kludge: default case %d", args[0]);
+	}
 }
 
 /*





More information about the Scummvm-git-logs mailing list