X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fgraphics%2FSprite.h;h=6aa6c94d88f4ae78fd8977ae84bb9b61228dbba2;hb=1162be37102b24df11f469495c0184f3f9a26ba0;hp=202b96f3f5a05e2a2eb95ffc2f03b1f8d8c9a08d;hpb=cccda573516f3bce30efbaba3fc20e4148d3cdc8;p=l2e.git diff --git a/src/graphics/Sprite.h b/src/graphics/Sprite.h index 202b96f..6aa6c94 100644 --- a/src/graphics/Sprite.h +++ b/src/graphics/Sprite.h @@ -8,7 +8,9 @@ #ifndef GRAPHICS_SPRITE_H_ #define GRAPHICS_SPRITE_H_ +#include "../geometry/operators.h" #include "../geometry/Point.h" +#include "../geometry/Vector.h" #include @@ -23,12 +25,18 @@ public: public: int Width() const { return width; } int Height() const { return height; } - void Draw(SDL_Surface *dest, geometry::Point position, int col = 0, int row = 0) const; - void DrawCenterBottom(SDL_Surface *dest, geometry::Point position, int col = 0, int row = 0) const { - geometry::Point translated( - position.X() - (Width() / 2), - position.Y() - Height()); - Draw(dest, translated, col, row); + void Draw(SDL_Surface *dest, const geometry::Point &position, int col = 0, int row = 0) const; + void DrawTopRight(SDL_Surface *dest, const geometry::Point &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::Point &position, int col = 0, int row = 0) const { + geometry::Vector offset(-Width() / 2, -Height() / 2); + Draw(dest, position + offset, col, row); + } + void DrawCenterBottom(SDL_Surface *dest, const geometry::Point &position, int col = 0, int row = 0) const { + geometry::Vector offset(-Width() / 2, -Height()); + Draw(dest, position + offset, col, row); } private: