diff options
-rw-r--r-- | scumm/intern.h | 1 | ||||
-rw-r--r-- | scumm/script_v80he.cpp | 9 | ||||
-rw-r--r-- | scumm/script_v90he.cpp | 28 | ||||
-rw-r--r-- | scumm/scumm.cpp | 1 |
4 files changed, 29 insertions, 10 deletions
diff --git a/scumm/intern.h b/scumm/intern.h index 5aa22cded5..d28876db6a 100644 --- a/scumm/intern.h +++ b/scumm/intern.h @@ -896,6 +896,7 @@ protected: void o90_unknown3A(); void o90_unknown94(); void o90_unknown9E(); + void o90_unknownA5(); void o90_getActorAnimProgress(); void o90_unknownCF(); }; diff --git a/scumm/script_v80he.cpp b/scumm/script_v80he.cpp index 909d1378e1..53751ca675 100644 --- a/scumm/script_v80he.cpp +++ b/scumm/script_v80he.cpp @@ -33,7 +33,6 @@ #include "scumm/resource_v7he.h" #include "scumm/scumm.h" #include "scumm/sound.h" -#include "scumm/verbs.h" #include "sound/mididrv.h" #include "sound/mixer.h" @@ -230,7 +229,7 @@ void ScummEngine_v80he::setupOpcodes() { OPCODE(o6_findInventory), OPCODE(o6_getInventoryCount), /* 94 */ - OPCODE(o6_getVerbFromXY), + OPCODE(o6_invalid), OPCODE(o6_beginOverride), OPCODE(o6_endOverride), OPCODE(o6_setObjectName), @@ -242,7 +241,7 @@ void ScummEngine_v80he::setupOpcodes() { /* 9C */ OPCODE(o72_roomOps), OPCODE(o72_actorOps), - OPCODE(o72_verbOps), + OPCODE(o6_invalid), OPCODE(o6_getActorFromXY), /* A0 */ OPCODE(o72_findObject), @@ -251,7 +250,7 @@ void ScummEngine_v80he::setupOpcodes() { OPCODE(o6_getVerbEntrypoint), /* A4 */ OPCODE(o72_arrayOps), - OPCODE(o6_saveRestoreVerbs), + OPCODE(o6_invalid), OPCODE(o6_drawBox), OPCODE(o6_pop), /* A8 */ @@ -514,11 +513,9 @@ void ScummEngine_v80he::o80_cursorCommand() { break; case 0x90: // SO_CURSOR_ON Turn cursor on _cursor.state = 1; - verbMouseOver(0); break; case 0x91: // SO_CURSOR_OFF Turn cursor off _cursor.state = 0; - verbMouseOver(0); break; case 0x92: // SO_USERPUT_ON _userPut = 1; diff --git a/scumm/script_v90he.cpp b/scumm/script_v90he.cpp index 7d1cf16881..2d3c703d48 100644 --- a/scumm/script_v90he.cpp +++ b/scumm/script_v90he.cpp @@ -33,7 +33,6 @@ #include "scumm/resource_v7he.h" #include "scumm/scumm.h" #include "scumm/sound.h" -#include "scumm/verbs.h" #include "sound/mididrv.h" #include "sound/mixer.h" @@ -251,7 +250,7 @@ void ScummEngine_v90he::setupOpcodes() { OPCODE(o6_getVerbEntrypoint), /* A4 */ OPCODE(o72_arrayOps), - OPCODE(o6_saveRestoreVerbs), + OPCODE(o90_unknownA5), OPCODE(o6_drawBox), OPCODE(o6_pop), /* A8 */ @@ -1163,15 +1162,38 @@ void ScummEngine_v90he::o90_unknown9E() { debug(1,"o90_unknown9E stub (%d)", subOp); } + + +void ScummEngine_v90he::o90_unknownA5() { + int subOp = fetchScriptByte(); + + switch (subOp) { + case 42: + if (pop() - 1 == 0) + pop(); + break; + case 57: + break; + default: + error("o90_unknownA5: Unknown case %d", subOp); + } + + push(0); + debug(1,"o90_unknownA5 stub (%d)", subOp); +} + void ScummEngine_v90he::o90_getActorAnimProgress() { Actor *a = derefActor(pop(), "o90_getActorAnimProgress"); push(a->getAnimProgress()); } void ScummEngine_v90he::o90_unknownCF() { - byte name[256]; + byte name[255]; copyScriptString(name); + writeVar(0, 0); + defineArray(0, kStringArray, 0, 0, 0, 0); + writeArray(0, 0, 0, 0); push(readVar(0)); } diff --git a/scumm/scumm.cpp b/scumm/scumm.cpp index f629e231e7..ceba06170f 100644 --- a/scumm/scumm.cpp +++ b/scumm/scumm.cpp @@ -245,7 +245,6 @@ static const ScummGameSettings scumm_settings[] = { {"jungle", "Let's Explore the Jungle with Buzzy", GID_HEGAME, 6, 72, MDT_NONE, GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0}, - // There is also a Scummsys.90 version of puttzoo {"puttzoo", "Putt-Putt Saves the Zoo", GID_HEGAME, 6, 72, MDT_NONE, GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES | GF_MULTIPLE_VERSIONS, 0, 0}, {"zoodemo", "Putt-Putt Saves the Zoo (Demo)", GID_HEGAME, 6, 72, MDT_NONE, |