[Scummvm-cvs-logs] scummvm master -> 2eb624b22982018da97cbac4c8b0536f338146f8

joostp joostp at 7fc1.org
Mon Sep 12 14:04:34 CEST 2011


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:
2eb624b229 SKY: fix bug #3149412: Invalid Mode when giving shades to travel agent


Commit: 2eb624b22982018da97cbac4c8b0536f338146f8
    https://github.com/scummvm/scummvm/commit/2eb624b22982018da97cbac4c8b0536f338146f8
Author: Joost Peters (joostp at scummvm.org)
Date: 2011-09-12T04:56:28-07:00

Commit Message:
SKY: fix bug #3149412: Invalid Mode when giving shades to travel agent

Changed paths:
    engines/sky/logic.cpp



diff --git a/engines/sky/logic.cpp b/engines/sky/logic.cpp
index 616670b..a69ba79 100644
--- a/engines/sky/logic.cpp
+++ b/engines/sky/logic.cpp
@@ -1248,6 +1248,17 @@ script:
 
 	debug(3, "Doing Script: %d:%d:%x", moduleNo, scriptNo & 0xFFF, offset ? (offset - moduleStart[scriptNo & 0xFFF]) : 0);
 
+	// WORKAROUND for bug #3149412: "Invalid Mode when giving shades to travel agent"
+	// Using the dark glasses on Trevor (travel agent) multiple times in succession would
+	// wreck the trevor compact's mode, as the script in question doesn't account for using
+	// this item at this point in the game (you will only have it here if you play the game
+	// in an unusual way) and thus would loop indefinitely / never drop out.
+	// To prevent this, we trigger the generic response by pretending we're using an item
+	// which the script /does/ handle.
+	if (scriptNo == TREVOR_SPEECH && _scriptVariables[OBJECT_HELD] == IDO_SHADES)
+		_scriptVariables[OBJECT_HELD] = IDO_GLASS;
+
+
 	// Check whether we have an offset or what
 	if (offset)
 		scriptData = moduleStart + offset;






More information about the Scummvm-git-logs mailing list