[Scummvm-cvs-logs] CVS: tools descumm3.cpp,1.29,1.30

Jonathan Gray khalek at users.sourceforge.net
Sat May 3 20:00:12 CEST 2003


Update of /cvsroot/scummvm/tools
In directory sc8-pr-cvs1:/tmp/cvs-serv6826

Modified Files:
	descumm3.cpp 
Log Message:
more updates

Index: descumm3.cpp
===================================================================
RCS file: /cvsroot/scummvm/tools/descumm3.cpp,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -d -r1.29 -r1.30
--- descumm3.cpp	4 May 2003 02:12:13 -0000	1.29
+++ descumm3.cpp	4 May 2003 02:59:56 -0000	1.30
@@ -865,6 +865,64 @@
 	strcpy(buf, ");");
 }
 
+void do_resource_v2(char *buf, byte opcode)
+{
+	int resid = get_byte();
+	int subop = get_byte();
+
+	if (((subop & 0x0F) == 0) || ((subop & 0x0F) == 1)) {
+		switch (subop & 0xF1) {
+			case 96:
+				do_tok(buf, "lockSound", ((resid & 0x80) ? A1V : A1B));
+				break;
+			case 97:
+				do_tok(buf, "unlockSound", ((resid & 0x80) ? A1V : A1B));
+				break;
+			case 80:
+				do_tok(buf, "lockScript", ((resid & 0x80) ? A1V : A1B));
+				break;
+			case 81:
+				do_tok(buf, "unlockScript", ((resid & 0x80) ? A1V : A1B));
+				break;
+			case 32:
+				do_tok(buf, "lockCostume", ((resid & 0x80) ? A1V : A1B));
+				break;
+			case 33:
+				do_tok(buf, "unlockCostume", ((resid & 0x80) ? A1V : A1B));
+				break;
+			case 48:
+				do_tok(buf, "lockRoom", ((resid & 0x80) ? A1V : A1B));
+				break;
+			case 49:
+				do_tok(buf, "unlockRoom", ((resid & 0x80) ? A1V : A1B));
+				break;
+			default:
+				sprintf(buf, "UnknownResLockUnlockCommand%.2X", subop & 0xF1);
+		}
+	} else {
+		switch (subop & 0xF1) {
+			case 96:
+			case 80:
+			case 32:
+			case 48:
+				break;
+			case 97:
+				do_tok(buf, "loadSoundRes", ((resid & 0x80) ? A1V : A1B));
+				break;
+			case 81:
+				do_tok(buf, "loadScriptRes", ((resid & 0x80) ? A1V : A1B));
+				break;
+			case 33:
+				do_tok(buf, "loadCostumeRes", ((resid & 0x80) ? A1V : A1B));
+				break;
+			case 49:
+				do_tok(buf, "loadRoomRes", ((resid & 0x80) ? A1V : A1B));
+				break;
+			default:
+				sprintf(buf, "UnknownResLoadNukeCommand%.2X", subop & 0xF1);
+		}
+	}
+}
 
 void do_resource(char *buf, byte opco)
 {
@@ -1581,22 +1639,29 @@
 	case 0xC7:
 		// clearState08
 		break;
+*/
 	case 0x60:
 	case 0xE0:
 		//cursorCommand
+		sprintf(buf, "UnknownCursorCommand%.2X", opcode);
 		break;
-*/
 	case 0x40:
-		do_tok(buf, "cutscene", A1VARUNTIL0xFF);
+		do_tok(buf, "cutscene", ((opcode & 80) ? A1V : A1B));
 		break;
 	case 0xC6:
 		//decrement
 		do_varset_code(buf, opcode);
 		break;
-/*			
-	case 0x2E:
+	case 0x2E: {
 		//delay
+		int d = get_byte();
+		d |= get_byte() << 8;
+		d |= get_byte() << 16;
+		d = 0xFFFFFF - d;
+		sprintf(buf, "delay(%d)", d);
 		break;
+	}
+/*
 	case 0x2B:
 		//delayVariable
 		break;
@@ -1773,10 +1838,11 @@
 		//ifState08
 		break;
 		
+*/
 	case 0x46:
 		//increment
+		do_varset_code(buf, opcode);
 		break;
-*/
 	case 0x48:
 	case 0xC8:
 		//isEqual
@@ -1896,26 +1962,24 @@
 					 ((opcode & 0x80) ? A1V : A1B) | ((opcode & 0x40) ? A2V : A2W) |
 					 ((opcode & 0x20) ? A3V : A3W));
 		break;
-/*
 	case 0x0E:
 	case 0x4E:
 	case 0x8E:
 	case 0xCE:
 		//putActorAtObject
+		do_tok(buf, "putActorAtObject", ((opcode & 0x80) ? A1V : A1B) | ((opcode & 0x40) ? A2V : A2B) );
 		break;
-*/
 	case 0x2D:
 	case 0x6D:
 	case 0xAD:
 	case 0xED:
 		do_tok(buf, "putActorInRoom", ((opcode & 0x80) ? A1V : A1B) | ((opcode & 0x40) ? A2V : A2B));
 		break;
-/*
 	case 0x0C:
 	case 0x8C:
 		//resourceRoutines
+		do_resource_v2(buf, opcode);
 		break;
-*/
 	case 0x98:
 		do_tok(buf, "restart", 0);
 		break;
@@ -2022,7 +2086,7 @@
 	case 0x42:
 	case 0xC2:
 		//startScript
-		do_tok(buf, "startScriptAA", ((opcode & 0x80) ? A1V : A1B) | A2VARUNTIL0xFF);
+		do_tok(buf, "startScript", ((opcode & 0x80) ? A1V : A1B));
 		break;
 		
 	case 0x1C:





More information about the Scummvm-git-logs mailing list