aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorEugene Sandulenko2013-06-09 13:22:10 +0300
committerEugene Sandulenko2013-09-06 14:48:10 +0300
commit0b1bda78fc5144c8ea03e597face630c29a5a88f (patch)
tree40593d8da882423c271c565c91f889d358a3465f /engines
parent67d30f29f9e658ce760b8a1a5f413fef4d2d586e (diff)
downloadscummvm-rg350-0b1bda78fc5144c8ea03e597face630c29a5a88f.tar.gz
scummvm-rg350-0b1bda78fc5144c8ea03e597face630c29a5a88f.tar.bz2
scummvm-rg350-0b1bda78fc5144c8ea03e597face630c29a5a88f.zip
FULLPIPE: Fix object loading
Diffstat (limited to 'engines')
-rw-r--r--engines/fullpipe/utils.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/engines/fullpipe/utils.cpp b/engines/fullpipe/utils.cpp
index 1c324a020c..5da63114b1 100644
--- a/engines/fullpipe/utils.cpp
+++ b/engines/fullpipe/utils.cpp
@@ -103,10 +103,14 @@ CObject *MfcArchive::parseClass() {
objectId = _classMap[name];
_objectMap.push_back(objectId);
- _objectMap.push_back(objectId); // Gross HACK
+ debug(0, "tag: %d (%x)", _objectMap.size() - 1, objectId);
- debug(0, "tag: %d", _objectMap.size() - 1);
+ objectId = _classMap[name];
} else {
+ if ((obTag & 0x8000) == 0) {
+ error("Wrong object index format: %d at 0x%08x", obTag, pos() - 2);
+ }
+
obTag &= ~0x8000;
debug(0, "parseClass::obTag <%d>", obTag);
@@ -118,6 +122,8 @@ CObject *MfcArchive::parseClass() {
objectId = _objectMap[obTag];
}
+ _objectMap.push_back(objectId);
+
debug(0, "objectId: %d", objectId);
switch (objectId) {