[Scummvm-cvs-logs] SF.net SVN: scummvm:[51121] tools/branches/gsoc2010-decompiler/decompiler/ scummv6/disassembler.cpp

pidgeot at users.sourceforge.net pidgeot at users.sourceforge.net
Thu Jul 22 01:02:16 CEST 2010


Revision: 51121
          http://scummvm.svn.sourceforge.net/scummvm/?rev=51121&view=rev
Author:   pidgeot
Date:     2010-07-21 23:02:16 +0000 (Wed, 21 Jul 2010)

Log Message:
-----------
Add instruction metadata from descumm

Modified Paths:
--------------
    tools/branches/gsoc2010-decompiler/decompiler/scummv6/disassembler.cpp

Modified: tools/branches/gsoc2010-decompiler/decompiler/scummv6/disassembler.cpp
===================================================================
--- tools/branches/gsoc2010-decompiler/decompiler/scummv6/disassembler.cpp	2010-07-21 22:30:23 UTC (rev 51120)
+++ tools/branches/gsoc2010-decompiler/decompiler/scummv6/disassembler.cpp	2010-07-21 23:02:16 UTC (rev 51121)
@@ -85,29 +85,29 @@
 		OPCODE(0x47, "wordArrayWrite", kStore, -2, "w");
 		OPCODE(0x4A, "byteArrayIndexedWrite", kStore, -3, "B");
 		OPCODE(0x4B, "wordArrayIndexedWrite", kStore, -3, "w");
-		OPCODE_MD(0x4E, "byteVarInc", kUnaryOp, 0, "B", "++");
-		OPCODE_MD(0x4F, "wordVarInc", kUnaryOp, 0, "w", "++");
-		OPCODE_MD(0x52, "byteArrayInc", kUnaryOp, -1, "B", "++");
-		OPCODE_MD(0x53, "wordArrayInc", kUnaryOp, -1, "w", "++");
-		OPCODE_MD(0x56, "byteVarDec", kUnaryOp, 0, "B", "--");
-		OPCODE_MD(0x57, "wordVarDec", kUnaryOp, 0, "w", "--");
-		OPCODE_MD(0x5A, "byteArrayDec", kUnaryOp, -1, "B", "--");
-		OPCODE_MD(0x5B, "wordArrayDec", kUnaryOp, -1, "w", "--");
+		OPCODE_MD(0x4E, "byteVarInc", kUnaryOp, 0, "B", "\xC0++");
+		OPCODE_MD(0x4F, "wordVarInc", kUnaryOp, 0, "w", "\xC0++");
+		OPCODE_MD(0x52, "byteArrayInc", kUnaryOp, -1, "B", "\xC0++");
+		OPCODE_MD(0x53, "wordArrayInc", kUnaryOp, -1, "w", "\xC0++");
+		OPCODE_MD(0x56, "byteVarDec", kUnaryOp, 0, "B", "\xC0--");
+		OPCODE_MD(0x57, "wordVarDec", kUnaryOp, 0, "w", "\xC0--");
+		OPCODE_MD(0x5A, "byteArrayDec", kUnaryOp, -1, "B", "\xC0--");
+		OPCODE_MD(0x5B, "wordArrayDec", kUnaryOp, -1, "w", "\xC0--");
 		OPCODE(0x5C, "jumpTrue", kCondJumpRel, -1, "s");
 		OPCODE(0x5D, "jumpFalse", kCondJumpRel, -1, "s");
-		OPCODE(0x5E, "startScript", kSpecial, 0x1020, ""); // Variable stack arguments
-		OPCODE(0x5F, "startScriptQuick", kSpecial, 0x1010, ""); // Variable stack arguments
-		OPCODE(0x60, "startObject", kSpecial, 0x1030, ""); // Variable stack arguments
-		OPCODE(0x61, "drawObject", kSpecial, -2, "");
-		OPCODE(0x62, "drawObjectAt", kSpecial, -3, "");
-		OPCODE(0x63, "drawBlastObject", kSpecial, 0, "");
-		OPCODE(0x64, "setBlastObjectWindow", kSpecial, -4, "");
+		OPCODE_MD(0x5E, "startScript", kSpecial, 0x1020, "", "lpp"); // Variable stack arguments
+		OPCODE_MD(0x5F, "startScriptQuick", kSpecial, 0x1010, "", "lp"); // Variable stack arguments
+		OPCODE_MD(0x60, "startObject", kSpecial, 0x1030, "", "lppp"); // Variable stack arguments
+		OPCODE_MD(0x61, "drawObject", kSpecial, -2, "", "pp");
+		OPCODE_MD(0x62, "drawObjectAt", kSpecial, -3, "", "ppp");
+		OPCODE_MD(0x63, "drawBlastObject", kSpecial, -5, "", "ppppp");
+		OPCODE_MD(0x64, "setBlastObjectWindow", kSpecial, -4, "", "pppp");
 		OPCODE(0x65, "stopObjectCodeA", kSpecial, 0, "");
 		OPCODE(0x66, "stopObjectCodeB", kSpecial, 0, "");
 		OPCODE(0x67, "endCutscene", kSpecial, 0, "");
-		OPCODE(0x68, "beginCutscene", kSpecial, 0x1000, ""); // Variable stack arguments
+		OPCODE_MD(0x68, "beginCutscene", kSpecial, 0x1000, "", "l"); // Variable stack arguments
 		OPCODE(0x69, "stopMusic", kSpecial, 0, "");
-		OPCODE(0x6A, "freezeUnfreeze", kSpecial, -1, "");
+		OPCODE_MD(0x6A, "freezeUnfreeze", kSpecial, -1, "", "p");
 		START_SUBOPCODE(0x6B); // cursorCommand
 			OPCODE(0x90, "cursorCmd_CursorOn", kSpecial, 0, "");
 			OPCODE(0x91, "cursorCmd_CursorOff", kSpecial, 0, "");
@@ -117,308 +117,308 @@
 			OPCODE(0x95, "cursorCmd_SoftOff", kSpecial, 0, "");
 			OPCODE(0x96, "cursorCmd_UserputSoftOn", kSpecial, 0, "");
 			OPCODE(0x97, "cursorCmd_UserputSoftOff", kSpecial, 0, "");
