diff --git a/scumm/intern.h b/scumm/intern.h index 69dc788bf9a..981849d41af 100644 --- a/scumm/intern.h +++ b/scumm/intern.h @@ -251,7 +251,7 @@ protected: void o2_isNotEqual(); void o2_equalZero(); void o2_notEqualZero(); - + void o2_startScript(); }; class Scumm_v4 : public Scumm_v3 { diff --git a/scumm/script_v2.cpp b/scumm/script_v2.cpp index 8d6eb1d4878..ef8aeab4868 100644 --- a/scumm/script_v2.cpp +++ b/scumm/script_v2.cpp @@ -115,7 +115,7 @@ void Scumm_v2::setupOpcodes() { /* 40 */ OPCODE(o5_cutscene), OPCODE(o2_putActor), - OPCODE(o5_startScript), + OPCODE(o2_startScript), OPCODE(o5_getActorX), /* 44 */ OPCODE(o2_isLess), @@ -143,7 +143,7 @@ void Scumm_v2::setupOpcodes() { OPCODE(o5_getActorMoving), OPCODE(o2_setState02), /* 58 */ - OPCODE(o5_overRide), + OPCODE(beginOverride), OPCODE(o5_doSentence), OPCODE(o5_add), OPCODE(o2_setBitVar), @@ -191,7 +191,7 @@ void Scumm_v2::setupOpcodes() { OPCODE(o5_isSoundRunning), OPCODE(o5_getActorElevation), OPCODE(o2_walkActorTo), - OPCODE(o5_drawBox), + OPCODE(o2_ifNotState01), /* 80 */ OPCODE(o5_breakHere), OPCODE(o2_putActor), @@ -275,7 +275,7 @@ void Scumm_v2::setupOpcodes() { /* C0 */ OPCODE(o5_endCutscene), OPCODE(o2_putActor), - OPCODE(o5_startScript), + OPCODE(o2_startScript), OPCODE(o5_getActorX), /* C4 */ OPCODE(o2_isLess), @@ -904,3 +904,8 @@ void Scumm_v2::o2_putActor() { a->putActor(x, y, a->room); } + +void Scumm_v2::o2_startScript() { + int script = getVarOrDirectByte(0x80); + runScript(script, 0, 0, 0); // FIXME: Need to confirm runScript parameters/mode +}