aboutsummaryrefslogtreecommitdiff
path: root/scumm/resource.cpp
diff options
context:
space:
mode:
authorMax Horn2002-12-24 16:10:31 +0000
committerMax Horn2002-12-24 16:10:31 +0000
commit190685dc69dad12563ccf8ed3689ec1f34cff360 (patch)
tree540f3044d93a6049b8f3e862be44dceb59dff68b /scumm/resource.cpp
parent22ab263b002c2f0946fa56c2463860f64b384278 (diff)
downloadscummvm-rg350-190685dc69dad12563ccf8ed3689ec1f34cff360.tar.gz
scummvm-rg350-190685dc69dad12563ccf8ed3689ec1f34cff360.tar.bz2
scummvm-rg350-190685dc69dad12563ccf8ed3689ec1f34cff360.zip
added a map from object names to object ids
svn-id: r6104
Diffstat (limited to 'scumm/resource.cpp')
-rw-r--r--scumm/resource.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/scumm/resource.cpp b/scumm/resource.cpp
index 475e80bbc0..1d49f702b5 100644
--- a/scumm/resource.cpp
+++ b/scumm/resource.cpp
@@ -25,6 +25,8 @@
#include "resource.h"
#include "verbs.h"
#include "scumm/sound.h"
+#include "common/map.h"
+#include "common/str.h"
#include <stdio.h>
@@ -274,8 +276,13 @@ void Scumm::readIndexFile()
assert(num == _numGlobalObjects);
if (_features & GF_AFTER_V8) { /* FIXME: Not sure.. */
+ char buffer[40];
for (i = 0; i < num; i++) {
- _fileHandle.seek(40, SEEK_CUR);
+ _fileHandle.read(buffer, 40);
+ if (buffer[0]) {
+ // Add to object name-to-id map
+ _objectIDMap[buffer] = i;
+ }
_objectStateTable[i] = _fileHandle.readByte();
_objectRoomTable[i] = _fileHandle.readByte();
_classData[i] = _fileHandle.readUint32LE();
@@ -292,7 +299,7 @@ void Scumm::readIndexFile()
_objectOwnerTable[i] &= OF_OWNER_MASK;
}
}
-
+
if (!(_features & GF_AFTER_V8)) {
_fileHandle.read(_classData, num * sizeof(uint32));