-			OPCODE(0x99, "cursorCmd_Image", kSpecial, -2, "");
-			OPCODE(0x9A, "cursorCmd_Hotspot", kSpecial, -2, "");
-			OPCODE(0x9C, "cursorCmd_CharsetSet", kSpecial, -1, "");
-			OPCODE(0x9D, "cursorCmd_CharsetColors", kSpecial, 0x1000, ""); // Variable stack arguments
-			OPCODE(0xD6, "cursorCmd_Transparent", kSpecial, -1, "");
+			OPCODE_MD(0x99, "cursorCmd_Image", kSpecial, -2, "", "z");
+			OPCODE_MD(0x9A, "cursorCmd_Hotspot", kSpecial, -2, "", "pp");
+			OPCODE_MD(0x9C, "cursorCmd_CharsetSet", kSpecial, -1, "", "p");
+			OPCODE_MD(0x9D, "cursorCmd_CharsetColors", kSpecial, 0x1000, "", "l"); // Variable stack arguments
+			OPCODE_MD(0xD6, "cursorCmd_Transparent", kSpecial, -1, "", "p");
 		END_SUBOPCODE;
 		OPCODE(0x6C, "breakHere", kSpecial, 0, "");
-		OPCODE(0x6D, "ifClassOfIs", kSpecial, 0x1011, ""); // Variable stack arguments
-		OPCODE(0x6E, "setClass", kSpecial, 0x1010, ""); // Variable stack arguments
-		OPCODE(0x6F, "getState", kSpecial, 0, "");
-		OPCODE(0x70, "setState", kSpecial, -2, "");
-		OPCODE(0x71, "setOwner", kSpecial, -2, "");
-		OPCODE(0x72, "getOwner", kSpecial, 0, "");
+		OPCODE_MD(0x6D, "ifClassOfIs", kSpecial, 0x1011, "", "rlp"); // Variable stack arguments
+		OPCODE_MD(0x6E, "setClass", kSpecial, 0x1010, "", "lp"); // Variable stack arguments
+		OPCODE_MD(0x6F, "getState", kSpecial, 0, "", "rp");
+		OPCODE_MD(0x70, "setState", kSpecial, -2, "", "pp");
+		OPCODE_MD(0x71, "setOwner", kSpecial, -2, "", "pp");
+		OPCODE_MD(0x72, "getOwner", kSpecial, 0, "", "rp");
 		OPCODE(0x73, "jump", kJumpRel, 0, "s");
-		OPCODE(0x74, "startSound", kSpecial, -1, "");
-		OPCODE(0x75, "stopSound", kSpecial, -1, "");
-		OPCODE(0x76, "startMusic", kSpecial, -1, "");
-		OPCODE(0x77, "stopObjectScript", kSpecial, -1, "");
-		OPCODE(0x78, "panCameraTo", kSpecial, -1, "");
-		OPCODE(0x79, "actorFollowCamera", kSpecial, -1, "");
-		OPCODE(0x7A, "setCameraAt", kSpecial, -1, "");
-		OPCODE(0x7B, "loadRoom", kSpecial, -1, "");
-		OPCODE(0x7C, "stopScript", kSpecial, -1, "");
-		OPCODE(0x7D, "walkActorToObj", kSpecial, -3, "");
-		OPCODE(0x7E, "walkActorTo", kSpecial, -3, "");
-		OPCODE(0x7F, "putActorAtXY", kSpecial, -4, "");
-		OPCODE(0x80, "putActorAtObject", kSpecial, -3, "");
-		OPCODE(0x81, "faceActor", kSpecial, -2, "");
-		OPCODE(0x82, "animateActor", kSpecial, -2, "");
-		OPCODE(0x83, "doSentence", kSpecial, -4, "");
-		OPCODE(0x84, "pickupObject", kSpecial, -2, "");
-		OPCODE(0x85, "loadRoomWithEgo", kSpecial, -4, "");
-		OPCODE(0x87, "getRandomNumber", kSpecial, 0, "");
-		OPCODE(0x88, "getRandomNumberRange", kSpecial, -1, "");
-		OPCODE(0x8A, "getActorMoving", kSpecial, 0, "");
-		OPCODE(0x8B, "isScriptRunning", kSpecial, 0, "");
-		OPCODE(0x8C, "getActorRoom", kSpecial, 0, "");
-		OPCODE(0x8D, "getObjectX", kSpecial, 0, "");
-		OPCODE(0x8E, "getObjectY", kSpecial, 0, "");
-		OPCODE(0x8F, "getObjectDir", kSpecial, 0, "");
-		OPCODE(0x90, "getActorWalkBox", kSpecial, 0, "");
-		OPCODE(0x91, "getActorCostume", kSpecial, 0, "");
-		OPCODE(0x92, "findInventory", kSpecial, -1, "");
-		OPCODE(0x93, "getInventoryCount", kSpecial, 0, "");
-		OPCODE(0x94, "getVerbFromXY", kSpecial, -1, "");
+		OPCODE_MD(0x74, "startSound", kSpecial, -1, "", "p");
+		OPCODE_MD(0x75, "stopSound", kSpecial, -1, "", "p");
+		OPCODE_MD(0x76, "startMusic", kSpecial, -1, "", "p");
+		OPCODE_MD(0x77, "stopObjectScript", kSpecial, -1, "", "p");
+		OPCODE_MD(0x78, "panCameraTo", kSpecial, -1, "", "p");
+		OPCODE_MD(0x79, "actorFollowCamera", kSpecial, -1, "", "p");
+		OPCODE_MD(0x7A, "setCameraAt", kSpecial, -1, "", "p");
+		OPCODE_MD(0x7B, "loadRoom", kSpecial, -1, "", "p");
+		OPCODE_MD(0x7C, "stopScript", kSpecial, -1, "", "p");
+		OPCODE_MD(0x7D, "walkActorToObj", kSpecial, -3, "", "ppp");
+		OPCODE_MD(0x7E, "walkActorTo", kSpecial, -3, "", "ppp");
+		OPCODE_MD(0x7F, "putActorAtXY", kSpecial, -4, "", "pppp");
+		OPCODE_MD(0x80, "putActorAtObject", kSpecial, -3, "", "zp");
+		OPCODE_MD(0x81, "faceActor", kSpecial, -2, "", "pp");
+		OPCODE_MD(0x82, "animateActor", kSpecial, -2, "", "pp");
+		OPCODE_MD(0x83, "doSentence", kSpecial, -4, "", "pppp");
+		OPCODE_MD(0x84, "pickupObject", kSpecial, -2, "", "z");
+		OPCODE_MD(0x85, "loadRoomWithEgo", kSpecial, -4, "", "ppz");
+		OPCODE_MD(0x87, "getRandomNumber", kSpecial, 0, "", "rp");
+		OPCODE_MD(0x88, "getRandomNumberRange", kSpecial, -1, "", "rpp");
+		OPCODE_MD(0x8A, "getActorMoving", kSpecial, 0, "", "rp");
+		OPCODE_MD(0x8B, "isScriptRunning", kSpecial, 0, "", "rp");
+		OPCODE_MD(0x8C, "getActorRoom", kSpecial, 0, "", "rp");
+		OPCODE_MD(0x8D, "getObjectX", kSpecial, 0, "", "rp");
+		OPCODE_MD(0x8E, "getObjectY", kSpecial, 0, "", "rp");
+		OPCODE_MD(0x8F, "getObjectDir", kSpecial, 0, "", "rp");
+		OPCODE_MD(0x90, "getActorWalkBox", kSpecial, 0, "", "rp");
+		OPCODE_MD(0x91, "getActorCostume", kSpecial, 0, "", "rp");
+		OPCODE_MD(0x92, "findInventory", kSpecial, -1, "", "rpp");
+		OPCODE_MD(0x93, "getInventoryCount", kSpecial, 0, "", "rp");
+		OPCODE_MD(0x94, "getVerbFromXY", kSpecial, -1, "", "rpp");
 		OPCODE(0x95, "beginOverride", kSpecial, 0, "");
 		OPCODE(0x96, "endOverride", kSpecial, 0, "");
