Ticket #8187: actor-redraw-hack.diff

File actor-redraw-hack.diff, 1.1 KB (added by eriktorbjorn, 21 years ago)

Patch against a March 7 CVS snapshot

  • scummvm/scumm/scummvm.cpp

    diff -ur ScummVM-cvs20030307/scummvm/scumm/scummvm.cpp ScummVM-cvs20030307+hack/scummvm/scumm/scummvm.cpp
    old new  
    628628                if (camera._cur.x != camera._last.x || _BgNeedsRedraw || _fullRedraw
    629629                                || (_features & GF_AFTER_V7 && camera._cur.y != camera._last.y)) {
    630630                        redrawBGAreas();
     631
     632                        // HACK: redrawBGAreas() will mark any actor that was
     633                        // was on screen both before and after the camera
     634                        // moved, but not always the actors that scrolled into
     635                        // view. The hacky solution is to mark all actors in
     636                        // the room for redrawing, or the actor may stay hidden
     637                        // until it moves.
     638                        //
     639                        // An alternative - and maybe better - solution would
     640                        // be if drawCostume() always updated the usage bits
     641                        // for the actor, even when the actor is drawn
     642                        // off-screen.
     643
     644                        bool redraw = _fullRedraw;
     645                        _fullRedraw = true;
     646                        setActorRedrawFlags(true, false);
     647                        _fullRedraw = redraw;
    631648                }
    632649
    633650                processDrawQue();