FontSurface *FontSurface::createFontSurface(NeverhoodEngine *vm, uint32 fileHash) { FontSurface *fontSurface; DataResource fontData(vm); SpriteResource fontSprite(vm); fontData.load(calcHash("asRecFont")); uint16 numRows = fontData.getPoint(calcHash("meNumRows")).x; uint16 firstChar = fontData.getPoint(calcHash("meFirstChar")).x; uint16 charWidth = fontData.getPoint(calcHash("meCharWidth")).x; uint16 charHeight = fontData.getPoint(calcHash("meCharHeight")).x; NPointArray *tracking = fontData.getPointArray(calcHash("meTracking")); fontSprite.load(fileHash, true); fontSurface = new FontSurface(vm, tracking, 16, numRows, firstChar, charWidth, charHeight); fontSurface->drawSpriteResourceEx(fontSprite, false, false, 0, 0); return fontSurface; }
void pasteString (char * theText, int xOff, int y, spritePalette & thePal) { sprite * mySprite; int a = 0; uint32_t c; if (! fontTableSize) return; xOff += (int)((float)(fontSpace >> 1) / cameraZoom); while (theText[a]) { c = u8_nextchar(theText, &a); mySprite = & theFont.sprites[fontInTable(c)]; fontSprite (xOff, y, * mySprite, thePal); xOff += (int)((double)(mySprite -> width + fontSpace) / cameraZoom); } }
void flipFontSprite (int x, int y, sprite & single, const spritePalette & fontPal) { fontSprite (true, x, y, single, fontPal); }
void fontSprite (int x, int y, sprite & single, const spritePalette & fontPal) { fontSprite (false, x, y, single, fontPal); }