[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