[Scummvm-git-logs] scummvm master -> aa04e311f1b923b6ec8f07e2af1e85cc02dd2a49

dreammaster dreammaster at scummvm.org
Sun Nov 19 01:37:29 CET 2017


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
aa04e311f1 XEEN: Fixes for cmdTakeOrGive script opcode


Commit: aa04e311f1b923b6ec8f07e2af1e85cc02dd2a49
    https://github.com/scummvm/scummvm/commit/aa04e311f1b923b6ec8f07e2af1e85cc02dd2a49
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2017-11-18T19:37:29-05:00

Commit Message:
XEEN: Fixes for cmdTakeOrGive script opcode

Changed paths:
    engines/xeen/scripts.cpp


diff --git a/engines/xeen/scripts.cpp b/engines/xeen/scripts.cpp
index 48b58dd..e5af78b 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) {





More information about the Scummvm-git-logs mailing list