X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;ds=sidebyside;f=src%2Fgraphics%2FAnimation.h;h=524912d5743029a1b2ca8cabbc586949267df373;hb=ff31f85fb6a01403c50e34d1226690074c06b7d2;hp=0f33541f0397ce41ce479f4442246bf0b3fd8654;hpb=abede3a0c94a057bc70305a1a858363a2a686f7e;p=l2e.git diff --git a/src/graphics/Animation.h b/src/graphics/Animation.h index 0f33541..524912d 100644 --- a/src/graphics/Animation.h +++ b/src/graphics/Animation.h @@ -43,11 +43,16 @@ public: return timer.Running() && (repeat || timer.Iteration() < NumFrames()); } + const app::Timer &GetTimer() { return timer; } + void SetColOffset(int offset) { colOffset = offset; } int ColOffset() const { return colOffset; } void SetRowOffset(int offset) { rowOffset = offset; } int RowOffset() const { return rowOffset; } + const Sprite *GetSprite() const { return sprite; } + void ChangeSprite(const Sprite *s) { sprite = s; } + virtual void Draw(SDL_Surface *dest, geometry::Point position) const { sprite->Draw(dest, position, Col() + ColOffset(), Row() + RowOffset()); } @@ -64,8 +69,9 @@ public: Draw(dest, position + offset); } -protected: int Frame() const { return Running() ? (timer.Iteration() % NumFrames()) : 0; } + +protected: virtual int Col() const = 0; virtual int Row() const = 0; virtual int NumFrames() const = 0;