aboutsummaryrefslogtreecommitdiff
path: root/engines/parallaction/gfxbase.cpp
diff options
context:
space:
mode:
authorJohannes Schickel2008-01-28 22:05:23 +0000
committerJohannes Schickel2008-01-28 22:05:23 +0000
commitd8e1f5a060654e1abd8ff9fc69b34320383e59f3 (patch)
tree0149a8aa9173bdd57714a0aaf5f31c6fb1b86b54 /engines/parallaction/gfxbase.cpp
parent7aac83007d53aa2d398a9a1e639f8d29064819a1 (diff)
downloadscummvm-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/gfxbase.cpp')
-rw-r--r--engines/parallaction/gfxbase.cpp25
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) {