diff options
author | Paul Gilbert | 2017-11-18 19:37:29 -0500 |
---|---|---|
committer | Paul Gilbert | 2017-11-18 19:37:29 -0500 |
commit | aa04e311f1b923b6ec8f07e2af1e85cc02dd2a49 (patch) | |
tree | 357dfaf211522493f61228d46c8141969aa57c7c /engines | |
parent | 79f448651dc7efd1232a6d6f3dbb2bebe8705e79 (diff) | |
download | scummvm-rg350-aa04e311f1b923b6ec8f07e2af1e85cc02dd2a49.tar.gz scummvm-rg350-aa04e311f1b923b6ec8f07e2af1e85cc02dd2a49.tar.bz2 scummvm-rg350-aa04e311f1b923b6ec8f07e2af1e85cc02dd2a49.zip |
XEEN: Fixes for cmdTakeOrGive script opcode
Diffstat (limited to 'engines')
-rw-r--r-- | engines/xeen/scripts.cpp | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/engines/xeen/scripts.cpp b/engines/xeen/scripts.cpp index 48b58ddcad..e5af78b57d 100644 --- a/engines/xeen/scripts.cpp +++ b/engines/xeen/scripts.cpp @@ -539,11 +539,9 @@ void Scripts::cmdMoveObj(Common::Array<byte> ¶ms) { void Scripts::cmdTakeOrGive(Common::Array<byte> ¶ms) { Party &party = *_vm->_party; Screen &screen = *_vm->_screen; - int mode1, mode2, mode3; + int mode1, mode2, mode3, param2; uint32 mask1, mask2, mask3; byte *extraP; - // TODO: See if this needs to maintain values set in other opcodes - int param2 = 0; mode1 = params[0]; switch (mode1) { @@ -562,11 +560,11 @@ void Scripts::cmdTakeOrGive(Common::Array<byte> ¶ms) { break; default: mask1 = params[1]; - extraP = ¶ms[2]; + extraP = ¶ms[9]; break; } - mode2 = *extraP++; + param2 = mode2 = *extraP++; switch (mode2) { case 16: case 34: @@ -605,7 +603,7 @@ void Scripts::cmdTakeOrGive(Common::Array<byte> ¶ms) { break; } - if (mode2) + if (mode2 == 67) screen.closeWindows(); switch (_event->_opcode) { |