aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--saga/actor.cpp18
1 files changed, 10 insertions, 8 deletions
diff --git a/saga/actor.cpp b/saga/actor.cpp
index 2272977154..ed3231fc3c 100644
--- a/saga/actor.cpp
+++ b/saga/actor.cpp
@@ -1214,21 +1214,23 @@ void Actor::createDrawOrderList() {
_drawOrderList.clear();
for (i = 0; i < _actorsCount; i++) {
actor = _actors[i];
- if (actor->disabled) continue;
- if (actor->sceneNumber != _vm->_scene->currentSceneNumber()) continue;
-
- _drawOrderList.pushBack(actor, compareFunction);
+ if (actor->disabled)
+ continue;
- calcScreenPosition(actor);
+ if (i == 0 || actor->flags & (kFollower | kProtagonist) || actor->sceneNumber == _vm->_scene->currentSceneNumber()) {
+ _drawOrderList.pushBack(actor, compareFunction);
+ calcScreenPosition(actor);
+ }
}
for (i = 0; i < _objsCount; i++) {
obj = _objs[i];
- if (obj->disabled) continue;
- if (obj->sceneNumber != _vm->_scene->currentSceneNumber()) continue;
+ if (obj->disabled)
+ continue;
+ if (obj->sceneNumber != _vm->_scene->currentSceneNumber())
+ continue;
_drawOrderList.pushBack(obj, compareFunction);
-
calcScreenPosition(obj);
}
}