Ticket #8026: loomlight2.diff

File loomlight2.diff, 2.1 KB (added by eriktorbjorn, 18 years ago)

New patch against a September 1 CVS snapshot

  • scummvm/scumm/actor.cpp

    diff -ur ScummVM-cvs20020901/scummvm/scumm/actor.cpp ScummVM-cvs20020901+hack/scummvm/scumm/actor.cpp
    old new  
    966966        }
    967967}
    968968
    969 void Scumm::setActorRedrawFlags()
     969void Scumm::setActorRedrawFlags(bool fg, bool bg)
    970970{
    971971        int i, j;
    972972        uint32 bits;
     
    974974        if (_fullRedraw) {
    975975                for (j = 0; j < NUM_ACTORS; j++) {
    976976                        Actor *a = derefActor(j);
    977                         a->needRedraw = true;
    978                         a->needBgReset = true;
     977                        if (fg)
     978                                a->needRedraw = true;
     979                        if (bg)
     980                                a->needBgReset = true;
    979981                }
    980982        } else {
    981983                for (i = 0; i < 40; i++) {
     
    984986                                for (j = 0; j < NUM_ACTORS; j++) {
    985987                                        if ((bits & (1 << j)) && bits != (uint32)(1 << j)) {
    986988                                                Actor *a = derefActor(j);
    987                                                 a->needRedraw = true;
    988                                                 a->needBgReset = true;
     989                                                if (fg)
     990                                                        a->needRedraw = true;
     991                                                if (bg)
     992                                                        a->needBgReset = true;
    989993                                        }
    990994                                }
    991995                        }
  • scummvm/scumm/scumm.h

    diff -ur ScummVM-cvs20020901/scummvm/scumm/scumm.h ScummVM-cvs20020901+hack/scummvm/scumm/scumm.h
    old new  
    704704
    705705        void walkActors();
    706706        void playActorSounds();
    707         void setActorRedrawFlags();
     707        void setActorRedrawFlags(bool fg, bool bg);
    708708        void resetActorBgs();
    709709        void processActors();
    710710        int getActorFromPos(int x, int y);
  • scummvm/scumm/scummvm.cpp

    diff -ur ScummVM-cvs20020901/scummvm/scumm/scummvm.cpp ScummVM-cvs20020901+hack/scummvm/scumm/scummvm.cpp
    old new  
    443443                }
    444444
    445445                processDrawQue();
    446                 setActorRedrawFlags();
     446                setActorRedrawFlags(true, true);
    447447                resetActorBgs();
    448448
    449449                if (!(_vars[VAR_CURRENT_LIGHTS] & LIGHTMODE_screen) &&
    450450                      _vars[VAR_CURRENT_LIGHTS] & LIGHTMODE_flashlight) {
    451451                        drawFlashlight();
    452                         setActorRedrawFlags();
     452                        setActorRedrawFlags(true, false);
    453453                }
    454454
    455455                processActors();