X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fgraphics%2FFont.h;h=a5d7b12d690019f0dfd070cd759cc1591521a94d;hb=2590fad63e8a2013c1a169c77f21931bc19f2f25;hp=571431df74dca406a73572c881669eda69208513;hpb=d5959073b2c413ba1bd6f3d14bc8bcf59304e488;p=l2e.git diff --git a/src/graphics/Font.h b/src/graphics/Font.h index 571431d..a5d7b12 100644 --- a/src/graphics/Font.h +++ b/src/graphics/Font.h @@ -17,6 +17,9 @@ namespace graphics { class Font { +public: + static const int TYPE_ID = 404; + public: explicit Font(const Sprite *sprite = 0, int colOffset = 0, int rowOffset = 0) : sprite(sprite), colOffset(colOffset), rowOffset(rowOffset) { @@ -26,16 +29,24 @@ public: public: int CharWidth() const { return sprite->Width(); } int CharHeight() const { return sprite->Height(); } + int StringWidth(const char *) const; + int StringHeight(const char *) const; + void DrawChar(char c, SDL_Surface *dest, const geometry::Vector &position) const; - void DrawString(const char *s, SDL_Surface *dest, const geometry::Vector &position, int maxChars = 0) const; + void DrawString(const char *s, SDL_Surface *dest, const geometry::Vector &position, int maxWidth = 0) const; + void DrawStringRight(const char *s, SDL_Surface *dest, const geometry::Vector &position, int maxWidth = 0) const; void DrawDigit(int d, SDL_Surface *dest, const geometry::Vector &position) const; void DrawNumber(int n, SDL_Surface *dest, const geometry::Vector &position, int digits = 0) const; + void DrawNumberRight(int n, SDL_Surface *dest, const geometry::Vector &position, int digits = 0) const; public: void SetSprite(const Sprite *s) { sprite = s; } void SetColOffset(int n) { colOffset = n; } void SetRowOffset(int n) { rowOffset = n; } + static void CreateTypeDescription(); + static void Construct(void *); + private: const Sprite *sprite; int colOffset;