diff options
author | Eugene Sandulenko | 2016-10-05 23:24:53 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2016-10-05 23:24:53 +0200 |
commit | 15e499772032ae050627e1558904f119815ec51f (patch) | |
tree | 64c0a244ea14ec94a2f4789d8a4d85006d617167 /devtools | |
parent | 3f30e2dd06dbdf0d12849a9850a21e84b60f2b6c (diff) | |
download | scummvm-rg350-15e499772032ae050627e1558904f119815ec51f.tar.gz scummvm-rg350-15e499772032ae050627e1558904f119815ec51f.tar.bz2 scummvm-rg350-15e499772032ae050627e1558904f119815ec51f.zip |
GRAPHICS: Load Face Name from BDF files
Also adjust the devtools and built-in fonts accordingly.
Diffstat (limited to 'devtools')
-rw-r--r-- | devtools/convbdf.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/devtools/convbdf.cpp b/devtools/convbdf.cpp index 59ea5cc4e5..c84907659d 100644 --- a/devtools/convbdf.cpp +++ b/devtools/convbdf.cpp @@ -38,6 +38,7 @@ struct BdfBoundingBox { }; struct BdfFont { + char *faceName; int maxAdvance; int height; BdfBoundingBox defaultBox; @@ -62,6 +63,7 @@ struct BdfFont { delete[] bitmaps; delete[] advances; delete[] boxes; + delete[] faceName; } }; @@ -159,6 +161,15 @@ int main(int argc, char *argv[]) { memset(font.bitmaps, 0, sizeof(unsigned char *) * font.numCharacters); font.advances = new unsigned char[font.numCharacters]; font.boxes = new BdfBoundingBox[font.numCharacters]; + } else if (hasPrefix(line, "FACE_NAME \"")) { + font.faceName = new char[line.size()]; // We will definitely fit here + strncpy(font.faceName, &line.c_str()[11], line.size() - 1); + char *p = &font.faceName[strlen(font.faceName)]; + while (p != font.faceName && *p != '"') + p--; + if (p == font.faceName) + error("Invalid FACE_NAME"); + *p = '\0'; // Remove last quote } else if (hasPrefix(line, "FONT_ASCENT ")) { if (sscanf(line.c_str(), "FONT_ASCENT %d", &font.ascent) != 1) error("Invalid FONT_ASCENT"); @@ -481,6 +492,7 @@ int main(int argc, char *argv[]) { printf("// Font structure\n" "static const BdfFontData desc = {\n" + "\"%s\", // Face name\n" "\t%d, // Max advance\n" "\t%d, // Height\n" "\t{ %d, %d, %d, %d }, // Bounding box\n" @@ -491,7 +503,7 @@ int main(int argc, char *argv[]) { "\t%d, // Characters\n" "\n" "\tbitmapTable, // Bitmaps\n", - font.maxAdvance, font.height, font.defaultBox.width, + font.faceName, font.maxAdvance, font.height, font.defaultBox.width, font.defaultBox.height, font.defaultBox.xOffset, font.defaultBox.yOffset, font.ascent, font.firstCharacter, font.defaultCharacter, font.numCharacters); |