-		OPCODE(0x97, "setObjectName", kSpecial, -1, "c");
-		OPCODE(0x98, "isSoundRunning", kSpecial, 0, "");
-		OPCODE(0x99, "setBoxFlags", kSpecial, 0x1100, ""); // Variable stack arguments
+		OPCODE_MD(0x97, "setObjectName", kSpecial, -1, "c", "ps");
+		OPCODE_MD(0x98, "isSoundRunning", kSpecial, 0, "", "rp");
+		OPCODE_MD(0x99, "setBoxFlags", kSpecial, 0x1100, "", "pl"); // Variable stack arguments
 		OPCODE(0x9A, "createBoxMatrix", kSpecial, 0, "");
 		START_SUBOPCODE(0x9B); // resourceRoutines
-			OPCODE(0x64, "resRoutine_loadScript", kSpecial, -1, "");
-			OPCODE(0x65, "resRoutine_loadSound", kSpecial, -1, "");
-			OPCODE(0x66, "resRoutine_loadCostume", kSpecial, -1, "");
-			OPCODE(0x67, "resRoutine_loadRoom", kSpecial, -1, "");
-			OPCODE(0x68, "resRoutine_nukeScript", kSpecial, -1, "");
-			OPCODE(0x69, "resRoutine_nukeSound", kSpecial, -1, "");
-			OPCODE(0x6A, "resRoutine_nukeCostume", kSpecial, -1, "");
-			OPCODE(0x6B, "resRoutine_nukeRoom", kSpecial, -1, "");
-			OPCODE(0x6C, "resRoutine_lockScript", kSpecial, -1, "");
-			OPCODE(0x6D, "resRoutine_lockSound", kSpecial, -1, "");
-			OPCODE(0x6E, "resRoutine_lockCostume", kSpecial, -1, "");
-			OPCODE(0x6F, "resRoutine_lockRoom", kSpecial, -1, "");
-			OPCODE(0x70, "resRoutine_unlockScript", kSpecial, -1, "");
-			OPCODE(0x71, "resRoutine_unlockSound", kSpecial, -1, "");
-			OPCODE(0x72, "resRoutine_unlockCostume", kSpecial, -1, "");
-			OPCODE(0x73, "resRoutine_unlockRoom", kSpecial, -1, "");
-			OPCODE(0x75, "resRoutine_loadCharset", kSpecial, -1, "");
-			OPCODE(0x76, "resRoutine_nukeCharset", kSpecial, -1, "");
-			OPCODE(0x77, "resRoutine_loadFlObject", kSpecial, -2, "");
+			OPCODE_MD(0x64, "resRoutine_loadScript", kSpecial, -1, "", "p");
+			OPCODE_MD(0x65, "resRoutine_loadSound", kSpecial, -1, "", "p");
+			OPCODE_MD(0x66, "resRoutine_loadCostume", kSpecial, -1, "", "p");
+			OPCODE_MD(0x67, "resRoutine_loadRoom", kSpecial, -1, "", "p");
+			OPCODE_MD(0x68, "resRoutine_nukeScript", kSpecial, -1, "", "p");
+			OPCODE_MD(0x69, "resRoutine_nukeSound", kSpecial, -1, "", "p");
+			OPCODE_MD(0x6A, "resRoutine_nukeCostume", kSpecial, -1, "", "p");
+			OPCODE_MD(0x6B, "resRoutine_nukeRoom", kSpecial, -1, "", "p");
+			OPCODE_MD(0x6C, "resRoutine_lockScript", kSpecial, -1, "", "p");
+			OPCODE_MD(0x6D, "resRoutine_lockSound", kSpecial, -1, "", "p");
+			OPCODE_MD(0x6E, "resRoutine_lockCostume", kSpecial, -1, "", "p");
+			OPCODE_MD(0x6F, "resRoutine_lockRoom", kSpecial, -1, "", "p");
+			OPCODE_MD(0x70, "resRoutine_unlockScript", kSpecial, -1, "", "p");
+			OPCODE_MD(0x71, "resRoutine_unlockSound", kSpecial, -1, "", "p");
+			OPCODE_MD(0x72, "resRoutine_unlockCostume", kSpecial, -1, "", "p");
+			OPCODE_MD(0x73, "resRoutine_unlockRoom", kSpecial, -1, "", "p");
+			OPCODE_MD(0x75, "resRoutine_loadCharset", kSpecial, -1, "", "p");
+			OPCODE_MD(0x76, "resRoutine_nukeCharset", kSpecial, -1, "", "p");
+			OPCODE_MD(0x77, "resRoutine_loadFlObject", kSpecial, -2, "", "pp");
 		END_SUBOPCODE;
 		START_SUBOPCODE(0x9C); // roomOps
-			OPCODE(0xAC, "roomOp_roomScroll", kSpecial, -2, "");
-			OPCODE(0xAE, "roomOp_setScreen", kSpecial, -2, "");
-			OPCODE(0xAF, "roomOp_setPalColor", kSpecial, -4, "");
+			OPCODE_MD(0xAC, "roomOp_roomScroll", kSpecial, -2, "", "pp");
+			OPCODE_MD(0xAE, "roomOp_setScreen", kSpecial, -2, "", "pp");
+			OPCODE_MD(0xAF, "roomOp_setPalColor", kSpecial, -4, "", "pppp");
 			OPCODE(0xB0, "roomOp_shakeOn", kSpecial, 0, "");
 			OPCODE(0xB1, "roomOp_shakeOff", kSpecial, 0, "");
