aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorPaul Gilbert2017-11-18 19:37:29 -0500
committerPaul Gilbert2017-11-18 19:37:29 -0500
commitaa04e311f1b923b6ec8f07e2af1e85cc02dd2a49 (patch)
tree357dfaf211522493f61228d46c8141969aa57c7c /engines
parent79f448651dc7efd1232a6d6f3dbb2bebe8705e79 (diff)
downloadscummvm-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.cpp10
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> &params) {
void Scripts::cmdTakeOrGive(Common::Array<byte> &params) {
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> &params) {
break;
default:
mask1 = params[1];
- extraP = &params[2];
+ extraP = &params[9];
break;
}
- mode2 = *extraP++;
+ param2 = mode2 = *extraP++;
switch (mode2) {
case 16:
case 34:
@@ -605,7 +603,7 @@ void Scripts::cmdTakeOrGive(Common::Array<byte> &params) {
break;
}
- if (mode2)
+ if (mode2 == 67)
screen.closeWindows();
switch (_event->_opcode) {