aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm/script_v6.cpp
diff options
context:
space:
mode:
authorMax Horn2009-04-16 09:26:37 +0000
committerMax Horn2009-04-16 09:26:37 +0000
commit432e7917a5c9c7b1b14f2ffa3f1988484c3e1a4e (patch)
tree83d05a0985494ee9170c23f13f5d905260f6c321 /engines/scumm/script_v6.cpp
parent2558350d1ca96338ec5f409ecea9e25b3b672481 (diff)
downloadscummvm-rg350-432e7917a5c9c7b1b14f2ffa3f1988484c3e1a4e.tar.gz
scummvm-rg350-432e7917a5c9c7b1b14f2ffa3f1988484c3e1a4e.tar.bz2
scummvm-rg350-432e7917a5c9c7b1b14f2ffa3f1988484c3e1a4e.zip
SCUMM: Switched opcode tables to use Common::Functor0 (a bit like Kyra does it)
svn-id: r39956
Diffstat (limited to 'engines/scumm/script_v6.cpp')
-rw-r--r--engines/scumm/script_v6.cpp656
1 files changed, 321 insertions, 335 deletions
diff --git a/engines/scumm/script_v6.cpp b/engines/scumm/script_v6.cpp
index 255e6f0c63..03be7b5fe0 100644
--- a/engines/scumm/script_v6.cpp
+++ b/engines/scumm/script_v6.cpp
@@ -34,7 +34,6 @@
#include "scumm/imuse/imuse.h"
#include "scumm/imuse_digi/dimuse.h"
#include "scumm/insane/insane.h"
-#include "scumm/intern.h"
#include "scumm/object.h"
#include "scumm/resource.h"
#include "scumm/scumm.h"
@@ -50,342 +49,329 @@
namespace Scumm {
-#define OPCODE(x) _OPCODE(ScummEngine_v6, x)
+#define OPCODE(i, x) _opcodes[i]._OPCODE(ScummEngine_v6, x)
void ScummEngine_v6::setupOpcodes() {
- static const OpcodeEntryV6 opcodes[256] = {
- /* 00 */
- OPCODE(o6_pushByte),
- OPCODE(o6_pushWord),
- OPCODE(o6_pushByteVar),
- OPCODE(o6_pushWordVar),
- /* 04 */
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- OPCODE(o6_byteArrayRead),
- OPCODE(o6_wordArrayRead),
- /* 08 */
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- OPCODE(o6_byteArrayIndexedRead),
- OPCODE(o6_wordArrayIndexedRead),
- /* 0C */
- OPCODE(o6_dup),
- OPCODE(o6_not),
- OPCODE(o6_eq),
- OPCODE(o6_neq),
- /* 10 */
- OPCODE(o6_gt),
- OPCODE(o6_lt),
- OPCODE(o6_le),
- OPCODE(o6_ge),
- /* 14 */
- OPCODE(o6_add),
- OPCODE(o6_sub),
- OPCODE(o6_mul),
- OPCODE(o6_div),
- /* 18 */
- OPCODE(o6_land),
- OPCODE(o6_lor),
- OPCODE(o6_pop),
- OPCODE(o6_invalid),
- /* 1C */
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- /* 20 */
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- /* 24 */
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- /* 28 */
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- /* 2C */
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- /* 30 */
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- /* 34 */
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- /* 38 */
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- /* 3C */
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- /* 40 */
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- OPCODE(o6_writeByteVar),
- OPCODE(o6_writeWordVar),
- /* 44 */
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- OPCODE(o6_byteArrayWrite),
- OPCODE(o6_wordArrayWrite),
- /* 48 */
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- OPCODE(o6_byteArrayIndexedWrite),
- OPCODE(o6_wordArrayIndexedWrite),
- /* 4C */
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- OPCODE(o6_byteVarInc),
- OPCODE(o6_wordVarInc),
- /* 50 */
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- OPCODE(o6_byteArrayInc),
- OPCODE(o6_wordArrayInc),
- /* 54 */
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- OPCODE(o6_byteVarDec),
- OPCODE(o6_wordVarDec),
- /* 58 */
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- OPCODE(o6_byteArrayDec),
- OPCODE(o6_wordArrayDec),
- /* 5C */
- OPCODE(o6_if),
- OPCODE(o6_ifNot),
- OPCODE(o6_startScript),
- OPCODE(o6_startScriptQuick),
- /* 60 */
- OPCODE(o6_startObject),
- OPCODE(o6_drawObject),
- OPCODE(o6_drawObjectAt),
- OPCODE(o6_drawBlastObject),
- /* 64 */
- OPCODE(o6_setBlastObjectWindow),
- OPCODE(o6_stopObjectCode),
- OPCODE(o6_stopObjectCode),
- OPCODE(o6_endCutscene),
- /* 68 */
- OPCODE(o6_cutscene),
- OPCODE(o6_stopMusic),
- OPCODE(o6_freezeUnfreeze),
- OPCODE(o6_cursorCommand),
- /* 6C */
- OPCODE(o6_breakHere),
- OPCODE(o6_ifClassOfIs),
- OPCODE(o6_setClass),
- OPCODE(o6_getState),
- /* 70 */
- OPCODE(o6_setState),
- OPCODE(o6_setOwner),
- OPCODE(o6_getOwner),
- OPCODE(o6_jump),
- /* 74 */
- OPCODE(o6_startSound),
- OPCODE(o6_stopSound),
- OPCODE(o6_startMusic),
- OPCODE(o6_stopObjectScript),
- /* 78 */
- OPCODE(o6_panCameraTo),
- OPCODE(o6_actorFollowCamera),
- OPCODE(o6_setCameraAt),
- OPCODE(o6_loadRoom),
- /* 7C */
- OPCODE(o6_stopScript),
- OPCODE(o6_walkActorToObj),
- OPCODE(o6_walkActorTo),
- OPCODE(o6_putActorAtXY),
- /* 80 */
- OPCODE(o6_putActorAtObject),
- OPCODE(o6_faceActor),
- OPCODE(o6_animateActor),
- OPCODE(o6_doSentence),
- /* 84 */
- OPCODE(o6_pickupObject),
- OPCODE(o6_loadRoomWithEgo),
- OPCODE(o6_invalid),
- OPCODE(o6_getRandomNumber),
- /* 88 */
- OPCODE(o6_getRandomNumberRange),
- OPCODE(o6_invalid),
- OPCODE(o6_getActorMoving),
- OPCODE(o6_isScriptRunning),
- /* 8C */
- OPCODE(o6_getActorRoom),
- OPCODE(o6_getObjectX),
- OPCODE(o6_getObjectY),
- OPCODE(o6_getObjectOldDir),
- /* 90 */
- OPCODE(o6_getActorWalkBox),
- OPCODE(o6_getActorCostume),
- OPCODE(o6_findInventory),
- OPCODE(o6_getInventoryCount),
- /* 94 */
- OPCODE(o6_getVerbFromXY),
- OPCODE(o6_beginOverride),
- OPCODE(o6_endOverride),
- OPCODE(o6_setObjectName),
- /* 98 */
- OPCODE(o6_isSoundRunning),
- OPCODE(o6_setBoxFlags),
- OPCODE(o6_createBoxMatrix),
- OPCODE(o6_resourceRoutines),
- /* 9C */
- OPCODE(o6_roomOps),
- OPCODE(o6_actorOps),
- OPCODE(o6_verbOps),
- OPCODE(o6_getActorFromXY),
- /* A0 */
- OPCODE(o6_findObject),
- OPCODE(o6_pseudoRoom),
- OPCODE(o6_getActorElevation),
- OPCODE(o6_getVerbEntrypoint),
- /* A4 */
- OPCODE(o6_arrayOps),
- OPCODE(o6_saveRestoreVerbs),
- OPCODE(o6_drawBox),
- OPCODE(o6_pop),
- /* A8 */
- OPCODE(o6_getActorWidth),
- OPCODE(o6_wait),
- OPCODE(o6_getActorScaleX),
- OPCODE(o6_getActorAnimCounter),
- /* AC */
- OPCODE(o6_soundKludge),
- OPCODE(o6_isAnyOf),
- OPCODE(o6_systemOps),
- OPCODE(o6_isActorInBox),
- /* B0 */
- OPCODE(o6_delay),
- OPCODE(o6_delaySeconds),
- OPCODE(o6_delayMinutes),
- OPCODE(o6_stopSentence),
- /* B4 */
- OPCODE(o6_printLine),
- OPCODE(o6_printText),
- OPCODE(o6_printDebug),
- OPCODE(o6_printSystem),
- /* B8 */
- OPCODE(o6_printActor),
- OPCODE(o6_printEgo),
- OPCODE(o6_talkActor),
- OPCODE(o6_talkEgo),
- /* BC */
- OPCODE(o6_dimArray),
- OPCODE(o6_dummy),
- OPCODE(o6_startObjectQuick),
- OPCODE(o6_startScriptQuick2),
- /* C0 */
- OPCODE(o6_dim2dimArray),
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- /* C4 */
- OPCODE(o6_abs),
- OPCODE(o6_distObjectObject),
- OPCODE(o6_distObjectPt),
- OPCODE(o6_distPtPt),
- /* C8 */
- OPCODE(o6_kernelGetFunctions),
- OPCODE(o6_kernelSetFunctions),
- OPCODE(o6_delayFrames),
- OPCODE(o6_pickOneOf),
- /* CC */
- OPCODE(o6_pickOneOfDefault),
- OPCODE(o6_stampObject),
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- /* D0 */
- OPCODE(o6_getDateTime),
- OPCODE(o6_stopTalking),
- OPCODE(o6_getAnimateVariable),
- OPCODE(o6_invalid),
- /* D4 */
- OPCODE(o6_shuffle),
- OPCODE(o6_jumpToScript),
- OPCODE(o6_band),
- OPCODE(o6_bor),
- /* D8 */
- OPCODE(o6_isRoomScriptRunning),
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- /* DC */
- OPCODE(o6_invalid),
- OPCODE(o6_findAllObjects),
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- /* E0 */
- OPCODE(o6_invalid),
- OPCODE(o6_getPixel),
- OPCODE(o6_invalid),
- OPCODE(o6_pickVarRandom),
- /* E4 */
- OPCODE(o6_setBoxSet),
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- /* E8 */
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- /* EC */
- OPCODE(o6_getActorLayer),
- OPCODE(o6_getObjectNewDir),
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- /* F0 */
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- /* F4 */
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- /* F8 */
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- /* FC */
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- };
-
- _opcodesV6 = opcodes;
-}
-
-void ScummEngine_v6::executeOpcode(byte i) {
- OpcodeProcV6 op = _opcodesV6[i].proc;
- (this->*op) ();
-}
-
-const char *ScummEngine_v6::getOpcodeDesc(byte i) {
- return _opcodesV6[i].desc;
+ /* 00 */
+ OPCODE(0x00, o6_pushByte);
+ OPCODE(0x01, o6_pushWord);
+ OPCODE(0x02, o6_pushByteVar);
+ OPCODE(0x03, o6_pushWordVar);
+ /* 04 */
+ OPCODE(0x04, o6_invalid);
+ OPCODE(0x05, o6_invalid);
+ OPCODE(0x06, o6_byteArrayRead);
+ OPCODE(0x07, o6_wordArrayRead);
+ /* 08 */
+ OPCODE(0x08, o6_invalid);
+ OPCODE(0x09, o6_invalid);
+ OPCODE(0x0a, o6_byteArrayIndexedRead);
+ OPCODE(0x0b, o6_wordArrayIndexedRead);
+ /* 0C */
+ OPCODE(0x0c, o6_dup);
+ OPCODE(0x0d, o6_not);
+ OPCODE(0x0e, o6_eq);
+ OPCODE(0x0f, o6_neq);
+ /* 10 */
+ OPCODE(0x10, o6_gt);
+ OPCODE(0x11, o6_lt);
+ OPCODE(0x12, o6_le);
+ OPCODE(0x13, o6_ge);
+ /* 14 */
+ OPCODE(0x14, o6_add);
+ OPCODE(0x15, o6_sub);
+ OPCODE(0x16, o6_mul);
+ OPCODE(0x17, o6_div);
+ /* 18 */
+ OPCODE(0x18, o6_land);
+ OPCODE(0x19, o6_lor);
+ OPCODE(0x1a, o6_pop);
+ OPCODE(0x1b, o6_invalid);
+ /* 1C */
+ OPCODE(0x1c, o6_invalid);
+ OPCODE(0x1d, o6_invalid);
+ OPCODE(0x1e, o6_invalid);
+ OPCODE(0x1f, o6_invalid);
+ /* 20 */
+ OPCODE(0x20, o6_invalid);
+ OPCODE(0x21, o6_invalid);
+ OPCODE(0x22, o6_invalid);
+ OPCODE(0x23, o6_invalid);
+ /* 24 */
+ OPCODE(0x24, o6_invalid);
+ OPCODE(0x25, o6_invalid);
+ OPCODE(0x26, o6_invalid);
+ OPCODE(0x27, o6_invalid);
+ /* 28 */
+ OPCODE(0x28, o6_invalid);
+ OPCODE(0x29, o6_invalid);
+ OPCODE(0x2a, o6_invalid);
+ OPCODE(0x2b, o6_invalid);
+ /* 2C */
+ OPCODE(0x2c, o6_invalid);
+ OPCODE(0x2d, o6_invalid);
+ OPCODE(0x2e, o6_invalid);
+ OPCODE(0x2f, o6_invalid);
+ /* 30 */
+ OPCODE(0x30, o6_invalid);
+ OPCODE(0x31, o6_invalid);
+ OPCODE(0x32, o6_invalid);
+ OPCODE(0x33, o6_invalid);
+ /* 34 */
+ OPCODE(0x34, o6_invalid);
+ OPCODE(0x35, o6_invalid);
+ OPCODE(0x36, o6_invalid);
+ OPCODE(0x37, o6_invalid);
+ /* 38 */
+ OPCODE(0x38, o6_invalid);
+ OPCODE(0x39, o6_invalid);
+ OPCODE(0x3a, o6_invalid);
+ OPCODE(0x3b, o6_invalid);
+ /* 3C */
+ OPCODE(0x3c, o6_invalid);
+ OPCODE(0x3d, o6_invalid);
+ OPCODE(0x3e, o6_invalid);
+ OPCODE(0x3f, o6_invalid);
+ /* 40 */
+ OPCODE(0x40, o6_invalid);
+ OPCODE(0x41, o6_invalid);
+ OPCODE(0x42, o6_writeByteVar);
+ OPCODE(0x43, o6_writeWordVar);
+ /* 44 */
+ OPCODE(0x44, o6_invalid);
+ OPCODE(0x45, o6_invalid);
+ OPCODE(0x46, o6_byteArrayWrite);
+ OPCODE(0x47, o6_wordArrayWrite);
+ /* 48 */
+ OPCODE(0x48, o6_invalid);
+ OPCODE(0x49, o6_invalid);
+ OPCODE(0x4a, o6_byteArrayIndexedWrite);
+ OPCODE(0x4b, o6_wordArrayIndexedWrite);
+ /* 4C */
+ OPCODE(0x4c, o6_invalid);
+ OPCODE(0x4d, o6_invalid);
+ OPCODE(0x4e, o6_byteVarInc);
+ OPCODE(0x4f, o6_wordVarInc);
+ /* 50 */
+ OPCODE(0x50, o6_invalid);
+ OPCODE(0x51, o6_invalid);
+ OPCODE(0x52, o6_byteArrayInc);
+ OPCODE(0x53, o6_wordArrayInc);
+ /* 54 */
+ OPCODE(0x54, o6_invalid);
+ OPCODE(0x55, o6_invalid);
+ OPCODE(0x56, o6_byteVarDec);
+ OPCODE(0x57, o6_wordVarDec);
+ /* 58 */
+ OPCODE(0x58, o6_invalid);
+ OPCODE(0x59, o6_invalid);
+ OPCODE(0x5a, o6_byteArrayDec);
+ OPCODE(0x5b, o6_wordArrayDec);
+ /* 5C */
+ OPCODE(0x5c, o6_if);
+ OPCODE(0x5d, o6_ifNot);
+ OPCODE(0x5e, o6_startScript);
+ OPCODE(0x5f, o6_startScriptQuick);
+ /* 60 */
+ OPCODE(0x60, o6_startObject);
+ OPCODE(0x61, o6_drawObject);
+ OPCODE(0x62, o6_drawObjectAt);
+ OPCODE(0x63, o6_drawBlastObject);
+ /* 64 */
+ OPCODE(0x64, o6_setBlastObjectWindow);
+ OPCODE(0x65, o6_stopObjectCode);
+ OPCODE(0x66, o6_stopObjectCode);
+ OPCODE(0x67, o6_endCutscene);
+ /* 68 */
+ OPCODE(0x68, o6_cutscene);
+ OPCODE(0x69, o6_stopMusic);
+ OPCODE(0x6a, o6_freezeUnfreeze);
+ OPCODE(0x6b, o6_cursorCommand);
+ /* 6C */
+ OPCODE(0x6c, o6_breakHere);
+ OPCODE(0x6d, o6_ifClassOfIs);
+ OPCODE(0x6e, o6_setClass);
+ OPCODE(0x6f, o6_getState);
+ /* 70 */
+ OPCODE(0x70, o6_setState);
+ OPCODE(0x71, o6_setOwner);
+ OPCODE(0x72, o6_getOwner);
+ OPCODE(0x73, o6_jump);
+ /* 74 */
+ OPCODE(0x74, o6_startSound);
+ OPCODE(0x75, o6_stopSound);
+ OPCODE(0x76, o6_startMusic);
+ OPCODE(0x77, o6_stopObjectScript);
+ /* 78 */
+ OPCODE(0x78, o6_panCameraTo);
+ OPCODE(0x79, o6_actorFollowCamera);
+ OPCODE(0x7a, o6_setCameraAt);
+ OPCODE(0x7b, o6_loadRoom);
+ /* 7C */
+ OPCODE(0x7c, o6_stopScript);
+ OPCODE(0x7d, o6_walkActorToObj);
+ OPCODE(0x7e, o6_walkActorTo);
+ OPCODE(0x7f, o6_putActorAtXY);
+ /* 80 */
+ OPCODE(0x80, o6_putActorAtObject);
+ OPCODE(0x81, o6_faceActor);
+ OPCODE(0x82, o6_animateActor);
+ OPCODE(0x83, o6_doSentence);
+ /* 84 */
+ OPCODE(0x84, o6_pickupObject);
+ OPCODE(0x85, o6_loadRoomWithEgo);
+ OPCODE(0x86, o6_invalid);
+ OPCODE(0x87, o6_getRandomNumber);
+ /* 88 */
+ OPCODE(0x88, o6_getRandomNumberRange);
+ OPCODE(0x89, o6_invalid);
+ OPCODE(0x8a, o6_getActorMoving);
+ OPCODE(0x8b, o6_isScriptRunning);
+ /* 8C */
+ OPCODE(0x8c, o6_getActorRoom);
+ OPCODE(0x8d, o6_getObjectX);
+ OPCODE(0x8e, o6_getObjectY);
+ OPCODE(0x8f, o6_getObjectOldDir);
+ /* 90 */
+ OPCODE(0x90, o6_getActorWalkBox);
+ OPCODE(0x91, o6_getActorCostume);
+ OPCODE(0x92, o6_findInventory);
+ OPCODE(0x93, o6_getInventoryCount);
+ /* 94 */
+ OPCODE(0x94, o6_getVerbFromXY);
+ OPCODE(0x95, o6_beginOverride);
+ OPCODE(0x96, o6_endOverride);
+ OPCODE(0x97, o6_setObjectName);
+ /* 98 */
+ OPCODE(0x98, o6_isSoundRunning);
+ OPCODE(0x99, o6_setBoxFlags);
+ OPCODE(0x9a, o6_createBoxMatrix);
+ OPCODE(0x9b, o6_resourceRoutines);
+ /* 9C */
+ OPCODE(0x9c, o6_roomOps);
+ OPCODE(0x9d, o6_actorOps);
+ OPCODE(0x9e, o6_verbOps);
+ OPCODE(0x9f, o6_getActorFromXY);
+ /* A0 */
+ OPCODE(0xa0, o6_findObject);
+ OPCODE(0xa1, o6_pseudoRoom);
+ OPCODE(0xa2, o6_getActorElevation);
+ OPCODE(0xa3, o6_getVerbEntrypoint);
+ /* A4 */
+ OPCODE(0xa4, o6_arrayOps);
+ OPCODE(0xa5, o6_saveRestoreVerbs);
+ OPCODE(0xa6, o6_drawBox);
+ OPCODE(0xa7, o6_pop);
+ /* A8 */
+ OPCODE(0xa8, o6_getActorWidth);
+ OPCODE(0xa9, o6_wait);
+ OPCODE(0xaa, o6_getActorScaleX);
+ OPCODE(0xab, o6_getActorAnimCounter);
+ /* AC */
+ OPCODE(0xac, o6_soundKludge);
+ OPCODE(0xad, o6_isAnyOf);
+ OPCODE(0xae, o6_systemOps);
+ OPCODE(0xaf, o6_isActorInBox);
+ /* B0 */
+ OPCODE(0xb0, o6_delay);
+ OPCODE(0xb1, o6_delaySeconds);
+ OPCODE(0xb2, o6_delayMinutes);
+ OPCODE(0xb3, o6_stopSentence);
+ /* B4 */
+ OPCODE(0xb4, o6_printLine);
+ OPCODE(0xb5, o6_printText);
+ OPCODE(0xb6, o6_printDebug);
+ OPCODE(0xb7, o6_printSystem);
+ /* B8 */
+ OPCODE(0xb8, o6_printActor);
+ OPCODE(0xb9, o6_printEgo);
+ OPCODE(0xba, o6_talkActor);
+ OPCODE(0xbb, o6_talkEgo);
+ /* BC */
+ OPCODE(0xbc, o6_dimArray);
+ OPCODE(0xbd, o6_dummy);
+ OPCODE(0xbe, o6_startObjectQuick);
+ OPCODE(0xbf, o6_startScriptQuick2);
+ /* C0 */
+ OPCODE(0xc0, o6_dim2dimArray);
+ OPCODE(0xc1, o6_invalid);
+ OPCODE(0xc2, o6_invalid);
+ OPCODE(0xc3, o6_invalid);
+ /* C4 */
+ OPCODE(0xc4, o6_abs);
+ OPCODE(0xc5, o6_distObjectObject);
+ OPCODE(0xc6, o6_distObjectPt);
+ OPCODE(0xc7, o6_distPtPt);
+ /* C8 */
+ OPCODE(0xc8, o6_kernelGetFunctions);
+ OPCODE(0xc9, o6_kernelSetFunctions);
+ OPCODE(0xca, o6_delayFrames);
+ OPCODE(0xcb, o6_pickOneOf);
+ /* CC */
+ OPCODE(0xcc, o6_pickOneOfDefault);
+ OPCODE(0xcd, o6_stampObject);
+ OPCODE(0xce, o6_invalid);
+ OPCODE(0xcf, o6_invalid);
+ /* D0 */
+ OPCODE(0xd0, o6_getDateTime);
+ OPCODE(0xd1, o6_stopTalking);
+ OPCODE(0xd2, o6_getAnimateVariable);
+ OPCODE(0xd3, o6_invalid);
+ /* D4 */
+ OPCODE(0xd4, o6_shuffle);
+ OPCODE(0xd5, o6_jumpToScript);
+ OPCODE(0xd6, o6_band);
+ OPCODE(0xd7, o6_bor);
+ /* D8 */
+ OPCODE(0xd8, o6_isRoomScriptRunning);
+ OPCODE(0xd9, o6_invalid);
+ OPCODE(0xda, o6_invalid);
+ OPCODE(0xdb, o6_invalid);
+ /* DC */
+ OPCODE(0xdc, o6_invalid);
+ OPCODE(0xdd, o6_findAllObjects);
+ OPCODE(0xde, o6_invalid);
+ OPCODE(0xdf, o6_invalid);
+ /* E0 */
+ OPCODE(0xe0, o6_invalid);
+ OPCODE(0xe1, o6_getPixel);
+ OPCODE(0xe2, o6_invalid);
+ OPCODE(0xe3, o6_pickVarRandom);
+ /* E4 */
+ OPCODE(0xe4, o6_setBoxSet);
+ OPCODE(0xe5, o6_invalid);
+ OPCODE(0xe6, o6_invalid);
+ OPCODE(0xe7, o6_invalid);
+ /* E8 */
+ OPCODE(0xe8, o6_invalid);
+ OPCODE(0xe9, o6_invalid);
+ OPCODE(0xea, o6_invalid);
+ OPCODE(0xeb, o6_invalid);
+ /* EC */
+ OPCODE(0xec, o6_getActorLayer);
+ OPCODE(0xed, o6_getObjectNewDir);
+ OPCODE(0xee, o6_invalid);
+ OPCODE(0xef, o6_invalid);
+ /* F0 */
+ OPCODE(0xf0, o6_invalid);
+ OPCODE(0xf1, o6_invalid);
+ OPCODE(0xf2, o6_invalid);
+ OPCODE(0xf3, o6_invalid);
+ /* F4 */
+ OPCODE(0xf4, o6_invalid);
+ OPCODE(0xf5, o6_invalid);
+ OPCODE(0xf6, o6_invalid);
+ OPCODE(0xf7, o6_invalid);
+ /* F8 */
+ OPCODE(0xf8, o6_invalid);
+ OPCODE(0xf9, o6_invalid);
+ OPCODE(0xfa, o6_invalid);
+ OPCODE(0xfb, o6_invalid);
+ /* FC */
+ OPCODE(0xfc, o6_invalid);
+ OPCODE(0xfd, o6_invalid);
+ OPCODE(0xfe, o6_invalid);
+ OPCODE(0xff, o6_invalid);
}
int ScummEngine_v6::popRoomAndObj(int *room) {