-			OPCODE(0xB3, "roomOp_darkenPalette", kSpecial, -3, "");
-			OPCODE(0xB4, "roomOp_saveLoadRoom", kSpecial, -2, "");
-			OPCODE(0xB5, "roomOp_screenEffect", kSpecial, -1, "");
-			OPCODE(0xB6, "roomOp_darkenPaletteRGB", kSpecial, -5, "");
-			OPCODE(0xB7, "roomOp_setupShadowPalette", kSpecial, -5, "");
-			OPCODE(0xBA, "roomOp_palManipulate", kSpecial, -4, "");
-			OPCODE(0xBB, "roomOp_colorCycleDelay", kSpecial, -2, "");
-			OPCODE(0xD5, "roomOp_setPalette", kSpecial, -1, "");
-			OPCODE(0xDC, "roomOp_copyPalColor", kSpecial, -2, "");
+			OPCODE_MD(0xB3, "roomOp_darkenPalette", kSpecial, -3, "", "ppp");
+			OPCODE_MD(0xB4, "roomOp_saveLoadRoom", kSpecial, -2, "", "pp");
+			OPCODE_MD(0xB5, "roomOp_screenEffect", kSpecial, -1, "", "p");
+			OPCODE_MD(0xB6, "roomOp_darkenPaletteRGB", kSpecial, -5, "", "ppppp");
+			OPCODE_MD(0xB7, "roomOp_setupShadowPalette", kSpecial, -5, "", "ppppp");
+			OPCODE_MD(0xBA, "roomOp_palManipulate", kSpecial, -4, "", "pppp");
+			OPCODE_MD(0xBB, "roomOp_colorCycleDelay", kSpecial, -2, "", "pp");
+			OPCODE_MD(0xD5, "roomOp_setPalette", kSpecial, -1, "", "p");
+			OPCODE_MD(0xDC, "roomOp_copyPalColor", kSpecial, -2, "", "pp");
 		END_SUBOPCODE;
 		START_SUBOPCODE(0x9D); // actorOps
-			OPCODE(0x4C, "actorOp_setCostume", kSpecial, -1, "");
-			OPCODE(0x4D, "actorOp_setWalkSpeed", kSpecial, -2, "");
-			OPCODE(0x4E, "actorOp_setSound", kSpecial, 0x1000, ""); // Variable stack arguments
-			OPCODE(0x4F, "actorOp_setWalkFrame", kSpecial, -1, "");
-			OPCODE(0x50, "actorOp_setTalkFrame", kSpecial, -2, "");
-			OPCODE(0x51, "actorOp_setStandFrame", kSpecial, -1, "");
-			OPCODE(0x52, "actorOp_82?", kSpecial, -3, "");
+			OPCODE_MD(0x4C, "actorOp_setCostume", kSpecial, -1, "", "p");
+			OPCODE_MD(0x4D, "actorOp_setWalkSpeed", kSpecial, -2, "", "pp");
+			OPCODE_MD(0x4E, "actorOp_setSound", kSpecial, 0x1000, "", "l"); // Variable stack arguments
+			OPCODE_MD(0x4F, "actorOp_setWalkFrame", kSpecial, -1, "", "p");
+			OPCODE_MD(0x50, "actorOp_setTalkFrame", kSpecial, -2, "", "pp");
+			OPCODE_MD(0x51, "actorOp_setStandFrame", kSpecial, -1, "", "p");
+			OPCODE_MD(0x52, "actorOp_82?", kSpecial, -3, "", "ppp");
 			OPCODE(0x53, "actorOp_init", kSpecial, 0, "");
-			OPCODE(0x54, "actorOp_setElevation", kSpecial, -1, "");
+			OPCODE_MD(0x54, "actorOp_setElevation", kSpecial, -1, "", "p");
 			OPCODE(0x55, "actorOp_setDefAnim", kSpecial, 0, "");
-			OPCODE(0x56, "actorOp_setPalette", kSpecial, -2, "");
-			OPCODE(0x57, "actorOp_setTalkColor", kSpecial, -1, "");
-			OPCODE(0x58, "actorOp_setName", kSpecial, 0, "c");
-			OPCODE(0x59, "actorOp_setInitFrame", kSpecial, -1, "");
-			OPCODE(0x5B, "actorOp_setWidth", kSpecial, -1, "");
-			OPCODE(0x5C, "actorOp_setScale", kSpecial, -1, "");
+			OPCODE_MD(0x56, "actorOp_setPalette", kSpecial, -2, "", "pp");
+			OPCODE_MD(0x57, "actorOp_setTalkColor", kSpecial, -1, "", "p");
+			OPCODE_MD(0x58, "actorOp_setName", kSpecial, 0, "c", "s");
+			OPCODE_MD(0x59, "actorOp_setInitFrame", kSpecial, -1, "", "p");
+			OPCODE_MD(0x5B, "actorOp_setWidth", kSpecial, -1, "", "p");
+			OPCODE_MD(0x5C, "actorOp_setScale", kSpecial, -1, "", "p");
 			OPCODE(0x5D, "actorOp_setNeverZClip", kSpecial, 0, "");
-			OPCODE(0x5E, "actorOp_setAlwaysZClip", kSpecial, -1, "");
+			OPCODE_MD(0x5E, "actorOp_setAlwaysZClip", kSpecial, -1, "", "p");
 			OPCODE(0x5F, "actorOp_setIgnoreBoxes", kSpecial, 0, "");
 			OPCODE(0x60, "actorOp_setFollowBoxes", kSpecial, 0, "");
-			OPCODE(0x61, "actorOp_setAnimSpeed", kSpecial, -1, "");
-			OPCODE(0x62, "actorOp_setShadowMode", kSpecial, -1, "");
-			OPCODE(0x63, "actorOp_setTalkPos", kSpecial, -2, "");
-			OPCODE(0xC5, "actorOp_setCurActor", kSpecial, -1, "");
-			OPCODE(0xC6, "actorOp_setAnimVar", kSpecial, -2, "");
+			OPCODE_MD(0x61, "actorOp_setAnimSpeed", kSpecial, -1, "", "p");
+			OPCODE_MD(0x62, "actorOp_setShadowMode", kSpecial, -1, "", "p");
+			OPCODE_MD(0x63, "actorOp_setTalkPos", kSpecial, -2, "", "pp");
+			OPCODE_MD(0xC5, "actorOp_setCurActor", kSpecial, -1, "", "p");
+			OPCODE_MD(0xC6, "actorOp_setAnimVar", kSpecial, -2, "", "pp");
 			OPCODE(0xD7, "actorOp_setIgnoreTurnsOn", kSpecial, 0, "");
 			OPCODE(0xD8, "actorOp_setIgnoreTurnsOff", kSpecial, 0, "");
 			OPCODE(0xD9, "actorOp_initLittle", kSpecial, 0, "");
