mirror of https://github.com/OpenTTD/OpenTTD.git
(svn r23273) -Codechange: allow passing a MissingGlyphSearcher to CheckForMissingGlyphs (default to the language pack strings)
This commit is contained in:
parent
2075bc702c
commit
0a4a75b0af
|
@ -234,7 +234,7 @@ bool HandleBootstrap()
|
||||||
/* Initialise the freetype font code. */
|
/* Initialise the freetype font code. */
|
||||||
InitializeUnicodeGlyphMap();
|
InitializeUnicodeGlyphMap();
|
||||||
/* Next "force" finding a suitable freetype font as the local font is missing. */
|
/* Next "force" finding a suitable freetype font as the local font is missing. */
|
||||||
CheckForMissingGlyphsInLoadedLanguagePack(false);
|
CheckForMissingGlyphs(false);
|
||||||
|
|
||||||
/* Initialise the palette. The biggest step is 'faking' some recolour sprites.
|
/* Initialise the palette. The biggest step is 'faking' some recolour sprites.
|
||||||
* This way the mauve and gray colours work and we can show the user interface. */
|
* This way the mauve and gray colours work and we can show the user interface. */
|
||||||
|
|
|
@ -334,7 +334,7 @@ static void LoadIntroGame(bool load_newgrfs = true)
|
||||||
_cursor.fix_at = false;
|
_cursor.fix_at = false;
|
||||||
|
|
||||||
CheckForMissingSprites();
|
CheckForMissingSprites();
|
||||||
CheckForMissingGlyphsInLoadedLanguagePack();
|
CheckForMissingGlyphs();
|
||||||
|
|
||||||
/* Play main theme */
|
/* Play main theme */
|
||||||
if (_music_driver->IsSongPlaying()) ResetMusic();
|
if (_music_driver->IsSongPlaying()) ResetMusic();
|
||||||
|
@ -810,7 +810,7 @@ int ttd_main(int argc, char *argv[])
|
||||||
|
|
||||||
LoadIntroGame(false);
|
LoadIntroGame(false);
|
||||||
|
|
||||||
CheckForMissingGlyphsInLoadedLanguagePack();
|
CheckForMissingGlyphs();
|
||||||
|
|
||||||
ScanNewGRFFiles(scanner);
|
ScanNewGRFFiles(scanner);
|
||||||
|
|
||||||
|
|
|
@ -495,7 +495,7 @@ struct GameOptionsWindow : Window {
|
||||||
case GOW_LANG_DROPDOWN: // Change interface language
|
case GOW_LANG_DROPDOWN: // Change interface language
|
||||||
ReadLanguagePack(&_languages[index]);
|
ReadLanguagePack(&_languages[index]);
|
||||||
DeleteWindowByClass(WC_QUERY_STRING);
|
DeleteWindowByClass(WC_QUERY_STRING);
|
||||||
CheckForMissingGlyphsInLoadedLanguagePack();
|
CheckForMissingGlyphs();
|
||||||
UpdateAllVirtCoords();
|
UpdateAllVirtCoords();
|
||||||
ReInitAllWindows();
|
ReInitAllWindows();
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -1833,11 +1833,14 @@ class LanguagePackGlyphSearcher : public MissingGlyphSearcher {
|
||||||
* font, which is the whole reason this check has
|
* font, which is the whole reason this check has
|
||||||
* been added.
|
* been added.
|
||||||
* @param base_font Whether to look at the base font as well.
|
* @param base_font Whether to look at the base font as well.
|
||||||
|
* @param searcher The methods to use to search for strings to check.
|
||||||
|
* If NULL the loaded language pack searcher is used.
|
||||||
*/
|
*/
|
||||||
void CheckForMissingGlyphsInLoadedLanguagePack(bool base_font)
|
void CheckForMissingGlyphs(bool base_font, MissingGlyphSearcher *searcher)
|
||||||
{
|
{
|
||||||
LanguagePackGlyphSearcher searcher;
|
static LanguagePackGlyphSearcher pack_searcher;
|
||||||
bool bad_font = !base_font || searcher.FindMissingGlyphs(NULL);
|
if (searcher == NULL) searcher = &pack_searcher;
|
||||||
|
bool bad_font = !base_font || searcher->FindMissingGlyphs(NULL);
|
||||||
#ifdef WITH_FREETYPE
|
#ifdef WITH_FREETYPE
|
||||||
if (bad_font) {
|
if (bad_font) {
|
||||||
/* We found an unprintable character... lets try whether we can find
|
/* We found an unprintable character... lets try whether we can find
|
||||||
|
@ -1845,7 +1848,7 @@ void CheckForMissingGlyphsInLoadedLanguagePack(bool base_font)
|
||||||
FreeTypeSettings backup;
|
FreeTypeSettings backup;
|
||||||
memcpy(&backup, &_freetype, sizeof(backup));
|
memcpy(&backup, &_freetype, sizeof(backup));
|
||||||
|
|
||||||
bad_font = !SetFallbackFont(&_freetype, _langpack->isocode, _langpack->winlangid, &searcher);
|
bad_font = !SetFallbackFont(&_freetype, _langpack->isocode, _langpack->winlangid, searcher);
|
||||||
|
|
||||||
memcpy(&_freetype, &backup, sizeof(backup));
|
memcpy(&_freetype, &backup, sizeof(backup));
|
||||||
|
|
||||||
|
|
|
@ -232,6 +232,6 @@ public:
|
||||||
bool FindMissingGlyphs(const char **str);
|
bool FindMissingGlyphs(const char **str);
|
||||||
};
|
};
|
||||||
|
|
||||||
void CheckForMissingGlyphsInLoadedLanguagePack(bool base_font = true);
|
void CheckForMissingGlyphs(bool base_font = true, MissingGlyphSearcher *search = NULL);
|
||||||
|
|
||||||
#endif /* STRINGS_FUNC_H */
|
#endif /* STRINGS_FUNC_H */
|
||||||
|
|
Loading…
Reference in New Issue