[Scummvm-cvs-logs] CVS: scummvm/scumm actor.cpp,1.296,1.297 object.cpp,1.186,1.187 resource.h,1.12,1.13

Max Horn fingolfin at users.sourceforge.net
Tue Sep 21 05:58:10 CEST 2004


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

Modified Files:
	actor.cpp object.cpp resource.h 
Log Message:
More cleanup

Index: actor.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/actor.cpp,v
retrieving revision 1.296
retrieving revision 1.297
diff -u -d -r1.296 -r1.297
--- actor.cpp	21 Sep 2004 05:59:26 -0000	1.296
+++ actor.cpp	21 Sep 2004 12:57:38 -0000	1.297
@@ -1742,17 +1742,14 @@
 		return;
 	}
 
-	akpl = _vm->findResource(MKID('AKPL'), akos);
+	akpl = _vm->findResourceData(MKID('AKPL'), akos);
 	if (!akpl) {
 		warning("Can't remap actor %d, costume %d doesn't contain an AKPL block", number, costume);
 		return;
 	}
 
-	//get num palette entries
-	akpl_size = RES_SIZE(akpl) - 8;
-
-	//skip resource header
-	akpl = RES_DATA(akpl);
+	// Get the number palette entries
+	akpl_size = _vm->getResourceDataSize(akpl);
 
 	for (i = 0; i < akpl_size; i++) {
 		akpl_color = *akpl++;
@@ -1783,26 +1780,21 @@
 		return;
 	}
 
-	akpl = _vm->findResource(MKID('AKPL'), akos);
+	akpl = _vm->findResourceData(MKID('AKPL'), akos);
 	if (!akpl) {
 		warning("Can't remap actor %d, costume %d doesn't contain an AKPL block", number, costume);
 		return;
 	}
 
-	//get num palette entries
-	akpl_size = RES_SIZE(akpl) - 8;
-
-	//skip resource header
-	akpl = RES_DATA(akpl);
+	// Get the number palette entries
+	akpl_size = _vm->getResourceDataSize(akpl);
 
-	rgbs = _vm->findResource(MKID('RGBS'), akos);
+	rgbs = _vm->findResourceData(MKID('RGBS'), akos);
 
 	if (!rgbs) {
 		debugC(DEBUG_ACTORS, "Can't remap actor %d costume %d doesn't contain an RGB block", number, costume);
 		return;
 	}
-	// skip resource header
-	rgbs = RES_DATA(rgbs);
 
 	for (i = 0; i < akpl_size; i++) {
 		r = *rgbs++;

Index: object.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/object.cpp,v
retrieving revision 1.186
retrieving revision 1.187
diff -u -d -r1.186 -r1.187
--- object.cpp	19 Sep 2004 00:15:07 -0000	1.186
+++ object.cpp	21 Sep 2004 12:57:38 -0000	1.187
@@ -1124,13 +1124,13 @@
 	if (findWhat & foCheckAlreadyLoaded && getObjectIndex(id) != -1) {
 		if (_features & GF_OLD_BUNDLE) {
 			// I am not sure if this is even needed for old games...
-			// but using RES_SIZE definitely won't work with OLD_BUNDLE, since it
-			// assumes the size is 32 bit but in old games it's 16 bit
+			// but using READ_BE_UINT32 below to determine the resource size
+			// definitely won't work with OLD_BUNDLE games
 			error("findObjectInRoom foCheckAlreadyLoaded NYI for GF_OLD_BUNDLE (id = %d, room = %d)", id, room);
 		}
 		fo->obcd = obcdptr = getOBCDFromObject(id);
 		assert(obcdptr);
-		fo->obim = obimptr = obcdptr + RES_SIZE(obcdptr);
+		fo->obim = obimptr = obcdptr + READ_BE_UINT32(obcdptr + 4);
 		fo->cdhd = (const CodeHeader *)findResourceData(MKID('CDHD'), obcdptr);
 		fo->imhd = (const ImageHeader *)findResourceData(MKID('IMHD'), obimptr);
 		return;

Index: resource.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/resource.h,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- resource.h	25 Aug 2004 02:12:03 -0000	1.12
+++ resource.h	21 Sep 2004 12:57:38 -0000	1.13
@@ -23,14 +23,6 @@
 
 namespace Scumm {
 
-#if !defined(__GNUC__)
-	#pragma START_PACK_STRUCTS
-#endif	
-
-struct ResHdr {
-	uint32 tag, size;
-} GCC_PACK;
-
 enum ArrayType {
 	kBitArray = 1,
 	kNibbleArray = 2,
@@ -40,6 +32,10 @@
 	kDwordArray = 6
 };
 
+#if !defined(__GNUC__)
+	#pragma START_PACK_STRUCTS
+#endif	
+
 struct ArrayHeader {
 	int16 dim1;
 	int16 type;
@@ -51,9 +47,6 @@
 	#pragma END_PACK_STRUCTS
 #endif
 
-#define RES_DATA(x) (((const byte*)x) + sizeof(ResHdr))
-#define RES_SIZE(x) (READ_BE_UINT32(&((const ResHdr* )x)->size))
-
 enum {
 	OF_OWNER_MASK = 0x0F,
 	OF_STATE_MASK = 0xF0,





More information about the Scummvm-git-logs mailing list