[Scummvm-cvs-logs] SF.net SVN: scummvm: [20708] scummvm/trunk/engines/scumm/he/resource_he.cpp

kirben at users.sourceforge.net kirben at users.sourceforge.net
Wed Feb 15 15:03:03 CET 2006


Revision: 20708
Author:   kirben
Date:     2006-02-15 15:02:37 -0800 (Wed, 15 Feb 2006)
ViewCVS:  http://svn.sourceforge.net/scummvm?rev=20708&view=rev

Log Message:
-----------
Read correct index by block size in HE games again, to help track down unknown versions.

Modified Paths:
--------------
    scummvm/trunk/engines/scumm/he/resource_he.cpp
Modified: scummvm/trunk/engines/scumm/he/resource_he.cpp
===================================================================
--- scummvm/trunk/engines/scumm/he/resource_he.cpp	2006-02-15 21:14:17 UTC (rev 20707)
+++ scummvm/trunk/engines/scumm/he/resource_he.cpp	2006-02-15 23:02:37 UTC (rev 20708)
@@ -1662,90 +1662,102 @@
 }
 
 void ScummEngine_v99he::readMAXS(int blockSize) {
-	debug(0, "ScummEngine_v99he readMAXS: MAXS has blocksize %d", blockSize);
+	if (blockSize == 52) {
+		debug(0, "ScummEngine_v99he readMAXS: MAXS has blocksize %d", blockSize);
 
-	_numVariables = _fileHandle->readUint16LE();
-	_fileHandle->readUint16LE();
-	_numRoomVariables = _fileHandle->readUint16LE();
-	_numLocalObjects = _fileHandle->readUint16LE();
-	_numArray = _fileHandle->readUint16LE();
-	_fileHandle->readUint16LE();
-	_fileHandle->readUint16LE();
-	_numFlObject = _fileHandle->readUint16LE();
-	_numInventory = _fileHandle->readUint16LE();
-	_numRooms = _fileHandle->readUint16LE();
-	_numScripts = _fileHandle->readUint16LE();
-	_numSounds = _fileHandle->readUint16LE();
-	_numCharsets = _fileHandle->readUint16LE();
-	_numCostumes = _fileHandle->readUint16LE();
-	_numGlobalObjects = _fileHandle->readUint16LE();
-	_numImages = _fileHandle->readUint16LE();
-	_numSprites = _fileHandle->readUint16LE();
-	_numLocalScripts = _fileHandle->readUint16LE();
-	_HEHeapSize = _fileHandle->readUint16LE();
-	_numPalettes = _fileHandle->readUint16LE();
-	_numUnk = _fileHandle->readUint16LE();
-	_numTalkies = _fileHandle->readUint16LE();
-	_numNewNames = 10;
+		_numVariables = _fileHandle->readUint16LE();
+		_fileHandle->readUint16LE();
+		_numRoomVariables = _fileHandle->readUint16LE();
+		_numLocalObjects = _fileHandle->readUint16LE();
+		_numArray = _fileHandle->readUint16LE();
+		_fileHandle->readUint16LE();
+		_fileHandle->readUint16LE();
+		_numFlObject = _fileHandle->readUint16LE();
+		_numInventory = _fileHandle->readUint16LE();
+		_numRooms = _fileHandle->readUint16LE();
+		_numScripts = _fileHandle->readUint16LE();
+		_numSounds = _fileHandle->readUint16LE();
+		_numCharsets = _fileHandle->readUint16LE();
+		_numCostumes = _fileHandle->readUint16LE();
+		_numGlobalObjects = _fileHandle->readUint16LE();
+		_numImages = _fileHandle->readUint16LE();
+		_numSprites = _fileHandle->readUint16LE();
+		_numLocalScripts = _fileHandle->readUint16LE();
+		_HEHeapSize = _fileHandle->readUint16LE();
+		_numPalettes = _fileHandle->readUint16LE();
+		_numUnk = _fileHandle->readUint16LE();
+		_numTalkies = _fileHandle->readUint16LE();
+		_numNewNames = 10;
 
-	_objectRoomTable = (byte *)calloc(_numGlobalObjects, 1);
-	_numGlobalScripts = 2048;
+		_objectRoomTable = (byte *)calloc(_numGlobalObjects, 1);
+		_numGlobalScripts = 2048;
+	}
+
+	ScummEngine_v90he::readMAXS(blockSize);
 }
 
 void ScummEngine_v90he::readMAXS(int blockSize) {
-	debug(0, "ScummEngine_v90he readMAXS: MAXS has blocksize %d", blockSize);
+	if (blockSize == 46) {
+		debug(0, "ScummEngine_v90he readMAXS: MAXS has blocksize %d", blockSize);
 
-	_numVariables = _fileHandle->readUint16LE();
-	_fileHandle->readUint16LE();
-	_numRoomVariables = _fileHandle->readUint16LE();
-	_numLocalObjects = _fileHandle->readUint16LE();
-	_numArray = _fileHandle->readUint16LE();
-	_fileHandle->readUint16LE();
-	_fileHandle->readUint16LE();
-	_numFlObject = _fileHandle->readUint16LE();
-	_numInventory = _fileHandle->readUint16LE();
-	_numRooms = _fileHandle->readUint16LE();
-	_numScripts = _fileHandle->readUint16LE();
-	_numSounds = _fileHandle->readUint16LE();
-	_numCharsets = _fileHandle->readUint16LE();
-	_numCostumes = _fileHandle->readUint16LE();
-	_numGlobalObjects = _fileHandle->readUint16LE();
-	_numImages = _fileHandle->readUint16LE();
-	_numSprites = _fileHandle->readUint16LE();
-	_numLocalScripts = _fileHandle->readUint16LE();
-	_HEHeapSize = _fileHandle->readUint16LE();
-	_numNewNames = 10;
+		_numVariables = _fileHandle->readUint16LE();
+		_fileHandle->readUint16LE();
+		_numRoomVariables = _fileHandle->readUint16LE();
+		_numLocalObjects = _fileHandle->readUint16LE();
+		_numArray = _fileHandle->readUint16LE();
+		_fileHandle->readUint16LE();
+		_fileHandle->readUint16LE();
+		_numFlObject = _fileHandle->readUint16LE();
+		_numInventory = _fileHandle->readUint16LE();
+		_numRooms = _fileHandle->readUint16LE();
+		_numScripts = _fileHandle->readUint16LE();
+		_numSounds = _fileHandle->readUint16LE();
+		_numCharsets = _fileHandle->readUint16LE();
+		_numCostumes = _fileHandle->readUint16LE();
+		_numGlobalObjects = _fileHandle->readUint16LE();
+		_numImages = _fileHandle->readUint16LE();
+		_numSprites = _fileHandle->readUint16LE();
+		_numLocalScripts = _fileHandle->readUint16LE();
+		_HEHeapSize = _fileHandle->readUint16LE();
+		_numNewNames = 10;
 
-	_objectRoomTable = (byte *)calloc(_numGlobalObjects, 1);
-	if (_features & GF_HE_985)
-		_numGlobalScripts = 2048;
-	else
-		_numGlobalScripts = 200;
+		_objectRoomTable = (byte *)calloc(_numGlobalObjects, 1);
+		if (_features & GF_HE_985)
+			_numGlobalScripts = 2048;
+		else
+			_numGlobalScripts = 200;
+	}
+
+	ScummEngine_v72he::readMAXS(blockSize);
 }
 
 void ScummEngine_v72he::readMAXS(int blockSize) {
-	debug(0, "ScummEngine_v72he readMAXS: MAXS has blocksize %d", blockSize);
+	if (blockSize == 40) {
+		debug(0, "ScummEngine_v72he readMAXS: MAXS has blocksize %d", blockSize);
 
-	_numVariables = _fileHandle->readUint16LE();
-	_fileHandle->readUint16LE();
-	_numBitVariables = _numRoomVariables = _fileHandle->readUint16LE();
-	_numLocalObjects = _fileHandle->readUint16LE();
-	_numArray = _fileHandle->readUint16LE();
-	_fileHandle->readUint16LE();
-	_numVerbs = _fileHandle->readUint16LE();
-	_numFlObject = _fileHandle->readUint16LE();
-	_numInventory = _fileHandle->readUint16LE();
-	_numRooms = _fileHandle->readUint16LE();
-	_numScripts = _fileHandle->readUint16LE();
-	_numSounds = _fileHandle->readUint16LE();
-	_numCharsets = _fileHandle->readUint16LE();
-	_numCostumes = _fileHandle->readUint16LE();
-	_numGlobalObjects = _fileHandle->readUint16LE();
-	_numImages = _fileHandle->readUint16LE();
-	_numNewNames = 10;
+		_numVariables = _fileHandle->readUint16LE();
+		_fileHandle->readUint16LE();
+		_numBitVariables = _numRoomVariables = _fileHandle->readUint16LE();
+		_numLocalObjects = _fileHandle->readUint16LE();
+		_numArray = _fileHandle->readUint16LE();
+		_fileHandle->readUint16LE();
+		_numVerbs = _fileHandle->readUint16LE();
+		_numFlObject = _fileHandle->readUint16LE();
+		_numInventory = _fileHandle->readUint16LE();
+		_numRooms = _fileHandle->readUint16LE();
+		_numScripts = _fileHandle->readUint16LE();
+		_numSounds = _fileHandle->readUint16LE();
+		_numCharsets = _fileHandle->readUint16LE();
+		_numCostumes = _fileHandle->readUint16LE();
+		_numGlobalObjects = _fileHandle->readUint16LE();
+		_numImages = _fileHandle->readUint16LE();
+		_numNewNames = 10;
 
-	_objectRoomTable = (byte *)calloc(_numGlobalObjects, 1);
-	_numGlobalScripts = 200;
+		_objectRoomTable = (byte *)calloc(_numGlobalObjects, 1);
+		_numGlobalScripts = 200;
+	}
+
+	ScummEngine_v6::readMAXS(blockSize);
 }
 
 byte *ScummEngine_v72he::getStringAddress(int i) {







More information about the Scummvm-git-logs mailing list