Phase 2 of switching HE to use _heversion. Now unneeded GID's are

eliminated.

svn-id: r13927
This commit is contained in:
Eugene Sandulenko 2004-06-03 01:28:22 +00:00
parent 2a34b9d5a1
commit 6be8956d2c
4 changed files with 68 additions and 57 deletions

@ -40,6 +40,15 @@
namespace Scumm {
// Compatibility notes:
//
// FBEAR (fbear, fbeardemo)
// transparency in akos.cpp
// negative size in file read/write
// PUTTDEMO (puttdemo)
// startSound issue -- check
// actorOps sub 86 -- check
#define OPCODE(x) { &ScummEngine_v6he::x, #x }
void ScummEngine_v6he::setupOpcodes() {

@ -40,6 +40,12 @@
namespace Scumm {
// Compatibility notes:
//
// FREDDEMO (freddemo)
// stringLen is completely different
// unknownF4 is completely different
#define OPCODE(x) { &ScummEngine_v7he::x, #x }
void ScummEngine_v7he::setupOpcodes() {
@ -426,7 +432,7 @@ void ScummEngine_v7he::o7_stringLen() {
return;
}
if (_heversion >= 60) {
if (_gameId == GID_FREDDEMO) {
len = strlen((char *)getStringAddress(a));
} else { // FREDDI, PUTTMOON
len = stringLen(addr);
@ -473,7 +479,7 @@ void ScummEngine_v7he::o7_readINI() {
}
void ScummEngine_v7he::o7_unknownF4() {
if (_heversion >= 60) {
if (_gameId == GID_FREDDEMO) {
byte b;
int len;
b = fetchScriptByte();

@ -192,17 +192,17 @@ static const ScummGameSettings scumm_settings[] = {
#endif
// Humongous Entertainment Scumm Version 6
{"puttputt", "Putt-Putt Joins The Parade", GID_PUTTPUTT, 6, 60, MDT_ADLIB | MDT_NATIVE,
{"puttputt", "Putt-Putt Joins The Parade", GID_HEGAME, 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, 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, 60, MDT_ADLIB | MDT_NATIVE,
{"moondemo", "Putt-Putt Goes To The Moon (Demo)", GID_HEGAME, 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, 60, MDT_ADLIB | MDT_NATIVE,
{"puttmoon", "Putt-Putt Goes To The Moon", GID_HEGAME, 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, 60, MDT_ADLIB | MDT_NATIVE,
{"funpack", "Putt-Putt's Fun Pack", GID_HEGAME, 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, 60, MDT_ADLIB | MDT_NATIVE,
{"fbpack", "Fatty Bear's Fun Pack", GID_HEGAME, 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, 60, MDT_ADLIB | MDT_NATIVE,
GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0},
@ -213,109 +213,109 @@ static const ScummGameSettings scumm_settings[] = {
/* 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, 60, MDT_NONE,
{"catalog", "Humongous Interactive Catalog", GID_HEGAME, 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, 60, MDT_NONE,
{"farm", "Let's Explore the Farm with Buzzy", GID_HEGAME, 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, 60, MDT_NONE,
{"farmdemo", "Let's Explore the Farm with Buzzy (Demo)", GID_HEGAME, 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, 60, MDT_NONE,
{"airport", "Let's Explore the Airport with Buzzy", GID_HEGAME, 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, 60, MDT_NONE,
{"airdemo", "Let's Explore the Airport with Buzzy (Demo)", GID_HEGAME, 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, 60, MDT_NONE,
{"jungle", "Let's Explore the Jungle with Buzzy", GID_HEGAME, 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, 60, MDT_NONE,
{"puttzoo", "Putt-Putt Saves the Zoo", GID_HEGAME, 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, 60, MDT_NONE,
{"freddi", "Freddi Fish 1: The Case of the Missing Kelp Seeds", GID_HEGAME, 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, 70, MDT_NONE,
{"zoodemo", "Putt-Putt Saves the Zoo (Demo)", GID_HEGAME, 6, 70, MDT_NONE,
GF_NEW_OPCODES | 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, 70, MDT_NONE,
GF_NEW_OPCODES | 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, 70, MDT_NONE,
{"ff2-demo", "Freddi Fish 2: The Case of the Haunted Schoolhouse (Demo)", GID_HEGAME, 6, 70, MDT_NONE,
GF_NEW_OPCODES | 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, 70, MDT_NONE,
{"freddi2", "Freddi Fish 2: The Case of the Haunted Schoolhouse", GID_HEGAME, 6, 70, MDT_NONE,
GF_NEW_OPCODES | 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, 70, MDT_NONE,
{"maze", "Freddi Fish and Luther's Maze Madness", GID_HEGAME, 6, 70, MDT_NONE,
GF_NEW_OPCODES | 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, 70, MDT_NONE,
{"water", "Freddi Fish and Luther's Water Worries", GID_HEGAME, 6, 70, MDT_NONE,
GF_NEW_OPCODES | 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, 70, MDT_NONE,
{"pjs-demo", "Pajama Sam 1: No Need to Hide When It's Dark Outside (Demo)", GID_HEGAME, 6, 70, MDT_NONE,
GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES | GF_DEFAULT_TO_1X_SCALER, 0},
{"socks", "Pajama Sam's Sock Works", GID_PJSDEMO, 6, 70, MDT_NONE,
{"socks", "Pajama Sam's Sock Works", GID_HEGAME, 6, 70, MDT_NONE,
GF_NEW_OPCODES | 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, 70, MDT_NONE,
{"ffhsdemo", "Freddi Fish 2: The Case of the Haunted Schoolhouse (Demo)", GID_HEGAME, 6, 70, MDT_NONE,
GF_NEW_OPCODES | 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, 70, MDT_NONE,
{"pajama", "Pajama Sam 1: No Need to Hide When It's Dark Outside", GID_HEGAME, 6, 70, MDT_NONE,
GF_NEW_OPCODES | 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, 70, MDT_NONE,
{"kinddemo", "Big Thinkers Kindergarten (Demo)", GID_HEGAME, 6, 70, MDT_NONE,
GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0},
{"1grademo", "Big Thinkers First Grade (Demo)", GID_PJSDEMO, 6, 70, MDT_NONE,
{"1grademo", "Big Thinkers First Grade (Demo)", GID_HEGAME, 6, 70, MDT_NONE,
GF_NEW_OPCODES | 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, 70, MDT_NONE,
{"f3-mdemo", "Freddi Fish 3: The Case of the Stolen Conch Shell (Demo)", GID_HEGAME, 6, 70, MDT_NONE,
GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0},
{"timedemo", "Putt-Putt Travels Through Time (Demo)", GID_PJSDEMO, 6, 70, MDT_NONE,
{"timedemo", "Putt-Putt Travels Through Time (Demo)", GID_HEGAME, 6, 70, MDT_NONE,
GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0},
{"spyfox", "Spyfox 1: Dry Cereal", GID_PJSDEMO, 6, 70, MDT_NONE,
{"spyfox", "Spyfox 1: Dry Cereal", GID_HEGAME, 6, 70, MDT_NONE,
GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0},
{"foxdemo", "Spyfox 1: Dry Cereal (Demo)", GID_PJSDEMO, 6, 70, MDT_NONE,
{"foxdemo", "Spyfox 1: Dry Cereal (Demo)", GID_HEGAME, 6, 70, MDT_NONE,
GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0},
{"spydemo", "Spyfox 1: Dry Cereal (Demo)", GID_PJSDEMO, 6, 70, MDT_NONE,
{"spydemo", "Spyfox 1: Dry Cereal (Demo)", GID_HEGAME, 6, 70, MDT_NONE,
GF_NEW_OPCODES | 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, 70, MDT_NONE,
{"pj2demo", "Pajama Sam 2: Thunder and Lightning Aren't so Frightening (Demo)", GID_HEGAME, 6, 70, MDT_NONE,
GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0},
{"pajama2", "Pajama Sam 2: Thunder and Lightning Aren't so Frightening", GID_PJSDEMO, 6, 70, MDT_NONE,
{"pajama2", "Pajama Sam 2: Thunder and Lightning Aren't so Frightening", GID_HEGAME, 6, 70, MDT_NONE,
GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0},
{"chase", "Spy Fox in Cheese Chase Game", GID_PJSDEMO, 6, 70, MDT_NONE,
{"chase", "Spy Fox in Cheese Chase Game", GID_HEGAME, 6, 70, MDT_NONE,
GF_NEW_OPCODES | 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, 70, MDT_NONE,
{"freddi4", "Freddi Fish 4: The Case of the Hogfish Rustlers of Briny Gulch", GID_HEGAME, 6, 70, MDT_NONE,
GF_NEW_OPCODES | 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, 70, MDT_NONE,
{"f4-demo", "Freddi Fish 4: The Case of the Hogfish Rustlers of Briny Gulch (Demo)", GID_HEGAME, 6, 70, MDT_NONE,
GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0},
{"lost", "Pajama Sam's Lost & Found", GID_PJSDEMO, 6, 70, MDT_NONE,
{"lost", "Pajama Sam's Lost & Found", GID_HEGAME, 6, 70, MDT_NONE,
GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0},
{"racedemo", "Putt-Putt Enters the Race (Demo)", GID_PJSDEMO, 6, 70, MDT_NONE,
{"racedemo", "Putt-Putt Enters the Race (Demo)", GID_HEGAME, 6, 70, MDT_NONE,
GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0},
{"puttrace", "Putt-Putt Enters the Race", GID_PJSDEMO, 6, 70, MDT_NONE,
{"puttrace", "Putt-Putt Enters the Race", GID_HEGAME, 6, 70, MDT_NONE,
GF_NEW_OPCODES | 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, 70, MDT_NONE,
{"sf2-demo", "Spyfox 2: Some Assembly Required (Demo)", GID_HEGAME, 6, 70, MDT_NONE,
GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0},
{"spyfox2", "Spyfox 2: Some Assembly Required", GID_PJSDEMO, 6, 70, MDT_NONE,
{"spyfox2", "Spyfox 2: Some Assembly Required", GID_HEGAME, 6, 70, MDT_NONE,
GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0},
{"mustard", "Spy Fox in Hold the Mustard", GID_PJSDEMO, 6, 70, MDT_NONE,
{"mustard", "Spy Fox in Hold the Mustard", GID_HEGAME, 6, 70, MDT_NONE,
GF_NEW_OPCODES | 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, 70, MDT_NONE,
{"ff5demo", "Freddi Fish 5: The Case of the Creature of Coral Cave (Demo)", GID_HEGAME, 6, 70, MDT_NONE,
GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0},
{"freddicove", "Freddi Fish 5: The Case of the Creature of Coral Cave", GID_PJSDEMO, 6, 70, MDT_NONE,
{"freddicove", "Freddi Fish 5: The Case of the Creature of Coral Cave", GID_HEGAME, 6, 70, MDT_NONE,
GF_NEW_OPCODES | 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, 70, MDT_NONE,
{"pj3-demo", "Pajama Sam 3: You Are What You Eat From Your Head to Your Feet (Demo)", GID_HEGAME, 6, 70, MDT_NONE,
GF_NEW_OPCODES | 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, 70, MDT_NONE,
{"pajama3", "Pajama Sam 3: You Are What You Eat From Your Head to Your Feet", GID_HEGAME, 6, 70, MDT_NONE,
GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0},
{"dog", "Putt-Putt and Pep's Dog on a Stick", GID_PJSDEMO, 6, 70, MDT_NONE,
{"dog", "Putt-Putt and Pep's Dog on a Stick", GID_HEGAME, 6, 70, MDT_NONE,
GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0},
{"PuttsFunShop", "Putt-Putt's One-Stop Fun Shop", GID_PJSDEMO, 6, 70, MDT_NONE,
{"PuttsFunShop", "Putt-Putt's One-Stop Fun Shop", GID_HEGAME, 6, 70, MDT_NONE,
GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0},
{"putttime", "Putt-Putt Travels Through Time", GID_PJSDEMO, 6, 70, MDT_NONE,
{"putttime", "Putt-Putt Travels Through Time", GID_HEGAME, 6, 70, MDT_NONE,
GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0},
{"spyozon", "Spyfox 3: Operation Ozone", GID_PJSDEMO, 6, 70, MDT_NONE,
{"spyozon", "Spyfox 3: Operation Ozone", GID_HEGAME, 6, 70, MDT_NONE,
GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0},
#endif
{NULL, NULL, 0, 0, 0, MDT_NONE, 0, 0}

@ -241,14 +241,10 @@ enum ScummGameId {
GID_CMI,
GID_MANIAC,
GID_ZAK,
GID_PUTTPUTT,
GID_PUTTDEMO,
GID_PUTTMOON,
GID_FBEAR,
GID_PJSDEMO,
GID_MONKEY_SEGA,
GID_FBPACK,
GID_FREDDI,
GID_HEGAME, // Generic name for all HE games with default behaviour
GID_PUTTDEMO,
GID_FBEAR,
GID_FREDDEMO
};