@@ -1447,12 +1447,14 @@ void InitializeLanguagePacks()
* mean it might use characters that are not in the
* font, which is the whole reason this check has
* been added.
*/
void CheckForMissingGlyphsInLoadedLanguagePack()
{
const Sprite *question_mark = GetGlyph(FS_NORMAL, '?');
for (uint i = 0; i != 32; i++) {
for (uint j = 0; j < _langtab_num[i]; j++) {
const char *string = _langpack_offs[_langtab_start[i] + j];
WChar c;
while ((c = Utf8Consume(&string)) != '\0') {
if (c == SCC_SETX) {
@@ -1462,13 +1464,13 @@ void CheckForMissingGlyphsInLoadedLangua
* to skip those, otherwise the UTF8 reading will go
* haywire.
string++;
} else if (c == SCC_SETXY) {
string += 2;
} else if (IsPrintable(c) && GetUnicodeGlyph(FS_NORMAL, c) == 0) {
} else if (IsPrintable(c) && c != '?' && GetGlyph(FS_NORMAL, c) == question_mark) {
/*
* The character is printable, but not in the normal font.
* This is the case we were testing for. In this case we
* have to show the error. As we do not want the string to
* be translated by the translators, we 'force' it into the
* binary and 'load' it via a BindCString. To do this