[Scummvm-cvs-logs] CVS: scummvm/scumm object.cpp,1.192,1.193 object.h,1.12,1.13

Travis Howell kirben at users.sourceforge.net
Sun Sep 26 08:29:57 CEST 2004


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

Modified Files:
	object.cpp object.h 
Log Message:

Add HE object flag support


Index: object.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/object.cpp,v
retrieving revision 1.192
retrieving revision 1.193
diff -u -d -r1.192 -r1.193
--- object.cpp	26 Sep 2004 14:46:51 -0000	1.192
+++ object.cpp	26 Sep 2004 15:25:58 -0000	1.193
@@ -479,8 +479,7 @@
 		if (_version == 8) 
 			flags = (od.flag & 16) == 0;
 		else if (_features & GF_HUMONGOUS)
-			// TODO: Should be read from object header
-			flags = 0;
+			flags = (od.flag & 1) != 0;
 		else
 			flags = Gdi::dbAllowMaskOr;
 
@@ -771,6 +770,7 @@
 	cdhd = (const CodeHeader *)findResourceData(MKID('CDHD'), searchptr + od->OBCDoffset);
 	if (cdhd == NULL)
 		error("Room %d missing CDHD blocks(s)", _roomResource);
+	imhd = (const ImageHeader *)findResourceData(MKID('IMHD'), room + od->OBIMoffset);
 
 	if (_version == 8) {
 		od->obj_nr = READ_LE_UINT16(&(cdhd->v7.obj_id));
@@ -778,7 +778,6 @@
 		od->parent = cdhd->v7.parent;
 		od->parentstate = cdhd->v7.parentstate;
 
-		imhd = (const 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);
@@ -793,7 +792,6 @@
 		od->parent = cdhd->v7.parent;
 		od->parentstate = cdhd->v7.parentstate;
 
-		imhd = (const 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);
@@ -814,6 +812,8 @@
 		}
 		od->parent = cdhd->v6.parent;
 		od->actordir = cdhd->v6.actordir;
+		od->flag = imhd->old.flag;
+
 	} else {
 		od->obj_nr = READ_LE_UINT16(&(cdhd->v5.obj_id));
 

Index: object.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/object.h,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- object.h	26 Sep 2004 08:50:10 -0000	1.12
+++ object.h	26 Sep 2004 15:25:58 -0000	1.13
@@ -104,7 +104,10 @@
 		struct {
 			uint16 obj_id;
 			uint16 image_count;
-			uint16 unk[4];
+			uint16 unk[1];
+			byte flag;
+			byte unk1;
+			uint16 unk2[2];
 			uint16 width;
 			uint16 height;
 			uint16 hotspot_num;





More information about the Scummvm-git-logs mailing list