[Scummvm-cvs-logs] scummvm master -> 04ed4d3a8df92e6ee7b7d55051117add2f16903d

Kirben kirben at optusnet.com.au
Tue Jul 22 12:06:33 CEST 2014


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
04ed4d3a8d SCUMM: Add workaround for script bugs that caused problems in Jumping Bean mini games of Pajama Sam: Games to Play on An


Commit: 04ed4d3a8df92e6ee7b7d55051117add2f16903d
    https://github.com/scummvm/scummvm/commit/04ed4d3a8df92e6ee7b7d55051117add2f16903d
Author: Kirben (kirben at optusnet.com.au)
Date: 2014-07-22T19:47:05+10:00

Commit Message:
SCUMM: Add workaround for script bugs that caused problems in Jumping Bean mini games of Pajama Sam: Games to Play on Any Day.

Changed paths:
    engines/scumm/detection_tables.h
    engines/scumm/he/sprite_he.cpp
    engines/scumm/scumm.h



diff --git a/engines/scumm/detection_tables.h b/engines/scumm/detection_tables.h
index 1dccbd3..ae334c2 100644
--- a/engines/scumm/detection_tables.h
+++ b/engines/scumm/detection_tables.h
@@ -389,7 +389,7 @@ static const GameSettings gameVariantsTable[] = {
 	{"freddicove", "HE 100", 0, GID_HEGAME, 6, 100, MDT_NONE, GF_USE_KEY | GF_HE_LOCALIZED | GF_16BIT_COLOR, UNK, GUIO3(GUIO_NOLAUNCHLOAD, GUIO_NOMIDI, GUIO_NOASPECT)},
 
 	// Restructured the Scumm engine
-	{"pjgames", 0, 0, GID_HEGAME, 6, 100, MDT_NONE, GF_USE_KEY | GF_HE_LOCALIZED | GF_16BIT_COLOR, UNK, GUIO3(GUIO_NOLAUNCHLOAD, GUIO_NOMIDI, GUIO_NOASPECT)},
+	{"pjgames", 0, 0, GID_PJGAMES, 6, 100, MDT_NONE, GF_USE_KEY | GF_HE_LOCALIZED | GF_16BIT_COLOR, UNK, GUIO3(GUIO_NOLAUNCHLOAD, GUIO_NOMIDI, GUIO_NOASPECT)},
 
 	// Added the use of bink videos
 	{"Soccer2004", 0, 0, GID_SOCCER2004, 6, 100, MDT_NONE, GF_USE_KEY | GF_16BIT_COLOR, UNK, GUIO3(GUIO_NOLAUNCHLOAD, GUIO_NOMIDI, GUIO_NOASPECT)},
diff --git a/engines/scumm/he/sprite_he.cpp b/engines/scumm/he/sprite_he.cpp
index f902b67..245a986 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;
 }
 
diff --git a/engines/scumm/scumm.h b/engines/scumm/scumm.h
index be5a83d..36d0507 100644
--- a/engines/scumm/scumm.h
+++ b/engines/scumm/scumm.h
@@ -256,6 +256,7 @@ enum ScummGameId {
 	GID_BASEBALL2003,
 	GID_BASKETBALL,
 	GID_MOONBASE,
+	GID_PJGAMES,
 	GID_HECUP		// CUP demos
 };
 






More information about the Scummvm-git-logs mailing list