X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fgraphics%2FSprite.h;h=5fa4191ad5021f7b7ce097b0942b941f292fe6cc;hb=4309d259becd96ead792678257e910c03a6b4a3d;hp=2af95f858d12ac104814fa73ec201e42c39d9c53;hpb=908e0b6a2a9c3266da902eccd668f54ee0b94895;p=l2e.git diff --git a/src/graphics/Sprite.h b/src/graphics/Sprite.h index 2af95f8..5fa4191 100644 --- a/src/graphics/Sprite.h +++ b/src/graphics/Sprite.h @@ -1,14 +1,7 @@ -/* - * Sprite.h - * - * Created on: Aug 5, 2012 - * Author: holy - */ - #ifndef GRAPHICS_SPRITE_H_ #define GRAPHICS_SPRITE_H_ -#include "../geometry/Vector.h" +#include "../math/Vector.h" #include @@ -16,6 +9,9 @@ namespace graphics { class Sprite { +public: + static const int TYPE_ID = 409; + public: Sprite() : surface(0), size(64, 64), offset() { } Sprite(SDL_Surface *s, int width, int height, int xOffset = 0, int yOffset = 0) @@ -24,32 +20,35 @@ public: public: int Width() const { return size.X(); } int Height() const { return size.Y(); } - const geometry::Vector &Size() const { return size; } - void Draw(SDL_Surface *dest, const geometry::Vector &position, int col = 0, int row = 0) const; - void DrawTopRight(SDL_Surface *dest, const geometry::Vector &position, int col = 0, int row = 0) const { - geometry::Vector offset(-Width(), 0); + const math::Vector &Size() const { return size; } + void Draw(SDL_Surface *dest, const math::Vector &position, int col = 0, int row = 0) const; + void DrawTopRight(SDL_Surface *dest, const math::Vector &position, int col = 0, int row = 0) const { + math::Vector offset(-Width(), 0); Draw(dest, position + offset, col, row); } - void DrawCenter(SDL_Surface *dest, const geometry::Vector &position, int col = 0, int row = 0) const { + void DrawCenter(SDL_Surface *dest, const math::Vector &position, int col = 0, int row = 0) const { Draw(dest, position - (Size() / 2), col, row); } - void DrawCenterBottom(SDL_Surface *dest, const geometry::Vector &position, int col = 0, int row = 0) const { - geometry::Vector offset(-Width() / 2, -Height()); + void DrawCenterBottom(SDL_Surface *dest, const math::Vector &position, int col = 0, int row = 0) const { + math::Vector offset(-Width() / 2, -Height()); Draw(dest, position + offset, col, row); } public: void SetSurface(SDL_Surface *s) { surface = s; } - void SetSize(const geometry::Vector &s) { size = s; } - void SetOffset(const geometry::Vector &o) { offset = o; } + void SetSize(const math::Vector &s) { size = s; } + void SetOffset(const math::Vector &o) { offset = o; } + + static void CreateTypeDescription(); + static void Construct(void *); private: SDL_Surface *surface; - geometry::Vector size; - geometry::Vector offset; + math::Vector size; + math::Vector offset; }; } -#endif /* GRAPHICS_SPRITE_H_ */ +#endif