diff options
author | Johannes Schickel | 2008-01-28 22:05:23 +0000 |
---|---|---|
committer | Johannes Schickel | 2008-01-28 22:05:23 +0000 |
commit | d8e1f5a060654e1abd8ff9fc69b34320383e59f3 (patch) | |
tree | 0149a8aa9173bdd57714a0aaf5f31c6fb1b86b54 /engines/parallaction | |
parent | 7aac83007d53aa2d398a9a1e639f8d29064819a1 (diff) | |
download | scummvm-rg350-d8e1f5a060654e1abd8ff9fc69b34320383e59f3.tar.gz scummvm-rg350-d8e1f5a060654e1abd8ff9fc69b34320383e59f3.tar.bz2 scummvm-rg350-d8e1f5a060654e1abd8ff9fc69b34320383e59f3.zip |
- make Common::sort supporting a function object to compare two entries instead of operator <
- adapt parallaction to use the new Common::sort function
svn-id: r30692
Diffstat (limited to 'engines/parallaction')
-rw-r--r-- | engines/parallaction/gfxbase.cpp | 25 |
1 files changed, 5 insertions, 20 deletions
diff --git a/engines/parallaction/gfxbase.cpp b/engines/parallaction/gfxbase.cpp index fd581cda0e..60f00f10f5 100644 --- a/engines/parallaction/gfxbase.cpp +++ b/engines/parallaction/gfxbase.cpp @@ -27,6 +27,8 @@ #include "graphics.h" #include "disk.h" +#include "common/algorithm.h" + namespace Parallaction { GfxObj::GfxObj(uint objType, Frames *frames, const char* name) : type(objType), _frames(frames), x(0), y(0), z(0), frame(0), layer(3), _flags(0), _keep(true) { @@ -123,32 +125,15 @@ void Gfx::showGfxObj(GfxObj* obj, bool visible) { -int compareAnimationZ(const GfxObj* a1, const GfxObj* a2) { - if (a1->z == a2->z) return 0; - return (a1->z < a2->z ? -1 : 1); +bool compareAnimationZ(const GfxObj* a1, const GfxObj* a2) { + return a1->z < a2->z; } void Gfx::sortAnimations() { - GfxObjList::iterator first = _gfxobjList[kGfxObjTypeAnim].begin(); GfxObjList::iterator last = _gfxobjList[kGfxObjTypeAnim].end(); - if (first == last) - return; - - // Simple selection sort - GfxObjList::iterator i(first); - for (; i != last; ++i) { - GfxObjList::iterator minElem(i); - GfxObjList::iterator j(i); - ++j; - for (; j != last; ++j) - if (compareAnimationZ(*j, *minElem) < 0) - minElem = j; - if (minElem != i) - SWAP(*minElem, *i); - } - + Common::sort(first, last, compareAnimationZ); } void Gfx::drawGfxObjects(Graphics::Surface &surf) { |