-			OPCODE(0xE1, "actorOp_setAlwaysZClip?", kSpecial, -1, "");
-			OPCODE(0xE3, "actorOp_setLayer", kSpecial, -1, "");
-			OPCODE(0xE4, "actorOp_setWalkScript", kSpecial, -1, "");
+			OPCODE_MD(0xE1, "actorOp_setAlwaysZClip?", kSpecial, -1, "", "p");
+			OPCODE_MD(0xE3, "actorOp_setLayer", kSpecial, -1, "", "p");
+			OPCODE_MD(0xE4, "actorOp_setWalkScript", kSpecial, -1, "", "p");
 			OPCODE(0xE5, "actorOp_setStanding", kSpecial, 0, "");
-			OPCODE(0xE6, "actorOp_setDirection", kSpecial, -1, "");
-			OPCODE(0xE7, "actorOp_turnToDirection", kSpecial, -1, "");
+			OPCODE_MD(0xE6, "actorOp_setDirection", kSpecial, -1, "", "p");
+			OPCODE_MD(0xE7, "actorOp_turnToDirection", kSpecial, -1, "", "p");
 			OPCODE(0xE9, "actorOp_freeze", kSpecial, 0, "");
 			OPCODE(0xEA, "actorOp_unfreeze", kSpecial, 0, "");
-			OPCODE(0xEB, "actorOp_setTalkScript", kSpecial, -1, "");
+			OPCODE_MD(0xEB, "actorOp_setTalkScript", kSpecial, -1, "", "p");
 		END_SUBOPCODE;
 		START_SUBOPCODE(0x9E); // verbOps
-			OPCODE(0x7C, "verbOp_loadImg", kSpecial, -1, "");
-			OPCODE(0x7D, "verbOp_loadString", kSpecial, 0, "c");
-			OPCODE(0x7E, "verbOp_setColor", kSpecial, -1, "");
-			OPCODE(0x7F, "verbOp_setHiColor", kSpecial, -1, "");
-			OPCODE(0x80, "verbOp_setXY", kSpecial, -2, "");
+			OPCODE_MD(0x7C, "verbOp_loadImg", kSpecial, -1, "", "p");
+			OPCODE_MD(0x7D, "verbOp_loadString", kSpecial, 0, "c", "s");
+			OPCODE_MD(0x7E, "verbOp_setColor", kSpecial, -1, "", "p");
+			OPCODE_MD(0x7F, "verbOp_setHiColor", kSpecial, -1, "", "p");
+			OPCODE_MD(0x80, "verbOp_setXY", kSpecial, -2, "", "pp");
 			OPCODE(0x81, "verbOp_setOn", kSpecial, 0, "");
 			OPCODE(0x82, "verbOp_setOff", kSpecial, 0, "");
 			OPCODE(0x83, "verbOp_kill", kSpecial, 0, "");
 			OPCODE(0x84, "verbOp_init", kSpecial, 0, "");
-			OPCODE(0x85, "verbOp_setDimColor", kSpecial, -1, "");
+			OPCODE_MD(0x85, "verbOp_setDimColor", kSpecial, -1, "", "p");
 			OPCODE(0x86, "verbOp_setDimmed", kSpecial, 0, "");
-			OPCODE(0x87, "verbOp_setKey", kSpecial, -1, "");
+			OPCODE_MD(0x87, "verbOp_setKey", kSpecial, -1, "", "p");
 			OPCODE(0x88, "verbOp_setCenter", kSpecial, 0, "");
-			OPCODE(0x89, "verbOp_setToString", kSpecial, -1, "");
-			OPCODE(0x8B, "verbOp_setToObject", kSpecial, -2, "");
-			OPCODE(0x8C, "verbOp_setBkColor", kSpecial, -1, "");
-			OPCODE(0xC4, "verbOp_setCurVerb", kSpecial, -1, "");
+			OPCODE_MD(0x89, "verbOp_setToString", kSpecial, -1, "", "p");
+			OPCODE_MD(0x8B, "verbOp_setToObject", kSpecial, -2, "", "pp");
+			OPCODE_MD(0x8C, "verbOp_setBkColor", kSpecial, -1, "", "p");
+			OPCODE_MD(0xC4, "verbOp_setCurVerb", kSpecial, -1, "", "p");
 			OPCODE(0xFF, "verbOp_redraw", kSpecial, 0, "");
 		END_SUBOPCODE;
-		OPCODE(0x9F, "getActorFromXY", kSpecial, -1, "");
-		OPCODE(0xA0, "findObject", kSpecial, -1, "");
-		OPCODE(0xA1, "pseudoRoom", kSpecial, 0x1010, ""); // Variable stack arguments
-		OPCODE(0xA2, "getActorElevation", kSpecial, 0, "");
-		OPCODE(0xA3, "getVerbEntrypoint", kSpecial, -1, "");
+		OPCODE_MD(0x9F, "getActorFromXY", kSpecial, -1, "", "rpp");
+		OPCODE_MD(0xA0, "findObject", kSpecial, -1, "", "rpp");
+		OPCODE_MD(0xA1, "pseudoRoom", kSpecial, 0x1010, "", "lp"); // Variable stack arguments
+		OPCODE_MD(0xA2, "getActorElevation", kSpecial, 0, "", "rp");
+		OPCODE_MD(0xA3, "getVerbEntrypoint", kSpecial, -1, "", "rpp");
 		START_SUBOPCODE(0xA4); // arrayOps
-			OPCODE(0xCD, "arrayOp_assignString", kSpecial, -1, "wc");
-			OPCODE(0xD0, "arrayOp_assignIntList", kSpecial, 0x1100, "w"); // Variable stack arguments
-			OPCODE(0xD4, "arrayOp_assign2DimList", kSpecial, 0x1100, "w"); // Variable stack arguments
+			OPCODE_MD(0xCD, "arrayOp_assignString", kSpecial, -1, "wc", "\xC0");
+			OPCODE_MD(0xD0, "arrayOp_assignIntList", kSpecial, 0x1100, "w", "\xC0"); // Variable stack arguments
+			OPCODE_MD(0xD4, "arrayOp_assign2DimList", kSpecial, 0x1100, "w", "\xC0"); // Variable stack arguments
 		END_SUBOPCODE;
 		START_SUBOPCODE(0xA5); // saveRestoreVerbs
