diff -ur ScummVM-cvs20030218/scummvm/scumm/actor.cpp ScummVM-cvs20030218+hack/scummvm/scumm/actor.cpp
old
|
new
|
|
868 | 868 | // Make a list of all actors in this room |
869 | 869 | for (i = 1; i < NUM_ACTORS; i++) { |
870 | 870 | a = derefActor(i); |
| 871 | if ((_features & GF_AFTER_V8) && a->layer < 0) |
| 872 | continue; |
871 | 873 | if (a->isInCurrentRoom()) |
872 | 874 | actors[numactors++] = a; |
873 | 875 | } |
… |
… |
|
903 | 905 | delete [] actors; |
904 | 906 | } |
905 | 907 | |
| 908 | // Used in Scumm v8, to allow the verb coin to be drawn over the inventory |
| 909 | // chest. I'm assuming that draw order won't matter here. |
| 910 | void Scumm::processUpperActors() |
| 911 | { |
| 912 | Actor *a; |
| 913 | int i; |
| 914 | |
| 915 | for (i = 1; i < NUM_ACTORS; i++) { |
| 916 | a = derefActor(i); |
| 917 | if (a->isInCurrentRoom() && a->costume && a->layer < 0) { |
| 918 | CHECK_HEAP getMaskFromBox(a->walkbox); |
| 919 | a->drawActorCostume(); |
| 920 | CHECK_HEAP a->animateCostume(); |
| 921 | } |
| 922 | } |
| 923 | } |
| 924 | |
906 | 925 | void Actor::drawActorCostume() |
907 | 926 | { |
908 | 927 | if (!needRedraw) |
diff -ur ScummVM-cvs20030218/scummvm/scumm/scumm.h ScummVM-cvs20030218+hack/scummvm/scumm/scumm.h
old
|
new
|
|
673 | 673 | void setActorRedrawFlags(bool fg, bool bg); |
674 | 674 | void resetActorBgs(); |
675 | 675 | void processActors(); |
| 676 | void processUpperActors(); |
676 | 677 | int getActorFromPos(int x, int y); |
677 | 678 | void actorFollowCamera(int act); |
678 | 679 | |
diff -ur ScummVM-cvs20030218/scummvm/scumm/scummvm.cpp ScummVM-cvs20030218+hack/scummvm/scumm/scummvm.cpp
old
|
new
|
|
562 | 562 | } |
563 | 563 | |
564 | 564 | drawBlastObjects(); |
| 565 | if (_features & GF_AFTER_V8) |
| 566 | processUpperActors(); |
565 | 567 | drawBlastTexts(); |
566 | 568 | drawDirtyScreenParts(); |
567 | 569 | removeBlastObjects(); |