diff options
-rw-r--r-- | scumm/scumm.cpp | 182 | ||||
-rw-r--r-- | scumm/scumm.h | 1 |
2 files changed, 92 insertions, 91 deletions
diff --git a/scumm/scumm.cpp b/scumm/scumm.cpp index e7f9d18413..ccd4098de6 100644 --- a/scumm/scumm.cpp +++ b/scumm/scumm.cpp @@ -81,7 +81,7 @@ ScummEngine *g_scumm = 0; struct ScummGameSettings { const char *name; const char *description; - byte id, version; + byte id, version, heversion; int midi; // MidiDriverType values uint32 features; const char *baseFilename; @@ -97,228 +97,228 @@ static const ScummGameSettings scumm_settings[] = { /* Scumm Version 1 */ /* Scumm Version 2 */ - {"maniac", "Maniac Mansion", GID_MANIAC, 2, MDT_PCSPK, + {"maniac", "Maniac Mansion", GID_MANIAC, 2, 0, MDT_PCSPK, GF_SMALL_HEADER | GF_USE_KEY | GF_SMALL_NAMES | GF_16COLOR | GF_OLD_BUNDLE | GF_NO_SCALING, 0}, - //{"maniacnes", "Maniac Mansion (NES)", GID_MANIAC, 2, MDT_NONE, + //{"maniacnes", "Maniac Mansion (NES)", GID_MANIAC, 2, 0, MDT_NONE, // GF_SMALL_HEADER | GF_USE_KEY | GF_SMALL_NAMES | GF_16COLOR | GF_OLD_BUNDLE | GF_NO_SCALING | GF_NES}, - {"zak", "Zak McKracken and the Alien Mindbenders", GID_ZAK, 2, MDT_PCSPK, + {"zak", "Zak McKracken and the Alien Mindbenders", GID_ZAK, 2, 0, MDT_PCSPK, GF_SMALL_HEADER | GF_USE_KEY | GF_SMALL_NAMES | GF_16COLOR | GF_OLD_BUNDLE | GF_NO_SCALING, 0}, /* Scumm Version 3 */ - {"indy3EGA", "Indiana Jones and the Last Crusade", GID_INDY3, 3, MDT_PCSPK | MDT_ADLIB, + {"indy3EGA", "Indiana Jones and the Last Crusade", GID_INDY3, 3, 0, MDT_PCSPK | MDT_ADLIB, GF_SMALL_HEADER | GF_SMALL_NAMES | GF_NO_SCALING | GF_USE_KEY | GF_16COLOR | GF_OLD_BUNDLE, 0}, - {"indy3Towns", "Indiana Jones and the Last Crusade (FM Towns)", GID_INDY3, 3, MDT_TOWNS, + {"indy3Towns", "Indiana Jones and the Last Crusade (FM Towns)", GID_INDY3, 3, 0, MDT_TOWNS, GF_SMALL_HEADER | GF_SMALL_NAMES | GF_NO_SCALING | GF_OLD256 | GF_FEW_LOCALS | GF_FMTOWNS | GF_AUDIOTRACKS, 0}, - {"indy3", "Indiana Jones and the Last Crusade (256)", GID_INDY3, 3, MDT_PCSPK | MDT_ADLIB, + {"indy3", "Indiana Jones and the Last Crusade (256)", GID_INDY3, 3, 0, MDT_PCSPK | MDT_ADLIB, GF_SMALL_HEADER | GF_SMALL_NAMES | GF_NO_SCALING | GF_OLD256 | GF_FEW_LOCALS, 0}, - {"zakTowns", "Zak McKracken and the Alien Mindbenders (FM Towns)", GID_ZAK256, 3, MDT_TOWNS, + {"zakTowns", "Zak McKracken and the Alien Mindbenders (FM Towns)", GID_ZAK256, 3, 0, MDT_TOWNS, GF_SMALL_HEADER | GF_SMALL_NAMES | GF_NO_SCALING | GF_OLD256 | GF_FMTOWNS | GF_AUDIOTRACKS, 0}, - {"loom", "Loom", GID_LOOM, 3, MDT_PCSPK | MDT_ADLIB | MDT_NATIVE, + {"loom", "Loom", GID_LOOM, 3, 0, MDT_PCSPK | MDT_ADLIB | MDT_NATIVE, GF_SMALL_HEADER | GF_SMALL_NAMES | GF_NO_SCALING | GF_USE_KEY | GF_16COLOR | GF_OLD_BUNDLE, 0}, - {"loomTowns", "Loom (FM Towns)", GID_LOOM, 3, MDT_TOWNS, + {"loomTowns", "Loom (FM Towns)", GID_LOOM, 3, 0, MDT_TOWNS, GF_SMALL_HEADER | GF_SMALL_NAMES | GF_NO_SCALING | GF_OLD256 | GF_FMTOWNS | GF_AUDIOTRACKS, 0}, /* Scumm Version 4 */ - {"monkeyEGA", "Monkey Island 1 (EGA)", GID_MONKEY_EGA, 4, MDT_PCSPK | MDT_ADLIB | MDT_NATIVE, + {"monkeyEGA", "Monkey Island 1 (EGA)", GID_MONKEY_EGA, 4, 0, MDT_PCSPK | MDT_ADLIB | MDT_NATIVE, GF_SMALL_HEADER | GF_USE_KEY | GF_16COLOR, 0}, - {"pass", "Passport to Adventure", GID_PASS, 4, MDT_PCSPK | MDT_ADLIB, + {"pass", "Passport to Adventure", GID_PASS, 4, 0, MDT_PCSPK | MDT_ADLIB, GF_SMALL_HEADER | GF_USE_KEY | GF_16COLOR, 0}, /* Scumm version 5 */ - {"monkeyVGA", "Monkey Island 1 (256 color Floppy version)", GID_MONKEY_VGA, 4, MDT_PCSPK | MDT_ADLIB | MDT_NATIVE, + {"monkeyVGA", "Monkey Island 1 (256 color Floppy version)", GID_MONKEY_VGA, 4, 0, MDT_PCSPK | MDT_ADLIB | MDT_NATIVE, GF_SMALL_HEADER | GF_USE_KEY, 0}, - {"loomcd", "Loom (256 color CD version)", GID_LOOM256, 4, MDT_NONE, + {"loomcd", "Loom (256 color CD version)", GID_LOOM256, 4, 0, MDT_NONE, GF_SMALL_HEADER | GF_USE_KEY | GF_AUDIOTRACKS, 0}, - {"monkey", "Monkey Island 1", GID_MONKEY, 5, /*MDT_PCSPK |*/ MDT_ADLIB, + {"monkey", "Monkey Island 1", GID_MONKEY, 5, 0, /*MDT_PCSPK |*/ MDT_ADLIB, GF_USE_KEY | GF_AUDIOTRACKS, 0}, - {"monkey1", "Monkey Island 1 (alt)", GID_MONKEY, 5, /*MDT_PCSPK |*/ MDT_ADLIB | MDT_NATIVE, + {"monkey1", "Monkey Island 1 (alt)", GID_MONKEY, 5, 0, /*MDT_PCSPK |*/ MDT_ADLIB | MDT_NATIVE, GF_USE_KEY | GF_AUDIOTRACKS, 0}, - {"game", "Monkey Island 1 (SegaCD version)", GID_MONKEY_SEGA, 5, MDT_NONE, + {"game", "Monkey Island 1 (SegaCD version)", GID_MONKEY_SEGA, 5, 0, MDT_NONE, GF_USE_KEY | GF_AUDIOTRACKS, 0}, - {"monkey2", "Monkey Island 2: LeChuck's revenge", GID_MONKEY2, 5, /*MDT_PCSPK |*/ MDT_ADLIB | MDT_NATIVE, + {"monkey2", "Monkey Island 2: LeChuck's revenge", GID_MONKEY2, 5, 0, /*MDT_PCSPK |*/ MDT_ADLIB | MDT_NATIVE, GF_USE_KEY, 0}, - {"mi2demo", "Monkey Island 2: LeChuck's revenge (Demo)", GID_MONKEY2, 5, /*MDT_PCSPK |*/ MDT_ADLIB | MDT_NATIVE, + {"mi2demo", "Monkey Island 2: LeChuck's revenge (Demo)", GID_MONKEY2, 5, 0, /*MDT_PCSPK |*/ MDT_ADLIB | MDT_NATIVE, GF_USE_KEY, 0}, - {"atlantis", "Indiana Jones and the Fate of Atlantis", GID_INDY4, 5, MDT_ADLIB | MDT_NATIVE, + {"atlantis", "Indiana Jones and the Fate of Atlantis", GID_INDY4, 5, 0, MDT_ADLIB | MDT_NATIVE, GF_USE_KEY, 0}, - {"playfate", "Indiana Jones and the Fate of Atlantis (Demo)", GID_INDY4, 5, MDT_ADLIB | MDT_NATIVE, + {"playfate", "Indiana Jones and the Fate of Atlantis (Demo)", GID_INDY4, 5, 0, MDT_ADLIB | MDT_NATIVE, GF_USE_KEY, 0}, - {"fate", "Indiana Jones and the Fate of Atlantis (Demo)", GID_INDY4, 5, MDT_ADLIB | MDT_NATIVE, + {"fate", "Indiana Jones and the Fate of Atlantis (Demo)", GID_INDY4, 5, 0, MDT_ADLIB | MDT_NATIVE, GF_USE_KEY, 0}, - {"indy4", "Indiana Jones and the Fate of Atlantis (FM Towns)", GID_INDY4, 5, MDT_ADLIB | MDT_NATIVE, + {"indy4", "Indiana Jones and the Fate of Atlantis (FM Towns)", GID_INDY4, 5, 0, MDT_ADLIB | MDT_NATIVE, GF_USE_KEY, 0}, - {"indydemo", "Indiana Jones and the Fate of Atlantis (FM Towns Demo)", GID_INDY4, 5, MDT_ADLIB | MDT_NATIVE, + {"indydemo", "Indiana Jones and the Fate of Atlantis (FM Towns Demo)", GID_INDY4, 5, 0, MDT_ADLIB | MDT_NATIVE, GF_USE_KEY, 0}, /* Scumm Version 6 */ - {"tentacle", "Day Of The Tentacle", GID_TENTACLE, 6, /*MDT_PCSPK |*/ MDT_ADLIB | MDT_NATIVE, + {"tentacle", "Day Of The Tentacle", GID_TENTACLE, 6, 0, /*MDT_PCSPK |*/ MDT_ADLIB | MDT_NATIVE, GF_NEW_OPCODES | GF_USE_KEY, 0}, - {"dottdemo", "Day Of The Tentacle (Demo)", GID_TENTACLE, 6, /*MDT_PCSPK |*/ MDT_ADLIB | MDT_NATIVE, + {"dottdemo", "Day Of The Tentacle (Demo)", GID_TENTACLE, 6, 0, /*MDT_PCSPK |*/ MDT_ADLIB | MDT_NATIVE, GF_NEW_OPCODES | GF_USE_KEY, 0}, - {"samnmax", "Sam & Max", GID_SAMNMAX, 6, /*MDT_PCSPK |*/ MDT_ADLIB | MDT_NATIVE, + {"samnmax", "Sam & Max", GID_SAMNMAX, 6, 0, /*MDT_PCSPK |*/ MDT_ADLIB | MDT_NATIVE, GF_NEW_OPCODES | GF_USE_KEY | GF_DRAWOBJ_OTHER_ORDER, 0}, - {"samdemo", "Sam & Max (Demo)", GID_SAMNMAX, 6, /*MDT_PCSPK |*/ MDT_ADLIB | MDT_NATIVE, + {"samdemo", "Sam & Max (Demo)", GID_SAMNMAX, 6, 0, /*MDT_PCSPK |*/ MDT_ADLIB | MDT_NATIVE, GF_NEW_OPCODES | GF_USE_KEY | GF_DRAWOBJ_OTHER_ORDER, 0}, - {"snmdemo", "Sam & Max (Demo)", GID_SAMNMAX, 6, /*MDT_PCSPK |*/ MDT_ADLIB | MDT_NATIVE, + {"snmdemo", "Sam & Max (Demo)", GID_SAMNMAX, 6, 0, /*MDT_PCSPK |*/ MDT_ADLIB | MDT_NATIVE, GF_NEW_OPCODES | GF_USE_KEY | GF_DRAWOBJ_OTHER_ORDER, 0}, - {"snmidemo", "Sam & Max (Interactive WIP Demo)", GID_SAMNMAX, 6, /*MDT_PCSPK |*/ MDT_ADLIB | MDT_NATIVE, + {"snmidemo", "Sam & Max (Interactive WIP Demo)", GID_SAMNMAX, 6, 0, /*MDT_PCSPK |*/ MDT_ADLIB | MDT_NATIVE, GF_NEW_OPCODES | GF_USE_KEY | GF_DRAWOBJ_OTHER_ORDER, 0}, -// {"test", "Test demo game", GID_SAMNMAX, 6, /*MDT_PCSPK |*/ MDT_ADLIB | MDT_NATIVE, GF_NEW_OPCODES, 0}, +// {"test", "Test demo game", GID_SAMNMAX, 6, 0, /*MDT_PCSPK |*/ MDT_ADLIB | MDT_NATIVE, GF_NEW_OPCODES, 0}, /* Scumm Version 7 */ - {"ft", "Full Throttle", GID_FT, 7, MDT_NONE, + {"ft", "Full Throttle", GID_FT, 7, 0, MDT_NONE, GF_NEW_OPCODES | GF_NEW_COSTUMES | GF_NEW_CAMERA | GF_DIGI_IMUSE, 0}, - {"ftdemo", "Full Throttle (Mac Demo)", GID_FT, 7, MDT_NONE, + {"ftdemo", "Full Throttle (Mac Demo)", GID_FT, 7, 0, MDT_NONE, GF_NEW_OPCODES | GF_NEW_COSTUMES | GF_NEW_CAMERA | GF_DIGI_IMUSE | GF_DEMO, 0}, - {"ftpcdemo", "Full Throttle (PC Demo)", GID_FT, 7, MDT_NONE, + {"ftpcdemo", "Full Throttle (PC Demo)", GID_FT, 7, 0, MDT_NONE, GF_NEW_OPCODES | GF_NEW_COSTUMES | GF_NEW_CAMERA | GF_DIGI_IMUSE | GF_DEMO, "ft"}, - {"dig", "The Dig", GID_DIG, 7, MDT_NONE, + {"dig", "The Dig", GID_DIG, 7, 0, MDT_NONE, GF_NEW_OPCODES | GF_NEW_COSTUMES | GF_NEW_CAMERA | GF_DIGI_IMUSE, 0}, - {"digdemo", "The Dig (Demo)", GID_DIG, 7, MDT_NONE, + {"digdemo", "The Dig (Demo)", GID_DIG, 7, 0, MDT_NONE, GF_NEW_OPCODES | GF_NEW_COSTUMES | GF_NEW_CAMERA | GF_DIGI_IMUSE | GF_DEMO, "dig"}, #ifndef __PALM_OS__ /* Scumm Version 8 */ - {"comi", "The Curse of Monkey Island", GID_CMI, 8, MDT_NONE, + {"comi", "The Curse of Monkey Island", GID_CMI, 8, 0, MDT_NONE, GF_NEW_OPCODES | GF_NEW_COSTUMES | GF_NEW_CAMERA | GF_DIGI_IMUSE | GF_DEFAULT_TO_1X_SCALER, 0}, - {"comidemo", "The Curse of Monkey Island (Demo)", GID_CMI, 8, MDT_NONE, + {"comidemo", "The Curse of Monkey Island (Demo)", GID_CMI, 8, 0, MDT_NONE, GF_NEW_OPCODES | GF_NEW_COSTUMES | GF_NEW_CAMERA | GF_DIGI_IMUSE | GF_DEFAULT_TO_1X_SCALER | GF_DEMO, "comi"}, #endif // Humongous Entertainment Scumm Version 6 - {"puttputt", "Putt-Putt Joins The Parade", GID_PUTTPUTT, 6, MDT_ADLIB | MDT_NATIVE, + {"puttputt", "Putt-Putt Joins The Parade", GID_PUTTPUTT, 6, 60, MDT_ADLIB | MDT_NATIVE, GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0}, - {"puttdemo", "Putt-Putt Joins The Parade (Demo)", GID_PUTTDEMO, 6, MDT_ADLIB | MDT_NATIVE, + {"puttdemo", "Putt-Putt Joins The Parade (Demo)", GID_PUTTDEMO, 6, 60, MDT_ADLIB | MDT_NATIVE, GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS, 0}, - {"moondemo", "Putt-Putt Goes To The Moon (Demo)", GID_PUTTMOON, 6, MDT_ADLIB | MDT_NATIVE, + {"moondemo", "Putt-Putt Goes To The Moon (Demo)", GID_PUTTMOON, 6, 60, MDT_ADLIB | MDT_NATIVE, GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0}, - {"puttmoon", "Putt-Putt Goes To The Moon", GID_PUTTMOON, 6, MDT_ADLIB | MDT_NATIVE, + {"puttmoon", "Putt-Putt Goes To The Moon", GID_PUTTMOON, 6, 60, MDT_ADLIB | MDT_NATIVE, GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0}, - {"funpack", "Putt-Putt's Fun Pack", GID_PUTTMOON, 6, MDT_ADLIB | MDT_NATIVE, + {"funpack", "Putt-Putt's Fun Pack", GID_PUTTMOON, 6, 60, MDT_ADLIB | MDT_NATIVE, GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0}, - {"fbpack", "Fatty Bear's Fun Pack", GID_FBPACK, 6, MDT_ADLIB | MDT_NATIVE, + {"fbpack", "Fatty Bear's Fun Pack", GID_FBPACK, 6, 60, MDT_ADLIB | MDT_NATIVE, GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0}, - {"fbear", "Fatty Bear's Birthday Surprise", GID_FBEAR, 6, MDT_ADLIB | MDT_NATIVE, + {"fbear", "Fatty Bear's Birthday Surprise", GID_FBEAR, 6, 60, MDT_ADLIB | MDT_NATIVE, GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0}, - {"fbdemo", "Fatty Bear's Birthday Surprise (Demo)", GID_FBEAR, 6, MDT_ADLIB | MDT_NATIVE, + {"fbdemo", "Fatty Bear's Birthday Surprise (Demo)", GID_FBEAR, 6, 60, MDT_ADLIB | MDT_NATIVE, GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0}, #ifdef HEGAMES /* Note that both full versions of Humongous games and demos were often released for * several interpreter versions... */ // Humongous Entertainment Scumm Version 7 - {"catalog", "Humongous Interactive Catalog", GID_PUTTPUTT, 6, MDT_NONE, + {"catalog", "Humongous Interactive Catalog", GID_PUTTPUTT, 6, 60, MDT_NONE, GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0}, - {"farm", "Let's Explore the Farm with Buzzy", GID_PUTTPUTT, 6, MDT_NONE, + {"farm", "Let's Explore the Farm with Buzzy", GID_PUTTPUTT, 6, 60, MDT_NONE, GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0}, - {"farmdemo", "Let's Explore the Farm with Buzzy (Demo)", GID_PUTTPUTT, 6, MDT_NONE, + {"farmdemo", "Let's Explore the Farm with Buzzy (Demo)", GID_PUTTPUTT, 6, 60, MDT_NONE, GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0}, - {"airport", "Let's Explore the Airport with Buzzy", GID_PUTTPUTT, 6, MDT_NONE, + {"airport", "Let's Explore the Airport with Buzzy", GID_PUTTPUTT, 6, 60, MDT_NONE, GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0}, - {"airdemo", "Let's Explore the Airport with Buzzy (Demo)", GID_PUTTPUTT, 6, MDT_NONE, + {"airdemo", "Let's Explore the Airport with Buzzy (Demo)", GID_PUTTPUTT, 6, 60, MDT_NONE, GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0}, - {"jungle", "Let's Explore the Jungle with Buzzy", GID_PUTTPUTT, 6, MDT_NONE, + {"jungle", "Let's Explore the Jungle with Buzzy", GID_PUTTPUTT, 6, 60, MDT_NONE, GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0}, - {"puttzoo", "Putt-Putt Saves the Zoo", GID_PUTTPUTT, 6, MDT_NONE, + {"puttzoo", "Putt-Putt Saves the Zoo", GID_PUTTPUTT, 6, 60, MDT_NONE, GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0}, - {"freddi", "Freddi Fish 1: The Case of the Missing Kelp Seeds", GID_FREDDI, 6, MDT_NONE, + {"freddi", "Freddi Fish 1: The Case of the Missing Kelp Seeds", GID_FREDDI, 6, 60, MDT_NONE, GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES | GF_DEFAULT_TO_1X_SCALER, 0}, // Humongous Entertainment Scumm Version 8.0 ? Scummsrc.80 - {"zoodemo", "Putt-Putt Saves the Zoo (Demo)", GID_PJSDEMO, 6, MDT_NONE, + {"zoodemo", "Putt-Putt Saves the Zoo (Demo)", GID_PJSDEMO, 6, 60, MDT_NONE, GF_NEW_OPCODES | GF_AFTER_HEV7 | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES | GF_DEFAULT_TO_1X_SCALER, 0}, - {"freddemo", "Freddi Fish 1: The Case of the Missing Kelp Seeds (Demo)", GID_FREDDEMO, 6, MDT_NONE, + {"freddemo", "Freddi Fish 1: The Case of the Missing Kelp Seeds (Demo)", GID_FREDDEMO, 6, 60, MDT_NONE, GF_NEW_OPCODES | GF_AFTER_HEV7 | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES | GF_DEFAULT_TO_1X_SCALER, 0}, - {"ff2-demo", "Freddi Fish 2: The Case of the Haunted Schoolhouse (Demo)", GID_PJSDEMO, 6, MDT_NONE, + {"ff2-demo", "Freddi Fish 2: The Case of the Haunted Schoolhouse (Demo)", GID_PJSDEMO, 6, 60, MDT_NONE, GF_NEW_OPCODES | GF_AFTER_HEV7 | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES | GF_DEFAULT_TO_1X_SCALER, 0}, - {"freddi2", "Freddi Fish 2: The Case of the Haunted Schoolhouse", GID_PJSDEMO, 6, MDT_NONE, + {"freddi2", "Freddi Fish 2: The Case of the Haunted Schoolhouse", GID_PJSDEMO, 6, 60, MDT_NONE, GF_NEW_OPCODES | GF_AFTER_HEV7 | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES | GF_DEFAULT_TO_1X_SCALER, 0}, - {"maze", "Freddi Fish and Luther's Maze Madness", GID_PJSDEMO, 6, MDT_NONE, + {"maze", "Freddi Fish and Luther's Maze Madness", GID_PJSDEMO, 6, 60, MDT_NONE, GF_NEW_OPCODES | GF_AFTER_HEV7 | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES | GF_DEFAULT_TO_1X_SCALER, 0}, - {"water", "Freddi Fish and Luther's Water Worries", GID_PJSDEMO, 6, MDT_NONE, + {"water", "Freddi Fish and Luther's Water Worries", GID_PJSDEMO, 6, 60, MDT_NONE, GF_NEW_OPCODES | GF_AFTER_HEV7 | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES | GF_DEFAULT_TO_1X_SCALER, 0}, - {"pjs-demo", "Pajama Sam 1: No Need to Hide When It's Dark Outside (Demo)", GID_PJSDEMO, 6, MDT_NONE, + {"pjs-demo", "Pajama Sam 1: No Need to Hide When It's Dark Outside (Demo)", GID_PJSDEMO, 6, 60, MDT_NONE, GF_NEW_OPCODES | GF_AFTER_HEV7 | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES | GF_DEFAULT_TO_1X_SCALER, 0}, - {"socks", "Pajama Sam's Sock Works", GID_PJSDEMO, 6, MDT_NONE, + {"socks", "Pajama Sam's Sock Works", GID_PJSDEMO, 6, 60, MDT_NONE, GF_NEW_OPCODES | GF_AFTER_HEV7 | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES | GF_DEFAULT_TO_1X_SCALER, 0}, //Not checked - {"ffhsdemo", "Freddi Fish 2: The Case of the Haunted Schoolhouse (Demo)", GID_PJSDEMO, 6, MDT_NONE, + {"ffhsdemo", "Freddi Fish 2: The Case of the Haunted Schoolhouse (Demo)", GID_PJSDEMO, 6, 60, MDT_NONE, GF_NEW_OPCODES | GF_AFTER_HEV7 | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES | GF_DEFAULT_TO_1X_SCALER, 0}, // Resource changed - {"pajama", "Pajama Sam 1: No Need to Hide When It's Dark Outside", GID_PJSDEMO, 6, MDT_NONE, + {"pajama", "Pajama Sam 1: No Need to Hide When It's Dark Outside", GID_PJSDEMO, 6, 60, MDT_NONE, GF_NEW_OPCODES | GF_AFTER_HEV7 | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES | GF_DEFAULT_TO_1X_SCALER, 0}, // Humongous Entertainment Scumm Version 9.0 ? Scummsys.90 - {"kinddemo", "Big Thinkers Kindergarten (Demo)", GID_PJSDEMO, 6, MDT_NONE, + {"kinddemo", "Big Thinkers Kindergarten (Demo)", GID_PJSDEMO, 6, 60, MDT_NONE, GF_NEW_OPCODES | GF_AFTER_HEV7 | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0}, - {"1grademo", "Big Thinkers First Grade (Demo)", GID_PJSDEMO, 6, MDT_NONE, + {"1grademo", "Big Thinkers First Grade (Demo)", GID_PJSDEMO, 6, 60, MDT_NONE, GF_NEW_OPCODES | GF_AFTER_HEV7 | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0}, - {"f3-mdemo", "Freddi Fish 3: The Case of the Stolen Conch Shell (Demo)", GID_PJSDEMO, 6, MDT_NONE, + {"f3-mdemo", "Freddi Fish 3: The Case of the Stolen Conch Shell (Demo)", GID_PJSDEMO, 6, 60, MDT_NONE, GF_NEW_OPCODES | GF_AFTER_HEV7 | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0}, - {"timedemo", "Putt-Putt Travels Through Time (Demo)", GID_PJSDEMO, 6, MDT_NONE, + {"timedemo", "Putt-Putt Travels Through Time (Demo)", GID_PJSDEMO, 6, 60, MDT_NONE, GF_NEW_OPCODES | GF_AFTER_HEV7 | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0}, - {"spyfox", "Spyfox 1: Dry Cereal", GID_PJSDEMO, 6, MDT_NONE, + {"spyfox", "Spyfox 1: Dry Cereal", GID_PJSDEMO, 6, 60, MDT_NONE, GF_NEW_OPCODES | GF_AFTER_HEV7 | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0}, - {"foxdemo", "Spyfox 1: Dry Cereal (Demo)", GID_PJSDEMO, 6, MDT_NONE, + {"foxdemo", "Spyfox 1: Dry Cereal (Demo)", GID_PJSDEMO, 6, 60, MDT_NONE, GF_NEW_OPCODES | GF_AFTER_HEV7 | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0}, - {"spydemo", "Spyfox 1: Dry Cereal (Demo)", GID_PJSDEMO, 6, MDT_NONE, + {"spydemo", "Spyfox 1: Dry Cereal (Demo)", GID_PJSDEMO, 6, 60, MDT_NONE, GF_NEW_OPCODES | GF_AFTER_HEV7 | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0}, // Humongous Entertainment Scumm Version 9.5 ? Scummsys.95 - {"pj2demo", "Pajama Sam 2: Thunder and Lightning Aren't so Frightening (Demo)", GID_PJSDEMO, 6, MDT_NONE, + {"pj2demo", "Pajama Sam 2: Thunder and Lightning Aren't so Frightening (Demo)", GID_PJSDEMO, 6, 60, MDT_NONE, GF_NEW_OPCODES | GF_AFTER_HEV7 | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0}, - {"pajama2", "Pajama Sam 2: Thunder and Lightning Aren't so Frightening", GID_PJSDEMO, 6, MDT_NONE, + {"pajama2", "Pajama Sam 2: Thunder and Lightning Aren't so Frightening", GID_PJSDEMO, 6, 60, MDT_NONE, GF_NEW_OPCODES | GF_AFTER_HEV7 | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0}, - {"chase", "Spy Fox in Cheese Chase Game", GID_PJSDEMO, 6, MDT_NONE, + {"chase", "Spy Fox in Cheese Chase Game", GID_PJSDEMO, 6, 60, MDT_NONE, GF_NEW_OPCODES | GF_AFTER_HEV7 | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0}, // Humongous Entertainment Scumm Version 9.8 ? Scummsys.98 // these and later games can easily be identified by the .(a) file instead of a .he1 - {"freddi4", "Freddi Fish 4: The Case of the Hogfish Rustlers of Briny Gulch", GID_PJSDEMO, 6, MDT_NONE, + {"freddi4", "Freddi Fish 4: The Case of the Hogfish Rustlers of Briny Gulch", GID_PJSDEMO, 6, 60, MDT_NONE, GF_NEW_OPCODES | GF_AFTER_HEV7 | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0}, - {"f4-demo", "Freddi Fish 4: The Case of the Hogfish Rustlers of Briny Gulch (Demo)", GID_PJSDEMO, 6, MDT_NONE, + {"f4-demo", "Freddi Fish 4: The Case of the Hogfish Rustlers of Briny Gulch (Demo)", GID_PJSDEMO, 6, 60, MDT_NONE, GF_NEW_OPCODES | GF_AFTER_HEV7 | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0}, - {"lost", "Pajama Sam's Lost & Found", GID_PJSDEMO, 6, MDT_NONE, + {"lost", "Pajama Sam's Lost & Found", GID_PJSDEMO, 6, 60, MDT_NONE, GF_NEW_OPCODES | GF_AFTER_HEV7 | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0}, - {"racedemo", "Putt-Putt Enters the Race (Demo)", GID_PJSDEMO, 6, MDT_NONE, + {"racedemo", "Putt-Putt Enters the Race (Demo)", GID_PJSDEMO, 6, 60, MDT_NONE, GF_NEW_OPCODES | GF_AFTER_HEV7 | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0}, - {"puttrace", "Putt-Putt Enters the Race", GID_PJSDEMO, 6, MDT_NONE, + {"puttrace", "Putt-Putt Enters the Race", GID_PJSDEMO, 6, 60, MDT_NONE, GF_NEW_OPCODES | GF_AFTER_HEV7 | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0}, // Humongous Entertainment Scumm Version 9.9 ? Scummsys.99 - {"sf2-demo", "Spyfox 2: Some Assembly Required (Demo)", GID_PJSDEMO, 6, MDT_NONE, + {"sf2-demo", "Spyfox 2: Some Assembly Required (Demo)", GID_PJSDEMO, 6, 60, MDT_NONE, GF_NEW_OPCODES | GF_AFTER_HEV7 | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0}, - {"spyfox2", "Spyfox 2: Some Assembly Required", GID_PJSDEMO, 6, MDT_NONE, + {"spyfox2", "Spyfox 2: Some Assembly Required", GID_PJSDEMO, 6, 60, MDT_NONE, GF_NEW_OPCODES | GF_AFTER_HEV7 | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0}, - {"mustard", "Spy Fox in Hold the Mustard", GID_PJSDEMO, 6, MDT_NONE, + {"mustard", "Spy Fox in Hold the Mustard", GID_PJSDEMO, 6, 60, MDT_NONE, GF_NEW_OPCODES | GF_AFTER_HEV7 | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0}, // Humongous Entertainment Scumm Version ? engine moved to c++ - {"ff5demo", "Freddi Fish 5: The Case of the Creature of Coral Cave (Demo)", GID_PJSDEMO, 6, MDT_NONE, + {"ff5demo", "Freddi Fish 5: The Case of the Creature of Coral Cave (Demo)", GID_PJSDEMO, 6, 60, MDT_NONE, GF_NEW_OPCODES | GF_AFTER_HEV7 | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0}, - {"freddicove", "Freddi Fish 5: The Case of the Creature of Coral Cave", GID_PJSDEMO, 6, MDT_NONE, + {"freddicove", "Freddi Fish 5: The Case of the Creature of Coral Cave", GID_PJSDEMO, 6, 60, MDT_NONE, GF_NEW_OPCODES | GF_AFTER_HEV7 | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0}, - {"pj3-demo", "Pajama Sam 3: You Are What You Eat From Your Head to Your Feet (Demo)", GID_PJSDEMO, 6, MDT_NONE, + {"pj3-demo", "Pajama Sam 3: You Are What You Eat From Your Head to Your Feet (Demo)", GID_PJSDEMO, 6, 60, MDT_NONE, GF_NEW_OPCODES | GF_AFTER_HEV7 | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0}, - {"pajama3", "Pajama Sam 3: You Are What You Eat From Your Head to Your Feet", GID_PJSDEMO, 6, MDT_NONE, + {"pajama3", "Pajama Sam 3: You Are What You Eat From Your Head to Your Feet", GID_PJSDEMO, 6, 60, MDT_NONE, GF_NEW_OPCODES | GF_AFTER_HEV7 | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0}, - {"dog", "Putt-Putt and Pep's Dog on a Stick", GID_PJSDEMO, 6, MDT_NONE, + {"dog", "Putt-Putt and Pep's Dog on a Stick", GID_PJSDEMO, 6, 60, MDT_NONE, GF_NEW_OPCODES | GF_AFTER_HEV7 | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0}, - {"PuttsFunShop", "Putt-Putt's One-Stop Fun Shop", GID_PJSDEMO, 6, MDT_NONE, + {"PuttsFunShop", "Putt-Putt's One-Stop Fun Shop", GID_PJSDEMO, 6, 60, MDT_NONE, GF_NEW_OPCODES | GF_AFTER_HEV7 | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0}, - {"putttime", "Putt-Putt Travels Through Time", GID_PJSDEMO, 6, MDT_NONE, + {"putttime", "Putt-Putt Travels Through Time", GID_PJSDEMO, 6, 60, MDT_NONE, GF_NEW_OPCODES | GF_AFTER_HEV7 | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0}, - {"spyozon", "Spyfox 3: Operation Ozone", GID_PJSDEMO, 6, MDT_NONE, + {"spyozon", "Spyfox 3: Operation Ozone", GID_PJSDEMO, 6, 60, MDT_NONE, GF_NEW_OPCODES | GF_AFTER_HEV7 | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0}, #endif - {NULL, NULL, 0, 0, MDT_NONE, 0, 0} + {NULL, NULL, 0, 0, 0, MDT_NONE, 0, 0} }; static int compareMD5Table(const void *a, const void *b) { diff --git a/scumm/scumm.h b/scumm/scumm.h index ca3974ba05..d2915bc995 100644 --- a/scumm/scumm.h +++ b/scumm/scumm.h @@ -337,6 +337,7 @@ public: // Core variables byte _gameId; byte _version; + byte _heversion; uint32 _features; // Should only be accessed for reading (TODO enforce it compiler-wise with making it private and creating an accessor) /** Random number generator */ |