Mercurial > hg > openttd
changeset 18431:d167deadae56 draft
(svn r23273) -Codechange: allow passing a MissingGlyphSearcher to CheckForMissingGlyphs (default to the language pack strings)
author | rubidium <rubidium@openttd.org> |
---|---|
date | Sun, 20 Nov 2011 11:52:11 +0000 |
parents | c537badd5588 |
children | 91f57bc199b4 |
files | src/bootstrap_gui.cpp src/openttd.cpp src/settings_gui.cpp src/strings.cpp src/strings_func.h |
diffstat | 5 files changed, 12 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/src/bootstrap_gui.cpp +++ b/src/bootstrap_gui.cpp @@ -234,7 +234,7 @@ /* Initialise the freetype font code. */ InitializeUnicodeGlyphMap(); /* 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. * This way the mauve and gray colours work and we can show the user interface. */
--- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -334,7 +334,7 @@ _cursor.fix_at = false; CheckForMissingSprites(); - CheckForMissingGlyphsInLoadedLanguagePack(); + CheckForMissingGlyphs(); /* Play main theme */ if (_music_driver->IsSongPlaying()) ResetMusic(); @@ -810,7 +810,7 @@ LoadIntroGame(false); - CheckForMissingGlyphsInLoadedLanguagePack(); + CheckForMissingGlyphs(); ScanNewGRFFiles(scanner);
--- a/src/settings_gui.cpp +++ b/src/settings_gui.cpp @@ -495,7 +495,7 @@ case GOW_LANG_DROPDOWN: // Change interface language ReadLanguagePack(&_languages[index]); DeleteWindowByClass(WC_QUERY_STRING); - CheckForMissingGlyphsInLoadedLanguagePack(); + CheckForMissingGlyphs(); UpdateAllVirtCoords(); ReInitAllWindows(); break;
--- a/src/strings.cpp +++ b/src/strings.cpp @@ -1833,11 +1833,14 @@ * font, which is the whole reason this check has * been added. * @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; - bool bad_font = !base_font || searcher.FindMissingGlyphs(NULL); + static LanguagePackGlyphSearcher pack_searcher; + if (searcher == NULL) searcher = &pack_searcher; + bool bad_font = !base_font || searcher->FindMissingGlyphs(NULL); #ifdef WITH_FREETYPE if (bad_font) { /* We found an unprintable character... lets try whether we can find @@ -1845,7 +1848,7 @@ FreeTypeSettings 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));
--- a/src/strings_func.h +++ b/src/strings_func.h @@ -232,6 +232,6 @@ bool FindMissingGlyphs(const char **str); }; -void CheckForMissingGlyphsInLoadedLanguagePack(bool base_font = true); +void CheckForMissingGlyphs(bool base_font = true, MissingGlyphSearcher *search = NULL); #endif /* STRINGS_FUNC_H */