[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