diff -ur ScummVM-cvs20030307/scummvm/scumm/scummvm.cpp ScummVM-cvs20030307+hack/scummvm/scumm/scummvm.cpp
old
|
new
|
|
628 | 628 | if (camera._cur.x != camera._last.x || _BgNeedsRedraw || _fullRedraw |
629 | 629 | || (_features & GF_AFTER_V7 && camera._cur.y != camera._last.y)) { |
630 | 630 | 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; |
631 | 648 | } |
632 | 649 | |
633 | 650 | processDrawQue(); |