[Scummvm-cvs-logs] CVS: scummvm/scumm resource.cpp,1.210,1.211 script_v6.cpp,1.333,1.334 script_v6he.cpp,2.61,2.62 scumm.h,1.401,1.402

Eugene Sandulenko sev at users.sourceforge.net
Sun Jun 6 17:28:01 CEST 2004


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

Modified Files:
	resource.cpp script_v6.cpp script_v6he.cpp scumm.h 
Log Message:
7.0+ HE games have additional indexes. So read it.


Index: resource.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/resource.cpp,v
retrieving revision 1.210
retrieving revision 1.211
diff -u -d -r1.210 -r1.211
--- resource.cpp	6 Jun 2004 02:36:44 -0000	1.210
+++ resource.cpp	7 Jun 2004 00:26:08 -0000	1.211
@@ -507,10 +507,9 @@
 		}
 
 		if (_heversion >= 70) {
-			// FIXME: these are related to globs
-
-			//_fileHandle.read(_globSize, num);
-			_fileHandle.seek(4 * num, SEEK_CUR);
+			for (i = 0; i < num; i++) {
+				res.globsize[id][i] = _fileHandle.readUint32LE();
+			}
 		}
 	}
 }
@@ -534,6 +533,9 @@
 		res.roomno[id] = (byte *)calloc(num, sizeof(byte));
 		res.roomoffs[id] = (uint32 *)calloc(num, sizeof(uint32));
 	}
+
+	if (_heversion >= 70)
+		res.globsize[id] = (uint32 *)calloc(num, sizeof(uint32));
 }
 
 void ScummEngine::loadCharset(int no) {
@@ -569,7 +571,7 @@
 
 	debugC(DEBUG_RESOURCE, "ensureResourceLoaded(%s,%d)", resTypeFromId(type), i);
 
-	if (type == rtRoom && i > 0x7F && _version < 7) {
+	if ((type == rtRoom || _heversion >= 70) && i > 0x7F && _version < 7) {
 		i = _resourceMapper[i & 0x7F];
 	}
 
@@ -1959,6 +1961,9 @@
 		free(res.flags[i]);
 		free(res.roomno[i]);
 		free(res.roomoffs[i]);
+
+		if (_heversion >= 70)
+			free(res.globsize[i]);
 	}
 }
 

Index: script_v6.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v6.cpp,v
retrieving revision 1.333
retrieving revision 1.334
diff -u -d -r1.333 -r1.334
--- script_v6.cpp	6 Jun 2004 11:10:47 -0000	1.333
+++ script_v6.cpp	7 Jun 2004 00:26:08 -0000	1.334
@@ -1995,6 +1995,7 @@
 	case 139:		// SO_VERB_IMAGE_IN_ROOM
 		b = pop();
 		a = pop();
+
 		if (slot && a != vs->imgindex) {
 			setVerbObject(b, a, slot);
 			vs->type = kImageVerbType;

Index: script_v6he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v6he.cpp,v
retrieving revision 2.61
retrieving revision 2.62
diff -u -d -r2.61 -r2.62
--- script_v6he.cpp	6 Jun 2004 11:10:47 -0000	2.61
+++ script_v6he.cpp	7 Jun 2004 00:26:08 -0000	2.62
@@ -555,6 +555,7 @@
 
 	switch (b) {
 	case 30:
+		// _heversion >= 70
 		k = pop();
 		j = pop();
 		i = pop();

Index: scumm.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/scumm.h,v
retrieving revision 1.401
retrieving revision 1.402
diff -u -d -r1.401 -r1.402
--- scumm.h	3 Jun 2004 01:28:22 -0000	1.401
+++ scumm.h	7 Jun 2004 00:26:08 -0000	1.402
@@ -351,6 +351,7 @@
 		byte *flags[rtNumTypes];
 		byte *roomno[rtNumTypes];
 		uint32 *roomoffs[rtNumTypes];
+		uint32 *globsize[rtNumTypes];
 	} res;
 
 	VirtualMachineState vm;





More information about the Scummvm-git-logs mailing list