diff options
author | Max Horn | 2006-04-23 22:39:55 +0000 |
---|---|---|
committer | Max Horn | 2006-04-23 22:39:55 +0000 |
commit | 3f41e2dc2135cc7c41cf504649e8f327635f1a73 (patch) | |
tree | 23e367ad92db4d3a6acc4502ee68a25e10591546 /engines/scumm/resource.cpp | |
parent | f776b903d1cbe919108eff9d25f0239ff204a7a7 (diff) | |
download | scummvm-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.cpp | 9 |
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); |