diff options
| -rw-r--r-- | scumm/resource.cpp | 16 | ||||
| -rw-r--r-- | scumm/scumm.cpp | 1 | 
2 files changed, 14 insertions, 3 deletions
diff --git a/scumm/resource.cpp b/scumm/resource.cpp index c0492b4e29..d97c89f8e0 100644 --- a/scumm/resource.cpp +++ b/scumm/resource.cpp @@ -527,12 +527,11 @@ void ScummEngine::readIndexFile() {  				_fileHandle.read(_objectStateTable, num);  				_fileHandle.read(_objectRoomTable, num);  				memset(_objectOwnerTable, 0xFF, num); -			} else if (_heversion >= 90) { // newer windows titles -				error("DOBJ reading not yet supported for Scummsys >= 90"); -			} else if (_heversion >= 70) { // older Windows titles +			} else if (_heversion >= 70) { // HE Windows titles  				_fileHandle.read(_objectStateTable, num);  				_fileHandle.read(_objectOwnerTable, num);  				_fileHandle.read(_objectRoomTable, num); +				// FIXME more DOBJ bits left to sort out here  			} else {  				_fileHandle.read(_objectOwnerTable, num);  				for (i = 0; i < num; i++) { @@ -2310,6 +2309,17 @@ void ScummEngine::readMAXS(int blockSize) {  		_fileHandle.readUint16LE(); // unknown  		_fileHandle.readUint16LE(); // _numLocalScripts?  		_fileHandle.readUint16LE(); // unknown + +		/* TODO check these values */ + +		_objectRoomTable = (byte *)calloc(_numGlobalObjects, 1); + +		_numNewNames = 10; + +		_objectRoomTable = (byte *)calloc(_numGlobalObjects * 4, 1); + +		_numGlobalScripts = 200; +		_shadowPaletteSize = 256;  	} else if (_heversion >= 70 && (blockSize == 44 + 8)) { // C++ based engine  		error("MAXS blocks from C++ based games not yet supported");  	} else if (_heversion >= 70 && blockSize > 38) { // sputm7.2 diff --git a/scumm/scumm.cpp b/scumm/scumm.cpp index d5fc3b7413..f89a27efad 100644 --- a/scumm/scumm.cpp +++ b/scumm/scumm.cpp @@ -3273,6 +3273,7 @@ Engine *Engine_SCUMM_create(GameDetector *detector, OSystem *syst) {  		switch (game.heversion) {  #ifndef __PALM_OS__  		case 72: +		case 90:  			engine = new ScummEngine_v72he(detector, syst, game);  			break;  		case 71:  | 
