fix the invalid glyph
This commit is contained in:
@@ -520,24 +520,24 @@ void Font::LoadFontPageSettings(FontPageSettings &cfg, IniFile &ini, const CStri
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
longchar c=-1;
|
wchar_t c;
|
||||||
if(codepoint.substr(0, 2) == "U+" && IsHexVal(codepoint.substr(2)))
|
if(codepoint.substr(0, 2) == "U+" && IsHexVal(codepoint.substr(2)))
|
||||||
sscanf(codepoint.substr(2).c_str(), "%x", &c);
|
sscanf(codepoint.substr(2).c_str(), "%x", &c);
|
||||||
else
|
else if(!FontCharAliases::GetChar(codepoint, c))
|
||||||
{
|
|
||||||
c = FontCharAliases::GetChar(codepoint);
|
|
||||||
|
|
||||||
if(c == INVALID_CHAR)
|
|
||||||
{
|
{
|
||||||
LOG->Warn("Font definition '%s' has an invalid value '%s'.",
|
LOG->Warn("Font definition '%s' has an invalid value '%s'.",
|
||||||
ini.GetPath().GetString(), val.GetString() );
|
ini.GetPath().GetString(), val.GetString() );
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(game != GAME_INVALID)
|
||||||
|
{
|
||||||
|
longchar lc = FontManager::MakeGameGlyph(c, game);
|
||||||
|
cfg.CharToGlyphNo[lc] = atoi(data);
|
||||||
|
} else {
|
||||||
|
cfg.CharToGlyphNo[c] = atoi(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(game != GAME_INVALID) c = FontManager::MakeGameGlyph(wchar_t(c), game);
|
|
||||||
|
|
||||||
cfg.CharToGlyphNo[c] = atoi(data);
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -350,14 +350,15 @@ void FontCharAliases::ReplaceMarkers( CString &sText )
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Replace all &markers; and &#NNNN;s with UTF-8. */
|
/* Replace all &markers; and &#NNNN;s with UTF-8. */
|
||||||
wchar_t FontCharAliases::GetChar( CString &codepoint )
|
bool FontCharAliases::GetChar( CString &codepoint, wchar_t &ch )
|
||||||
{
|
{
|
||||||
InitCharAliases();
|
InitCharAliases();
|
||||||
aliasmap::const_iterator i = CharAliases.find(codepoint);
|
aliasmap::const_iterator i = CharAliases.find(codepoint);
|
||||||
if(i == CharAliases.end())
|
if(i == CharAliases.end())
|
||||||
return INVALID_CHAR;
|
return false;
|
||||||
|
|
||||||
return i->second;
|
ch = i->second;
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
namespace FontCharAliases {
|
namespace FontCharAliases {
|
||||||
void ReplaceMarkers( CString &sText );
|
void ReplaceMarkers( CString &sText );
|
||||||
wchar_t GetChar( CString &codepoint );
|
bool GetChar( CString &codepoint, wchar_t &ch );
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user