-			OPCODE(0x8D, "srVerb_saveVerbs", kSpecial, -3, "");
-			OPCODE(0x8E, "srVerb_restoreVerbs", kSpecial, -3, "");
-			OPCODE(0x8F, "srVerb_deleteVerbs", kSpecial, -3, "");
+			OPCODE_MD(0x8D, "srVerb_saveVerbs", kSpecial, -3, "", "ppp");
+			OPCODE_MD(0x8E, "srVerb_restoreVerbs", kSpecial, -3, "", "ppp");
+			OPCODE_MD(0x8F, "srVerb_deleteVerbs", kSpecial, -3, "", "ppp");
 		END_SUBOPCODE;
-		OPCODE(0xA6, "drawBox", kSpecial, -5, "");
+		OPCODE_MD(0xA6, "drawBox", kSpecial, -5, "", "ppppp");
 		OPCODE(0xA7, "pop", kStack, -1, "");
-		OPCODE(0xA8, "getActorWidth", kSpecial, 0, "");
+		OPCODE_MD(0xA8, "getActorWidth", kSpecial, 0, "", "rp");
 		START_SUBOPCODE(0xA9); // wait
-			OPCODE(0xA8, "waitForActor", kSpecial, -1, "s");
+			OPCODE_MD(0xA8, "waitForActor", kSpecial, -1, "s", "pj");
 			OPCODE(0xA9, "waitForMessage", kSpecial, 0, "");
 			OPCODE(0xAA, "waitForCamera", kSpecial, 0, "");
 			OPCODE(0xAB, "waitForSentence", kSpecial, 0, "");
-			OPCODE(0xE2, "waitUntilActorDrawn", kSpecial, -1, "s");
-			OPCODE(0xE8, "waitUntilActorTurned", kSpecial, -1, "s");
+			OPCODE_MD(0xE2, "waitUntilActorDrawn", kSpecial, -1, "s", "pj");
+			OPCODE_MD(0xE8, "waitUntilActorTurned", kSpecial, -1, "s", "pj");
 		END_SUBOPCODE;
-		OPCODE(0xAA, "getActorScaleX", kSpecial, 0, "");
-		OPCODE(0xAB, "getActorAnimCounter", kSpecial, 0, "");
-		OPCODE(0xAC, "soundKludge", kSpecial, 0x1000, ""); // Variable stack arguments
-		OPCODE(0xAD, "isAnyOf", kSpecial, 0x1011, ""); // Variable stack arguments
+		OPCODE_MD(0xAA, "getActorScaleX", kSpecial, 0, "", "rp");
+		OPCODE_MD(0xAB, "getActorAnimCounter", kSpecial, 0, "", "rp");
+		OPCODE_MD(0xAC, "soundKludge", kSpecial, 0x1000, "", "l"); // Variable stack arguments
+		OPCODE_MD(0xAD, "isAnyOf", kSpecial, 0x1011, "", "rlp"); // Variable stack arguments
 		START_SUBOPCODE(0xAE); // systemOps
 			OPCODE(0x9E, "systemOp_restartGame", kSpecial, 0, "");
 			OPCODE(0x9F, "systemOp_pauseGame", kSpecial, 0, "");
 			OPCODE(0xA0, "systemOp_shutDown", kSpecial, 0, "");
 		END_SUBOPCODE;
-		OPCODE(0xAF, "isActorInBox", kSpecial, -1, "");
-		OPCODE(0xB0, "delay", kSpecial, -1, "");
-		OPCODE(0xB1, "delaySeconds", kSpecial, -1, "");
-		OPCODE(0xB2, "delayMinutes", kSpecial, -1, "");
+		OPCODE_MD(0xAF, "isActorInBox", kSpecial, -1, "", "rpp");
+		OPCODE_MD(0xB0, "delay", kSpecial, -1, "", "p");
+		OPCODE_MD(0xB1, "delaySeconds", kSpecial, -1, "", "p");
+		OPCODE_MD(0xB2, "delayMinutes", kSpecial, -1, "", "p");
 		OPCODE(0xB3, "stopSentence", kSpecial, 0, "");
 		START_SUBOPCODE(0xB4); // printLine
-			OPCODE(0x41, "printLineXY", kSpecial, -2, "");
-			OPCODE(0x42, "printLineColor", kSpecial, -1, "");
-			OPCODE(0x43, "printLineRight", kSpecial, -1, "");
+			OPCODE_MD(0x41, "printLineXY", kSpecial, -2, "", "pp");
+			OPCODE_MD(0x42, "printLineColor", kSpecial, -1, "", "p");
+			OPCODE_MD(0x43, "printLineRight", kSpecial, -1, "", "p");
 			OPCODE(0x45, "printLineCenter", kSpecial, 0, "");
 			OPCODE(0x47, "printLineLeft", kSpecial, 0, "");
 			OPCODE(0x48, "printLineOverhead", kSpecial, 0, "");
 			OPCODE(0x4A, "printLineMumble", kSpecial, 0, "");
-			OPCODE(0x4B, "printLineMsg", kSpecial, 0, "c");
+			OPCODE_MD(0x4B, "printLineMsg", kSpecial, 0, "c", "s");
 			OPCODE(0xFE, "printLineBegin", kSpecial, 0, "");
 			OPCODE(0xFF, "printLineEnd", kSpecial, 0, "");
 		END_SUBOPCODE;
 		START_SUBOPCODE(0xB5); // printText
-			OPCODE(0x41, "printTextXY", kSpecial, -2, "");
-			OPCODE(0x42, "printTextColor", kSpecial, -1, "");
-			OPCODE(0x43, "printTextRight", kSpecial, -1, "");
+			OPCODE_MD(0x41, "printTextXY", kSpecial, -2, "", "pp");
+			OPCODE_MD(0x42, "printTextColor", kSpecial, -1, "", "p");
+			OPCODE_MD(0x43, "printTextRight", kSpecial, -1, "", "p");
 			OPCODE(0x45, "printTextCenter", kSpecial, 0, "");
 			OPCODE(0x47, "printTextLeft", kSpecial, 0, "");
 			OPCODE(0x48, "printTextOverhead", kSpecial, 0, "");
 			OPCODE(0x4A, "printTextMumble", kSpecial, 0, "");
-			OPCODE(0x4B, "printTextMsg", kSpecial, 0, "c");
+			OPCODE_MD(0x4B, "printTextMsg", kSpecial, 0, "c", "s");
 			OPCODE(0xFE, "printTextBegin", kSpecial, 0, "");
 			OPCODE(0xFF, "printTextEnd", kSpecial, 0, "");
 		END_SUBOPCODE;
 		START_SUBOPCODE(0xB6); // printDebug
