From 23fd97c99a650cf2e99df72a74326520b9347fc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20Fr=C3=BChwirth?= Date: Sun, 18 Mar 2018 23:24:29 +0100 Subject: [PATCH] TUCKER: Actually implement mof opcode When the 'mof' opcode was added in commit 1946dead77 it was implemented as a NOOP, but what it actually should do is disable the mouse (set _cursorState to kCursorStateDisabledHidden). This is used in at least the Spanish and Polish versions of the game to work around an earlier script bug which allowed the player to use the mouse while freeing the professor in part two. This commit fixes the 'mof' instruction so that the original script works as intended in those versions that ship with the fix. TODO: Add a workaround for those game versions which don't do the 'mof' themselves. --- engines/tucker/tucker.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/engines/tucker/tucker.cpp b/engines/tucker/tucker.cpp index 9e21a10e425..e1d05ecd83d 100644 --- a/engines/tucker/tucker.cpp +++ b/engines/tucker/tucker.cpp @@ -3391,7 +3391,7 @@ int TuckerEngine::executeTableInstruction() { _nextLocationNum = readTableInstructionParam(2); return 1; case kCode_mof: - // TODO: Unknown opcode in Spanish version. Identify if this has any function. + setCursorState(kCursorStateDisabledHidden); return 0; case kCode_opt: _conversationOptionsCount = readTableInstructionParam(2);