X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fgraphics%2FComplexAnimation.h;h=a548cdbb9931b92d6be76388be0713765f0b1497;hb=be7b4addf295d6193ba2527cdd17cdb524339aed;hp=815e9c5a6e4183c88de7225e4721b67a4521033c;hpb=bb7326004878abeadbe171db75d2caa0eae74431;p=l2e.git diff --git a/src/graphics/ComplexAnimation.h b/src/graphics/ComplexAnimation.h index 815e9c5..a548cdb 100644 --- a/src/graphics/ComplexAnimation.h +++ b/src/graphics/ComplexAnimation.h @@ -10,27 +10,15 @@ #include "Animation.h" -#include - namespace graphics { class ComplexAnimation : public Animation { public: - ComplexAnimation() { } + ComplexAnimation() : frames(0), numFrames(0) { } ComplexAnimation(const Sprite *sprite, int frameTime, bool repeat = false) - : Animation(sprite, frameTime, repeat) { } - -public: - void AddFrame(int col, int row, const geometry::Vector &disposition = geometry::Vector()) { - frames.push_back(FrameProp(col, row, disposition)); - } - void AddFrames(int col, int row, const geometry::Vector &disposition, int amount) { - for (int i(0); i < amount; ++i) { - AddFrame(col, row, disposition); - } - } + : Animation(sprite, frameTime, repeat), frames(0), numFrames(0) { } public: struct FrameProp { @@ -41,16 +29,19 @@ public: int row; geometry::Vector disposition; }; - void AddFrame(const FrameProp &f) { frames.push_back(f); } + void SetFrames(const FrameProp *f, int num) { frames = f; numFrames = num; } + + static void CreateTypeDescription(); protected: - virtual int NumFrames() const { return frames.size(); }; + virtual int NumFrames() const { return numFrames; }; virtual int Col(int frame) const { return frames[frame].col; } virtual int Row(int frame) const { return frames[frame].row; } virtual geometry::Vector Offset(int frame) const { return frames[frame].disposition; } private: - std::vector frames; + const FrameProp *frames; + int numFrames; };