X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fgraphics%2FSprite.h;fp=src%2Fgraphics%2FSprite.h;h=f6f3b7b566d58cfa969d973767353c39cfea8b7e;hb=d20fa78a0dcbc95a69bb6077d2081d42b74a2d1a;hp=942d98e51e5e7424d791d657aa7ab94d4371ace3;hpb=0542849dfccfec1ce1477265fa0fee2401a8fb23;p=l2e.git diff --git a/src/graphics/Sprite.h b/src/graphics/Sprite.h index 942d98e..f6f3b7b 100644 --- a/src/graphics/Sprite.h +++ b/src/graphics/Sprite.h @@ -18,19 +18,19 @@ class Sprite { public: Sprite(SDL_Surface *s, int width, int height, int xOffset = 0, int yOffset = 0) - : surface(s), width(width), height(height), xOffset(xOffset), yOffset(yOffset) { } + : surface(s), size(width, height), offset(xOffset, yOffset) { } public: - int Width() const { return width; } - int Height() const { return height; } + 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); Draw(dest, position + offset, col, row); } void DrawCenter(SDL_Surface *dest, const geometry::Vector &position, int col = 0, int row = 0) const { - geometry::Vector offset(-Width() / 2, -Height() / 2); - Draw(dest, position + offset, col, row); + 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()); @@ -39,10 +39,8 @@ public: private: SDL_Surface *surface; - int width; - int height; - int xOffset; - int yOffset; + geometry::Vector size; + geometry::Vector offset; };