[Scummvm-cvs-logs] CVS: scummvm/scumm scumm.cpp,1.148,1.149 resource.cpp,1.251,1.252

Jonathan Gray khalek at users.sourceforge.net
Thu Aug 26 07:10:14 CEST 2004


Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9976

Modified Files:
	scumm.cpp resource.cpp 
Log Message:
allocate memory for dobj in he 90, point games claiming to be 90 at 72he class

Index: scumm.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/scumm.cpp,v
retrieving revision 1.148
retrieving revision 1.149
diff -u -d -r1.148 -r1.149
--- scumm.cpp	26 Aug 2004 12:35:17 -0000	1.148
+++ scumm.cpp	26 Aug 2004 14:07:19 -0000	1.149
@@ -3273,6 +3273,7 @@
 		switch (game.heversion) {
 #ifndef __PALM_OS__
 		case 72:
+		case 90:
 			engine = new ScummEngine_v72he(detector, syst, game);
 			break;
 		case 71:

Index: resource.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/resource.cpp,v
retrieving revision 1.251
retrieving revision 1.252
diff -u -d -r1.251 -r1.252
--- resource.cpp	26 Aug 2004 06:08:41 -0000	1.251
+++ resource.cpp	26 Aug 2004 14:07:19 -0000	1.252
@@ -527,12 +527,11 @@
 				_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 @@
 		_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





More information about the Scummvm-git-logs mailing list