aboutsummaryrefslogtreecommitdiff
path: root/scumm/resource_v3.cpp
diff options
context:
space:
mode:
authorPaweł Kołodziejski2003-04-11 16:25:09 +0000
committerPaweł Kołodziejski2003-04-11 16:25:09 +0000
commitfd28237eb8ed92b08369db1f2d73f2216f01b029 (patch)
tree37051160517416a7928806891847892fc5c85853 /scumm/resource_v3.cpp
parent91c6f38ed45fa16572a80d84d8458f8573769ffd (diff)
downloadscummvm-rg350-fd28237eb8ed92b08369db1f2d73f2216f01b029.tar.gz
scummvm-rg350-fd28237eb8ed92b08369db1f2d73f2216f01b029.tar.bz2
scummvm-rg350-fd28237eb8ed92b08369db1f2d73f2216f01b029.zip
added loading object flags for loom ega
svn-id: r6973
Diffstat (limited to 'scumm/resource_v3.cpp')
-rw-r--r--scumm/resource_v3.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/scumm/resource_v3.cpp b/scumm/resource_v3.cpp
index 76de393c3f..5ab645c503 100644
--- a/scumm/resource_v3.cpp
+++ b/scumm/resource_v3.cpp
@@ -59,8 +59,18 @@ void Scumm_v3::readIndexFile() {
_palManipIntermediatePal = 0; // Will allocate when needed
_fileHandle.readUint16LE(); /* version magic number */
- _fileHandle.readUint16LE(); /* nb global objects */
- _fileHandle.seek(_numGlobalObjects * 4, SEEK_CUR); // Skip object flags
+ int num = _fileHandle.readUint16LE();
+ assert(num == _numGlobalObjects);
+ for (int i = 0; i != num; i++) {
+ uint32 bits = _fileHandle.readByte();
+ byte tmp;
+ bits |= _fileHandle.readByte() << 8;
+ bits |= _fileHandle.readByte() << 16;
+ _classData[i] = bits;
+ 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");