X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fgraphics%2FFont.h;fp=src%2Fgraphics%2FFont.h;h=70f451c2c864b6cdc8b5fd0a81a2f08f5137324c;hb=c182086fbc039ec2b943b4d109597ccc481b7ba4;hp=082e4c01d56357c0ab3f07bfd7f004e45fc3d96b;hpb=04b582180c8f86f50f08f5141a2514a1fcda3e01;p=l2e.git diff --git a/src/graphics/Font.h b/src/graphics/Font.h index 082e4c0..70f451c 100644 --- a/src/graphics/Font.h +++ b/src/graphics/Font.h @@ -11,18 +11,16 @@ #include "Sprite.h" #include "../geometry/Point.h" -#include #include namespace graphics { -// TODO: maybe fix fonts to use a 8x8 tile sprite for all chars class Font { public: - explicit Font(const Sprite *sprite, int digitsCol = 0, int digitsRow = 0) - : sprite(sprite), digitsCol(digitsCol), digitsRow(digitsRow) { - MapRange('0', '9', digitsCol, digitsRow); + explicit Font(const Sprite *sprite, int colOffset = 0, int rowOffset = 0) + : sprite(sprite), colOffset(colOffset), rowOffset(rowOffset) { + } public: @@ -33,27 +31,10 @@ public: void DrawDigit(int d, SDL_Surface *dest, geometry::Point position) const; void DrawNumber(int n, SDL_Surface *dest, geometry::Point position, int digits = 0) const; -public: - bool HasChar(char c) const { return map[(unsigned char)c].mapped; }; - void MapChar(char c, int col, int row) { map[(unsigned char)c].mapped = true; map[(unsigned char)c].col = col; map[(unsigned char)c].row = row; }; - void MapRange(char from, char to, int colStart, int row) { - int col(colStart); - for (unsigned char c(from); c <= to; ++c, ++col) { - MapChar(c, col, row); - } - } - private: - struct Mapping { - Mapping() : mapped(false), col(0), row(0) { } - bool mapped; - int col; - int row; - }; const Sprite *sprite; - Mapping map[256]; - int digitsCol; - int digitsRow; + int colOffset; + int rowOffset; };