-			OPCODE(0x41, "printDebugXY", kSpecial, -2, "");
-			OPCODE(0x42, "printDebugColor", kSpecial, -1, "");
-			OPCODE(0x43, "printDebugRight", kSpecial, -1, "");
+			OPCODE_MD(0x41, "printDebugXY", kSpecial, -2, "", "pp");
+			OPCODE_MD(0x42, "printDebugColor", kSpecial, -1, "", "p");
+			OPCODE_MD(0x43, "printDebugRight", kSpecial, -1, "", "p");
 			OPCODE(0x45, "printDebugCenter", kSpecial, 0, "");
 			OPCODE(0x47, "printDebugLeft", kSpecial, 0, "");
 			OPCODE(0x48, "printDebugOverhead", kSpecial, 0, "");
 			OPCODE(0x4A, "printDebugMumble", kSpecial, 0, "");
-			OPCODE(0x4B, "printDebugMsg", kSpecial, 0, "c");
+			OPCODE_MD(0x4B, "printDebugMsg", kSpecial, 0, "c", "s");
 			OPCODE(0xFE, "printDebugBegin", kSpecial, 0, "");
 			OPCODE(0xFF, "printDebugEnd", kSpecial, 0, "");
 		END_SUBOPCODE;
 		START_SUBOPCODE(0xB7); // printSystem
-			OPCODE(0x41, "printSystemXY", kSpecial, -2, "");
-			OPCODE(0x42, "printSystemColor", kSpecial, -1, "");
-			OPCODE(0x43, "printSystemRight", kSpecial, -1, "");
+			OPCODE_MD(0x41, "printSystemXY", kSpecial, -2, "", "pp");
+			OPCODE_MD(0x42, "printSystemColor", kSpecial, -1, "", "p");
+			OPCODE_MD(0x43, "printSystemRight", kSpecial, -1, "", "p");
 			OPCODE(0x45, "printSystemCenter", kSpecial, 0, "");
 			OPCODE(0x47, "printSystemLeft", kSpecial, 0, "");
 			OPCODE(0x48, "printSystemOverhead", kSpecial, 0, "");
 			OPCODE(0x4A, "printSystemMumble", kSpecial, 0, "");
-			OPCODE(0x4B, "printSystemMsg", kSpecial, 0, "c");
+			OPCODE_MD(0x4B, "printSystemMsg", kSpecial, 0, "c", "s");
 			OPCODE(0xFE, "printSystemBegin", kSpecial, 0, "");
 			OPCODE(0xFF, "printSystemEnd", kSpecial, 0, "");
 		END_SUBOPCODE;
 		START_SUBOPCODE(0xB8); // printActor
-			OPCODE(0x41, "printActorXY", kSpecial, -2, "");
-			OPCODE(0x42, "printActorColor", kSpecial, -1, "");
-			OPCODE(0x43, "printActorRight", kSpecial, -1, "");
+			OPCODE_MD(0x41, "printActorXY", kSpecial, -2, "", "pp");
+			OPCODE_MD(0x42, "printActorColor", kSpecial, -1, "", "p");
+			OPCODE_MD(0x43, "printActorRight", kSpecial, -1, "", "p");
 			OPCODE(0x45, "printActorCenter", kSpecial, 0, "");
 			OPCODE(0x47, "printActorLeft", kSpecial, 0, "");
 			OPCODE(0x48, "printActorOverhead", kSpecial, 0, "");
 			OPCODE(0x4A, "printActorMumble", kSpecial, 0, "");
-			OPCODE(0x4B, "printActorMsg", kSpecial, 0, "c");
-			OPCODE(0xFE, "printActorBegin", kSpecial, -1, "");
+			OPCODE_MD(0x4B, "printActorMsg", kSpecial, 0, "c", "s");
+			OPCODE_MD(0xFE, "printActorBegin", kSpecial, -1, "", "p");
 			OPCODE(0xFF, "printActorEnd", kSpecial, 0, "");
 		END_SUBOPCODE;
 		START_SUBOPCODE(0xB9); // printEgo
-			OPCODE(0x41, "printEgoXY", kSpecial, -2, "");
-			OPCODE(0x42, "printEgoColor", kSpecial, -1, "");
-			OPCODE(0x43, "printEgoRight", kSpecial, -1, "");
+			OPCODE_MD(0x41, "printEgoXY", kSpecial, -2, "", "pp");
+			OPCODE_MD(0x42, "printEgoColor", kSpecial, -1, "", "p");
+			OPCODE_MD(0x43, "printEgoRight", kSpecial, -1, "", "p");
 			OPCODE(0x45, "printEgoCenter", kSpecial, 0, "");
 			OPCODE(0x47, "printEgoLeft", kSpecial, 0, "");
 			OPCODE(0x48, "printEgoOverhead", kSpecial, 0, "");
 			OPCODE(0x4A, "printEgoMumble", kSpecial, 0, "");
-			OPCODE(0x4B, "printEgoMsg", kSpecial, 0, "c");
+			OPCODE_MD(0x4B, "printEgoMsg", kSpecial, 0, "c", "s");
 			OPCODE(0xFE, "printEgoBegin", kSpecial, 0, "");
 			OPCODE(0xFF, "printEgoEnd", kSpecial, 0, "");
 		END_SUBOPCODE;
-		OPCODE(0xBA, "talkActor", kSpecial, -1, "c");
-		OPCODE(0xBB, "talkEgo", kSpecial, 0, "c");
+		OPCODE_MD(0xBA, "talkActor", kSpecial, -1, "c", "ps");
+		OPCODE_MD(0xBB, "talkEgo", kSpecial, 0, "c", "s");
 		START_SUBOPCODE(0xBC); // dimArray
-			OPCODE(0xC7, "dimArrayInt", kSpecial, -1, "w");
-			OPCODE(0xC8, "dimArrayBit", kSpecial, -1, "w");
-			OPCODE(0xC9, "dimArrayNibble", kSpecial, -1, "w");
-			OPCODE(0xCA, "dimArrayByte", kSpecial, -1, "w");
-			OPCODE(0xCB, "dimArrayString", kSpecial, -1, "w");
-			OPCODE(0xCC, "dimArray_nukeArray", kSpecial, 0, "w");
+			OPCODE_MD(0xC7, "dimArrayInt", kSpecial, -1, "w", "pv");
+			OPCODE_MD(0xC8, "dimArrayBit", kSpecial, -1, "w", "pv");
+			OPCODE_MD(0xC9, "dimArrayNibble", kSpecial, -1, "w", "pv");
+			OPCODE_MD(0xCA, "dimArrayByte", kSpecial, -1, "w", "pv");
+			OPCODE_MD(0xCB, "dimArrayString", kSpecial, -1, "w", "pv");
+			OPCODE_MD(0xCC, "dimArray_nukeArray", kSpecial, 0, "w", "v");
 		END_SUBOPCODE;
