fix the invalid glyph

This commit is contained in:
Glenn Maynard
2003-01-28 03:40:28 +00:00
parent 6042c88de9
commit 98ed350504
3 changed files with 17 additions and 16 deletions
+9 -9
View File
@@ -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;
} }
+4 -3
View File
@@ -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;
} }
/* /*
+1 -1
View File
@@ -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