diff options
author | Max Horn | 2007-04-01 15:58:34 +0000 |
---|---|---|
committer | Max Horn | 2007-04-01 15:58:34 +0000 |
commit | 2447752a51ded9f6f70d392c8f572dd94eb5d65c (patch) | |
tree | 20c8077f00513839eed5e3fa949e204abb21898f /engines/scumm/resource_v2.cpp | |
parent | a97ab92dd95ead2bda8f99db163896d479adf886 (diff) | |
download | scummvm-rg350-2447752a51ded9f6f70d392c8f572dd94eb5d65c.tar.gz scummvm-rg350-2447752a51ded9f6f70d392c8f572dd94eb5d65c.tar.bz2 scummvm-rg350-2447752a51ded9f6f70d392c8f572dd94eb5d65c.zip |
Reverted my roomoffs changes (broke the Loom intro), and instead added the constant RES_INVALID_OFFSET to indicate an invalid room offset
svn-id: r26353
Diffstat (limited to 'engines/scumm/resource_v2.cpp')
-rw-r--r-- | engines/scumm/resource_v2.cpp | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/engines/scumm/resource_v2.cpp b/engines/scumm/resource_v2.cpp index 3e14f5a6ff..08393da708 100644 --- a/engines/scumm/resource_v2.cpp +++ b/engines/scumm/resource_v2.cpp @@ -91,28 +91,36 @@ void ScummEngine_v2::readClassicIndexFile() { } _fileHandle->seek(_numRooms, SEEK_CUR); for (i = 0; i < _numRooms; i++) { - _res->roomoffs[rtRoom][i] = _fileHandle->readSint16LE(); + _res->roomoffs[rtRoom][i] = _fileHandle->readUint16LE(); + if (_res->roomoffs[rtRoom][i] == 0xFFFF) + _res->roomoffs[rtRoom][i] = RES_INVALID_OFFSET; } for (i = 0; i < _numCostumes; i++) { _res->roomno[rtCostume][i] = _fileHandle->readByte(); } for (i = 0; i < _numCostumes; i++) { - _res->roomoffs[rtCostume][i] = _fileHandle->readSint16LE(); + _res->roomoffs[rtCostume][i] = _fileHandle->readUint16LE(); + if (_res->roomoffs[rtCostume][i] == 0xFFFF) + _res->roomoffs[rtCostume][i] = RES_INVALID_OFFSET; } for (i = 0; i < _numScripts; i++) { _res->roomno[rtScript][i] = _fileHandle->readByte(); } for (i = 0; i < _numScripts; i++) { - _res->roomoffs[rtScript][i] = _fileHandle->readSint16LE(); + _res->roomoffs[rtScript][i] = _fileHandle->readUint16LE(); + if (_res->roomoffs[rtScript][i] == 0xFFFF) + _res->roomoffs[rtScript][i] = RES_INVALID_OFFSET; } for (i = 0; i < _numSounds; i++) { _res->roomno[rtSound][i] = _fileHandle->readByte(); } for (i = 0; i < _numSounds; i++) { - _res->roomoffs[rtSound][i] = _fileHandle->readSint16LE(); + _res->roomoffs[rtSound][i] = _fileHandle->readUint16LE(); + if (_res->roomoffs[rtSound][i] == 0xFFFF) + _res->roomoffs[rtSound][i] = RES_INVALID_OFFSET; } } |