aboutsummaryrefslogtreecommitdiff
path: root/engines/access/data.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/access/data.cpp')
-rw-r--r--engines/access/data.cpp144
1 files changed, 0 insertions, 144 deletions
diff --git a/engines/access/data.cpp b/engines/access/data.cpp
index a13c6d9a67..0279cd5052 100644
--- a/engines/access/data.cpp
+++ b/engines/access/data.cpp
@@ -59,148 +59,4 @@ void TimerList::updateTimers() {
}
}
-/*------------------------------------------------------------------------*/
-
-byte Font::_fontColors[4];
-
-Font::Font() {
-}
-
-Font::~Font() {
- for (uint i = 0; i < _chars.size(); ++i)
- _chars[i].free();
-}
-
-void Font::load(const int *fontIndex, const byte *fontData) {
- assert(_chars.size() == 0);
- int count = fontIndex[0];
- _bitWidth = fontIndex[1];
- _height = fontIndex[2];
-
- _chars.resize(count);
-
- for (int i = 0; i < count; ++i) {
- const byte *pData = fontData + fontIndex[i + 3];
- _chars[i].create(*pData++, _height, Graphics::PixelFormat::createFormatCLUT8());
-
- for (int y = 0; y < _height; ++y) {
- int bitsLeft = 0;
- byte srcByte = 0;
- byte pixel;
-
- byte *pDest = (byte *)_chars[i].getBasePtr(0, y);
- for (int x = 0; x < _chars[i].w; ++x, ++pDest) {
- // Get the pixel
- pixel = 0;
- for (int pixelCtr = 0; pixelCtr < _bitWidth; ++pixelCtr, --bitsLeft) {
- // No bits in current byte left, so get next byte
- if (bitsLeft == 0) {
- bitsLeft = 8;
- srcByte = *pData++;
- }
-
- pixel = (pixel << 1) | (srcByte >> 7);
- srcByte <<= 1;
- }
-
- // Write out the pixel
- *pDest = pixel;
- }
- }
- }
-}
-
-int Font::charWidth(char c) {
- return _chars[c - ' '].w;
-}
-
-int Font::stringWidth(const Common::String &msg) {
- int total = 0;
-
- for (const char *c = msg.c_str(); *c != '\0'; ++c)
- total += charWidth(*c);
-
- return total;
-}
-
-bool Font::getLine(Common::String &s, int maxWidth, Common::String &line, int &width) {
- assert(maxWidth > 0);
- width = 0;
- const char *src = s.c_str();
- char c;
-
- while ((c = *src) != '\0') {
- if (c == '\r') {
- // End of line, so return calculated line
- line = Common::String(s.c_str(), src - 1);
- s = Common::String(src + 1);
- return false;
- }
-
- ++src;
- width += charWidth(c);
- if (width < maxWidth)
- continue;
-
- // Reached maximum allowed size
- // If this was the last character of the string, let it go
- if (*src == '\0')
- break;
-
- // Work backwards to find space at the start of the current word
- // as a point to split the line on
- while (src >= s.c_str() && *src != ' ') {
- width -= charWidth(*src);
- --src;
- }
- if (src < s.c_str())
- error("Could not fit line");
-
- // Split the line around the space
- line = Common::String(s.c_str(), src);
- s = Common::String(src + 1);
- return false;
- }
-
- // Return entire string
- line = s;
- s = Common::String();
- return true;
-}
-
-void Font::drawString(Graphics::Surface *s, const Common::String &msg, const Common::Point &pt) {
- Common::Point currPt = pt;
- const char *msgP = msg.c_str();
-
- while (*msgP) {
- currPt.x += drawChar(s, *msgP, currPt);
- ++msgP;
- }
-}
-
-int Font::drawChar(Graphics::Surface *s, char c, Common::Point &pt) {
- Graphics::Surface &ch = _chars[c - ' '];
-
- // Loop through the lines of the character
- for (int y = 0; y < ch.h; ++y) {
- byte *pSrc = (byte *)ch.getBasePtr(0, y);
- byte *pDest = (byte *)s->getBasePtr(pt.x, pt.y + y);
-
- // Loop through the horizontal pixels of the line
- for (int x = 0; x < ch.w; ++x, ++pSrc, ++pDest) {
- if (*pSrc != 0)
- *pDest = _fontColors[*pSrc];
- }
- }
-
- return ch.w;
-}
-
-/*------------------------------------------------------------------------*/
-
-FontManager::FontManager() {
- _printMaxX = 0;
- Common::fill(&Font::_fontColors[0], &Font::_fontColors[4], 0);
-}
-
} // End of namespace Access