diff options
author | glx <glx@openttd.org> | 2010-11-25 15:20:10 +0000 |
---|---|---|
committer | glx <glx@openttd.org> | 2010-11-25 15:20:10 +0000 |
commit | 02d63f45e2cfdbb1321538c37499deefa9eae23a (patch) | |
tree | d6e3cb23069dafe187b49606c3c84ee8aef49011 /src | |
parent | 4e78e7b6c2cf48cf3d6a602b7744b9ff965accdd (diff) | |
download | openttd-02d63f45e2cfdbb1321538c37499deefa9eae23a.tar.xz |
(svn r21321) -Fix (r21298): use the correct font sizes when checking for missing glyphs
Diffstat (limited to 'src')
-rw-r--r-- | src/strings.cpp | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/strings.cpp b/src/strings.cpp index 1d5d63d69..a68144626 100644 --- a/src/strings.cpp +++ b/src/strings.cpp @@ -1576,9 +1576,16 @@ static bool FindMissingGlyphs(const char **str) UninitFreeType(); InitFreeType(); #endif - const Sprite *question_mark = GetGlyph(FS_NORMAL, '?'); + const Sprite *question_mark[FS_END]; + FontSize size; + + for (size = FS_BEGIN; size < FS_END; size++) { + question_mark[size] = GetGlyph(size, '?'); + } + for (uint i = 0; i != 32; i++) { for (uint j = 0; j < _langtab_num[i]; j++) { + size = FS_NORMAL; const char *text = _langpack_offs[_langtab_start[i] + j]; if (str != NULL) *str = text; for (WChar c = Utf8Consume(&text); c != '\0'; c = Utf8Consume(&text)) { @@ -1589,7 +1596,11 @@ static bool FindMissingGlyphs(const char **str) text++; } else if (c == SCC_SETXY) { text += 2; - } else if (IsPrintable(c) && !IsTextDirectionChar(c) && c != '?' && GetGlyph(FS_NORMAL, c) == question_mark) { + } else if (c == SCC_TINYFONT) { + size = FS_SMALL; + } else if (c == SCC_BIGFONT) { + size = FS_LARGE; + } else if (IsPrintable(c) && !IsTextDirectionChar(c) && c != '?' && GetGlyph(size, c) == question_mark[size]) { /* The character is printable, but not in the normal font. This is the case we were testing for. */ return true; } |