aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm/actor.cpp
diff options
context:
space:
mode:
authorTravis Howell2009-06-18 07:12:53 +0000
committerTravis Howell2009-06-18 07:12:53 +0000
commit7123fbdd7095257c9c23102f7d86d2c8cf21cfd0 (patch)
tree8cc9b9b8c79066189dd9da508498da63bbc0bcd2 /engines/scumm/actor.cpp
parentb8a9823f4e868a98ae85862eb457b6d4e7cffe1c (diff)
downloadscummvm-rg350-7123fbdd7095257c9c23102f7d86d2c8cf21cfd0.tar.gz
scummvm-rg350-7123fbdd7095257c9c23102f7d86d2c8cf21cfd0.tar.bz2
scummvm-rg350-7123fbdd7095257c9c23102f7d86d2c8cf21cfd0.zip
Merged revisions 41625 via svnmerge from
https://scummvm.svn.sourceforge.net/svnroot/scummvm/scummvm/trunk ........ r41625 | Kirben | 2009-06-18 16:18:31 +1000 (Thu, 18 Jun 2009) | 1 line Correct actor layering method in HE90+ games. ........ svn-id: r41626
Diffstat (limited to 'engines/scumm/actor.cpp')
-rw-r--r--engines/scumm/actor.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/engines/scumm/actor.cpp b/engines/scumm/actor.cpp
index f3c8e2ff6b..52866279b8 100644
--- a/engines/scumm/actor.cpp
+++ b/engines/scumm/actor.cpp
@@ -1348,6 +1348,22 @@ void ScummEngine::processActors() {
}
}
}
+ } else if (_game.heversion >= 90) {
+ for (int j = 0; j < numactors; ++j) {
+ for (int i = 0; i < numactors; ++i) {
+ int sc_actor1 = _sortedActors[j]->_layer;
+ int sc_actor2 = _sortedActors[i]->_layer;
+ if (sc_actor1 < sc_actor2) {
+ SWAP(_sortedActors[i], _sortedActors[j]);
+ } else if (sc_actor1 == sc_actor2) {
+ sc_actor1 = _sortedActors[j]->getPos().y;
+ sc_actor2 = _sortedActors[i]->getPos().y;
+ if (sc_actor1 < sc_actor2) {
+ SWAP(_sortedActors[i], _sortedActors[j]);
+ }
+ }
+ }
+ }
} else {
for (int j = 0; j < numactors; ++j) {
for (int i = 0; i < numactors; ++i) {