X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fgraphics%2FComplexAnimation.h;h=eeeef680d37b558a8a06ebaa226c2b0d9d85ed4d;hb=2255d436a0c2acc10b015827366a72b2ece86094;hp=a548cdbb9931b92d6be76388be0713765f0b1497;hpb=20e3191911c173d6c9b97dde6b99bd96f5e342cb;p=l2e.git diff --git a/src/graphics/ComplexAnimation.h b/src/graphics/ComplexAnimation.h index a548cdb..eeeef68 100644 --- a/src/graphics/ComplexAnimation.h +++ b/src/graphics/ComplexAnimation.h @@ -1,10 +1,3 @@ -/* - * ComplexAnimation.h - * - * Created on: Aug 12, 2012 - * Author: holy - */ - #ifndef GRAPHICS_COMPLEXANIMATION_H_ #define GRAPHICS_COMPLEXANIMATION_H_ @@ -16,12 +9,15 @@ class ComplexAnimation : public Animation { public: - ComplexAnimation() : frames(0), numFrames(0) { } - ComplexAnimation(const Sprite *sprite, int frameTime, bool repeat = false) - : Animation(sprite, frameTime, repeat), frames(0), numFrames(0) { } + static const int TYPE_ID = 402; + +public: + ComplexAnimation(); + ComplexAnimation(const Sprite *sprite, int frameTime, bool repeat = false); public: struct FrameProp { + static const int TYPE_ID = 403; FrameProp() : col(0), row(0) { } FrameProp(int col, int row, const geometry::Vector &disposition) : col(col), row(row), disposition(disposition) {} @@ -32,12 +28,13 @@ public: void SetFrames(const FrameProp *f, int num) { frames = f; numFrames = num; } static void CreateTypeDescription(); + static void Construct(void *); protected: - 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; } + virtual int NumFrames() const; + virtual int Col(int frame) const; + virtual int Row(int frame) const; + virtual geometry::Vector Offset(int frame) const; private: const FrameProp *frames;