diff options
author | Max Horn | 2003-05-22 22:42:44 +0000 |
---|---|---|
committer | Max Horn | 2003-05-22 22:42:44 +0000 |
commit | 2b13ad92e4f21f5d91c2bb711b8ec12aea3ca5da (patch) | |
tree | 0639b5e4118ac928c4eb044b0a69bab373a116f8 | |
parent | 1383ccbdbe0de2a7777c9d8b5d786d7b8a48b67e (diff) | |
download | scummvm-rg350-2b13ad92e4f21f5d91c2bb711b8ec12aea3ca5da.tar.gz scummvm-rg350-2b13ad92e4f21f5d91c2bb711b8ec12aea3ca5da.tar.bz2 scummvm-rg350-2b13ad92e4f21f5d91c2bb711b8ec12aea3ca5da.zip |
fixed Zak cashcard
svn-id: r7836
-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; |