aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm/he
diff options
context:
space:
mode:
authorKirben2014-07-22 19:47:05 +1000
committerKirben2014-07-22 19:47:05 +1000
commit04ed4d3a8df92e6ee7b7d55051117add2f16903d (patch)
treea2ec1d84c2fcf74185c621655788f1d5f22bd500 /engines/scumm/he
parent50940f13ae8563e4ec4cd811267d393122c0a956 (diff)
downloadscummvm-rg350-04ed4d3a8df92e6ee7b7d55051117add2f16903d.tar.gz
scummvm-rg350-04ed4d3a8df92e6ee7b7d55051117add2f16903d.tar.bz2
scummvm-rg350-04ed4d3a8df92e6ee7b7d55051117add2f16903d.zip
SCUMM: Add workaround for script bugs that caused problems in Jumping Bean mini games of Pajama Sam: Games to Play on Any Day.
Diffstat (limited to 'engines/scumm/he')
-rw-r--r--engines/scumm/he/sprite_he.cpp7
1 files changed, 7 insertions, 0 deletions
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;
}