[Scummvm-cvs-logs] CVS: scummvm/scumm resource.cpp,1.272,1.273 scumm.h,1.486,1.487

Eugene Sandulenko sev at users.sourceforge.net
Sat Sep 18 16:49:03 CEST 2004


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

Modified Files:
	resource.cpp scumm.h 
Log Message:
Revert last commit by Fingolfin "removed _heV7RoomIntOffsets".
res.roomoffs[rtRoom] has a nick _roomFileOffsets (by means of #define), and
it gets overwritten in ScummEngine::readRoomsOffsets(). HE games actually
stored those offsets in additional array. Removing it breaks all
HE72+ games badly.


Index: resource.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/resource.cpp,v
retrieving revision 1.272
retrieving revision 1.273
diff -u -d -r1.272 -r1.273
--- resource.cpp	18 Sep 2004 22:45:53 -0000	1.272
+++ resource.cpp	18 Sep 2004 23:48:48 -0000	1.273
@@ -699,6 +699,9 @@
 		}
 		for (i = 0; i < num; i++) {
 			res.roomoffs[id][i] = _fileHandle.readUint32LE();
+
+			if (id == rtRoom && _heversion >= 70)
+				_heV7RoomIntOffsets[i] = res.roomoffs[id][i];
 		}
 
 		if (_heversion >= 70) {
@@ -730,6 +733,9 @@
 
 	if (_heversion >= 70) {
 		res.globsize[id] = (uint32 *)calloc(num, sizeof(uint32));
+
+		if (id == rtRoom)
+			_heV7RoomIntOffsets = (uint32 *)calloc(num, sizeof(uint32));
 	}
 }
 
@@ -826,7 +832,7 @@
 		if (_version == 8)
 			fileOffs = 8;
 		else if (_heversion >= 70)
-			fileOffs = res.roomoffs[type][idx];
+			fileOffs = _heV7RoomIntOffsets[idx];
 		else
 			fileOffs = 0;
 	} else {
@@ -2180,6 +2186,7 @@
 			free(res.globsize[i]);
 	}
 	if (_heversion >= 70) {
+		free(_heV7RoomIntOffsets);
 		free(_heV7RoomOffsets);
 	}
 }

Index: scumm.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/scumm.h,v
retrieving revision 1.486
retrieving revision 1.487
diff -u -d -r1.486 -r1.487
--- scumm.h	18 Sep 2004 23:02:08 -0000	1.486
+++ scumm.h	18 Sep 2004 23:48:48 -0000	1.487
@@ -665,6 +665,7 @@
 	uint32 _allocatedSize;
 	byte _expire_counter;
 	byte *_heV7RoomOffsets;
+	uint32 *_heV7RoomIntOffsets;
 	const byte *_resourceLastSearchBuf; // FIXME: need to put it to savefile?
 	uint32 _resourceLastSearchSize;    // FIXME: need to put it to savefile?
 	int _wizNumPolygons;





More information about the Scummvm-git-logs mailing list