[Scummvm-cvs-logs] CVS: scummvm/scumm object.cpp,1.93,1.94

Max Horn fingolfin at users.sourceforge.net
Thu May 15 10:58:16 CEST 2003


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

Modified Files:
	object.cpp 
Log Message:
fixed the evil, evil COMI crash on Mac OS X (and memory corrupter elsewhere, maybe?). The last part of this change is the crucial one, computing the correct value for right_strip

Index: object.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/object.cpp,v
retrieving revision 1.93
retrieving revision 1.94
diff -u -d -r1.93 -r1.94
--- object.cpp	15 May 2003 00:03:49 -0000	1.93
+++ object.cpp	15 May 2003 17:57:52 -0000	1.94
@@ -1328,27 +1328,29 @@
 }
 
 void Scumm::enqueueObject(int objectNumber, int objectX, int objectY, int objectWidth,
-													int objectHeight, int scaleX, int scaleY, int image, int mode) {
+                          int objectHeight, int scaleX, int scaleY, int image, int mode) {
 	BlastObject *eo;
 	ObjectData *od;
 
-	if (_blastObjectQueuePos == sizeof(_blastObjectQueue) / sizeof(_blastObjectQueue[0])) {
+	if (_blastObjectQueuePos >= (int)ARRAYSIZE(_blastObjectQueue)) {
 		warning("enqueueObject: overflow");
 		return;
 	}
+	
+	int idx = getObjectIndex(objectNumber);
 
 	eo = &_blastObjectQueue[_blastObjectQueuePos++];
 	eo->number = objectNumber;
 	eo->posX = objectX + (camera._cur.x & 7);
 	eo->posY = objectY + (camera._cur.y - (_screenHeight / 2));
 	if (objectWidth == 0) {
-		od = &_objs[getObjectIndex(objectNumber)];
+		od = &_objs[idx];
 		eo->width = od->width;
 	} else {
 		eo->width = objectWidth;
 	}
 	if (objectHeight == 0) {
-		od = &_objs[getObjectIndex(objectNumber)];
+		od = &_objs[idx];
 		eo->height = od->height;
 	} else {
 		eo->height = objectHeight;
@@ -1662,7 +1664,7 @@
 		right = vs->width;
 
 	left_strip = left >> 3;
-	right_strip = (right >> 3) + 1;
+	right_strip = (right - 1) >> 3;
 
 	if (left_strip < 0)
 		left_strip = 0;





More information about the Scummvm-git-logs mailing list