diff options
author | Denis Kasak | 2009-07-01 01:11:48 +0000 |
---|---|---|
committer | Denis Kasak | 2009-07-01 01:11:48 +0000 |
commit | 78d5b96f51fa59a7d024d3da7667c3cdcba3410c (patch) | |
tree | 988dbe040da92b9c4eef825ffba9a645443ac318 | |
parent | 49e1a07f277d48b5e597730af76e9247bfff58b8 (diff) | |
download | scummvm-rg350-78d5b96f51fa59a7d024d3da7667c3cdcba3410c.tar.gz scummvm-rg350-78d5b96f51fa59a7d024d3da7667c3cdcba3410c.tar.bz2 scummvm-rg350-78d5b96f51fa59a7d024d3da7667c3cdcba3410c.zip |
Added Text as a subclass of Drawable. Fixed syntax error in font.cpp
svn-id: r41981
-rw-r--r-- | engines/draci/font.cpp | 4 | ||||
-rw-r--r-- | engines/draci/sprite.cpp | 24 | ||||
-rw-r--r-- | engines/draci/sprite.h | 15 |
3 files changed, 40 insertions, 3 deletions
diff --git a/engines/draci/font.cpp b/engines/draci/font.cpp index cfc09cb5ef..b3c5768b51 100644 --- a/engines/draci/font.cpp +++ b/engines/draci/font.cpp @@ -212,7 +212,7 @@ void Font::drawChar(Surface *dst, uint8 chr, int tx, int ty) const { * @param spacing Space to leave between individual characters. Defaults to 0. */ -void Font::drawString(Surface *dst, const byte *str, uint len +void Font::drawString(Surface *dst, const byte *str, uint len, int x, int y, int spacing) const { assert(dst != NULL); assert(x >= 0); @@ -245,7 +245,7 @@ void Font::drawString(Surface *dst, const byte *str, uint len void Font::drawString(Surface *dst, const Common::String &str, int x, int y, int spacing) const { - drawString(dst, str, str.size(), x, y, spacing); + drawString(dst, (byte *) str.c_str(), str.size(), x, y, spacing); } /** diff --git a/engines/draci/sprite.cpp b/engines/draci/sprite.cpp index cce3f51cfa..14d2e905c9 100644 --- a/engines/draci/sprite.cpp +++ b/engines/draci/sprite.cpp @@ -27,6 +27,7 @@ #include "draci/draci.h" #include "draci/sprite.h" +#include "draci/font.h" namespace Draci { @@ -124,7 +125,28 @@ void Sprite::draw(Surface *surface) const { Common::Rect r(_x, _y, _x + _width, _y + _height); surface->markDirtyRect(r); } - + +Text::Text(const Common::String &str, Font *font, byte fontColour, uint spacing) { + uint len = str.size(); + + _text = new byte[len]; + memcpy(_text, str.c_str(), len); + _length = len; + + _spacing = spacing; + _colour = fontColour; + + _font = font; +} + +Text::~Text() { + delete _text; +} + +void Text::draw(Surface *surface) const { + _font->setColour(_colour); + _font->drawString(surface, _text, _length, _x, _y, _spacing); +} } // End of namespace Draci diff --git a/engines/draci/sprite.h b/engines/draci/sprite.h index c9591514e3..68f823512a 100644 --- a/engines/draci/sprite.h +++ b/engines/draci/sprite.h @@ -27,6 +27,7 @@ #define DRACI_SPRITE_H #include "draci/surface.h" +#include "draci/font.h" namespace Draci { @@ -70,7 +71,21 @@ public: byte *_data; //!< Pointer to a buffer containing raw sprite data (row-wise) }; +class Text : public Drawable { +public: + Text(const Common::String &str, Font *font, byte fontColour, uint spacing = 0); + ~Text(); + + void draw(Surface *surface) const; + + byte *_text; + uint _length; + uint8 _colour; + uint _spacing; + Font *_font; +}; + } // End of namespace Draci #endif // DRACI_SPRITE_H |