[Scummvm-cvs-logs] CVS: scummvm/scumm scummvm.cpp,2.354,2.355 resource.cpp,1.143,1.144 scumm.h,1.290,1.291

Jonathan Gray khalek at users.sourceforge.net
Thu Aug 28 19:40:02 CEST 2003


Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1:/tmp/cvs-serv13762

Modified Files:
	scummvm.cpp resource.cpp scumm.h 
Log Message:
make the 2nd gen windows based humongous games that have things like a different layout in the MAXS block at least start the bootscript, added pjs-demo target to test with

Index: scummvm.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/scummvm.cpp,v
retrieving revision 2.354
retrieving revision 2.355
diff -u -d -r2.354 -r2.355
--- scummvm.cpp	28 Aug 2003 06:38:03 -0000	2.354
+++ scummvm.cpp	29 Aug 2003 02:39:05 -0000	2.355
@@ -155,9 +155,11 @@
 	{"test", "Test demo game", GID_SAMNMAX, 6, /*MDT_PCSPK |*/ MDT_ADLIB | MDT_NATIVE, GF_NEW_OPCODES, 0},
 
 	/* Humongous Entertainment Scumm Version 7 */
-	{"farmdemo", "Let's Explore the Farm with Buzzy (Demo)", GID_SAMNMAX, 6, MDT_NONE,
+	{"farmdemo", "Let's Explore the Farm with Buzzy (Demo)", GID_PUTTPUTT, 6, MDT_NONE,
 	 GF_NEW_OPCODES | GF_AFTER_HEV7 | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0},
 
+	{"pjs-demo", "Pajama Sam (Demo)", GID_PJSDEMO, 6, MDT_NONE,
+	 GF_NEW_OPCODES | GF_AFTER_HEV7 | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0},
 	/* Scumm Version 7 */
 	{"ft", "Full Throttle", GID_FT, 7, MDT_NONE,
 	 GF_NEW_OPCODES | GF_NEW_COSTUMES | GF_NEW_CAMERA | GF_DIGI_IMUSE, 0},

Index: resource.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/resource.cpp,v
retrieving revision 1.143
retrieving revision 1.144
diff -u -d -r1.143 -r1.144
--- resource.cpp	28 Aug 2003 14:25:29 -0000	1.143
+++ resource.cpp	29 Aug 2003 02:39:05 -0000	1.144
@@ -79,13 +79,13 @@
 		}
 		if (!(_features & GF_SMALL_HEADER)) {
 
-			if (_version >= 7) {
+			if (_features & GF_AFTER_HEV7) {
+				sprintf(buf, "%s.he%.1d", _exe_name, room == 0 ? 0 : 1);
+			} else if (_version >= 7) {
 				if (room > 0 && (_version == 8))
 					VAR(VAR_CURRENTDISK) = res.roomno[rtRoom][room];
 				sprintf(buf, "%s.la%d", _exe_name, room == 0 ? 0 : res.roomno[rtRoom][room]);
 				sprintf(buf2, "%s.%.3d", _exe_name, room == 0 ? 0 : res.roomno[rtRoom][room]);
-			} else if (_features & GF_AFTER_HEV7) {
-				sprintf(buf, "%s.he%.1d", _exe_name, room == 0 ? 0 : 1);
 			} else if (_features & GF_HUMONGOUS)
 				sprintf(buf, "%s.he%.1d", _exe_name, room == 0 ? 0 : res.roomno[rtRoom][room]);
 			else {
@@ -341,7 +341,8 @@
 				}
 				if (_features & GF_AFTER_HEV7) {
 					// _objectRoomTable
-					_fileHandle.seek(num * 4, SEEK_CUR);
+					//_fileHandle.seek(num * 4, SEEK_CUR);
+					_fileHandle.read(_objectRoomTable, num * 4);
 				}
 			}
 			
@@ -367,6 +368,10 @@
 			_fileHandle.read(_HEV7RoomOffsets, (2 + (i * 4)) );
 			break;
 
+		case MKID('DIRM'):
+			_fileHandle.seek(itemsize - 8, SEEK_CUR);
+			break;
+			
 		case MKID('DIRI'):
 			num = _fileHandle.readUint16LE();
 			_fileHandle.seek(num + (8 * num), SEEK_CUR);
@@ -1928,7 +1933,29 @@
 		_numGlobalScripts = 2000;
 
 		_shadowPaletteSize = NUM_SHADOW_PALETTE * 256;
-	} else if (_version == 6) {
+	// FIXME better check for the more recent windows based humongous games...
+	} else if (_gameId == GID_PJSDEMO) {
+		_fileHandle.readUint16LE();
+		_numVariables = _fileHandle.readUint16LE();
+		_numBitVariables = _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();
+		_fileHandle.readUint16LE(); 
+
+		_objectRoomTable = (byte *)calloc(_numGlobalObjects * 4, 1);
+		_numGlobalScripts = 200;
+		_shadowPaletteSize = 256;
+	} else if (_version == 6 && _gameId != GID_PJSDEMO) {
 		_numVariables = _fileHandle.readUint16LE();
 		_fileHandle.readUint16LE();                      // 16 in Sam/DOTT
 		_numBitVariables = _fileHandle.readUint16LE();

Index: scumm.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/scumm.h,v
retrieving revision 1.290
retrieving revision 1.291
diff -u -d -r1.290 -r1.291
--- scumm.h	27 Aug 2003 01:12:18 -0000	1.290
+++ scumm.h	29 Aug 2003 02:39:05 -0000	1.291
@@ -214,6 +214,7 @@
 	GID_ZAK,
 	GID_PUTTDEMO,
 	GID_PUTTPUTT,
+	GID_PJSDEMO,
 	GID_MONKEY_SEGA
 };
 





More information about the Scummvm-git-logs mailing list