aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm/resource.cpp
diff options
context:
space:
mode:
authorMax Horn2006-04-23 22:39:55 +0000
committerMax Horn2006-04-23 22:39:55 +0000
commit3f41e2dc2135cc7c41cf504649e8f327635f1a73 (patch)
tree23e367ad92db4d3a6acc4502ee68a25e10591546 /engines/scumm/resource.cpp
parentf776b903d1cbe919108eff9d25f0239ff204a7a7 (diff)
downloadscummvm-rg350-3f41e2dc2135cc7c41cf504649e8f327635f1a73.tar.gz
scummvm-rg350-3f41e2dc2135cc7c41cf504649e8f327635f1a73.tar.bz2
scummvm-rg350-3f41e2dc2135cc7c41cf504649e8f327635f1a73.zip
Detect (and error out) if readMAXS fails
svn-id: r22120
Diffstat (limited to 'engines/scumm/resource.cpp')
-rw-r--r--engines/scumm/resource.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/engines/scumm/resource.cpp b/engines/scumm/resource.cpp
index beeff2f63c..c8a886733b 100644
--- a/engines/scumm/resource.cpp
+++ b/engines/scumm/resource.cpp
@@ -1181,13 +1181,16 @@ void ScummEngine_v6::readMAXS(int blockSize) {
_shadowPaletteSize = 256;
_shadowPalette = (byte *)calloc(_shadowPaletteSize, 1);
}
- }
+ } else
+ error("readMAXS(%d) failed to read MAXS data", blockSize);
}
void ScummEngine::readGlobalObjects() {
int i;
int num = _fileHandle->readUint16LE();
assert(num == _numGlobalObjects);
+ assert(_objectStateTable);
+ assert(_objectOwnerTable);
_fileHandle->read(_objectOwnerTable, num);
for (i = 0; i < num; i++) {
@@ -1209,6 +1212,8 @@ void ScummEngine_v8::readGlobalObjects() {
int i;
int num = _fileHandle->readUint32LE();
assert(num == _numGlobalObjects);
+ assert(_objectStateTable);
+ assert(_objectOwnerTable);
_objectIDMap = new ObjectNameId[num];
_objectIDMapSize = num;
@@ -1233,6 +1238,8 @@ void ScummEngine_v8::readGlobalObjects() {
void ScummEngine_v7::readGlobalObjects() {
int num = _fileHandle->readUint16LE();
assert(num == _numGlobalObjects);
+ assert(_objectStateTable);
+ assert(_objectOwnerTable);
_fileHandle->read(_objectStateTable, num);
_fileHandle->read(_objectRoomTable, num);