[Scummvm-cvs-logs] SF.net SVN: scummvm: [22120] scummvm/trunk/engines/scumm
fingolfin at users.sourceforge.net
fingolfin at users.sourceforge.net
Sun Apr 23 15:41:01 CEST 2006
Revision: 22120
Author: fingolfin
Date: 2006-04-23 15:39:55 -0700 (Sun, 23 Apr 2006)
ViewCVS: http://svn.sourceforge.net/scummvm/?rev=22120&view=rev
Log Message:
-----------
Detect (and error out) if readMAXS fails
Modified Paths:
--------------
scummvm/trunk/engines/scumm/he/resource_he.cpp
scummvm/trunk/engines/scumm/resource.cpp
Modified: scummvm/trunk/engines/scumm/he/resource_he.cpp
===================================================================
--- scummvm/trunk/engines/scumm/he/resource_he.cpp 2006-04-23 21:58:01 UTC (rev 22119)
+++ scummvm/trunk/engines/scumm/he/resource_he.cpp 2006-04-23 22:39:55 UTC (rev 22120)
@@ -1683,9 +1683,8 @@
_objectRoomTable = (byte *)calloc(_numGlobalObjects, 1);
_numGlobalScripts = 2048;
- }
-
- ScummEngine_v90he::readMAXS(blockSize);
+ } else
+ ScummEngine_v90he::readMAXS(blockSize);
}
void ScummEngine_v90he::readMAXS(int blockSize) {
@@ -1718,9 +1717,8 @@
_numGlobalScripts = 2048;
else
_numGlobalScripts = 200;
- }
-
- ScummEngine_v72he::readMAXS(blockSize);
+ } else
+ ScummEngine_v72he::readMAXS(blockSize);
}
void ScummEngine_v72he::readMAXS(int blockSize) {
@@ -1747,9 +1745,8 @@
_objectRoomTable = (byte *)calloc(_numGlobalObjects, 1);
_numGlobalScripts = 200;
- }
-
- ScummEngine_v6::readMAXS(blockSize);
+ } else
+ ScummEngine_v6::readMAXS(blockSize);
}
byte *ScummEngine_v72he::getStringAddress(int i) {
Modified: scummvm/trunk/engines/scumm/resource.cpp
===================================================================
--- scummvm/trunk/engines/scumm/resource.cpp 2006-04-23 21:58:01 UTC (rev 22119)
+++ scummvm/trunk/engines/scumm/resource.cpp 2006-04-23 22:39:55 UTC (rev 22120)
@@ -1181,13 +1181,16 @@
_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 @@
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_v7::readGlobalObjects() {
int num = _fileHandle->readUint16LE();
assert(num == _numGlobalObjects);
+ assert(_objectStateTable);
+ assert(_objectOwnerTable);
_fileHandle->read(_objectStateTable, num);
_fileHandle->read(_objectRoomTable, num);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list