X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fgraphics%2FAnimation.h;h=cfdb14639b2468f9267de38ea3f74fbac431cc6c;hb=2a1d9169e1f6c2dfe0f93ed40d5fb68d3da342af;hp=208f6bdb19e7b95d9dbc20a417498608f14dc64b;hpb=d20fa78a0dcbc95a69bb6077d2081d42b74a2d1a;p=l2e.git diff --git a/src/graphics/Animation.h b/src/graphics/Animation.h index 208f6bd..cfdb146 100644 --- a/src/graphics/Animation.h +++ b/src/graphics/Animation.h @@ -12,8 +12,10 @@ #include "../app/Application.h" #include "../app/State.h" #include "../app/Timer.h" +#include "../loader/fwd.h" #include "../geometry/Vector.h" +#include #include namespace graphics { @@ -28,17 +30,24 @@ public: virtual ~Animation() { }; public: - const Sprite *GetSprite() const { return sprite; } int FrameTime() const { return frameTime; } bool Repeat() const { return repeat; } +public: + void SetSprite(const Sprite *s) { sprite = s; } + void SetFrameTime(int t) { frameTime = t; } + void SetRepeat(bool r) { repeat = r; } + public: virtual int NumFrames() const = 0; virtual int Col(int frame) const = 0; virtual int Row(int frame) const = 0; virtual geometry::Vector Offset(int frame) const { return geometry::Vector(); } +protected: + static void AddFields(loader::TypeDescription &, const Animation &, std::ptrdiff_t offset, int boolId, int numberId, int spriteId); + private: const Sprite *sprite; int frameTime;