diff options
author | Filippos Karapetis | 2009-04-11 09:54:55 +0000 |
---|---|---|
committer | Filippos Karapetis | 2009-04-11 09:54:55 +0000 |
commit | 728745767294ecc3abf7fcb730370ff8951999ed (patch) | |
tree | bfff27e49111db8688a307bcbd92982ca5b2bcb3 /engines/saga/actor.cpp | |
parent | c1a517e383a7b29af2e9ebe68f2565e2db022558 (diff) | |
download | scummvm-rg350-728745767294ecc3abf7fcb730370ff8951999ed.tar.gz scummvm-rg350-728745767294ecc3abf7fcb730370ff8951999ed.tar.bz2 scummvm-rg350-728745767294ecc3abf7fcb730370ff8951999ed.zip |
Got rid of SortedList
svn-id: r39928
Diffstat (limited to 'engines/saga/actor.cpp')
-rw-r--r-- | engines/saga/actor.cpp | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/engines/saga/actor.cpp b/engines/saga/actor.cpp index 17834aec35..feef8595b9 100644 --- a/engines/saga/actor.cpp +++ b/engines/saga/actor.cpp @@ -960,11 +960,24 @@ uint16 Actor::hitTest(const Point &testPoint, bool skipProtagonist) { return result; // in IHNM, return the last result found (read above) } +void Actor::drawOrderListAdd(const CommonObjectDataPointer& element, CompareFunction compareFunction) { + int res; + + for (CommonObjectOrderList::iterator i = _drawOrderList.begin(); i !=_drawOrderList.end(); ++i) { + res = compareFunction(element, *i); + if (res < 0) { + _drawOrderList.insert(i, element); + return; + } + } + _drawOrderList.push_back(element); +} + void Actor::createDrawOrderList() { int i; ActorData *actor; ObjectData *obj; - CommonObjectOrderList::CompareFunction compareFunction = 0; + CompareFunction compareFunction = 0; if (_vm->_scene->getFlags() & kSceneFlagISO) { compareFunction = &tileCommonObjectCompare; @@ -985,7 +998,7 @@ void Actor::createDrawOrderList() { continue; if (calcScreenPosition(actor)) { - _drawOrderList.insert(actor, compareFunction); + drawOrderListAdd(actor, compareFunction); } } @@ -1005,7 +1018,7 @@ void Actor::createDrawOrderList() { continue; if (calcScreenPosition(obj)) { - _drawOrderList.insert(obj, compareFunction); + drawOrderListAdd(obj, compareFunction); } } } |