From 04ed4d3a8df92e6ee7b7d55051117add2f16903d Mon Sep 17 00:00:00 2001 From: Kirben Date: Tue, 22 Jul 2014 19:47:05 +1000 Subject: SCUMM: Add workaround for script bugs that caused problems in Jumping Bean mini games of Pajama Sam: Games to Play on Any Day. --- engines/scumm/he/sprite_he.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'engines/scumm/he') diff --git a/engines/scumm/he/sprite_he.cpp b/engines/scumm/he/sprite_he.cpp index f902b67997..245a986531 100644 --- a/engines/scumm/he/sprite_he.cpp +++ b/engines/scumm/he/sprite_he.cpp @@ -264,6 +264,13 @@ int Sprite::getSpriteFlagRemapPalette(int spriteId) { int Sprite::getSpriteFlagAutoAnim(int spriteId) { assertRange(1, spriteId, _varNumSprites, "sprite"); + // WORKAROUND: Two scripts (room 2 script 2070/2071) compare against + // a return value of one, but the original game returned the flag value + // (0x200000) for true. These scripts bugs caused problems (infinite loop + // and beans not appearing) in the Jumping Beans mini games under ScummVM. + if (_vm->_game.id == GID_PJGAMES) + return 0; + return ((_spriteTable[spriteId].flags & kSFAutoAnim) != 0) ? 1 : 0; } -- cgit v1.2.3