- void AddFrame(int col, int row, const geometry::Vector<int> &disposition = geometry::Vector<int>()) {
- frames.push_back(FrameProp(col, row, disposition));
- }
- void AddFrames(int col, int row, const geometry::Vector<int> &disposition, int amount) {
- for (int i(0); i < amount; ++i) {
- AddFrame(col, row, disposition);
- }
- }
-
- virtual void Draw(SDL_Surface *dest, geometry::Point<int> position) const {
- Animation::Draw(dest, position + frames[Frame()].disposition);
- }
-
-protected:
- virtual int Col() const { return frames[Frame()].col; }
- virtual int Row() const { return frames[Frame()].row; }
- virtual int NumFrames() const { return frames.size(); };
+ ComplexAnimation() : frames(0), numFrames(0) { }
+ ComplexAnimation(const Sprite *sprite, int frameTime, bool repeat = false)
+ : Animation(sprite, frameTime, repeat), frames(0), numFrames(0) { }