[Scummvm-cvs-logs] CVS: scummvm/scumm object.cpp,1.222,1.223 room.cpp,1.1,1.2

Max Horn fingolfin at users.sourceforge.net
Sat Apr 9 18:42:29 CEST 2005


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

Modified Files:
	object.cpp room.cpp 
Log Message:
Init _numObjectsInRoom in another spot

Index: object.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/object.cpp,v
retrieving revision 1.222
retrieving revision 1.223
diff -u -d -r1.222 -r1.223
--- object.cpp	9 Apr 2005 09:49:55 -0000	1.222
+++ object.cpp	10 Apr 2005 01:42:00 -0000	1.223
@@ -546,19 +546,10 @@
 	uint16 obim_id;
 	const byte *room, *searchptr, *rootptr;
 	const ImageHeader *imhd;
-	const RoomHeader *roomhdr;
 	const CodeHeader *cdhd;
 
 	CHECK_HEAP
 	room = getResourceAddress(rtRoom, _roomResource);
-	roomhdr = (const RoomHeader *)findResourceData(MKID('RMHD'), room);
-
-	if (_version == 8)
-		_numObjectsInRoom = (byte)READ_LE_UINT32(&(roomhdr->v8.numObjects));
-	else if (_version == 7)
-		_numObjectsInRoom = (byte) READ_LE_UINT16(&(roomhdr->v7.numObjects));
-	else
-		_numObjectsInRoom = (byte) READ_LE_UINT16(&(roomhdr->old.numObjects));
 
 	if (_numObjectsInRoom == 0)
 		return;
@@ -639,8 +630,6 @@
 	CHECK_HEAP
 	room = getResourceAddress(rtRoom, _roomResource);
 
-	_numObjectsInRoom = room[20];
-
 	if (_numObjectsInRoom == 0)
 		return;
 
@@ -677,13 +666,9 @@
 	const byte *ptr;
 	uint16 obim_id;
 	const byte *room;
-	const RoomHeader *roomhdr;
 
 	CHECK_HEAP
 	room = getResourceAddress(rtRoom, _roomResource);
-	roomhdr = (const RoomHeader *)findResourceData(MKID('RMHD'), room);
-
-	_numObjectsInRoom = (byte) READ_LE_UINT16(&(roomhdr->old.numObjects));
 
 	if (_numObjectsInRoom == 0)
 		return;
@@ -1191,7 +1176,7 @@
 
 		for (i = 0; i < numobj; i++) {
 			obimptr = roomptr + READ_LE_UINT16(searchptr);
-			obcdptr = roomptr + READ_LE_UINT16(searchptr + 2 * _numObjectsInRoom);
+			obcdptr = roomptr + READ_LE_UINT16(searchptr + 2 * numobj);
 			id2 = READ_LE_UINT16(obcdptr + 4);
 
 			if (id2 == (uint16)id) {

Index: room.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/room.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- room.cpp	10 Apr 2005 01:23:33 -0000	1.1
+++ room.cpp	10 Apr 2005 01:42:00 -0000	1.2
@@ -235,12 +235,15 @@
 	if (_version == 8) {
 		_roomWidth = READ_LE_UINT32(&(rmhd->v8.width));
 		_roomHeight = READ_LE_UINT32(&(rmhd->v8.height));
+		_numObjectsInRoom = (byte)READ_LE_UINT32(&(rmhd->v8.numObjects));
 	} else if (_version == 7) {
 		_roomWidth = READ_LE_UINT16(&(rmhd->v7.width));
 		_roomHeight = READ_LE_UINT16(&(rmhd->v7.height));
+		_numObjectsInRoom = (byte)READ_LE_UINT16(&(rmhd->v7.numObjects));
 	} else {
 		_roomWidth = READ_LE_UINT16(&(rmhd->old.width));
 		_roomHeight = READ_LE_UINT16(&(rmhd->old.height));
+		_numObjectsInRoom = (byte)READ_LE_UINT16(&(rmhd->old.numObjects));
 	}
 
 	//
@@ -550,14 +553,14 @@
 	
 	if (_version == 1) {
 		if (_features & GF_NES) {
-			_roomWidth = READ_LE_UINT16(roomptr + 4) * 8;
+			_roomWidth = READ_LE_UINT16(&(rmhd->old.width));
+			_roomHeight = READ_LE_UINT16(&(rmhd->old.height));
 
 			// HACK: To let our code work normal with narrow rooms we
 			// adjust width. It will render garbage on right edge but we do
 			// not render it anyway
 			if (_roomWidth < 32 * 8)
 				_roomWidth = 32 * 8;
-			_roomHeight = READ_LE_UINT16(roomptr + 6) * 8;
 		} else {
 			_roomWidth = roomptr[4] * 8;
 			_roomHeight = roomptr[5] * 8;
@@ -566,6 +569,7 @@
 		_roomWidth = READ_LE_UINT16(&(rmhd->old.width));
 		_roomHeight = READ_LE_UINT16(&(rmhd->old.height));
 	}
+	_numObjectsInRoom = roomptr[20];
 
 	//
 	// Find the room image data





More information about the Scummvm-git-logs mailing list