Add index for HE C++ games.

Enable all HE games again.

svn-id: r14939
This commit is contained in:
Travis Howell 2004-09-07 12:21:54 +00:00
parent 44ab28cec5
commit c6e0afadf0
2 changed files with 55 additions and 17 deletions

View File

@ -571,6 +571,11 @@ void ScummEngine::readIndexFile() {
readResTypeList(rtImage, MKID('AWIZ'), "images");
break;
case MKID('DIRT'):
_fileHandle.seek(itemsize - 8, SEEK_CUR);
warning("DIRT index block not yet handled, skipping");
break;
case MKID('DISK'):
_fileHandle.seek(itemsize - 8, SEEK_CUR);
warning("DISK index block not yet handled, skipping");
@ -2288,6 +2293,42 @@ void ScummEngine::readMAXS(int blockSize) {
_numGlobalScripts = 2000;
_shadowPaletteSize = NUM_SHADOW_PALETTE * 256;
} else if (_heversion >= 70 && (blockSize == 44 + 8)) { // C++ based engine
_numVariables = _fileHandle.readUint16LE();
_fileHandle.readUint16LE(); // not used in spydemo
_fileHandle.readUint16LE(); // _numLocalVariables ?
_numLocalObjects = _fileHandle.readUint16LE();
_numArray = _fileHandle.readUint16LE();
_fileHandle.readUint16LE(); // unknown
_fileHandle.readUint16LE(); // unknown
_numFlObject = _fileHandle.readUint16LE();
_numInventory = _fileHandle.readUint16LE();
_numRooms = _fileHandle.readUint16LE();
_numScripts = _fileHandle.readUint16LE();
_numSounds = _fileHandle.readUint16LE();
_numCharsets = _fileHandle.readUint16LE();
_numCostumes = _fileHandle.readUint16LE();
_numGlobalObjects = _fileHandle.readUint16LE();
_numImages = _fileHandle.readUint16LE();
_fileHandle.readUint16LE(); // unknown
_fileHandle.readUint16LE(); // _numLocalScriptOffsets
_fileHandle.readUint16LE(); // unknown
_fileHandle.readUint16LE(); // unknown
_fileHandle.readUint16LE(); // unknown
_fileHandle.readUint16LE(); // _numTalkie
/* TODO check these values */
_objectRoomTable = (byte *)calloc(_numGlobalObjects, 1);
_numNewNames = 10;
_numRoomVariables = 64;
_objectRoomTable = (byte *)calloc(_numGlobalObjects * 4, 1);
_numGlobalScripts = 200;
_shadowPaletteSize = 256;
} else if (_heversion >= 70 && (blockSize == 38 + 8)) { // Scummsys.9x
_numVariables = _fileHandle.readUint16LE();
_fileHandle.readUint16LE(); // not used in spydemo
@ -2306,7 +2347,7 @@ void ScummEngine::readMAXS(int blockSize) {
_numGlobalObjects = _fileHandle.readUint16LE();
_numImages = _fileHandle.readUint16LE();
_fileHandle.readUint16LE(); // unknown
_fileHandle.readUint16LE(); // _numLocalScripts?
_fileHandle.readUint16LE(); // _numLocalScriptOffsets
_fileHandle.readUint16LE(); // unknown
/* TODO check these values */
@ -2320,8 +2361,6 @@ void ScummEngine::readMAXS(int blockSize) {
_numGlobalScripts = 200;
_shadowPaletteSize = 256;
} else if (_heversion >= 70 && (blockSize == 44 + 8)) { // C++ based engine
error("MAXS blocks from C++ based games not yet supported");
} else if (_heversion >= 70 && blockSize > 38) { // sputm7.2
if (blockSize != 32 + 8)
error("MAXS block of size %d not supported, please report", blockSize);

View File

@ -306,7 +306,6 @@ static const ScummGameSettings scumm_settings[] = {
{"chase", "Spy Fox in Cheese Chase Game", GID_HEGAME, 6, 90, MDT_NONE,
GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0},
#ifdef HEGAMES
// Humongous Entertainment Scumm Version 9.8 ? Scummsys.98
// these and later games can easily be identified by the .(a) file instead of a .he1
// and INIB chunk in the .he0
@ -325,6 +324,7 @@ static const ScummGameSettings scumm_settings[] = {
{"BluesABCTimeDemo", "Blue's ABC Time (Demo)", GID_HEGAME, 6, 98, MDT_NONE,
GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0},
// Engine moved to c++
// Humongous Entertainment Scumm Version 9.9 ? Scummsys.99
{"sf2-demo", "Spyfox 2: Some Assembly Required (Demo)", GID_HEGAME, 6, 98, MDT_NONE,
GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0},
@ -333,30 +333,29 @@ static const ScummGameSettings scumm_settings[] = {
{"mustard", "Spy Fox in Hold the Mustard", GID_HEGAME, 6, 98, MDT_NONE,
GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0},
// Humongous Entertainment Scumm Version ? engine moved to c++
{"ff5demo", "Freddi Fish 5: The Case of the Creature of Coral Cave (Demo)", GID_HEGAME, 6, 90, MDT_NONE,
// Humongous Entertainment Scumm Version ?
{"ff5demo", "Freddi Fish 5: The Case of the Creature of Coral Cave (Demo)", GID_HEGAME, 6, 98, MDT_NONE,
GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0},
{"freddicove", "Freddi Fish 5: The Case of the Creature of Coral Cave", GID_HEGAME, 6, 90, MDT_NONE,
{"freddicove", "Freddi Fish 5: The Case of the Creature of Coral Cave", GID_HEGAME, 6, 98, MDT_NONE,
GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0},
{"ffhsdemo", "Freddi Fish 2: The Case of the Haunted Schoolhouse (Demo)", GID_HEGAME, 6, 90, MDT_NONE,
{"ffhsdemo", "Freddi Fish 2: The Case of the Haunted Schoolhouse (Demo)", GID_HEGAME, 6, 98, MDT_NONE,
GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0},
{"pj3-demo", "Pajama Sam 3: You Are What You Eat From Your Head to Your Feet (Demo)", GID_HEGAME, 6, 90, MDT_NONE,
{"pj3-demo", "Pajama Sam 3: You Are What You Eat From Your Head to Your Feet (Demo)", GID_HEGAME, 6, 98, MDT_NONE,
GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0},
{"pajama3", "Pajama Sam 3: You Are What You Eat From Your Head to Your Feet", GID_HEGAME, 6, 90, MDT_NONE,
{"pajama3", "Pajama Sam 3: You Are What You Eat From Your Head to Your Feet", GID_HEGAME, 6, 98, MDT_NONE,
GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0},
{"PuttsFunShop", "Putt-Putt's One-Stop Fun Shop", GID_HEGAME, 6, 90, MDT_NONE,
{"PuttsFunShop", "Putt-Putt's One-Stop Fun Shop", GID_HEGAME, 6, 98, MDT_NONE,
GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0},
{"putttime", "Putt-Putt Travels Through Time", GID_HEGAME, 6, 90, MDT_NONE,
{"putttime", "Putt-Putt Travels Through Time", GID_HEGAME, 6, 98, MDT_NONE,
GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0},
{"spyozon", "Spyfox 3: Operation Ozone", GID_HEGAME, 6, 90, MDT_NONE,
{"spyozon", "Spyfox 3: Operation Ozone", GID_HEGAME, 6, 98, MDT_NONE,
GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0},
{"bb2demo", "Backyard Baseball 2001 (Demo)", GID_HEGAME, 6, 90, MDT_NONE,
{"bb2demo", "Backyard Baseball 2001 (Demo)", GID_HEGAME, 6, 98, MDT_NONE,
GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0},
{"football2002", "Backyard Football 2002 (Demo)", GID_HEGAME, 6, 90, MDT_NONE,
{"football2002", "Backyard Football 2002 (Demo)", GID_HEGAME, 6, 98, MDT_NONE,
GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0},
{"pjsamdemo", "Pajama Sam: No Need To Hide When It's Dark Outside (Demo)", GID_HEGAME, 6, 90, MDT_NONE,
{"pjsamdemo", "Pajama Sam: No Need To Hide When It's Dark Outside (Demo)", GID_HEGAME, 6, 98, MDT_NONE,
GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0},
#endif
{NULL, NULL, 0, 0, 0, MDT_NONE, 0, 0, 0}
};