diff options
author | Kirben | 2014-07-22 19:47:05 +1000 |
---|---|---|
committer | Kirben | 2014-07-22 19:47:05 +1000 |
commit | 04ed4d3a8df92e6ee7b7d55051117add2f16903d (patch) | |
tree | a2ec1d84c2fcf74185c621655788f1d5f22bd500 /engines/scumm/he | |
parent | 50940f13ae8563e4ec4cd811267d393122c0a956 (diff) | |
download | scummvm-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.cpp | 7 |
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; } |