[Scummvm-cvs-logs] CVS: scummvm/scumm object.cpp,1.32,1.33 saveload.cpp,1.39,1.40 scumm.h,1.110,1.111 script.cpp,1.29,1.30

Max Horn fingolfin at users.sourceforge.net
Thu Dec 26 12:38:03 CET 2002


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

Modified Files:
	object.cpp saveload.cpp scumm.h script.cpp 
Log Message:
fixed verb scripts

Index: object.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/object.cpp,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -d -r1.32 -r1.33
--- object.cpp	25 Dec 2002 12:41:41 -0000	1.32
+++ object.cpp	26 Dec 2002 20:37:48 -0000	1.33
@@ -192,7 +192,7 @@
 				ptr = findResource(MKID('OBIM'), ptr);
 			} else {
 				ptr = getResourceAddress(rtRoom, _roomResource);
-				ptr += od->offs_obim_to_room;
+				ptr += od->OBIMoffset;
 			}
 			assert(ptr);
 			imhd = (ImageHeader *)findResourceData(MKID('IMHD'), ptr);
@@ -355,7 +355,7 @@
 		ptr = findResource(MKID('OBIM'), ptr);
 	} else {
 		ptr = getResourceAddress(rtRoom, _roomResource);
-		ptr = ptr + od->offs_obim_to_room;
+		ptr = ptr + od->OBIMoffset;
 	}
 
 	if (_features & GF_SMALL_HEADER)
@@ -431,7 +431,7 @@
 		if (ptr == NULL)
 			error("Room %d missing object code block(s)", _roomResource);
 
-		od->offs_obcd_to_room = ptr - rootptr;
+		od->OBCDoffset = ptr - rootptr;
 		cdhd = (CodeHeader *)findResourceData(MKID('CDHD'), ptr);
 
 		if (_features & GF_AFTER_V7)
@@ -469,7 +469,7 @@
 
 		for (j = 1; j <= _numObjectsInRoom; j++) {
 			if (_objs[j].obj_nr == obim_id)
-				_objs[j].offs_obim_to_room = ptr - room;
+				_objs[j].OBIMoffset = ptr - room;
 		}
 		searchptr = NULL;
 	}
@@ -508,7 +508,7 @@
 		if (ptr == NULL)
 			error("Room %d missing object code block(s)", _roomResource);
 
-		od->offs_obcd_to_room = ptr - room;
+		od->OBCDoffset = ptr - room;
 		od->obj_nr = READ_LE_UINT16(ptr + 6);
 
 #ifdef DUMP_SCRIPTS
@@ -531,7 +531,7 @@
 
 		for (j = 1; j <= _numObjectsInRoom; j++) {
 			if (_objs[j].obj_nr == obim_id)
-				_objs[j].offs_obim_to_room = ptr - room;
+				_objs[j].OBIMoffset = ptr - room;
 		}
 		searchptr = NULL;
 	}
@@ -552,7 +552,7 @@
 
 	if (_features & GF_SMALL_HEADER) {
 
-		byte *ptr = room + od->offs_obcd_to_room;
+		byte *ptr = room + od->OBCDoffset;
 
 		od->obj_nr = READ_LE_UINT16(ptr + 6);	// ok
 
@@ -583,7 +583,7 @@
 	else
 		searchptr = room;
 
-	cdhd = (CodeHeader *)findResourceData(MKID('CDHD'), searchptr + od->offs_obcd_to_room);
+	cdhd = (CodeHeader *)findResourceData(MKID('CDHD'), searchptr + od->OBCDoffset);
 	if (cdhd == NULL)
 		error("Room %d missing CDHD blocks(s)", _roomResource);
 
@@ -593,7 +593,7 @@
 		od->parent = cdhd->v7.parent;
 		od->parentstate = cdhd->v7.parentstate;
 
-		imhd = (ImageHeader *)findResourceData(MKID('IMHD'), room + od->offs_obim_to_room);
+		imhd = (ImageHeader *)findResourceData(MKID('IMHD'), room + od->OBIMoffset);
 		od->x_pos = (int)READ_LE_UINT32(&imhd->v8.x_pos);
 		od->y_pos = (int)READ_LE_UINT32(&imhd->v8.y_pos);
 		od->width = (uint)READ_LE_UINT32(&imhd->v8.width);
@@ -606,7 +606,7 @@
 		od->parent = cdhd->v7.parent;
 		od->parentstate = cdhd->v7.parentstate;
 
-		imhd = (ImageHeader *)findResourceData(MKID('IMHD'), room + od->offs_obim_to_room);
+		imhd = (ImageHeader *)findResourceData(MKID('IMHD'), room + od->OBIMoffset);
 		od->x_pos = READ_LE_UINT16(&imhd->v7.x_pos);
 		od->y_pos = READ_LE_UINT16(&imhd->v7.y_pos);
 		od->width = READ_LE_UINT16(&imhd->v7.width);
@@ -786,7 +786,7 @@
 		if (_objs[i].obj_nr == object) {
 			if (_objs[i].fl_object_index != 0)
 				return 8;
-			return _objs[i].offs_obcd_to_room;
+			return _objs[i].OBCDoffset;
 		}
 	}
 	return 0;
