diff options
-rw-r--r-- | saga/actor.cpp | 18 |
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); } } |