[Scummvm-cvs-logs] CVS: scummvm/scumm actor.cpp,1.59,1.60 gfx.cpp,2.24,2.25 script_v6.cpp,1.44,1.45 scumm.h,1.136,1.137 scummvm.cpp,2.42,2.43

James Brown ender at users.sourceforge.net
Thu Jan 16 09:38:04 CET 2003


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

Modified Files:
	actor.cpp gfx.cpp script_v6.cpp scumm.h scummvm.cpp 
Log Message:
Patch 668634: Actor iteration fix


Index: actor.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/actor.cpp,v
retrieving revision 1.59
retrieving revision 1.60
diff -u -d -r1.59 -r1.60
--- actor.cpp	14 Jan 2003 10:05:37 -0000	1.59
+++ actor.cpp	16 Jan 2003 17:37:34 -0000	1.60
@@ -1103,7 +1103,7 @@
 	int i, j;
 
 	if (_fullRedraw) {
-		for (j = 0; j < NUM_ACTORS; j++) {
+		for (j = 1; j < NUM_ACTORS; j++) {
 			Actor *a = derefActor(j);
 			if (fg)
 				a->needRedraw = true;
@@ -1114,7 +1114,7 @@
 		for (i = 0; i < gdi._numStrips; i++) {
 			int strip = _screenStartStrip + i;
 			if (testGfxAnyUsageBits(strip)) {
-				for (j = 0; j < NUM_ACTORS; j++) {
+				for (j = 1; j < NUM_ACTORS; j++) {
 					if (testGfxUsageBit(strip, j) && testGfxOtherUsageBits(strip, j)) {
 						Actor *a = derefActor(j);
 						if (fg)
@@ -1543,18 +1543,18 @@
 
 	for (i = 0; i < gdi._numStrips; i++) {
 		int strip = _screenStartStrip + i;
-		a = getFirstActor();
-		for (j = 0; j < NUM_ACTORS; j++) {
+		for (j = 1; j < NUM_ACTORS; j++) {
+			a = derefActor(j);
 			if (testGfxUsageBit(strip, j) && a->top != 0xFF && a->needBgReset) {
 				clearGfxUsageBit(strip, j);
 				if ((a->bottom - a->top) >= 0)
 					gdi.resetBackground(a->top, a->bottom, i);
 			}
-			a++;
 		}
 	}
 
-	for (i = 1, a = getFirstActor(); ++a, i < NUM_ACTORS; i++) {
+	for (i = 1; i < NUM_ACTORS; i++) {
+		a = derefActor(j);
 		a->needBgReset = false;
 	}
 }

Index: gfx.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/gfx.cpp,v
retrieving revision 2.24
retrieving revision 2.25
diff -u -d -r2.24 -r2.25
--- gfx.cpp	15 Jan 2003 03:10:28 -0000	2.24
+++ gfx.cpp	16 Jan 2003 17:37:34 -0000	2.25
@@ -1820,7 +1820,8 @@
 		if (t - _screenStartStrip < camera._leftTrigger || t - _screenStartStrip > camera._rightTrigger)
 			setCameraAt(a->x, 0);
 
-		for (i = 1, a = getFirstActor(); ++a, i < NUM_ACTORS; i++) {
+		for (i = 1; i < NUM_ACTORS; i++) {
+			a = derefActor(i);
 			if (a->isInCurrentRoom())
 				a->needRedraw = true;
 		}

Index: script_v6.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v6.cpp,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -d -r1.44 -r1.45
--- script_v6.cpp	16 Jan 2003 14:42:20 -0000	1.44
+++ script_v6.cpp	16 Jan 2003 17:37:34 -0000	1.45
@@ -2657,7 +2657,7 @@
 		case 6:
 			_fullRedraw = 1;
 			redrawBGAreas();
-			for (i = 0; i < NUM_ACTORS; i++)
+			for (i = 1; i < NUM_ACTORS; i++)
 				derefActor(i)->needRedraw = true;
 			processActors();
 			fadeIn(args[1]);

Index: scumm.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/scumm.h,v
retrieving revision 1.136
retrieving revision 1.137
diff -u -d -r1.136 -r1.137
--- scumm.h	16 Jan 2003 12:47:34 -0000	1.136
+++ scumm.h	16 Jan 2003 17:37:34 -0000	1.137
@@ -630,7 +630,6 @@
 	/* Should be in Actor class */
 	Actor *derefActor(int id);
 	Actor *derefActorSafe(int id, const char *errmsg);
-	Actor *getFirstActor() { return _actors; } 
 	void showActors();
 
 	uint32 *_classData;

Index: scummvm.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/scummvm.cpp,v
retrieving revision 2.42
retrieving revision 2.43
diff -u -d -r2.42 -r2.43
--- scummvm.cpp	16 Jan 2003 13:10:43 -0000	2.42
+++ scummvm.cpp	16 Jan 2003 17:37:34 -0000	2.43
@@ -233,7 +233,8 @@
 	
 	// Allocate and Initialize actors
 	_actors = new Actor[NUM_ACTORS];
-	for (i = 1, a = getFirstActor(); ++a, i < NUM_ACTORS; i++) {
+	for (i = 1; i < NUM_ACTORS; i++) {
+		a = derefActor(i);
 		a->number = i;
 		a->initActorClass(this);
 		a->initActor(1);
@@ -620,7 +621,8 @@
 	clearEnqueue();
 	stopCycle(0);
 
-	for (i = 1, at = getFirstActor(); ++at, i < NUM_ACTORS; i++) {
+	for (i = 1; i < NUM_ACTORS; i++) {
+		at = derefActor(i);
 		at->hideActor();
 	}
 





More information about the Scummvm-git-logs mailing list