Ticket #8158: actor-access.diff

File actor-access.diff, 3.7 KB (added by eriktorbjorn, 21 years ago)

Untested patch against a January 15 CVS snapshot

  • scummvm/scumm/actor.cpp

    diff -ur ScummVM-cvs20030115/scummvm/scumm/actor.cpp ScummVM-cvs20030115+hack/scummvm/scumm/actor.cpp
    old new  
    11031103        int i, j;
    11041104
    11051105        if (_fullRedraw) {
    1106                 for (j = 0; j < NUM_ACTORS; j++) {
     1106                for (j = 1; j < NUM_ACTORS; j++) {
    11071107                        Actor *a = derefActor(j);
    11081108                        if (fg)
    11091109                                a->needRedraw = true;
     
    11141114                for (i = 0; i < gdi._numStrips; i++) {
    11151115                        int strip = _screenStartStrip + i;
    11161116                        if (testGfxAnyUsageBits(strip)) {
    1117                                 for (j = 0; j < NUM_ACTORS; j++) {
     1117                                for (j = 1; j < NUM_ACTORS; j++) {
    11181118                                        if (testGfxUsageBit(strip, j) && testGfxOtherUsageBits(strip, j)) {
    11191119                                                Actor *a = derefActor(j);
    11201120                                                if (fg)
     
    15431543
    15441544        for (i = 0; i < gdi._numStrips; i++) {
    15451545                int strip = _screenStartStrip + i;
    1546                 a = getFirstActor();
    1547                 for (j = 0; j < NUM_ACTORS; j++) {
     1546                for (j = 1; j < NUM_ACTORS; j++) {
     1547                        a = derefActor(j);
    15481548                        if (testGfxUsageBit(strip, j) && a->top != 0xFF && a->needBgReset) {
    15491549                                clearGfxUsageBit(strip, j);
    15501550                                if ((a->bottom - a->top) >= 0)
    15511551                                        gdi.resetBackground(a->top, a->bottom, i);
    15521552                        }
    1553                         a++;
    15541553                }
    15551554        }
    15561555
    1557         for (i = 1, a = getFirstActor(); ++a, i < NUM_ACTORS; i++) {
     1556        for (i = 1; i < NUM_ACTORS; i++) {
     1557                a = derefActor(j);
    15581558                a->needBgReset = false;
    15591559        }
    15601560}
  • scummvm/scumm/gfx.cpp

    diff -ur ScummVM-cvs20030115/scummvm/scumm/gfx.cpp ScummVM-cvs20030115+hack/scummvm/scumm/gfx.cpp
    old new  
    18201820                if (t - _screenStartStrip < camera._leftTrigger || t - _screenStartStrip > camera._rightTrigger)
    18211821                        setCameraAt(a->x, 0);
    18221822
    1823                 for (i = 1, a = getFirstActor(); ++a, i < NUM_ACTORS; i++) {
     1823                for (i = 1; i < NUM_ACTORS; i++) {
     1824                        a = derefActor(i);
    18241825                        if (a->isInCurrentRoom())
    18251826                                a->needRedraw = true;
    18261827                }
  • scummvm/scumm/script_v6.cpp

    diff -ur ScummVM-cvs20030115/scummvm/scumm/script_v6.cpp ScummVM-cvs20030115+hack/scummvm/scumm/script_v6.cpp
    old new  
    26562656                case 6:
    26572657                        _fullRedraw = 1;
    26582658                        redrawBGAreas();
    2659                         for (i = 0; i < NUM_ACTORS; i++)
     2659                        for (i = 1; i < NUM_ACTORS; i++)
    26602660                                derefActor(i)->needRedraw = true;
    26612661                        processActors();
    26622662                        fadeIn(args[1]);
  • scummvm/scumm/scumm.h

    diff -ur ScummVM-cvs20030115/scummvm/scumm/scumm.h ScummVM-cvs20030115+hack/scummvm/scumm/scumm.h
    old new  
    620620        /* Should be in Actor class */
    621621        Actor *derefActor(int id);
    622622        Actor *derefActorSafe(int id, const char *errmsg);
    623         Actor *getFirstActor() { return _actors; }
    624623        void showActors();
    625624
    626625        uint32 *_classData;
  • scummvm/scumm/scummvm.cpp

    diff -ur ScummVM-cvs20030115/scummvm/scumm/scummvm.cpp ScummVM-cvs20030115+hack/scummvm/scumm/scummvm.cpp
    old new  
    233233       
    234234        // Allocate and Initialize actors
    235235        _actors = new Actor[NUM_ACTORS];
    236         for (i = 1, a = getFirstActor(); ++a, i < NUM_ACTORS; i++) {
     236        for (i = 1; i < NUM_ACTORS; i++) {
     237                a = derefActor(i);
    237238                a->number = i;
    238239                a->initActorClass(this);
    239240                a->initActor(1);
     
    618619        clearEnqueue();
    619620        stopCycle(0);
    620621
    621         for (i = 1, at = getFirstActor(); ++at, i < NUM_ACTORS; i++) {
     622        for (i = 1; i < NUM_ACTORS; i++) {
     623                at = derefActor(i);
    622624                at->hideActor();
    623625        }
    624626