diff options
-rw-r--r-- | scumm/intern.h | 2 | ||||
-rw-r--r-- | scumm/script_v2.cpp | 22 |
2 files changed, 20 insertions, 4 deletions
diff --git a/scumm/intern.h b/scumm/intern.h index 0008109788..c2a056e747 100644 --- a/scumm/intern.h +++ b/scumm/intern.h @@ -217,6 +217,7 @@ protected: /* Version 2 script opcodes */ void o2_actorFromPos(); void o2_actorSet(); + void o2_add(); void o2_addIndirect(); void o2_animateActor(); void o2_assignVarByte(); @@ -271,6 +272,7 @@ protected: void o2_setState04(); void o2_setState08(); void o2_startScript(); + void o2_subtract(); void o2_subIndirect(); void o2_verbOps(); void o2_waitForActor(); diff --git a/scumm/script_v2.cpp b/scumm/script_v2.cpp index 632a3c2ffe..5cfda5026a 100644 --- a/scumm/script_v2.cpp +++ b/scumm/script_v2.cpp @@ -105,7 +105,7 @@ void Scumm_v2::setupOpcodes() { /* 38 */ OPCODE(o5_lessOrEqual), OPCODE(o2_doSentence), - OPCODE(o5_subtract), + OPCODE(o2_subtract), OPCODE(o2_waitForActor), /* 3C */ OPCODE(o5_stopSound), @@ -145,7 +145,7 @@ void Scumm_v2::setupOpcodes() { /* 58 */ OPCODE(o2_beginOverride), OPCODE(o2_doSentence), - OPCODE(o5_add), + OPCODE(o2_add), OPCODE(o2_setBitVar), /* 5C */ OPCODE(o2_dummy), @@ -265,7 +265,7 @@ void Scumm_v2::setupOpcodes() { /* B8 */ OPCODE(o5_lessOrEqual), OPCODE(o2_doSentence), - OPCODE(o5_subtract), + OPCODE(o2_subtract), OPCODE(o2_waitForActor), /* BC */ OPCODE(o5_stopSound), @@ -305,7 +305,7 @@ void Scumm_v2::setupOpcodes() { /* D8 */ OPCODE(o5_printEgo), OPCODE(o2_doSentence), - OPCODE(o5_add), + OPCODE(o2_add), OPCODE(o2_setBitVar), /* DC */ OPCODE(o2_dummy), @@ -627,6 +627,20 @@ void Scumm_v2::o2_subIndirect() { _scummVars[_resultVarNumber] -= a; } +void Scumm_v2::o2_add() { + int a; + getResultPos(); + a = getVarOrDirectWord(0x80); + _scummVars[_resultVarNumber] += a; +} + +void Scumm_v2::o2_subtract() { + int a; + getResultPos(); + a = getVarOrDirectWord(0x80); + _scummVars[_resultVarNumber] -= a; +} + void Scumm_v2::o2_waitForActor() { if (derefActorSafe(getVarOrDirectByte(0x80), "o2_waitForActor")->moving) { _scriptPointer -= 2; |