-		OPCODE(0xBE, "startObjectQuick", kSpecial, 0x1020, ""); // Variable stack arguments
-		OPCODE(0xBF, "startScriptQuick2", kSpecial, 0x1010, ""); // Variable stack arguments
+		OPCODE_MD(0xBE, "startObjectQuick", kSpecial, 0x1020, "", "lpp"); // Variable stack arguments
+		OPCODE_MD(0xBF, "startScriptQuick2", kSpecial, 0x1010, "", "lp"); // Variable stack arguments
 		START_SUBOPCODE(0xC0); // dim2DimArray
-			OPCODE(0xC7, "dim2DimArrayInt", kSpecial, -2, "w");
-			OPCODE(0xC8, "dim2DimArrayBit", kSpecial, -2, "w");
-			OPCODE(0xC9, "dim2DimArrayNibble", kSpecial, -2, "w");
-			OPCODE(0xCA, "dim2DimArrayByte", kSpecial, -2, "w");
-			OPCODE(0xCB, "dim2DimArrayString", kSpecial, -2, "w");
+			OPCODE_MD(0xC7, "dim2DimArrayInt", kSpecial, -2, "w", "ppv");
+			OPCODE_MD(0xC8, "dim2DimArrayBit", kSpecial, -2, "w", "ppv");
+			OPCODE_MD(0xC9, "dim2DimArrayNibble", kSpecial, -2, "w", "ppv");
+			OPCODE_MD(0xCA, "dim2DimArrayByte", kSpecial, -2, "w", "ppv");
+			OPCODE_MD(0xCB, "dim2DimArrayString", kSpecial, -2, "w", "ppv");
 		END_SUBOPCODE;
-		OPCODE(0xC4, "abs", kSpecial, 0, "");
-		OPCODE(0xC5, "getDistObjObj", kSpecial, -1, "");
-		OPCODE(0xC6, "getDistObjPt", kSpecial, -2, "");
-		OPCODE(0xC7, "getDistPtPt", kSpecial, -3, "");
-		OPCODE(0xC8, "kernelGetFunctions", kSpecial, -255, ""); // Variable stack arguments
-		OPCODE(0xC9, "kernelSetFunctions", kSpecial, -255, ""); // Variable stack arguments
-		OPCODE(0xCA, "delayFrames", kSpecial, -1, "");
-		OPCODE(0xCB, "pickOneOf", kSpecial, 0x1011, ""); // Variable stack arguments
-		OPCODE(0xCC, "pickOneOfDefault", kSpecial, 0x111, ""); // Variable stack arguments
-		OPCODE(0xCD, "stampObject", kSpecial, -4, "");
+		OPCODE_MD(0xC4, "abs", kSpecial, 0, "", "rp");
+		OPCODE_MD(0xC5, "getDistObjObj", kSpecial, -1, "", "rpp");
+		OPCODE_MD(0xC6, "getDistObjPt", kSpecial, -2, "", "rppp");
+		OPCODE_MD(0xC7, "getDistPtPt", kSpecial, -3, "", "rpppp");
+		OPCODE_MD(0xC8, "kernelGetFunctions", kSpecial, -255, "", "l"); // Variable stack arguments
+		OPCODE_MD(0xC9, "kernelSetFunctions", kSpecial, -255, "", "l"); // Variable stack arguments
+		OPCODE_MD(0xCA, "delayFrames", kSpecial, -1, "", "p");
+		OPCODE_MD(0xCB, "pickOneOf", kSpecial, 0x1011, "", "rlp"); // Variable stack arguments
+		OPCODE_MD(0xCC, "pickOneOfDefault", kSpecial, 0x111, "", "rplp"); // Variable stack arguments
+		OPCODE_MD(0xCD, "stampObject", kSpecial, -4, "", "pppp");
 		OPCODE(0xD0, "getDateTime", kSpecial, 0, "");
 		OPCODE(0xD1, "stopTalking", kSpecial, 0, "");
-		OPCODE(0xD2, "getAnimateVariable", kSpecial, -1, "");
-		OPCODE(0xD4, "shuffle", kSpecial, -2, "w");
-		OPCODE(0xD5, "jumpToScript", kSpecial, 0x1020, ""); // Variable stack arguments
+		OPCODE_MD(0xD2, "getAnimateVariable", kSpecial, -1, "", "rpp");
+		OPCODE_MD(0xD4, "shuffle", kSpecial, -2, "w", "vpp");
+		OPCODE_MD(0xD5, "jumpToScript", kSpecial, 0x1020, "", "lpp"); // Variable stack arguments
 		OPCODE_MD(0xD6, "band", kBinaryOp, -1, "", "&");
 		OPCODE_MD(0xD7, "bor", kBinaryOp, -1, "", "|");
-		OPCODE(0xD8, "isRoomScriptRunning", kSpecial, 0, "");
-		OPCODE(0xDD, "findAllObjects", kSpecial, 0, "");
-		OPCODE(0xE1, "getPixel", kSpecial, -1, "");
-		OPCODE(0xE3, "pickVarRandom", kSpecial, 0x1001, "w"); // Variable stack arguments
-		OPCODE(0xE4, "setBoxSet", kSpecial, -1, "");
-		OPCODE(0xEC, "getActorLayer", kSpecial, 0, "");
-		OPCODE(0xED, "getObjectNewDir", kSpecial, 0, "");
+		OPCODE_MD(0xD8, "isRoomScriptRunning", kSpecial, 0, "", "rp");
+		OPCODE_MD(0xDD, "findAllObjects", kSpecial, 0, "", "rp");
+		OPCODE_MD(0xE1, "getPixel", kSpecial, -1, "", "rpp");
+		OPCODE_MD(0xE3, "pickVarRandom", kSpecial, 0x1001, "w", "rlw"); // Variable stack arguments
+		OPCODE_MD(0xE4, "setBoxSet", kSpecial, -1, "", "p");
+		OPCODE_MD(0xEC, "getActorLayer", kSpecial, 0, "", "rp");
+		OPCODE_MD(0xED, "getObjectNewDir", kSpecial, 0, "", "rp");
 	END_OPCODES;
 
 	InstIterator it;


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list