- void Draw(SDL_Surface *dest, geometry::Point<int> position, int col = 0, int row = 0) const;
- void DrawCenterBottom(SDL_Surface *dest, geometry::Point<int> position, int col = 0, int row = 0) const {
- geometry::Point<int> translated(
- position.X() - (Width() / 2),
- position.Y() - Height());
- Draw(dest, translated, col, row);
+ void Draw(SDL_Surface *dest, const geometry::Point<int> &position, int col = 0, int row = 0) const;
+ void DrawTopRight(SDL_Surface *dest, const geometry::Point<int> &position, int col = 0, int row = 0) const {
+ geometry::Vector<int> offset(-Width(), 0);
+ Draw(dest, position + offset, col, row);
+ }
+ void DrawCenter(SDL_Surface *dest, const geometry::Point<int> &position, int col = 0, int row = 0) const {
+ geometry::Vector<int> offset(-Width() / 2, -Height() / 2);
+ Draw(dest, position + offset, col, row);
+ }
+ void DrawCenterBottom(SDL_Surface *dest, const geometry::Point<int> &position, int col = 0, int row = 0) const {
+ geometry::Vector<int> offset(-Width() / 2, -Height());
+ Draw(dest, position + offset, col, row);