#include "StdAfx.h"
#include "TextSprite.h"
namespace Sunlight
{
namespace DirectX
{
namespace Graphics
{
TextSprite::TextSprite(SpriteManager *manager, System::Drawing::Rectangle dimensions,
Texture *texture, System::Drawing::Point sourcePosition, int framesAcross,
String *characterSet) :
Sprite(manager, dimensions, texture, sourcePosition, framesAcross),
CharacterSet(characterSet),
Text(NULL)
{
DefaultCharacter = CharacterSet->Chars[0];
}
Drawing::Rectangle TextSprite::get_Bounds()
{
if (Text == NULL)
return Drawing::Rectangle(Left, Top, 0, 0);
return Drawing::Rectangle(Left, Top, Text->Length * Width, Height);
}
void TextSprite::Draw()
{
int OldLeft = Left;
for (int i = 0; i < Text->Length; i++)
{
wchar_t c = Text->Chars[i];
int index = CharacterSet->IndexOf(c);
if (index == -1)
index = CharacterSet->IndexOf(DefaultCharacter);
if (index != -1)
{
Left = OldLeft + i * Width;
CurrentFrame = index;
Sprite::Draw();
}
}
Left = OldLeft;
}
}
}
}