more v1 load directory ...
svn-id: r8274
This commit is contained in:
parent
0bf6779189
commit
6dbd36d668
3 changed files with 43 additions and 11 deletions
|
@ -25,13 +25,15 @@
|
|||
#include "resource.h"
|
||||
|
||||
void Scumm_v2::readClassicIndexFile() {
|
||||
if (_gameId == GID_MANIAC) {
|
||||
int i;
|
||||
|
||||
if (_gameId == GID_MANIAC64) {
|
||||
_numGlobalObjects = 800;
|
||||
_numRooms = 55;
|
||||
_numCostumes = 35;
|
||||
_numScripts = 200;
|
||||
_numSounds = 100;
|
||||
} else if (_gameId == GID_ZAK) {
|
||||
} else if (_gameId == GID_ZAK64) {
|
||||
_numGlobalObjects = 775;
|
||||
_numRooms = 61;
|
||||
_numCostumes = 37;
|
||||
|
@ -51,15 +53,43 @@ void Scumm_v2::readClassicIndexFile() {
|
|||
_palManipIntermediatePal = 0; // Will allocate when needed
|
||||
|
||||
_fileHandle.readUint16LE(); /* version magic number */
|
||||
for (int i = 0; i != _numGlobalObjects; i++) {
|
||||
for (i = 0; i != _numGlobalObjects; i++) {
|
||||
byte tmp = _fileHandle.readByte();
|
||||
_objectOwnerTable[i] = tmp & OF_OWNER_MASK;
|
||||
_objectStateTable[i] = tmp >> OF_STATE_SHL;
|
||||
}
|
||||
readResTypeList(rtRoom, MKID('ROOM'), "room");
|
||||
readResTypeList(rtCostume, MKID('COST'), "costume");
|
||||
readResTypeList(rtScript, MKID('SCRP'), "script");
|
||||
readResTypeList(rtSound, MKID('SOUN'), "sound");
|
||||
|
||||
for (i = 0; i < _numRooms; i++) {
|
||||
res.roomno[rtRoom][i] = i;
|
||||
_fileHandle.seek(_numRooms, SEEK_CUR);
|
||||
}
|
||||
|
||||
for (i = 0; i < _numCostumes; i++) {
|
||||
res.roomno[rtCostume][i] = _fileHandle.readByte();
|
||||
}
|
||||
for (i = 0; i < _numCostumes; i++) {
|
||||
res.roomoffs[rtCostume][i] = _fileHandle.readUint16LE();
|
||||
if (res.roomoffs[rtCostume][i] == 0xFFFF)
|
||||
res.roomoffs[rtCostume][i] = 0xFFFFFFFF;
|
||||
}
|
||||
|
||||
for (i = 0; i < _numScripts; i++) {
|
||||
res.roomno[rtScript][i] = _fileHandle.readByte();
|
||||
}
|
||||
for (i = 0; i < _numScripts; i++) {
|
||||
res.roomoffs[rtScript][i] = _fileHandle.readUint16LE();
|
||||
if (res.roomoffs[rtScript][i] == 0xFFFF)
|
||||
res.roomoffs[rtScript][i] = 0xFFFFFFFF;
|
||||
}
|
||||
|
||||
for (i = 0; i < _numSounds; i++) {
|
||||
res.roomno[rtSound][i] = _fileHandle.readByte();
|
||||
}
|
||||
for (i = 0; i < _numSounds; i++) {
|
||||
res.roomoffs[rtSound][i] = _fileHandle.readUint16LE();
|
||||
if (res.roomoffs[rtSound][i] == 0xFFFF)
|
||||
res.roomoffs[rtSound][i] = 0xFFFFFFFF;
|
||||
}
|
||||
}
|
||||
|
||||
void Scumm_v2::readEnhancedIndexFile() {
|
||||
|
|
|
@ -181,8 +181,8 @@ enum ScummGameId {
|
|||
GID_CMI,
|
||||
GID_MANIAC,
|
||||
GID_ZAK,
|
||||
//GID_MANIAC64,
|
||||
//GID_ZAK64,
|
||||
GID_MANIAC64,
|
||||
GID_ZAK64,
|
||||
GID_PUTTDEMO
|
||||
};
|
||||
|
||||
|
|
|
@ -61,8 +61,10 @@ extern uint16 _debugLevel;
|
|||
|
||||
static const VersionSettings scumm_settings[] = {
|
||||
/* Scumm Version 1 */
|
||||
// {"maniac64", "Maniac Mansion (C64)", GID_MANIAC64, 1, 0, 0,},
|
||||
// {"zak64", "Zak McKracken and the Alien Mindbenders (C64)", GID_ZAK64, 1, 0, 0,},
|
||||
{"maniac64", "Maniac Mansion (C64)", GID_MANIAC64, 1, 0, 0,
|
||||
GF_AFTER_V1 | GF_AFTER_V2 | GF_SMALL_HEADER | GF_USE_KEY | GF_SMALL_NAMES | GF_16COLOR | GF_OLD_BUNDLE | GF_NO_SCALLING, "00.LFL"},
|
||||
{"zak64", "Zak McKracken and the Alien Mindbenders (C64)", GID_ZAK64, 1, 0, 0,
|
||||
GF_AFTER_V1 | GF_AFTER_V2 | GF_SMALL_HEADER | GF_USE_KEY | GF_SMALL_NAMES | GF_16COLOR | GF_OLD_BUNDLE | GF_NO_SCALLING, "00.LFL"},
|
||||
|
||||
/* Scumm Version 2 */
|
||||
{"maniac", "Maniac Mansion", GID_MANIAC, 2, 0, 0,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue