[Scummvm-cvs-logs] CVS: scummvm/scumm actor.cpp,1.60,1.61 saveload.cpp,1.49,1.50 usage_bits.cpp,1.2,1.3

Max Horn fingolfin at users.sourceforge.net
Thu Jan 16 10:08:07 CET 2003


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

Modified Files:
	actor.cpp saveload.cpp usage_bits.cpp 
Log Message:
fix off by one bug in gfxUsageBits code; fixed small glitch the actor iteration cleanup

Index: actor.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/actor.cpp,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -d -r1.60 -r1.61
--- actor.cpp	16 Jan 2003 17:37:34 -0000	1.60
+++ actor.cpp	16 Jan 2003 18:07:52 -0000	1.61
@@ -1117,6 +1117,7 @@
 				for (j = 1; j < NUM_ACTORS; j++) {
 					if (testGfxUsageBit(strip, j) && testGfxOtherUsageBits(strip, j)) {
 						Actor *a = derefActor(j);
+						assert(a->number == j);
 						if (fg)
 							a->needRedraw = true;
 						if (bg)
@@ -1136,6 +1137,7 @@
 		return 0;
 	for (i = 1; i < NUM_ACTORS; i++) {
 		Actor *a = derefActor(i);
+		assert(a->number == i);
 		if (testGfxUsageBit(x >> 3, i) && !getClass(i, 32) && y >= a->top && y <= a->bottom) {
 			return i;
 		}
@@ -1554,7 +1556,7 @@
 	}
 
 	for (i = 1; i < NUM_ACTORS; i++) {
-		a = derefActor(j);
+		a = derefActor(i);
 		a->needBgReset = false;
 	}
 }

Index: saveload.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/saveload.cpp,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -d -r1.49 -r1.50
--- saveload.cpp	15 Jan 2003 16:23:03 -0000	1.49
+++ saveload.cpp	16 Jan 2003 18:07:52 -0000	1.50
@@ -580,8 +580,7 @@
 	if (!s->isSaving() && savegameVersion < VER_V13) {
 		// Since roughly v13 of the save games, the objs storage has changed a bit
 		for (i = _numObjectsInRoom; i < _numLocalObjects; i++) {
-			if (_objs[i].fl_object_index == 0)
-				_objs[i].obj_nr = 0;
+			_objs[i].obj_nr = 0;
 		}
 
 	}

Index: usage_bits.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/usage_bits.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- usage_bits.cpp	14 Jan 2003 23:26:39 -0000	1.2
+++ usage_bits.cpp	16 Jan 2003 18:07:52 -0000	1.3
@@ -39,17 +39,23 @@
 
 void Scumm::setGfxUsageBit(int strip, int bit)
 {
-	gfxUsageBits[3 * strip + bit / 32] |= (1 << ((bit - 1) % 32));
+	assert(1 <= bit && bit <= 96);
+	bit--;
+	gfxUsageBits[3 * strip + bit / 32] |= (1 << (bit % 32));
 }
 
 void Scumm::clearGfxUsageBit(int strip, int bit)
 {
-	gfxUsageBits[3 * strip + bit / 32] &= ~(1 << ((bit - 1) % 32));
+	assert(1 <= bit && bit <= 96);
+	bit--;
+	gfxUsageBits[3 * strip + bit / 32] &= ~(1 << (bit % 32));
 }
 
 bool Scumm::testGfxUsageBit(int strip, int bit)
 {
-	return (gfxUsageBits[3 * strip + bit / 32] & (1 << ((bit - 1) % 32))) != 0;
+	assert(1 <= bit && bit <= 96);
+	bit--;
+	return (gfxUsageBits[3 * strip + bit / 32] & (1 << (bit % 32))) != 0;
 }
 
 bool Scumm::testGfxAnyUsageBits(int strip)
@@ -71,7 +77,9 @@
 	uint32 bitmask[3] = { 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF };
 	int i;
 
-	bitmask[bit / 32] &= ~(1 << ((bit - 1) % 32));
+	assert(1 <= bit && bit <= 96);
+	bit--;
+	bitmask[bit / 32] &= ~(1 << (bit % 32));
 
 	for (i = 0; i < 3; i++)
 		if (gfxUsageBits[3 * strip + i] & bitmask[i])





More information about the Scummvm-git-logs mailing list