diff options
author | Paul Gilbert | 2016-04-03 18:10:25 -0400 |
---|---|---|
committer | Paul Gilbert | 2016-04-03 18:10:25 -0400 |
commit | ebdc773247fb1e6a41f58ee8336986dcdc8e75d6 (patch) | |
tree | 9c5faff1321705f31fde1c2ac1acdb3adfe4a5e2 /engines/titanic | |
parent | 2699efd633334be7fade6e890c0a9b32edc08677 (diff) | |
download | scummvm-rg350-ebdc773247fb1e6a41f58ee8336986dcdc8e75d6.tar.gz scummvm-rg350-ebdc773247fb1e6a41f58ee8336986dcdc8e75d6.tar.bz2 scummvm-rg350-ebdc773247fb1e6a41f58ee8336986dcdc8e75d6.zip |
TITANIC: Implement font loading
Diffstat (limited to 'engines/titanic')
-rw-r--r-- | engines/titanic/support/font.cpp | 22 | ||||
-rw-r--r-- | engines/titanic/support/font.h | 7 |
2 files changed, 28 insertions, 1 deletions
diff --git a/engines/titanic/support/font.cpp b/engines/titanic/support/font.cpp index 3b48e5e301..6636a84f22 100644 --- a/engines/titanic/support/font.cpp +++ b/engines/titanic/support/font.cpp @@ -66,4 +66,26 @@ void STFont::writeString(int maxWidth, const CString &text, int *v1, int *v2) { warning("TODO: STFont::writeString"); } +int STFont::stringWidth(const CString &text) const { + if (text.empty()) + return 0; + + const char *srcP = text.c_str(); + int total = 0; + char c; + while (c = *srcP++) { + if (c == 26) { + // Skip over command parameter bytes + srcP += 3; + } else if (c == 27) { + // Skip over command parameter bytes + srcP += 4; + } else if (c != '\n') { + total += _chars[c]._charWidth; + } + } + + return total; +} + } // End of namespace Titanic diff --git a/engines/titanic/support/font.h b/engines/titanic/support/font.h index 0fff5125df..c41f4dc1e0 100644 --- a/engines/titanic/support/font.h +++ b/engines/titanic/support/font.h @@ -39,7 +39,7 @@ public: size_t _dataSize; int _field8; int _maxCharWidth; - Common::Array<CharEntry> _chars; + CharEntry _chars[256]; int _field810; int _field814; int _field818; @@ -53,6 +53,11 @@ public: void load(int fontNumber); /** + * Return the width in pixels of the specified text + */ + int stringWidth(const CString &text) const; + + /** * Write out a string * TODO: Verify this */ |