[Scummvm-cvs-logs] CVS: tools descumm3.cpp,1.30,1.31
Jonathan Gray
khalek at users.sourceforge.net
Sun May 4 03:44:41 CEST 2003
Update of /cvsroot/scummvm/tools
In directory sc8-pr-cvs1:/tmp/cvs-serv6917
Modified Files:
descumm3.cpp
Log Message:
more v2 updates
Index: descumm3.cpp
===================================================================
RCS file: /cvsroot/scummvm/tools/descumm3.cpp,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -d -r1.30 -r1.31
--- descumm3.cpp 4 May 2003 02:59:56 -0000 1.30
+++ descumm3.cpp 4 May 2003 10:43:12 -0000 1.31
@@ -556,6 +556,31 @@
return PendingElse;
}
+void do_decodeparsestring_v2(char *buf, byte opcode)
+{
+ byte buffer[256];
+ byte *ptr = buffer;
+ byte c;
+
+ while (( c = get_byte())) {
+ if (c & 0x80) {
+ *ptr++ = c & 0x7F;
+ *ptr++ = ' ';
+ } else if (c < 8) {
+ *ptr++ = 0xFF;
+ *ptr++ = c;
+ if (c > 3) {
+ *ptr++ = 0;
+ *ptr++ = get_byte();
+ }
+ } else
+ *ptr++ = c;
+ }
+ *ptr = 0;
+
+ strcat(buf, (char *)buffer);
+}
+
void do_actorset_v2(char *buf, byte opcode)
{
buf = do_tok(buf, "ActorSet", ((opcode & 0x80) ? A1V : A1B) | ANOLASTPAREN);
@@ -1623,11 +1648,12 @@
case 0x80:
do_tok(buf, "breakHere", 0);
break;
-/*
case 0x4A:
case 0xCA:
// chainScript
+ do_tok(buf, "chainScript", ((opcode & 0x80) ? A1V : A1B));
break;
+/*
case 0x77:
case 0xF7:
// clearState01
@@ -1646,7 +1672,7 @@
sprintf(buf, "UnknownCursorCommand%.2X", opcode);
break;
case 0x40:
- do_tok(buf, "cutscene", ((opcode & 80) ? A1V : A1B));
+ sprintf(buf, "cutscene");
break;
case 0xC6:
//decrement
@@ -1672,10 +1698,10 @@
case 0x99:
case 0xB9:
case 0xD9:
- case 0xF9:
+ case 0xF9:
//doSentence
break;
-*/
+*/
case 0x05:
case 0x25:
case 0x45:
@@ -1694,6 +1720,7 @@
case 0xAC:
//drawSentence
break;
+*/
case 0x5C:
case 0x6B:
case 0x6E:
@@ -1702,8 +1729,10 @@
case 0xEB:
case 0xEE:
//dummy
- break;
+ sprintf(buf, "dummy(%.2X)", opcode);
+ break;
+/*
case 0xC0:
//endCutscene
break;
@@ -1930,20 +1959,23 @@
//panCameraTo
do_tok(buf, "panCameraTo", ((opcode & 0x80) ? A1V : A1W));
break;
-/*
case 0x50:
case 0xD0:
//pickupObject
+ do_tok(buf, "pickupObject", ((opcode & 0x80) ? A1V : A1W));
break;
-*/
case 0x14:
case 0x94:
// print
- do_tok(buf, "print", A1ASCII);
+ sprintf(buf, "print(\"");
+ do_decodeparsestring_v2(buf, opcode);
+ strcat(buf, "\")");
break;
case 0xD8:
//printEgo
- do_tok(buf, "printEgo", A1ASCII);
+ sprintf(buf, "printEgo(\"");
+ do_decodeparsestring_v2(buf, opcode);
+ strcat(buf, "\")");
break;
case 0xCC:
@@ -2009,11 +2041,13 @@
case 0xDB:
//setBitVar
break;
+*/
case 0x32:
case 0xB2:
//setCameraAt
+ do_tok(buf, "setCameraAt", ((opcode & 0x80) ? A1V : A1B));
break;
-
+/*
case 0x54:
case 0xD4:
//setObjectName
@@ -2024,37 +2058,38 @@
case 0x8B:
case 0xCB:
//setObjY
- buf = do_tok(buf, "setObjY", ((opcode & 0x80) ? A1V : A1W) | A2B);
+ do_tok(buf, "setObjY", ((opcode & 0x80) ? A1V : A1W) | A2B);
break;
-/*
case 0x29:
case 0x69:
case 0xA9:
case 0xE9:
//setOwnerOf
+ do_tok(buf, "setOwnerOf", ((opcode & 0x80) ? A1V : A1W) | ((opcode & 0x40) ? A2V : A2B));
break;
case 0x37:
//setState01
+ do_tok(buf, "setState01", A1W);
break;
-
case 0x57:
case 0x97:
case 0xB7:
case 0xD7:
//setState02
+ do_tok(buf, "setState02", A1W);
break;
-
case 0x17:
case 0xA7:
//setState04
+ do_tok(buf, "setState04", A1W);
break;
case 0x07:
case 0x47:
case 0x87:
//setState08
+ do_tok(buf, "setState08", A1W);
break;
-*/
case 0x26:
case 0xA6: {
int i;
More information about the Scummvm-git-logs
mailing list