summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/localconsts.h3
-rw-r--r--src/resources/sprite/animatedsprite.cpp9
-rw-r--r--src/resources/sprite/animatedsprite.h11
3 files changed, 23 insertions, 0 deletions
diff --git a/src/localconsts.h b/src/localconsts.h
index 3c40ca96c..69f0defd5 100644
--- a/src/localconsts.h
+++ b/src/localconsts.h
@@ -225,6 +225,9 @@
// use OpenGL debug features
// #define DEBUG_OPENGL 1
+// debug animations
+// #define DEBUG_ANIMATIONS 1
+
#ifdef DYECMD
#undef USE_FUZZER
#endif
diff --git a/src/resources/sprite/animatedsprite.cpp b/src/resources/sprite/animatedsprite.cpp
index 98d4b418d..43c11497a 100644
--- a/src/resources/sprite/animatedsprite.cpp
+++ b/src/resources/sprite/animatedsprite.cpp
@@ -70,6 +70,9 @@ AnimatedSprite *AnimatedSprite::load(const std::string &restrict filename,
if (!s)
return nullptr;
AnimatedSprite *restrict const as = new AnimatedSprite(s);
+#ifdef DEBUG_ANIMATIONS
+ as->setSpriteName(filename);
+#endif
as->play(SpriteAction::STAND);
s->decRef();
return as;
@@ -90,6 +93,9 @@ AnimatedSprite *AnimatedSprite::delayedLoad(const std::string &restrict
}
AnimatedSprite *restrict const as = new AnimatedSprite(nullptr);
+#ifdef DEBUG_ANIMATIONS
+ as->setSpriteName(filename);
+#endif
as->play(SpriteAction::STAND);
as->setDelayLoad(filename, variant);
return as;
@@ -101,6 +107,9 @@ AnimatedSprite *AnimatedSprite::clone(const AnimatedSprite *restrict const
if (!anim)
return nullptr;
AnimatedSprite *restrict const sprite = new AnimatedSprite(anim->mSprite);
+#ifdef DEBUG_ANIMATIONS
+ sprite->setSpriteName(anim->getSpriteName());
+#endif
sprite->play(SpriteAction::STAND);
return sprite;
}
diff --git a/src/resources/sprite/animatedsprite.h b/src/resources/sprite/animatedsprite.h
index f9971cb5b..03b276a9b 100644
--- a/src/resources/sprite/animatedsprite.h
+++ b/src/resources/sprite/animatedsprite.h
@@ -129,12 +129,23 @@ class AnimatedSprite final : public Sprite
{ return mFrameTime; }
#endif
+#ifdef DEBUG_ANIMATIONS
+ void setSpriteName(const std::string &restrict name)
+ { mSpriteName = name; }
+
+ std::string getSpriteName() const A_WARN_UNUSED
+ { return mSpriteName; }
+#endif
+
private:
bool updateCurrentAnimation(const unsigned int dt) restrict2;
void setDelayLoad(const std::string &restrict filename,
const int variant) restrict2;
+#ifdef DEBUG_ANIMATIONS
+ std::string mSpriteName;
+#endif
SpriteDirection::Type mDirection; /**< The sprite direction. */
int mLastTime; /**< The last time update was called. */