}
#include "../app/Timer.h"
-#include "../geometry/Vector.h"
+#include "../math/Vector.h"
+#include "../loader/noinit.h"
#include <memory>
#include <SDL.h>
Animation(const Sprite *sprite, int frameTime, bool repeat = false)
: sprite(sprite), frameTime(frameTime), repeat(repeat) { }
virtual ~Animation() { };
+protected:
+ Animation(loader::noinit_t);
public:
const Sprite *GetSprite() const { return sprite; }
virtual int NumFrames() const = 0;
virtual int Col(int frame) const = 0;
virtual int Row(int frame) const = 0;
- virtual geometry::Vector<int> Offset(int frame) const { return geometry::Vector<int>(); }
+ virtual math::Vector<int> Offset(int frame) const { return math::Vector<int>(); }
static void CreateTypeDescription();
void Start(app::State &ctrl);
void Start(app::Application &ctrl);
+ void Synchronize(const AnimationRunner &other) { timer = other.timer; }
void Stop();
bool Started() const;
bool Running() const;
void ChangeSprite(const Sprite *s) { sprite = s; }
const Sprite *GetSprite() const { return sprite ? sprite : animation->GetSprite(); }
- void Draw(SDL_Surface *dest, geometry::Vector<int> position) const;
- void DrawTopRight(SDL_Surface *dest, geometry::Vector<int> position) const;
- void DrawCenter(SDL_Surface *dest, geometry::Vector<int> position) const;
- void DrawCenterBottom(SDL_Surface *dest, geometry::Vector<int> position) const;
+ void Draw(SDL_Surface *dest, math::Vector<int> position) const;
+ void DrawTopRight(SDL_Surface *dest, math::Vector<int> position) const;
+ void DrawCenter(SDL_Surface *dest, math::Vector<int> position) const;
+ void DrawCenterBottom(SDL_Surface *dest, math::Vector<int> position) const;
int Frame() const;
}
-#endif /* GRAPHICS_SIMPLEANIMATION_H_ */
+#endif