mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-22 12:12:16 +00:00
SCUMM: Compacted various setupOpcodes() implementations by using the fact that opcode tables tend not to change much between most SCUMM versions
svn-id: r39958
This commit is contained in:
parent
99df028d35
commit
cbe9e520d3
@ -66,235 +66,31 @@ static int virtScreenSavePack(byte *dst, byte *src, int len, int unk);
|
||||
#define OPCODE(i, x) _opcodes[i]._OPCODE(ScummEngine_v60he, x)
|
||||
|
||||
void ScummEngine_v60he::setupOpcodes() {
|
||||
/* 00 */
|
||||
OPCODE(0x00, o6_pushByte);
|
||||
OPCODE(0x01, o6_pushWord);
|
||||
OPCODE(0x02, o6_pushByteVar);
|
||||
OPCODE(0x03, o6_pushWordVar);
|
||||
/* 04 */
|
||||
OPCODE(0x06, o6_byteArrayRead);
|
||||
OPCODE(0x07, o6_wordArrayRead);
|
||||
/* 08 */
|
||||
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);
|
||||
/* 1C */
|
||||
/* 20 */
|
||||
/* 24 */
|
||||
/* 28 */
|
||||
/* 2C */
|
||||
/* 30 */
|
||||
/* 34 */
|
||||
/* 38 */
|
||||
/* 3C */
|
||||
/* 40 */
|
||||
OPCODE(0x42, o6_writeByteVar);
|
||||
OPCODE(0x43, o6_writeWordVar);
|
||||
/* 44 */
|
||||
OPCODE(0x46, o6_byteArrayWrite);
|
||||
OPCODE(0x47, o6_wordArrayWrite);
|
||||
/* 48 */
|
||||
OPCODE(0x4a, o6_byteArrayIndexedWrite);
|
||||
OPCODE(0x4b, o6_wordArrayIndexedWrite);
|
||||
/* 4C */
|
||||
OPCODE(0x4e, o6_byteVarInc);
|
||||
OPCODE(0x4f, o6_wordVarInc);
|
||||
/* 50 */
|
||||
OPCODE(0x52, o6_byteArrayInc);
|
||||
OPCODE(0x53, o6_wordArrayInc);
|
||||
/* 54 */
|
||||
OPCODE(0x56, o6_byteVarDec);
|
||||
OPCODE(0x57, o6_wordVarDec);
|
||||
/* 58 */
|
||||
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);
|
||||
/* 64 */
|
||||
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 */
|
||||
ScummEngine_v6::setupOpcodes();
|
||||
|
||||
_opcodes[0x63].setProc(0, 0);
|
||||
_opcodes[0x64].setProc(0, 0);
|
||||
OPCODE(0x70, o60_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(0x87, o6_getRandomNumber);
|
||||
/* 88 */
|
||||
OPCODE(0x88, o6_getRandomNumberRange);
|
||||
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(0x9b, o6_resourceRoutines);
|
||||
/* 9C */
|
||||
_opcodes[0x9a].setProc(0, 0);
|
||||
OPCODE(0x9c, o60_roomOps);
|
||||
OPCODE(0x9d, o60_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(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);
|
||||
_opcodes[0xac].setProc(0, 0);
|
||||
OPCODE(0xbd, o6_stopObjectCode);
|
||||
OPCODE(0xbe, o6_startObjectQuick);
|
||||
OPCODE(0xbf, o6_startScriptQuick2);
|
||||
/* C0 */
|
||||
OPCODE(0xc0, o6_dim2dimArray);
|
||||
/* C4 */
|
||||
OPCODE(0xc4, o6_abs);
|
||||
OPCODE(0xc5, o6_distObjectObject);
|
||||
OPCODE(0xc6, o6_distObjectPt);
|
||||
OPCODE(0xc7, o6_distPtPt);
|
||||
/* C8 */
|
||||
OPCODE(0xc8, o60_kernelGetFunctions);
|
||||
OPCODE(0xc9, o60_kernelSetFunctions);
|
||||
OPCODE(0xca, o6_delayFrames);
|
||||
OPCODE(0xcb, o6_pickOneOf);
|
||||
/* CC */
|
||||
OPCODE(0xcc, o6_pickOneOfDefault);
|
||||
OPCODE(0xcd, o6_stampObject);
|
||||
/* D0 */
|
||||
OPCODE(0xd0, o6_getDateTime);
|
||||
OPCODE(0xd1, o6_stopTalking);
|
||||
OPCODE(0xd2, o6_getAnimateVariable);
|
||||
/* D4 */
|
||||
OPCODE(0xd4, o6_shuffle);
|
||||
OPCODE(0xd5, o6_jumpToScript);
|
||||
OPCODE(0xd6, o6_band);
|
||||
OPCODE(0xd7, o6_bor);
|
||||
/* D8 */
|
||||
OPCODE(0xd8, o6_isRoomScriptRunning);
|
||||
OPCODE(0xd9, o60_closeFile);
|
||||
OPCODE(0xda, o60_openFile);
|
||||
OPCODE(0xdb, o60_readFile);
|
||||
/* DC */
|
||||
OPCODE(0xdc, o60_writeFile);
|
||||
OPCODE(0xdd, o6_findAllObjects);
|
||||
OPCODE(0xde, o60_deleteFile);
|
||||
OPCODE(0xdf, o60_rename);
|
||||
/* E0 */
|
||||
OPCODE(0xe0, o60_soundOps);
|
||||
OPCODE(0xe1, o6_getPixel);
|
||||
OPCODE(0xe2, o60_localizeArrayToScript);
|
||||
OPCODE(0xe3, o6_pickVarRandom);
|
||||
/* E4 */
|
||||
OPCODE(0xe4, o6_setBoxSet);
|
||||
/* E8 */
|
||||
OPCODE(0xe9, o60_seekFilePos);
|
||||
OPCODE(0xea, o60_redimArray);
|
||||
OPCODE(0xeb, o60_readFilePos);
|
||||
/* EC */
|
||||
/* F0 */
|
||||
/* F4 */
|
||||
/* F8 */
|
||||
/* FC */
|
||||
_opcodes[0xec].setProc(0, 0);
|
||||
_opcodes[0xed].setProc(0, 0);
|
||||
}
|
||||
|
||||
int ScummEngine_v60he::convertFilePath(byte *dst) {
|
||||
|
@ -41,241 +41,19 @@ namespace Scumm {
|
||||
#define OPCODE(i, x) _opcodes[i]._OPCODE(ScummEngine_v70he, x)
|
||||
|
||||
void ScummEngine_v70he::setupOpcodes() {
|
||||
/* 00 */
|
||||
OPCODE(0x00, o6_pushByte);
|
||||
OPCODE(0x01, o6_pushWord);
|
||||
OPCODE(0x02, o6_pushByteVar);
|
||||
OPCODE(0x03, o6_pushWordVar);
|
||||
/* 04 */
|
||||
OPCODE(0x06, o6_byteArrayRead);
|
||||
OPCODE(0x07, o6_wordArrayRead);
|
||||
/* 08 */
|
||||
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);
|
||||
/* 1C */
|
||||
/* 20 */
|
||||
/* 24 */
|
||||
/* 28 */
|
||||
/* 2C */
|
||||
/* 30 */
|
||||
/* 34 */
|
||||
/* 38 */
|
||||
/* 3C */
|
||||
/* 40 */
|
||||
OPCODE(0x42, o6_writeByteVar);
|
||||
OPCODE(0x43, o6_writeWordVar);
|
||||
/* 44 */
|
||||
OPCODE(0x46, o6_byteArrayWrite);
|
||||
OPCODE(0x47, o6_wordArrayWrite);
|
||||
/* 48 */
|
||||
OPCODE(0x4a, o6_byteArrayIndexedWrite);
|
||||
OPCODE(0x4b, o6_wordArrayIndexedWrite);
|
||||
/* 4C */
|
||||
OPCODE(0x4e, o6_byteVarInc);
|
||||
OPCODE(0x4f, o6_wordVarInc);
|
||||
/* 50 */
|
||||
OPCODE(0x52, o6_byteArrayInc);
|
||||
OPCODE(0x53, o6_wordArrayInc);
|
||||
/* 54 */
|
||||
OPCODE(0x56, o6_byteVarDec);
|
||||
OPCODE(0x57, o6_wordVarDec);
|
||||
/* 58 */
|
||||
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);
|
||||
/* 64 */
|
||||
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, o60_setState);
|
||||
OPCODE(0x71, o6_setOwner);
|
||||
OPCODE(0x72, o6_getOwner);
|
||||
OPCODE(0x73, o6_jump);
|
||||
/* 74 */
|
||||
ScummEngine_v60he::setupOpcodes();
|
||||
|
||||
OPCODE(0x74, o70_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, o70_pickupObject);
|
||||
OPCODE(0x85, o6_loadRoomWithEgo);
|
||||
OPCODE(0x87, o6_getRandomNumber);
|
||||
/* 88 */
|
||||
OPCODE(0x88, o6_getRandomNumberRange);
|
||||
OPCODE(0x8a, o6_getActorMoving);
|
||||
OPCODE(0x8b, o6_isScriptRunning);
|
||||
/* 8C */
|
||||
OPCODE(0x8c, o70_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(0x9b, o70_resourceRoutines);
|
||||
/* 9C */
|
||||
OPCODE(0x9c, o60_roomOps);
|
||||
OPCODE(0x9d, o60_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(0xad, o6_isAnyOf);
|
||||
OPCODE(0xae, o70_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_stopObjectCode);
|
||||
OPCODE(0xbe, o6_startObjectQuick);
|
||||
OPCODE(0xbf, o6_startScriptQuick2);
|
||||
/* C0 */
|
||||
OPCODE(0xc0, o6_dim2dimArray);
|
||||
/* C4 */
|
||||
OPCODE(0xc4, o6_abs);
|
||||
OPCODE(0xc5, o6_distObjectObject);
|
||||
OPCODE(0xc6, o6_distObjectPt);
|
||||
OPCODE(0xc7, o6_distPtPt);
|
||||
/* C8 */
|
||||
OPCODE(0xc8, o60_kernelGetFunctions);
|
||||
OPCODE(0xc9, o60_kernelSetFunctions);
|
||||
OPCODE(0xca, o6_delayFrames);
|
||||
OPCODE(0xcb, o6_pickOneOf);
|
||||
/* CC */
|
||||
OPCODE(0xcc, o6_pickOneOfDefault);
|
||||
OPCODE(0xcd, o6_stampObject);
|
||||
/* D0 */
|
||||
OPCODE(0xd0, o6_getDateTime);
|
||||
OPCODE(0xd1, o6_stopTalking);
|
||||
OPCODE(0xd2, o6_getAnimateVariable);
|
||||
/* D4 */
|
||||
OPCODE(0xd4, o6_shuffle);
|
||||
OPCODE(0xd5, o6_jumpToScript);
|
||||
OPCODE(0xd6, o6_band);
|
||||
OPCODE(0xd7, o6_bor);
|
||||
/* D8 */
|
||||
OPCODE(0xd8, o6_isRoomScriptRunning);
|
||||
OPCODE(0xd9, o60_closeFile);
|
||||
OPCODE(0xda, o60_openFile);
|
||||
OPCODE(0xdb, o60_readFile);
|
||||
/* DC */
|
||||
OPCODE(0xdc, o60_writeFile);
|
||||
OPCODE(0xdd, o6_findAllObjects);
|
||||
OPCODE(0xde, o60_deleteFile);
|
||||
OPCODE(0xdf, o60_rename);
|
||||
/* E0 */
|
||||
OPCODE(0xe0, o60_soundOps);
|
||||
OPCODE(0xe1, o6_getPixel);
|
||||
OPCODE(0xe2, o60_localizeArrayToScript);
|
||||
OPCODE(0xe3, o6_pickVarRandom);
|
||||
/* E4 */
|
||||
OPCODE(0xe4, o6_setBoxSet);
|
||||
/* E8 */
|
||||
OPCODE(0xe9, o60_seekFilePos);
|
||||
OPCODE(0xea, o60_redimArray);
|
||||
OPCODE(0xeb, o60_readFilePos);
|
||||
/* EC */
|
||||
OPCODE(0xee, o70_getStringLen);
|
||||
/* F0 */
|
||||
OPCODE(0xf2, o70_isResourceLoaded);
|
||||
OPCODE(0xf3, o70_readINI);
|
||||
/* F4 */
|
||||
OPCODE(0xf4, o70_writeINI);
|
||||
/* F8 */
|
||||
OPCODE(0xf9, o70_createDirectory);
|
||||
OPCODE(0xfa, o70_setSystemMessage);
|
||||
/* FC */
|
||||
}
|
||||
|
||||
void ScummEngine_v70he::o70_startSound() {
|
||||
|
@ -33,250 +33,18 @@ namespace Scumm {
|
||||
#define OPCODE(i, x) _opcodes[i]._OPCODE(ScummEngine_v71he, x)
|
||||
|
||||
void ScummEngine_v71he::setupOpcodes() {
|
||||
/* 00 */
|
||||
OPCODE(0x00, o6_pushByte);
|
||||
OPCODE(0x01, o6_pushWord);
|
||||
OPCODE(0x02, o6_pushByteVar);
|
||||
OPCODE(0x03, o6_pushWordVar);
|
||||
/* 04 */
|
||||
OPCODE(0x06, o6_byteArrayRead);
|
||||
OPCODE(0x07, o6_wordArrayRead);
|
||||
/* 08 */
|
||||
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);
|
||||
/* 1C */
|
||||
/* 20 */
|
||||
/* 24 */
|
||||
/* 28 */
|
||||
/* 2C */
|
||||
/* 30 */
|
||||
/* 34 */
|
||||
/* 38 */
|
||||
/* 3C */
|
||||
/* 40 */
|
||||
OPCODE(0x42, o6_writeByteVar);
|
||||
OPCODE(0x43, o6_writeWordVar);
|
||||
/* 44 */
|
||||
OPCODE(0x46, o6_byteArrayWrite);
|
||||
OPCODE(0x47, o6_wordArrayWrite);
|
||||
/* 48 */
|
||||
OPCODE(0x4a, o6_byteArrayIndexedWrite);
|
||||
OPCODE(0x4b, o6_wordArrayIndexedWrite);
|
||||
/* 4C */
|
||||
OPCODE(0x4e, o6_byteVarInc);
|
||||
OPCODE(0x4f, o6_wordVarInc);
|
||||
/* 50 */
|
||||
OPCODE(0x52, o6_byteArrayInc);
|
||||
OPCODE(0x53, o6_wordArrayInc);
|
||||
/* 54 */
|
||||
OPCODE(0x56, o6_byteVarDec);
|
||||
OPCODE(0x57, o6_wordVarDec);
|
||||
/* 58 */
|
||||
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);
|
||||
/* 64 */
|
||||
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, o60_setState);
|
||||
OPCODE(0x71, o6_setOwner);
|
||||
OPCODE(0x72, o6_getOwner);
|
||||
OPCODE(0x73, o6_jump);
|
||||
/* 74 */
|
||||
OPCODE(0x74, o70_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, o70_pickupObject);
|
||||
OPCODE(0x85, o6_loadRoomWithEgo);
|
||||
OPCODE(0x87, o6_getRandomNumber);
|
||||
/* 88 */
|
||||
OPCODE(0x88, o6_getRandomNumberRange);
|
||||
OPCODE(0x8a, o6_getActorMoving);
|
||||
OPCODE(0x8b, o6_isScriptRunning);
|
||||
/* 8C */
|
||||
OPCODE(0x8c, o70_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(0x9b, o70_resourceRoutines);
|
||||
/* 9C */
|
||||
OPCODE(0x9c, o60_roomOps);
|
||||
OPCODE(0x9d, o60_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(0xad, o6_isAnyOf);
|
||||
OPCODE(0xae, o70_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_stopObjectCode);
|
||||
OPCODE(0xbe, o6_startObjectQuick);
|
||||
OPCODE(0xbf, o6_startScriptQuick2);
|
||||
/* C0 */
|
||||
OPCODE(0xc0, o6_dim2dimArray);
|
||||
/* C4 */
|
||||
OPCODE(0xc4, o6_abs);
|
||||
OPCODE(0xc5, o6_distObjectObject);
|
||||
OPCODE(0xc6, o6_distObjectPt);
|
||||
OPCODE(0xc7, o6_distPtPt);
|
||||
/* C8 */
|
||||
OPCODE(0xc8, o60_kernelGetFunctions);
|
||||
ScummEngine_v70he::setupOpcodes();
|
||||
|
||||
OPCODE(0xc9, o71_kernelSetFunctions);
|
||||
OPCODE(0xca, o6_delayFrames);
|
||||
OPCODE(0xcb, o6_pickOneOf);
|
||||
/* CC */
|
||||
OPCODE(0xcc, o6_pickOneOfDefault);
|
||||
OPCODE(0xcd, o6_stampObject);
|
||||
/* D0 */
|
||||
OPCODE(0xd0, o6_getDateTime);
|
||||
OPCODE(0xd1, o6_stopTalking);
|
||||
OPCODE(0xd2, o6_getAnimateVariable);
|
||||
/* D4 */
|
||||
OPCODE(0xd4, o6_shuffle);
|
||||
OPCODE(0xd5, o6_jumpToScript);
|
||||
OPCODE(0xd6, o6_band);
|
||||
OPCODE(0xd7, o6_bor);
|
||||
/* D8 */
|
||||
OPCODE(0xd8, o6_isRoomScriptRunning);
|
||||
OPCODE(0xd9, o60_closeFile);
|
||||
OPCODE(0xda, o60_openFile);
|
||||
OPCODE(0xdb, o60_readFile);
|
||||
/* DC */
|
||||
OPCODE(0xdc, o60_writeFile);
|
||||
OPCODE(0xdd, o6_findAllObjects);
|
||||
OPCODE(0xde, o60_deleteFile);
|
||||
OPCODE(0xdf, o60_rename);
|
||||
/* E0 */
|
||||
OPCODE(0xe0, o60_soundOps);
|
||||
OPCODE(0xe1, o6_getPixel);
|
||||
OPCODE(0xe2, o60_localizeArrayToScript);
|
||||
OPCODE(0xe3, o6_pickVarRandom);
|
||||
/* E4 */
|
||||
OPCODE(0xe4, o6_setBoxSet);
|
||||
/* E8 */
|
||||
OPCODE(0xe9, o60_seekFilePos);
|
||||
OPCODE(0xea, o60_redimArray);
|
||||
OPCODE(0xeb, o60_readFilePos);
|
||||
/* EC */
|
||||
OPCODE(0xec, o71_copyString);
|
||||
OPCODE(0xed, o71_getStringWidth);
|
||||
OPCODE(0xee, o70_getStringLen);
|
||||
OPCODE(0xef, o71_appendString);
|
||||
/* F0 */
|
||||
OPCODE(0xf0, o71_concatString);
|
||||
OPCODE(0xf1, o71_compareString);
|
||||
OPCODE(0xf2, o70_isResourceLoaded);
|
||||
OPCODE(0xf3, o70_readINI);
|
||||
/* F4 */
|
||||
OPCODE(0xf4, o70_writeINI);
|
||||
OPCODE(0xf5, o71_getStringLenForWidth);
|
||||
OPCODE(0xf6, o71_getCharIndexInString);
|
||||
OPCODE(0xf7, o71_findBox);
|
||||
/* F8 */
|
||||
OPCODE(0xf9, o70_createDirectory);
|
||||
OPCODE(0xfa, o70_setSystemMessage);
|
||||
OPCODE(0xfb, o71_polygonOps);
|
||||
/* FC */
|
||||
OPCODE(0xfc, o71_polygonHit);
|
||||
}
|
||||
|
||||
|
@ -45,257 +45,60 @@ namespace Scumm {
|
||||
#define OPCODE(i, x) _opcodes[i]._OPCODE(ScummEngine_v72he, x)
|
||||
|
||||
void ScummEngine_v72he::setupOpcodes() {
|
||||
/* 00 */
|
||||
OPCODE(0x00, o6_pushByte);
|
||||
OPCODE(0x01, o6_pushWord);
|
||||
ScummEngine_v71he::setupOpcodes();
|
||||
|
||||
OPCODE(0x02, o72_pushDWord);
|
||||
OPCODE(0x03, o6_pushWordVar);
|
||||
/* 04 */
|
||||
OPCODE(0x04, o72_getScriptString);
|
||||
OPCODE(0x07, o6_wordArrayRead);
|
||||
/* 08 */
|
||||
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);
|
||||
_opcodes[0x0a].setProc(0, 0);
|
||||
OPCODE(0x1b, o72_isAnyOf);
|
||||
/* 1C */
|
||||
/* 20 */
|
||||
/* 24 */
|
||||
/* 28 */
|
||||
/* 2C */
|
||||
/* 30 */
|
||||
/* 34 */
|
||||
/* 38 */
|
||||
/* 3C */
|
||||
/* 40 */
|
||||
OPCODE(0x43, o6_writeWordVar);
|
||||
/* 44 */
|
||||
OPCODE(0x47, o6_wordArrayWrite);
|
||||
/* 48 */
|
||||
OPCODE(0x4b, o6_wordArrayIndexedWrite);
|
||||
/* 4C */
|
||||
OPCODE(0x4f, o6_wordVarInc);
|
||||
/* 50 */
|
||||
_opcodes[0x42].setProc(0, 0);
|
||||
_opcodes[0x46].setProc(0, 0);
|
||||
_opcodes[0x4a].setProc(0, 0);
|
||||
_opcodes[0x4e].setProc(0, 0);
|
||||
OPCODE(0x50, o72_resetCutscene);
|
||||
OPCODE(0x52, o72_findObjectWithClassOf);
|
||||
OPCODE(0x53, o6_wordArrayInc);
|
||||
/* 54 */
|
||||
OPCODE(0x54, o72_getObjectImageX);
|
||||
OPCODE(0x55, o72_getObjectImageY);
|
||||
OPCODE(0x56, o72_captureWizImage);
|
||||
OPCODE(0x57, o6_wordVarDec);
|
||||
/* 58 */
|
||||
OPCODE(0x58, o72_getTimer);
|
||||
OPCODE(0x59, o72_setTimer);
|
||||
OPCODE(0x5a, o72_getSoundPosition);
|
||||
OPCODE(0x5b, o6_wordArrayDec);
|
||||
/* 5C */
|
||||
OPCODE(0x5c, o6_if);
|
||||
OPCODE(0x5d, o6_ifNot);
|
||||
OPCODE(0x5e, o72_startScript);
|
||||
OPCODE(0x5f, o6_startScriptQuick);
|
||||
/* 60 */
|
||||
OPCODE(0x60, o72_startObject);
|
||||
OPCODE(0x61, o72_drawObject);
|
||||
OPCODE(0x62, o72_printWizImage);
|
||||
OPCODE(0x63, o72_getArrayDimSize);
|
||||
/* 64 */
|
||||
OPCODE(0x64, o72_getNumFreeArrays);
|
||||
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, o60_setState);
|
||||
OPCODE(0x71, o6_setOwner);
|
||||
OPCODE(0x72, o6_getOwner);
|
||||
OPCODE(0x73, o6_jump);
|
||||
/* 74 */
|
||||
OPCODE(0x74, o70_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, o70_pickupObject);
|
||||
OPCODE(0x85, o6_loadRoomWithEgo);
|
||||
OPCODE(0x87, o6_getRandomNumber);
|
||||
/* 88 */
|
||||
OPCODE(0x88, o6_getRandomNumberRange);
|
||||
OPCODE(0x8a, o6_getActorMoving);
|
||||
OPCODE(0x8b, o6_isScriptRunning);
|
||||
/* 8C */
|
||||
OPCODE(0x8c, o70_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);
|
||||
/* 98 */
|
||||
OPCODE(0x98, o6_isSoundRunning);
|
||||
OPCODE(0x99, o6_setBoxFlags);
|
||||
OPCODE(0x9b, o70_resourceRoutines);
|
||||
/* 9C */
|
||||
_opcodes[0x97].setProc(0, 0); // was: o6_setObjectName
|
||||
OPCODE(0x9c, o72_roomOps);
|
||||
OPCODE(0x9d, o72_actorOps);
|
||||
OPCODE(0x9e, o72_verbOps);
|
||||
OPCODE(0x9f, o6_getActorFromXY);
|
||||
/* A0 */
|
||||
OPCODE(0xa0, o72_findObject);
|
||||
OPCODE(0xa1, o6_pseudoRoom);
|
||||
OPCODE(0xa2, o6_getActorElevation);
|
||||
OPCODE(0xa3, o6_getVerbEntrypoint);
|
||||
/* A4 */
|
||||
OPCODE(0xa4, o72_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(0xad, o6_isAnyOf);
|
||||
OPCODE(0xae, o72_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, o72_talkActor);
|
||||
OPCODE(0xbb, o72_talkEgo);
|
||||
/* BC */
|
||||
OPCODE(0xbc, o72_dimArray);
|
||||
OPCODE(0xbd, o6_stopObjectCode);
|
||||
OPCODE(0xbe, o6_startObjectQuick);
|
||||
OPCODE(0xbf, o6_startScriptQuick2);
|
||||
/* C0 */
|
||||
OPCODE(0xc0, o72_dim2dimArray);
|
||||
OPCODE(0xc1, o72_traceStatus);
|
||||
/* C4 */
|
||||
OPCODE(0xc4, o6_abs);
|
||||
OPCODE(0xc5, o6_distObjectObject);
|
||||
OPCODE(0xc6, o6_distObjectPt);
|
||||
OPCODE(0xc7, o6_distPtPt);
|
||||
/* C8 */
|
||||
OPCODE(0xc8, o72_kernelGetFunctions);
|
||||
OPCODE(0xc9, o71_kernelSetFunctions);
|
||||
OPCODE(0xca, o6_delayFrames);
|
||||
OPCODE(0xcb, o6_pickOneOf);
|
||||
/* CC */
|
||||
OPCODE(0xcc, o6_pickOneOfDefault);
|
||||
OPCODE(0xcd, o6_stampObject);
|
||||
OPCODE(0xce, o72_drawWizImage);
|
||||
OPCODE(0xcf, o72_debugInput);
|
||||
/* D0 */
|
||||
OPCODE(0xd0, o6_getDateTime);
|
||||
OPCODE(0xd1, o6_stopTalking);
|
||||
OPCODE(0xd2, o6_getAnimateVariable);
|
||||
/* D4 */
|
||||
OPCODE(0xd4, o6_shuffle);
|
||||
OPCODE(0xd5, o72_jumpToScript);
|
||||
OPCODE(0xd6, o6_band);
|
||||
OPCODE(0xd7, o6_bor);
|
||||
/* D8 */
|
||||
OPCODE(0xd8, o6_isRoomScriptRunning);
|
||||
OPCODE(0xd9, o60_closeFile);
|
||||
OPCODE(0xda, o72_openFile);
|
||||
OPCODE(0xdb, o72_readFile);
|
||||
/* DC */
|
||||
OPCODE(0xdc, o72_writeFile);
|
||||
OPCODE(0xdd, o72_findAllObjects);
|
||||
OPCODE(0xde, o72_deleteFile);
|
||||
OPCODE(0xdf, o72_rename);
|
||||
/* E0 */
|
||||
OPCODE(0xe0, o60_soundOps);
|
||||
OPCODE(0xe1, o72_getPixel);
|
||||
OPCODE(0xe2, o60_localizeArrayToScript);
|
||||
OPCODE(0xe3, o72_pickVarRandom);
|
||||
/* E4 */
|
||||
OPCODE(0xe4, o6_setBoxSet);
|
||||
/* E8 */
|
||||
OPCODE(0xe9, o60_seekFilePos);
|
||||
OPCODE(0xea, o72_redimArray);
|
||||
OPCODE(0xeb, o60_readFilePos);
|
||||
/* EC */
|
||||
OPCODE(0xec, o71_copyString);
|
||||
OPCODE(0xed, o71_getStringWidth);
|
||||
OPCODE(0xee, o70_getStringLen);
|
||||
OPCODE(0xef, o71_appendString);
|
||||
/* F0 */
|
||||
OPCODE(0xf0, o71_concatString);
|
||||
OPCODE(0xf1, o71_compareString);
|
||||
OPCODE(0xf2, o70_isResourceLoaded);
|
||||
OPCODE(0xf3, o72_readINI);
|
||||
/* F4 */
|
||||
OPCODE(0xf4, o72_writeINI);
|
||||
OPCODE(0xf5, o71_getStringLenForWidth);
|
||||
OPCODE(0xf6, o71_getCharIndexInString);
|
||||
OPCODE(0xf7, o71_findBox);
|
||||
/* F8 */
|
||||
OPCODE(0xf8, o72_getResourceSize);
|
||||
OPCODE(0xf9, o72_createDirectory);
|
||||
OPCODE(0xfa, o72_setSystemMessage);
|
||||
OPCODE(0xfb, o71_polygonOps);
|
||||
/* FC */
|
||||
OPCODE(0xfc, o71_polygonHit);
|
||||
}
|
||||
|
||||
static const int arrayDataSizes[] = { 0, 1, 4, 8, 8, 16, 32 };
|
||||
|
@ -42,264 +42,28 @@ namespace Scumm {
|
||||
#define OPCODE(i, x) _opcodes[i]._OPCODE(ScummEngine_v80he, x)
|
||||
|
||||
void ScummEngine_v80he::setupOpcodes() {
|
||||
/* 00 */
|
||||
OPCODE(0x00, o6_pushByte);
|
||||
OPCODE(0x01, o6_pushWord);
|
||||
OPCODE(0x02, o72_pushDWord);
|
||||
OPCODE(0x03, o6_pushWordVar);
|
||||
/* 04 */
|
||||
OPCODE(0x04, o72_getScriptString);
|
||||
OPCODE(0x07, o6_wordArrayRead);
|
||||
/* 08 */
|
||||
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, o72_isAnyOf);
|
||||
/* 1C */
|
||||
/* 20 */
|
||||
/* 24 */
|
||||
/* 28 */
|
||||
/* 2C */
|
||||
/* 30 */
|
||||
/* 34 */
|
||||
/* 38 */
|
||||
/* 3C */
|
||||
/* 40 */
|
||||
OPCODE(0x43, o6_writeWordVar);
|
||||
/* 44 */
|
||||
ScummEngine_v72he::setupOpcodes();
|
||||
|
||||
OPCODE(0x45, o80_createSound);
|
||||
OPCODE(0x46, o80_getFileSize);
|
||||
OPCODE(0x47, o6_wordArrayWrite);
|
||||
/* 48 */
|
||||
OPCODE(0x48, o80_stringToInt);
|
||||
OPCODE(0x49, o80_getSoundVar);
|
||||
OPCODE(0x4a, o80_localizeArrayToRoom);
|
||||
OPCODE(0x4b, o6_wordArrayIndexedWrite);
|
||||
/* 4C */
|
||||
OPCODE(0x4c, o80_sourceDebug);
|
||||
OPCODE(0x4d, o80_readConfigFile);
|
||||
OPCODE(0x4e, o80_writeConfigFile);
|
||||
OPCODE(0x4f, o6_wordVarInc);
|
||||
/* 50 */
|
||||
OPCODE(0x50, o72_resetCutscene);
|
||||
OPCODE(0x52, o72_findObjectWithClassOf);
|
||||
OPCODE(0x53, o6_wordArrayInc);
|
||||
/* 54 */
|
||||
OPCODE(0x54, o72_getObjectImageX);
|
||||
OPCODE(0x55, o72_getObjectImageY);
|
||||
OPCODE(0x56, o72_captureWizImage);
|
||||
OPCODE(0x57, o6_wordVarDec);
|
||||
/* 58 */
|
||||
OPCODE(0x58, o72_getTimer);
|
||||
OPCODE(0x59, o72_setTimer);
|
||||
OPCODE(0x5a, o72_getSoundPosition);
|
||||
OPCODE(0x5b, o6_wordArrayDec);
|
||||
/* 5C */
|
||||
OPCODE(0x5c, o6_if);
|
||||
OPCODE(0x5d, o6_ifNot);
|
||||
OPCODE(0x5e, o72_startScript);
|
||||
OPCODE(0x5f, o6_startScriptQuick);
|
||||
/* 60 */
|
||||
OPCODE(0x60, o72_startObject);
|
||||
OPCODE(0x61, o72_drawObject);
|
||||
OPCODE(0x62, o72_printWizImage);
|
||||
OPCODE(0x63, o72_getArrayDimSize);
|
||||
/* 64 */
|
||||
OPCODE(0x64, o72_getNumFreeArrays);
|
||||
OPCODE(0x65, o6_stopObjectCode);
|
||||
OPCODE(0x66, o6_stopObjectCode);
|
||||
OPCODE(0x67, o6_endCutscene);
|
||||
/* 68 */
|
||||
OPCODE(0x68, o6_cutscene);
|
||||
OPCODE(0x6a, o6_freezeUnfreeze);
|
||||
_opcodes[0x69].setProc(0, 0);
|
||||
OPCODE(0x6b, o80_cursorCommand);
|
||||
/* 6C */
|
||||
OPCODE(0x6c, o6_breakHere);
|
||||
OPCODE(0x6d, o6_ifClassOfIs);
|
||||
OPCODE(0x6e, o6_setClass);
|
||||
OPCODE(0x6f, o6_getState);
|
||||
/* 70 */
|
||||
OPCODE(0x70, o80_setState);
|
||||
OPCODE(0x71, o6_setOwner);
|
||||
OPCODE(0x72, o6_getOwner);
|
||||
OPCODE(0x73, o6_jump);
|
||||
/* 74 */
|
||||
OPCODE(0x74, o70_startSound);
|
||||
OPCODE(0x75, o6_stopSound);
|
||||
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, o70_pickupObject);
|
||||
OPCODE(0x85, o6_loadRoomWithEgo);
|
||||
OPCODE(0x87, o6_getRandomNumber);
|
||||
/* 88 */
|
||||
OPCODE(0x88, o6_getRandomNumberRange);
|
||||
OPCODE(0x8a, o6_getActorMoving);
|
||||
OPCODE(0x8b, o6_isScriptRunning);
|
||||
/* 8C */
|
||||
OPCODE(0x8c, o70_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(0x95, o6_beginOverride);
|
||||
OPCODE(0x96, o6_endOverride);
|
||||
/* 98 */
|
||||
OPCODE(0x98, o6_isSoundRunning);
|
||||
OPCODE(0x99, o6_setBoxFlags);
|
||||
OPCODE(0x9b, o70_resourceRoutines);
|
||||
/* 9C */
|
||||
OPCODE(0x9c, o72_roomOps);
|
||||
OPCODE(0x9d, o72_actorOps);
|
||||
OPCODE(0x9f, o6_getActorFromXY);
|
||||
/* A0 */
|
||||
OPCODE(0xa0, o72_findObject);
|
||||
OPCODE(0xa1, o6_pseudoRoom);
|
||||
OPCODE(0xa2, o6_getActorElevation);
|
||||
OPCODE(0xa3, o6_getVerbEntrypoint);
|
||||
/* A4 */
|
||||
OPCODE(0xa4, o72_arrayOps);
|
||||
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 */
|
||||
_opcodes[0x76].setProc(0, 0);
|
||||
_opcodes[0x94].setProc(0, 0);
|
||||
_opcodes[0x9e].setProc(0, 0);
|
||||
_opcodes[0xa5].setProc(0, 0);
|
||||
OPCODE(0xac, o80_drawWizPolygon);
|
||||
OPCODE(0xad, o6_isAnyOf);
|
||||
OPCODE(0xae, o72_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, o72_talkActor);
|
||||
OPCODE(0xbb, o72_talkEgo);
|
||||
/* BC */
|
||||
OPCODE(0xbc, o72_dimArray);
|
||||
OPCODE(0xbd, o6_stopObjectCode);
|
||||
OPCODE(0xbe, o6_startObjectQuick);
|
||||
OPCODE(0xbf, o6_startScriptQuick2);
|
||||
/* C0 */
|
||||
OPCODE(0xc0, o72_dim2dimArray);
|
||||
OPCODE(0xc1, o72_traceStatus);
|
||||
/* C4 */
|
||||
OPCODE(0xc4, o6_abs);
|
||||
OPCODE(0xc5, o6_distObjectObject);
|
||||
OPCODE(0xc6, o6_distObjectPt);
|
||||
OPCODE(0xc7, o6_distPtPt);
|
||||
/* C8 */
|
||||
OPCODE(0xc8, o72_kernelGetFunctions);
|
||||
OPCODE(0xc9, o71_kernelSetFunctions);
|
||||
OPCODE(0xca, o6_delayFrames);
|
||||
OPCODE(0xcb, o6_pickOneOf);
|
||||
/* CC */
|
||||
OPCODE(0xcc, o6_pickOneOfDefault);
|
||||
OPCODE(0xcd, o6_stampObject);
|
||||
OPCODE(0xce, o72_drawWizImage);
|
||||
OPCODE(0xcf, o72_debugInput);
|
||||
/* D0 */
|
||||
OPCODE(0xd0, o6_getDateTime);
|
||||
OPCODE(0xd1, o6_stopTalking);
|
||||
OPCODE(0xd2, o6_getAnimateVariable);
|
||||
/* D4 */
|
||||
OPCODE(0xd4, o6_shuffle);
|
||||
OPCODE(0xd5, o72_jumpToScript);
|
||||
OPCODE(0xd6, o6_band);
|
||||
OPCODE(0xd7, o6_bor);
|
||||
/* D8 */
|
||||
OPCODE(0xd8, o6_isRoomScriptRunning);
|
||||
OPCODE(0xd9, o60_closeFile);
|
||||
OPCODE(0xda, o72_openFile);
|
||||
OPCODE(0xdb, o72_readFile);
|
||||
/* DC */
|
||||
OPCODE(0xdc, o72_writeFile);
|
||||
OPCODE(0xdd, o72_findAllObjects);
|
||||
OPCODE(0xde, o72_deleteFile);
|
||||
OPCODE(0xdf, o72_rename);
|
||||
/* E0 */
|
||||
OPCODE(0xe0, o80_drawLine);
|
||||
OPCODE(0xe1, o72_getPixel);
|
||||
OPCODE(0xe2, o60_localizeArrayToScript);
|
||||
OPCODE(0xe3, o80_pickVarRandom);
|
||||
/* E4 */
|
||||
OPCODE(0xe4, o6_setBoxSet);
|
||||
/* E8 */
|
||||
OPCODE(0xe9, o60_seekFilePos);
|
||||
OPCODE(0xea, o72_redimArray);
|
||||
OPCODE(0xeb, o60_readFilePos);
|
||||
/* EC */
|
||||
OPCODE(0xec, o71_copyString);
|
||||
OPCODE(0xed, o71_getStringWidth);
|
||||
OPCODE(0xee, o70_getStringLen);
|
||||
OPCODE(0xef, o71_appendString);
|
||||
/* F0 */
|
||||
OPCODE(0xf0, o71_concatString);
|
||||
OPCODE(0xf1, o71_compareString);
|
||||
OPCODE(0xf2, o70_isResourceLoaded);
|
||||
OPCODE(0xf3, o72_readINI);
|
||||
/* F4 */
|
||||
OPCODE(0xf4, o72_writeINI);
|
||||
OPCODE(0xf5, o71_getStringLenForWidth);
|
||||
OPCODE(0xf6, o71_getCharIndexInString);
|
||||
OPCODE(0xf7, o71_findBox);
|
||||
/* F8 */
|
||||
OPCODE(0xf8, o72_getResourceSize);
|
||||
OPCODE(0xf9, o72_createDirectory);
|
||||
OPCODE(0xfa, o72_setSystemMessage);
|
||||
OPCODE(0xfb, o71_polygonOps);
|
||||
/* FC */
|
||||
OPCODE(0xfc, o71_polygonHit);
|
||||
}
|
||||
|
||||
|
||||
void ScummEngine_v80he::o80_createSound() {
|
||||
byte subOp = fetchScriptByte();
|
||||
|
||||
|
@ -41,37 +41,10 @@ namespace Scumm {
|
||||
#define OPCODE(i, x) _opcodes[i]._OPCODE(ScummEngine_v90he, x)
|
||||
|
||||
void ScummEngine_v90he::setupOpcodes() {
|
||||
/* 00 */
|
||||
OPCODE(0x00, o6_pushByte);
|
||||
OPCODE(0x01, o6_pushWord);
|
||||
OPCODE(0x02, o72_pushDWord);
|
||||
OPCODE(0x03, o6_pushWordVar);
|
||||
/* 04 */
|
||||
OPCODE(0x04, o72_getScriptString);
|
||||
OPCODE(0x07, o6_wordArrayRead);
|
||||
/* 08 */
|
||||
ScummEngine_v80he::setupOpcodes();
|
||||
|
||||
OPCODE(0x0a, o90_dup_n);
|
||||
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, o72_isAnyOf);
|
||||
|
||||
/* 1C */
|
||||
OPCODE(0x1c, o90_wizImageOps);
|
||||
OPCODE(0x1d, o90_min);
|
||||
@ -111,227 +84,15 @@ void ScummEngine_v90he::setupOpcodes() {
|
||||
OPCODE(0x38, o90_redim2dimArray);
|
||||
OPCODE(0x39, o90_getLinesIntersectionPoint);
|
||||
OPCODE(0x3a, o90_sortArray);
|
||||
/* 3C */
|
||||
/* 40 */
|
||||
OPCODE(0x43, o6_writeWordVar);
|
||||
/* 44 */
|
||||
|
||||
OPCODE(0x44, o90_getObjectData);
|
||||
OPCODE(0x45, o80_createSound);
|
||||
OPCODE(0x46, o80_getFileSize);
|
||||
OPCODE(0x47, o6_wordArrayWrite);
|
||||
/* 48 */
|
||||
OPCODE(0x48, o80_stringToInt);
|
||||
OPCODE(0x49, o80_getSoundVar);
|
||||
OPCODE(0x4a, o80_localizeArrayToRoom);
|
||||
OPCODE(0x4b, o6_wordArrayIndexedWrite);
|
||||
/* 4C */
|
||||
OPCODE(0x4c, o80_sourceDebug);
|
||||
OPCODE(0x4d, o80_readConfigFile);
|
||||
OPCODE(0x4e, o80_writeConfigFile);
|
||||
OPCODE(0x4f, o6_wordVarInc);
|
||||
/* 50 */
|
||||
OPCODE(0x50, o72_resetCutscene);
|
||||
OPCODE(0x52, o72_findObjectWithClassOf);
|
||||
OPCODE(0x53, o6_wordArrayInc);
|
||||
/* 54 */
|
||||
OPCODE(0x54, o72_getObjectImageX);
|
||||
OPCODE(0x55, o72_getObjectImageY);
|
||||
OPCODE(0x56, o72_captureWizImage);
|
||||
OPCODE(0x57, o6_wordVarDec);
|
||||
/* 58 */
|
||||
OPCODE(0x58, o72_getTimer);
|
||||
OPCODE(0x59, o72_setTimer);
|
||||
OPCODE(0x5a, o72_getSoundPosition);
|
||||
OPCODE(0x5b, o6_wordArrayDec);
|
||||
/* 5C */
|
||||
OPCODE(0x5c, o6_if);
|
||||
OPCODE(0x5d, o6_ifNot);
|
||||
OPCODE(0x5e, o72_startScript);
|
||||
OPCODE(0x5f, o6_startScriptQuick);
|
||||
/* 60 */
|
||||
OPCODE(0x60, o72_startObject);
|
||||
OPCODE(0x61, o72_drawObject);
|
||||
OPCODE(0x62, o72_printWizImage);
|
||||
OPCODE(0x63, o72_getArrayDimSize);
|
||||
/* 64 */
|
||||
OPCODE(0x64, o72_getNumFreeArrays);
|
||||
OPCODE(0x65, o6_stopObjectCode);
|
||||
OPCODE(0x66, o6_stopObjectCode);
|
||||
OPCODE(0x67, o6_endCutscene);
|
||||
/* 68 */
|
||||
OPCODE(0x68, o6_cutscene);
|
||||
OPCODE(0x6a, o6_freezeUnfreeze);
|
||||
OPCODE(0x6b, o80_cursorCommand);
|
||||
/* 6C */
|
||||
OPCODE(0x6c, o6_breakHere);
|
||||
OPCODE(0x6d, o6_ifClassOfIs);
|
||||
OPCODE(0x6e, o6_setClass);
|
||||
OPCODE(0x6f, o6_getState);
|
||||
/* 70 */
|
||||
OPCODE(0x70, o80_setState);
|
||||
OPCODE(0x71, o6_setOwner);
|
||||
OPCODE(0x72, o6_getOwner);
|
||||
OPCODE(0x73, o6_jump);
|
||||
/* 74 */
|
||||
OPCODE(0x74, o70_startSound);
|
||||
OPCODE(0x75, o6_stopSound);
|
||||
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, o70_pickupObject);
|
||||
OPCODE(0x85, o6_loadRoomWithEgo);
|
||||
OPCODE(0x87, o6_getRandomNumber);
|
||||
/* 88 */
|
||||
OPCODE(0x88, o6_getRandomNumberRange);
|
||||
OPCODE(0x8a, o6_getActorMoving);
|
||||
OPCODE(0x8b, o6_isScriptRunning);
|
||||
/* 8C */
|
||||
OPCODE(0x8c, o70_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, o90_getPaletteData);
|
||||
OPCODE(0x95, o6_beginOverride);
|
||||
OPCODE(0x96, o6_endOverride);
|
||||
/* 98 */
|
||||
OPCODE(0x98, o6_isSoundRunning);
|
||||
OPCODE(0x99, o6_setBoxFlags);
|
||||
OPCODE(0x9b, o70_resourceRoutines);
|
||||
/* 9C */
|
||||
OPCODE(0x9c, o72_roomOps);
|
||||
OPCODE(0x9d, o72_actorOps);
|
||||
OPCODE(0x9e, o90_paletteOps);
|
||||
OPCODE(0x9f, o6_getActorFromXY);
|
||||
/* A0 */
|
||||
OPCODE(0xa0, o72_findObject);
|
||||
OPCODE(0xa1, o6_pseudoRoom);
|
||||
OPCODE(0xa2, o6_getActorElevation);
|
||||
OPCODE(0xa3, o6_getVerbEntrypoint);
|
||||
/* A4 */
|
||||
OPCODE(0xa4, o72_arrayOps);
|
||||
OPCODE(0xa5, o90_fontUnk);
|
||||
OPCODE(0xa6, o6_drawBox);
|
||||
OPCODE(0xa7, o6_pop);
|
||||
/* A8 */
|
||||
OPCODE(0xa8, o6_getActorWidth);
|
||||
OPCODE(0xa9, o6_wait);
|
||||
OPCODE(0xaa, o6_getActorScaleX);
|
||||
OPCODE(0xab, o90_getActorAnimProgress);
|
||||
/* AC */
|
||||
OPCODE(0xac, o80_drawWizPolygon);
|
||||
OPCODE(0xad, o6_isAnyOf);
|
||||
OPCODE(0xae, o72_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, o72_talkActor);
|
||||
OPCODE(0xbb, o72_talkEgo);
|
||||
/* BC */
|
||||
OPCODE(0xbc, o72_dimArray);
|
||||
OPCODE(0xbd, o6_stopObjectCode);
|
||||
OPCODE(0xbe, o6_startObjectQuick);
|
||||
OPCODE(0xbf, o6_startScriptQuick2);
|
||||
/* C0 */
|
||||
OPCODE(0xc0, o72_dim2dimArray);
|
||||
OPCODE(0xc1, o72_traceStatus);
|
||||
/* C4 */
|
||||
OPCODE(0xc4, o6_abs);
|
||||
OPCODE(0xc5, o6_distObjectObject);
|
||||
OPCODE(0xc6, o6_distObjectPt);
|
||||
OPCODE(0xc7, o6_distPtPt);
|
||||
/* C8 */
|
||||
OPCODE(0xc8, o90_kernelGetFunctions);
|
||||
OPCODE(0xc9, o90_kernelSetFunctions);
|
||||
OPCODE(0xca, o6_delayFrames);
|
||||
OPCODE(0xcb, o6_pickOneOf);
|
||||
/* CC */
|
||||
OPCODE(0xcc, o6_pickOneOfDefault);
|
||||
OPCODE(0xcd, o6_stampObject);
|
||||
OPCODE(0xce, o72_drawWizImage);
|
||||
OPCODE(0xcf, o72_debugInput);
|
||||
/* D0 */
|
||||
OPCODE(0xd0, o6_getDateTime);
|
||||
OPCODE(0xd1, o6_stopTalking);
|
||||
OPCODE(0xd2, o6_getAnimateVariable);
|
||||
/* D4 */
|
||||
OPCODE(0xd4, o6_shuffle);
|
||||
OPCODE(0xd5, o72_jumpToScript);
|
||||
OPCODE(0xd6, o6_band);
|
||||
OPCODE(0xd7, o6_bor);
|
||||
/* D8 */
|
||||
OPCODE(0xd8, o6_isRoomScriptRunning);
|
||||
OPCODE(0xd9, o60_closeFile);
|
||||
OPCODE(0xda, o72_openFile);
|
||||
OPCODE(0xdb, o72_readFile);
|
||||
/* DC */
|
||||
OPCODE(0xdc, o72_writeFile);
|
||||
OPCODE(0xdd, o72_findAllObjects);
|
||||
OPCODE(0xde, o72_deleteFile);
|
||||
OPCODE(0xdf, o72_rename);
|
||||
/* E0 */
|
||||
OPCODE(0xe0, o80_drawLine);
|
||||
OPCODE(0xe1, o72_getPixel);
|
||||
OPCODE(0xe2, o60_localizeArrayToScript);
|
||||
OPCODE(0xe3, o80_pickVarRandom);
|
||||
/* E4 */
|
||||
OPCODE(0xe4, o6_setBoxSet);
|
||||
/* E8 */
|
||||
OPCODE(0xe9, o60_seekFilePos);
|
||||
OPCODE(0xea, o72_redimArray);
|
||||
OPCODE(0xeb, o60_readFilePos);
|
||||
/* EC */
|
||||
OPCODE(0xec, o71_copyString);
|
||||
OPCODE(0xed, o71_getStringWidth);
|
||||
OPCODE(0xee, o70_getStringLen);
|
||||
OPCODE(0xef, o71_appendString);
|
||||
/* F0 */
|
||||
OPCODE(0xf0, o71_concatString);
|
||||
OPCODE(0xf1, o71_compareString);
|
||||
OPCODE(0xf2, o70_isResourceLoaded);
|
||||
OPCODE(0xf3, o72_readINI);
|
||||
/* F4 */
|
||||
OPCODE(0xf4, o72_writeINI);
|
||||
OPCODE(0xf5, o71_getStringLenForWidth);
|
||||
OPCODE(0xf6, o71_getCharIndexInString);
|
||||
OPCODE(0xf7, o71_findBox);
|
||||
/* F8 */
|
||||
OPCODE(0xf8, o72_getResourceSize);
|
||||
OPCODE(0xf9, o72_createDirectory);
|
||||
OPCODE(0xfa, o72_setSystemMessage);
|
||||
OPCODE(0xfb, o71_polygonOps);
|
||||
/* FC */
|
||||
OPCODE(0xfc, o71_polygonHit);
|
||||
}
|
||||
|
||||
void ScummEngine_v90he::o90_dup_n() {
|
||||
|
@ -232,7 +232,6 @@ void ScummEngine_v6::setupOpcodes() {
|
||||
OPCODE(0xbb, o6_talkEgo);
|
||||
/* BC */
|
||||
OPCODE(0xbc, o6_dimArray);
|
||||
OPCODE(0xbd, o6_dummy);
|
||||
OPCODE(0xbe, o6_startObjectQuick);
|
||||
OPCODE(0xbf, o6_startScriptQuick2);
|
||||
/* C0 */
|
||||
@ -272,10 +271,6 @@ void ScummEngine_v6::setupOpcodes() {
|
||||
/* EC */
|
||||
OPCODE(0xec, o6_getActorLayer);
|
||||
OPCODE(0xed, o6_getObjectNewDir);
|
||||
/* F0 */
|
||||
/* F4 */
|
||||
/* F8 */
|
||||
/* FC */
|
||||
}
|
||||
|
||||
int ScummEngine_v6::popRoomAndObj(int *room) {
|
||||
@ -2357,9 +2352,6 @@ void ScummEngine_v6::o6_dimArray() {
|
||||
}
|
||||
|
||||
void ScummEngine_v6::o6_dummy() {
|
||||
if (_game.heversion >= 60) {
|
||||
stopObjectCode();
|
||||
}
|
||||
}
|
||||
|
||||
void ScummEngine_v6::o6_dim2dimArray() {
|
||||
|
Loading…
x
Reference in New Issue
Block a user