@@ -806,7 +806,10 @@
 			if (_objs[i].obj_nr == obj) {
 				if (_objs[i].fl_object_index)
 					return getResourceAddress(rtFlObject, _objs[i].fl_object_index) + 8;
-				return getResourceAddress(rtRoom, _roomResource) + _objs[i].offs_obcd_to_room;
+				if (_features & GF_AFTER_V8)
+					return getResourceAddress(rtRoomScripts, _roomResource) + _objs[i].OBCDoffset;
+				else
+					return getResourceAddress(rtRoom, _roomResource) + _objs[i].OBCDoffset;
 			}
 		}
 	}
@@ -1281,7 +1284,7 @@
 	} else {
 		idx = getObjectIndex(eo->number);
 		assert(idx != -1);
-		ptr = getResourceAddress(1, _roomResource) + _objs[idx].offs_obim_to_room;
+		ptr = getResourceAddress(1, _roomResource) + _objs[idx].OBIMoffset;
 	}
 	if (!ptr)
 		error("BlastObject object %d image not found", eo->number);
@@ -1603,8 +1606,8 @@
 
 	/* Setup sizes */
 	obcd_size = READ_BE_UINT32_UNALIGNED(foir.obcd + 4);
-	od->offs_obcd_to_room = 8;
-	od->offs_obim_to_room = obcd_size + 8;
+	od->OBCDoffset = 8;
+	od->OBIMoffset = obcd_size + 8;
 	obim_size = READ_BE_UINT32_UNALIGNED(foir.obim + 4);
 	flob_size = obcd_size + obim_size + 8;
 

Index: saveload.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/saveload.cpp,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -d -r1.39 -r1.40
--- saveload.cpp	26 Dec 2002 00:21:19 -0000	1.39
+++ saveload.cpp	26 Dec 2002 20:37:48 -0000	1.40
@@ -219,8 +219,8 @@
 void Scumm::saveOrLoad(Serializer *s, uint32 savegameVersion)
 {
 	const SaveLoadEntry objectEntries[] = {
-		MKLINE(ObjectData, offs_obim_to_room, sleUint32, VER_V8),
-		MKLINE(ObjectData, offs_obcd_to_room, sleUint32, VER_V8),
+		MKLINE(ObjectData, OBIMoffset, sleUint32, VER_V8),
+		MKLINE(ObjectData, OBCDoffset, sleUint32, VER_V8),
 		MKLINE(ObjectData, walk_x, sleUint16, VER_V8),
 		MKLINE(ObjectData, walk_y, sleUint16, VER_V8),
 		MKLINE(ObjectData, obj_nr, sleUint16, VER_V8),

Index: scumm.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/scumm.h,v
retrieving revision 1.110
retrieving revision 1.111
diff -u -d -r1.110 -r1.111
--- scumm.h	26 Dec 2002 01:46:36 -0000	1.110
+++ scumm.h	26 Dec 2002 20:37:49 -0000	1.111
@@ -81,8 +81,8 @@
 struct VerbSlot;
 
 struct ObjectData {
-	uint32 offs_obim_to_room;
-	uint32 offs_obcd_to_room;
+	uint32 OBIMoffset;
+	uint32 OBCDoffset;
 	int16 walk_x, walk_y;
 	uint16 obj_nr;
 	int16 x_pos;

Index: script.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script.cpp,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -d -r1.29 -r1.30
--- script.cpp	26 Dec 2002 13:44:40 -0000	1.29
+++ script.cpp	26 Dec 2002 20:37:49 -0000	1.30
@@ -878,10 +878,7 @@
 	else
 		verbptr = findResource(MKID('VERB'), objptr);
 
-	if (verbptr == NULL) { // FIXME: Hacked from an error() for CMI
-		warning("No verb block in object %d", obj);
-		return 0;
-	}
+	assert(verbptr);
 
 	verboffs = verbptr - objptr;
 





More information about the Scummvm-git-logs mailing list