From 64c54591c356f41abe8df7de7afbd291279a99a5 Mon Sep 17 00:00:00 2001 From: Sven Meier Date: Sun, 17 Jun 2018 17:08:27 +0200 Subject: SCUMM: Workaround erroneous AKC_JUMP in German SPY Fox 3 Fixes Trac#3813 and makes this version of the game completable. --- NEWS | 2 ++ engines/scumm/akos.cpp | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/NEWS b/NEWS index 97fbdc290d..cb389d4b5c 100644 --- a/NEWS +++ b/NEWS @@ -27,6 +27,8 @@ For a more comprehensive changelog of the latest experimental code, see: - Fixed original speech glitch on submarine in Indiana Jones and the Fate of Atlantis. Users need to recompress their monster.sou using an up-to-date version of scummvm-tools for this to take effect when using compressed audio. + - Fixed an issue in the wig maker room in the German version of SPY Fox 3: Operation Ozone + which makes the game completable. Tinsel: - Fix loading Discworld 1 savegames from the launcher where Rincewind had a held item diff --git a/engines/scumm/akos.cpp b/engines/scumm/akos.cpp index 6d80315ccb..3d98a7b9b2 100644 --- a/engines/scumm/akos.cpp +++ b/engines/scumm/akos.cpp @@ -1632,6 +1632,15 @@ bool ScummEngine_v6::akos_increaseAnim(Actor *a, int chan, const byte *aksq, con case AKC_Jump: curpos = GUW(2); + + // WORKAROUND bug #3813: In the German version of SPY Fox 3: Operation Ozone + // the wig maker room 21 contains a costume animation 352 of an LED ticker + // with a jump to an erroneous position 846. + // To prevent an undefined 'uSweat token' the animation is reset to its start. + if (_game.id == GID_HEGAME && _language == Common::DE_DEU && \ + _currentRoom == 21 && a->_costume == 352 && curpos == 846) { + curpos = a->_cost.start[chan]; + } break; case AKC_Return: -- cgit v1.2.3