diff options
author | Eugene Sandulenko | 2013-06-09 13:22:10 +0300 |
---|---|---|
committer | Eugene Sandulenko | 2013-09-06 14:48:10 +0300 |
commit | 0b1bda78fc5144c8ea03e597face630c29a5a88f (patch) | |
tree | 40593d8da882423c271c565c91f889d358a3465f | |
parent | 67d30f29f9e658ce760b8a1a5f413fef4d2d586e (diff) | |
download | scummvm-rg350-0b1bda78fc5144c8ea03e597face630c29a5a88f.tar.gz scummvm-rg350-0b1bda78fc5144c8ea03e597face630c29a5a88f.tar.bz2 scummvm-rg350-0b1bda78fc5144c8ea03e597face630c29a5a88f.zip |
FULLPIPE: Fix object loading
-rw-r--r-- | engines/fullpipe/utils.cpp | 10 |
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) { |