X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fgraphics%2FSimpleAnimation.h;h=88a41c5ba52e859137549e5d68737beacf340264;hb=2255d436a0c2acc10b015827366a72b2ece86094;hp=dffd863a2be6bbf287039e2a44179d457b2aae0e;hpb=b9fdb4fd361fbc0c8e2c0df9615e6eed540917a1;p=l2e.git diff --git a/src/graphics/SimpleAnimation.h b/src/graphics/SimpleAnimation.h index dffd863..88a41c5 100644 --- a/src/graphics/SimpleAnimation.h +++ b/src/graphics/SimpleAnimation.h @@ -1,59 +1,38 @@ -/* - * SimpleAnimation.h - * - * Created on: Aug 11, 2012 - * Author: holy - */ - #ifndef GRAPHICS_SIMPLEANIMATION_H_ #define GRAPHICS_SIMPLEANIMATION_H_ -#include "Sprite.h" -#include "../app/Application.h" -#include "../app/State.h" -#include "../app/Timer.h" -#include "../geometry/Point.h" - -#include +#include "Animation.h" namespace graphics { -class SimpleAnimation { +class SimpleAnimation +: public Animation { + +public: + static const int TYPE_ID = 408; public: - SimpleAnimation() - : sprite(0), frameTime(0), numFrames(0), col(0), row(0), repeat(false) { } - SimpleAnimation(const Sprite *sprite, int frameTime, int numFrames, int col = 0, int row = 0, bool repeat = false) - : sprite(sprite), frameTime(frameTime), numFrames(numFrames), col(col), row(row), repeat(repeat) { } + SimpleAnimation(); + SimpleAnimation(const Sprite *sprite, int frameTime, int numFrames, + int col = 0, int row = 0, bool repeat = false); public: - void Start(app::State &ctrl) { - timer = ctrl.GraphicsTimers().StartInterval(frameTime); - } - void Start(app::Application &ctrl) { - timer = ctrl.GlobalTimers().StartInterval(frameTime); - } - void Stop() { - timer = app::Timer(); - } - bool Running() const { - return timer.Running() && (repeat || timer.Iteration() < numFrames); - } - void Draw(SDL_Surface *dest, geometry::Point position) { - sprite->Draw(dest, position, col, Running() ? row + (timer.Iteration() % numFrames) : row); - } - void DrawCenterBottom(SDL_Surface *dest, geometry::Point position) const { - sprite->DrawCenterBottom(dest, position, col, Running() ? row + (timer.Iteration() % numFrames) : row); - } + void SetNumFrames(int n) { numFrames = n; } + void SetCol(int c) { col = c; } + void SetRow(int r) { row = r; } + + static void CreateTypeDescription(); + static void Construct(void *); + +protected: + virtual int NumFrames() const; + virtual int Col(int frame) const; + virtual int Row(int frame) const; private: - const Sprite *sprite; - app::Timer timer; - int frameTime; int numFrames; int col; int row; - bool repeat; };