diff options
Diffstat (limited to 'scumm/script_v2.cpp')
-rw-r--r-- | scumm/script_v2.cpp | 843 |
1 files changed, 261 insertions, 582 deletions
diff --git a/scumm/script_v2.cpp b/scumm/script_v2.cpp index 0a02f51a02..cffb9aade6 100644 --- a/scumm/script_v2.cpp +++ b/scumm/script_v2.cpp @@ -33,656 +33,335 @@ #include "dialogs.h" // FIXME: This is just for the FT-INSANE warning. // Remove when INSANE is implemented + +#define OPCODE(x) { &Scumm::x, #x } + void Scumm::setupOpcodes2() { - static const OpcodeProc opcode_list[256] = { - /* 00 */ - &Scumm::o6_pushByte, - &Scumm::o6_pushWord, - &Scumm::o6_pushByteVar, - &Scumm::o6_pushWordVar, - /* 04 */ - &Scumm::o6_invalid, - &Scumm::o6_invalid, - &Scumm::o6_byteArrayRead, - &Scumm::o6_wordArrayRead, - /* 08 */ - &Scumm::o6_invalid, - &Scumm::o6_invalid, - &Scumm::o6_byteArrayIndexedRead, - &Scumm::o6_wordArrayIndexedRead, - /* 0C */ - &Scumm::o6_dup, - &Scumm::o6_zero, - &Scumm::o6_eq, - &Scumm::o6_neq, - /* 10 */ - &Scumm::o6_gt, - &Scumm::o6_lt, - &Scumm::o6_le, - &Scumm::o6_ge, - /* 14 */ - &Scumm::o6_add, - &Scumm::o6_sub, - &Scumm::o6_mul, - &Scumm::o6_div, - /* 18 */ - &Scumm::o6_land, - &Scumm::o6_lor, - &Scumm::o6_kill, - &Scumm::o6_invalid, - /* 1C */ - &Scumm::o6_invalid, - &Scumm::o6_invalid, - &Scumm::o6_invalid, - &Scumm::o6_invalid, - /* 20 */ - &Scumm::o6_invalid, - &Scumm::o6_invalid, - &Scumm::o6_invalid, - &Scumm::o6_invalid, - /* 24 */ - &Scumm::o6_invalid, - &Scumm::o6_invalid, - &Scumm::o6_invalid, - &Scumm::o6_invalid, - /* 28 */ - &Scumm::o6_invalid, - &Scumm::o6_invalid, - &Scumm::o6_invalid, - &Scumm::o6_invalid, - /* 2C */ - &Scumm::o6_invalid, - &Scumm::o6_invalid, - &Scumm::o6_invalid, - &Scumm::o6_invalid, - /* 30 */ - &Scumm::o6_invalid, - &Scumm::o6_invalid, - &Scumm::o6_invalid, - &Scumm::o6_invalid, - /* 34 */ - &Scumm::o6_invalid, - &Scumm::o6_invalid, - &Scumm::o6_invalid, - &Scumm::o6_invalid, - /* 38 */ - &Scumm::o6_invalid, - &Scumm::o6_invalid, - &Scumm::o6_invalid, - &Scumm::o6_invalid, - /* 3C */ - &Scumm::o6_invalid, - &Scumm::o6_invalid, - &Scumm::o6_invalid, - &Scumm::o6_invalid, - /* 40 */ - &Scumm::o6_invalid, - &Scumm::o6_invalid, - &Scumm::o6_writeByteVar, - &Scumm::o6_writeWordVar, - /* 44 */ - &Scumm::o6_invalid, - &Scumm::o6_invalid, - &Scumm::o6_byteArrayWrite, - &Scumm::o6_wordArrayWrite, - /* 48 */ - &Scumm::o6_invalid, - &Scumm::o6_invalid, - &Scumm::o6_byteArrayIndexedWrite, - &Scumm::o6_wordArrayIndexedWrite, - /* 4C */ - &Scumm::o6_invalid, - &Scumm::o6_invalid, - &Scumm::o6_byteVarInc, - &Scumm::o6_wordVarInc, - /* 50 */ - &Scumm::o6_invalid, - &Scumm::o6_invalid, - &Scumm::o6_byteArrayInc, - &Scumm::o6_wordArrayInc, - /* 54 */ - &Scumm::o6_invalid, - &Scumm::o6_invalid, - &Scumm::o6_byteVarDec, - &Scumm::o6_wordVarDec, - /* 58 */ - &Scumm::o6_invalid, - &Scumm::o6_invalid, - &Scumm::o6_byteArrayDec, - &Scumm::o6_wordArrayDec, - /* 5C */ - &Scumm::o6_jumpTrue, - &Scumm::o6_jumpFalse, - &Scumm::o6_startScriptEx, - &Scumm::o6_startScript, - /* 60 */ - &Scumm::o6_startObject, - &Scumm::o6_setObjectState, - &Scumm::o6_setObjectXY, - &Scumm::o6_drawBlastObject, - /* 64 */ - &Scumm::o6_setBlastObjectWindow, - &Scumm::o6_stopObjectCode, - &Scumm::o6_stopObjectCode, - &Scumm::o6_endCutscene, - /* 68 */ - &Scumm::o6_cutScene, - &Scumm::o6_stopMusic, - &Scumm::o6_freezeUnfreeze, - &Scumm::o6_cursorCommand, - /* 6C */ - &Scumm::o6_breakHere, - &Scumm::o6_ifClassOfIs, - &Scumm::o6_setClass, - &Scumm::o6_getState, - /* 70 */ - &Scumm::o6_setState, - &Scumm::o6_setOwner, - &Scumm::o6_getOwner, - &Scumm::o6_jump, - /* 74 */ - &Scumm::o6_startSound, - &Scumm::o6_stopSound, - &Scumm::o6_startMusic, - &Scumm::o6_stopObjectScript, - /* 78 */ - &Scumm::o6_panCameraTo, - &Scumm::o6_actorFollowCamera, - &Scumm::o6_setCameraAt, - &Scumm::o6_loadRoom, - /* 7C */ - &Scumm::o6_stopScript, - &Scumm::o6_walkActorToObj, - &Scumm::o6_walkActorTo, - &Scumm::o6_putActorInRoom, - /* 80 */ - &Scumm::o6_putActorAtObject, - &Scumm::o6_faceActor, - &Scumm::o6_animateActor, - &Scumm::o6_doSentence, - /* 84 */ - &Scumm::o6_pickupObject, - &Scumm::o6_loadRoomWithEgo, - &Scumm::o6_invalid, - &Scumm::o6_getRandomNumber, - /* 88 */ - &Scumm::o6_getRandomNumberRange, - &Scumm::o6_invalid, - &Scumm::o6_getActorMoving, - &Scumm::o6_getScriptRunning, - /* 8C */ - &Scumm::o6_getActorRoom, - &Scumm::o6_getObjectX, - &Scumm::o6_getObjectY, - &Scumm::o6_getObjectOldDir, - /* 90 */ - &Scumm::o6_getActorWalkBox, - &Scumm::o6_getActorCostume, - &Scumm::o6_findInventory, - &Scumm::o6_getInventoryCount, - /* 94 */ - &Scumm::o6_getVerbFromXY, - &Scumm::o6_beginOverride, - &Scumm::o6_endOverride, - &Scumm::o6_setObjectName, - /* 98 */ - &Scumm::o6_isSoundRunning, - &Scumm::o6_setBoxFlags, - &Scumm::o6_createBoxMatrix, - &Scumm::o6_resourceRoutines, - /* 9C */ - &Scumm::o6_roomOps, - &Scumm::o6_actorSet, - &Scumm::o6_verbOps, - &Scumm::o6_getActorFromXY, - /* A0 */ - &Scumm::o6_findObject, - &Scumm::o6_pseudoRoom, - &Scumm::o6_getActorElevation, - &Scumm::o6_getVerbEntrypoint, - /* A4 */ - &Scumm::o6_arrayOps, - &Scumm::o6_saveRestoreVerbs, - &Scumm::o6_drawBox, - &Scumm::o6_invalid, - /* A8 */ - &Scumm::o6_getActorWidth, - &Scumm::o6_wait, - &Scumm::o6_getActorScaleX, - &Scumm::o6_getActorAnimCounter1, - /* AC */ - &Scumm::o6_soundKludge, - &Scumm::o6_isAnyOf, - &Scumm::o6_quitPauseRestart, - &Scumm::o6_isActorInBox, - /* B0 */ - &Scumm::o6_delay, - &Scumm::o6_delayLonger, - &Scumm::o6_delayVeryLong, - &Scumm::o6_stopSentence, - /* B4 */ - &Scumm::o6_print_0, - &Scumm::o6_print_1, - &Scumm::o6_print_2, - &Scumm::o6_print_3, - /* B8 */ - &Scumm::o6_printActor, - &Scumm::o6_printEgo, - &Scumm::o6_talkActor, - &Scumm::o6_talkEgo, - /* BC */ - &Scumm::o6_dim, - &Scumm::o5_dummy, - &Scumm::o6_runVerbCodeQuick, - &Scumm::o6_runScriptQuick, - /* C0 */ - &Scumm::o6_dim2, - &Scumm::o6_invalid, - &Scumm::o6_invalid, - &Scumm::o6_invalid, - /* C4 */ - &Scumm::o6_abs, - &Scumm::o6_distObjectObject, - &Scumm::o6_distObjectPt, - &Scumm::o6_distPtPt, - /* C8 */ - &Scumm::o6_kernelFunction, - &Scumm::o6_miscOps, - &Scumm::o6_delayFrames, - &Scumm::o6_pickOneOf, - /* CC */ - &Scumm::o6_pickOneOfDefault, - &Scumm::o6_unknownCD, - &Scumm::o6_invalid, - &Scumm::o6_invalid, - /* D0 */ - &Scumm::o6_invalid, - &Scumm::o6_invalid, - &Scumm::o6_getAnimateVariable, - &Scumm::o6_invalid, - /* D4 */ - &Scumm::o6_invalid, - &Scumm::o6_jumpToScript, - &Scumm::o6_band, - &Scumm::o6_bor, - /* D8 */ - &Scumm::o6_isRoomScriptRunning, - &Scumm::o6_invalid, - &Scumm::o6_invalid, - &Scumm::o6_invalid, - /* DC */ - &Scumm::o6_invalid, - &Scumm::o6_invalid, - &Scumm::o6_invalid, - &Scumm::o6_invalid, - /* E0 */ - &Scumm::o6_invalid, - &Scumm::o6_invalid, - &Scumm::o6_invalid, - &Scumm::o6_invalid, - /* E4 */ - &Scumm::o6_invalid, - &Scumm::o6_invalid, - &Scumm::o6_invalid, - &Scumm::o6_invalid, - /* E8 */ - &Scumm::o6_invalid, - &Scumm::o6_invalid, - &Scumm::o6_invalid, - &Scumm::o6_invalid, - /* EC */ - &Scumm::o6_getActorPriority, - &Scumm::o6_getObjectNewDir, - &Scumm::o6_invalid, - &Scumm::o6_invalid, - /* F0 */ - &Scumm::o6_invalid, - &Scumm::o6_invalid, - &Scumm::o6_invalid, - &Scumm::o6_invalid, - /* F4 */ - &Scumm::o6_invalid, - &Scumm::o6_invalid, - &Scumm::o6_invalid, - &Scumm::o6_invalid, - /* F8 */ - &Scumm::o6_invalid, - &Scumm::o6_invalid, - &Scumm::o6_invalid, - &Scumm::o6_invalid, - /* FC */ - &Scumm::o6_invalid, - &Scumm::o6_invalid, - &Scumm::o6_invalid, - &Scumm::o6_invalid, - }; - - static const char *opcode_lookup[] = { + static const OpcodeEntry opcodes[256] = { /* 00 */ - "o6_pushByte", - "o6_pushWord", - "o6_pushByteVar", - "o6_pushWordVar", + OPCODE(o6_pushByte), + OPCODE(o6_pushWord), + OPCODE(o6_pushByteVar), + OPCODE(o6_pushWordVar), /* 04 */ - "o6_invalid", - "o6_invalid", - "o6_byteArrayRead", - "o6_wordArrayRead", + OPCODE(o6_invalid), + OPCODE(o6_invalid), + OPCODE(o6_byteArrayRead), + OPCODE(o6_wordArrayRead), /* 08 */ - "o6_invalid", - "o6_invalid", - "o6_byteArrayIndexedRead", - "o6_wordArrayIndexedRead", + OPCODE(o6_invalid), + OPCODE(o6_invalid), + OPCODE(o6_byteArrayIndexedRead), + OPCODE(o6_wordArrayIndexedRead), /* 0C */ - "o6_dup", - "o6_zero", - "o6_eq", - "o6_neq", + OPCODE(o6_dup), + OPCODE(o6_zero), + OPCODE(o6_eq), + OPCODE(o6_neq), /* 10 */ - "o6_gt", - "o6_lt", - "o6_le", - "o6_ge", + OPCODE(o6_gt), + OPCODE(o6_lt), + OPCODE(o6_le), + OPCODE(o6_ge), /* 14 */ - "o6_add", - "o6_sub", - "o6_mul", - "o6_div", + OPCODE(o6_add), + OPCODE(o6_sub), + OPCODE(o6_mul), + OPCODE(o6_div), /* 18 */ - "o6_land", - "o6_lor", - "o6_kill", - "o6_invalid", + OPCODE(o6_land), + OPCODE(o6_lor), + OPCODE(o6_kill), + OPCODE(o6_invalid), /* 1C */ - "o6_invalid", - "o6_invalid", - "o6_invalid", - "o6_invalid", + OPCODE(o6_invalid), + OPCODE(o6_invalid), + OPCODE(o6_invalid), + OPCODE(o6_invalid), /* 20 */ - "o6_invalid", - "o6_invalid", - "o6_invalid", - "o6_invalid", + OPCODE(o6_invalid), + OPCODE(o6_invalid), + OPCODE(o6_invalid), + OPCODE(o6_invalid), /* 24 */ - "o6_invalid", - "o6_invalid", - "o6_invalid", - "o6_invalid", + OPCODE(o6_invalid), + OPCODE(o6_invalid), + OPCODE(o6_invalid), + OPCODE(o6_invalid), /* 28 */ - "o6_invalid", - "o6_invalid", - "o6_invalid", - "o6_invalid", + OPCODE(o6_invalid), + OPCODE(o6_invalid), + OPCODE(o6_invalid), + OPCODE(o6_invalid), /* 2C */ - "o6_invalid", - "o6_invalid", - "o6_invalid", - "o6_invalid", + OPCODE(o6_invalid), + OPCODE(o6_invalid), + OPCODE(o6_invalid), + OPCODE(o6_invalid), /* 30 */ - "o6_invalid", - "o6_invalid", - "o6_invalid", - "o6_invalid", + OPCODE(o6_invalid), + OPCODE(o6_invalid), + OPCODE(o6_invalid), + OPCODE(o6_invalid), /* 34 */ - "o6_invalid", - "o6_invalid", - "o6_invalid", - "o6_invalid", + OPCODE(o6_invalid), + OPCODE(o6_invalid), + OPCODE(o6_invalid), + OPCODE(o6_invalid), /* 38 */ - "o6_invalid", - "o6_invalid", - "o6_invalid", - "o6_invalid", + OPCODE(o6_invalid), + OPCODE(o6_invalid), + OPCODE(o6_invalid), + OPCODE(o6_invalid), /* 3C */ - "o6_invalid", - "o6_invalid", - "o6_invalid", - "o6_invalid", + OPCODE(o6_invalid), + OPCODE(o6_invalid), + OPCODE(o6_invalid), + OPCODE(o6_invalid), /* 40 */ - "o6_invalid", - "o6_invalid", - "o6_writeByteVar", - "o6_writeWordVar", + OPCODE(o6_invalid), + OPCODE(o6_invalid), + OPCODE(o6_writeByteVar), + OPCODE(o6_writeWordVar), /* 44 */ - "o6_invalid", - "o6_invalid", - "o6_byteArrayWrite", - "o6_wordArrayWrite", + OPCODE(o6_invalid), + OPCODE(o6_invalid), + OPCODE(o6_byteArrayWrite), + OPCODE(o6_wordArrayWrite), /* 48 */ - "o6_invalid", - "o6_invalid", - "o6_byteArrayIndexedWrite", - "o6_wordArrayIndexedWrite", + OPCODE(o6_invalid), + OPCODE(o6_invalid), + OPCODE(o6_byteArrayIndexedWrite), + OPCODE(o6_wordArrayIndexedWrite), /* 4C */ - "o6_invalid", - "o6_invalid", - "o6_byteVarInc", - "o6_wordVarInc", + OPCODE(o6_invalid), + OPCODE(o6_invalid), + OPCODE(o6_byteVarInc), + OPCODE(o6_wordVarInc), /* 50 */ - "o6_invalid", - "o6_invalid", - "o6_byteArrayInc", - "o6_wordArrayInc", + OPCODE(o6_invalid), + OPCODE(o6_invalid), + OPCODE(o6_byteArrayInc), + OPCODE(o6_wordArrayInc), /* 54 */ - "o6_invalid", - "o6_invalid", - "o6_byteVarDec", - "o6_wordVarDec", + OPCODE(o6_invalid), + OPCODE(o6_invalid), + OPCODE(o6_byteVarDec), + OPCODE(o6_wordVarDec), /* 58 */ - "o6_invalid", - "o6_invalid", - "o6_byteArrayDec", - "o6_wordArrayDec", + OPCODE(o6_invalid), + OPCODE(o6_invalid), + OPCODE(o6_byteArrayDec), + OPCODE(o6_wordArrayDec), /* 5C */ - "o6_jumpTrue", - "o6_jumpFalse", - "o6_startScriptEx", - "o6_startScript", + OPCODE(o6_jumpTrue), + OPCODE(o6_jumpFalse), + OPCODE(o6_startScriptEx), + OPCODE(o6_startScript), /* 60 */ - "o6_startObject", - "o6_setObjectState", - "o6_setObjectXY", - "o6_drawBlastObject", + OPCODE(o6_startObject), + OPCODE(o6_setObjectState), + OPCODE(o6_setObjectXY), + OPCODE(o6_drawBlastObject), /* 64 */ - "o6_invalid", - "o6_stopObjectCode", - "o6_stopObjectCode", - "o6_endCutscene", + OPCODE(o6_setBlastObjectWindow), + OPCODE(o6_stopObjectCode), + OPCODE(o6_stopObjectCode), + OPCODE(o6_endCutscene), /* 68 */ - "o6_cutScene", - "o6_stopMusic", - "o6_freezeUnfreeze", - "o6_cursorCommand", + OPCODE(o6_cutScene), + OPCODE(o6_stopMusic), + OPCODE(o6_freezeUnfreeze), + OPCODE(o6_cursorCommand), /* 6C */ - "o6_breakHere", - "o6_ifClassOfIs", - "o6_setClass", - "o6_getState", + OPCODE(o6_breakHere), + OPCODE(o6_ifClassOfIs), + OPCODE(o6_setClass), + OPCODE(o6_getState), /* 70 */ - "o6_setState", - "o6_setOwner", - "o6_getOwner", - "o6_jump", + OPCODE(o6_setState), + OPCODE(o6_setOwner), + OPCODE(o6_getOwner), + OPCODE(o6_jump), /* 74 */ - "o6_startSound", - "o6_stopSound", - "o6_startMusic", - "o6_stopObjectScript", + OPCODE(o6_startSound), + OPCODE(o6_stopSound), + OPCODE(o6_startMusic), + OPCODE(o6_stopObjectScript), /* 78 */ - "o6_panCameraTo", - "o6_actorFollowCamera", - "o6_setCameraAt", - "o6_loadRoom", + OPCODE(o6_panCameraTo), + OPCODE(o6_actorFollowCamera), + OPCODE(o6_setCameraAt), + OPCODE(o6_loadRoom), /* 7C */ - "o6_stopScript", - "o6_walkActorToObj", - "o6_walkActorTo", - "o6_putActorInRoom", + OPCODE(o6_stopScript), + OPCODE(o6_walkActorToObj), + OPCODE(o6_walkActorTo), + OPCODE(o6_putActorInRoom), /* 80 */ - "o6_putActorAtObject", - "o6_faceActor", - "o6_animateActor", - "o6_doSentence", + OPCODE(o6_putActorAtObject), + OPCODE(o6_faceActor), + OPCODE(o6_animateActor), + OPCODE(o6_doSentence), /* 84 */ - "o6_pickupObject", - "o6_loadRoomWithEgo", - "o6_invalid", - "o6_getRandomNumber", + OPCODE(o6_pickupObject), + OPCODE(o6_loadRoomWithEgo), + OPCODE(o6_invalid), + OPCODE(o6_getRandomNumber), /* 88 */ - "o6_getRandomNumberRange", - "o6_invalid", - "o6_getActorMoving", - "o6_getScriptRunning", + OPCODE(o6_getRandomNumberRange), + OPCODE(o6_invalid), + OPCODE(o6_getActorMoving), + OPCODE(o6_getScriptRunning), /* 8C */ - "o6_getActorRoom", - "o6_getObjectX", - "o6_getObjectY", - "o6_getObjectOldDir", + OPCODE(o6_getActorRoom), + OPCODE(o6_getObjectX), + OPCODE(o6_getObjectY), + OPCODE(o6_getObjectOldDir), /* 90 */ - "o6_getActorWalkBox", - "o6_getActorCostume", - "o6_findInventory", - "o6_getInventoryCount", + OPCODE(o6_getActorWalkBox), + OPCODE(o6_getActorCostume), + OPCODE(o6_findInventory), + OPCODE(o6_getInventoryCount), /* 94 */ - "o6_getVerbFromXY", - "o6_beginOverride", - "o6_endOverride", - "o6_setObjectName", + OPCODE(o6_getVerbFromXY), + OPCODE(o6_beginOverride), + OPCODE(o6_endOverride), + OPCODE(o6_setObjectName), /* 98 */ - "o6_isSoundRunning", - "o6_setBoxFlags", - "o6_createBoxMatrix", - "o6_resourceRoutines", + OPCODE(o6_isSoundRunning), + OPCODE(o6_setBoxFlags), + OPCODE(o6_createBoxMatrix), + OPCODE(o6_resourceRoutines), /* 9C */ - "o6_roomOps", - "o6_actorSet", - "o6_verbOps", - "o6_getActorFromXY", + OPCODE(o6_roomOps), + OPCODE(o6_actorSet), + OPCODE(o6_verbOps), + OPCODE(o6_getActorFromXY), /* A0 */ - "o6_findObject", - "o6_pseudoRoom", - "o6_getActorElevation", - "o6_getVerbEntrypoint", + OPCODE(o6_findObject), + OPCODE(o6_pseudoRoom), + OPCODE(o6_getActorElevation), + OPCODE(o6_getVerbEntrypoint), /* A4 */ - "o6_arrayOps", - "o6_saveRestoreVerbs", - "o6_drawBox", - "o6_invalid", + OPCODE(o6_arrayOps), + OPCODE(o6_saveRestoreVerbs), + OPCODE(o6_drawBox), + OPCODE(o6_invalid), /* A8 */ - "o6_getActorWidth", - "o6_wait", - "o6_getActorScaleX", - "o6_getActorAnimCounter1", + OPCODE(o6_getActorWidth), + OPCODE(o6_wait), + OPCODE(o6_getActorScaleX), + OPCODE(o6_getActorAnimCounter1), /* AC */ - "o6_soundKludge", - "o6_isAnyOf", - "o6_quitPauseRestart", - "o6_isActorInBox", + OPCODE(o6_soundKludge), + OPCODE(o6_isAnyOf), + OPCODE(o6_quitPauseRestart), + OPCODE(o6_isActorInBox), /* B0 */ - "o6_delay", - "o6_delayLonger", - "o6_delayVeryLong", - "o6_stopSentence", + OPCODE(o6_delay), + OPCODE(o6_delayLonger), + OPCODE(o6_delayVeryLong), + OPCODE(o6_stopSentence), /* B4 */ - "o6_print_0", - "o6_print_1", - "o6_print_2", - "o6_print_3", + OPCODE(o6_print_0), + OPCODE(o6_print_1), + OPCODE(o6_print_2), + OPCODE(o6_print_3), /* B8 */ - "o6_printActor", - "o6_printEgo", - "o6_talkActor", - "o6_talkEgo", + OPCODE(o6_printActor), + OPCODE(o6_printEgo), + OPCODE(o6_talkActor), + OPCODE(o6_talkEgo), /* BC */ - "o6_dim", - "o6_invalid", - "o6_runVerbCodeQuick", - "o6_runScriptQuick", + OPCODE(o6_dim), + OPCODE(o5_dummy), + OPCODE(o6_runVerbCodeQuick), + OPCODE(o6_runScriptQuick), /* C0 */ - "o6_dim2", - "o6_invalid", - "o6_invalid", - "o6_invalid", + OPCODE(o6_dim2), + OPCODE(o6_invalid), + OPCODE(o6_invalid), + OPCODE(o6_invalid), /* C4 */ - "o6_abs", - "o6_distObjectObject", - "o6_distObjectPt", - "o6_distPtPt", + OPCODE(o6_abs), + OPCODE(o6_distObjectObject), + OPCODE(o6_distObjectPt), + OPCODE(o6_distPtPt), /* C8 */ - "o6_kernelFunction", - "o6_miscOps", - "o6_breakMaybe", - "o6_pickOneOf", + OPCODE(o6_kernelFunction), + OPCODE(o6_miscOps), + OPCODE(o6_delayFrames), + OPCODE(o6_pickOneOf), /* CC */ - "o6_pickOneOfDefault", - "o6_invalid", - "o6_invalid", - "o6_invalid", + OPCODE(o6_pickOneOfDefault), + OPCODE(o6_unknownCD), + OPCODE(o6_invalid), + OPCODE(o6_invalid), /* D0 */ - "o6_invalid", - "o6_invalid", - "o6_getAnimateVariable", - "o6_invalid", + OPCODE(o6_invalid), + OPCODE(o6_invalid), + OPCODE(o6_getAnimateVariable), + OPCODE(o6_invalid), /* D4 */ - "o6_invalid", - "o6_jumpToScript", - "o6_band", - "o6_bor", + OPCODE(o6_invalid), + OPCODE(o6_jumpToScript), + OPCODE(o6_band), + OPCODE(o6_bor), /* D8 */ - "o6_isRoomScriptRunning", - "o6_invalid", - "o6_invalid", - "o6_invalid", + OPCODE(o6_isRoomScriptRunning), + OPCODE(o6_invalid), + OPCODE(o6_invalid), + OPCODE(o6_invalid), /* DC */ - "o6_invalid", - "o6_invalid", - "o6_invalid", - "o6_invalid", + OPCODE(o6_invalid), + OPCODE(o6_invalid), + OPCODE(o6_invalid), + OPCODE(o6_invalid), /* E0 */ - "o6_invalid", - "o6_invalid", - "o6_invalid", - "o6_invalid", + OPCODE(o6_invalid), + OPCODE(o6_invalid), + OPCODE(o6_invalid), + OPCODE(o6_invalid), /* E4 */ - "o6_invalid", - "o6_invalid", - "o6_invalid", - "o6_invalid", + OPCODE(o6_invalid), + OPCODE(o6_invalid), + OPCODE(o6_invalid), + OPCODE(o6_invalid), /* E8 */ - "o6_invalid", - "o6_invalid", - "o6_invalid", - "o6_invalid", + OPCODE(o6_invalid), + OPCODE(o6_invalid), + OPCODE(o6_invalid), + OPCODE(o6_invalid), /* EC */ - "o6_invalid", - "o6_getObjectNewDir", - "o6_invalid", - "o6_invalid", + OPCODE(o6_getActorPriority), + OPCODE(o6_getObjectNewDir), + OPCODE(o6_invalid), + OPCODE(o6_invalid), /* F0 */ - "o6_invalid", - "o6_invalid", - "o6_invalid", - "o6_invalid", + OPCODE(o6_invalid), + OPCODE(o6_invalid), + OPCODE(o6_invalid), + OPCODE(o6_invalid), /* F4 */ - "o6_invalid", - "o6_invalid", - "o6_invalid", - "o6_invalid", + OPCODE(o6_invalid), + OPCODE(o6_invalid), + OPCODE(o6_invalid), + OPCODE(o6_invalid), /* F8 */ - "o6_invalid", - "o6_invalid", - "o6_invalid", - "o6_invalid", + OPCODE(o6_invalid), + OPCODE(o6_invalid), + OPCODE(o6_invalid), + OPCODE(o6_invalid), /* FC */ - "o6_invalid", - "o6_invalid", - "o6_invalid", - "o6_invalid" + OPCODE(o6_invalid), + OPCODE(o6_invalid), + OPCODE(o6_invalid), + OPCODE(o6_invalid), }; - _opcodes = opcode_list; - _opcodes_lookup = opcode_lookup; + _opcodes = opcodes; } void Scumm::o6_setBlastObjectWindow() { // Set BOMP processing window |