diff options
author | Johannes Schickel | 2012-01-07 00:34:03 +0100 |
---|---|---|
committer | Johannes Schickel | 2012-01-07 00:35:26 +0100 |
commit | 0d3e79cf77af364063944b5884c34c9da7c0466d (patch) | |
tree | 19a4f4f5e505e49a76710f62447d495d8c92a9fa | |
parent | 309e9a855d24c66211522445f1b25b54cfe642eb (diff) | |
download | scummvm-rg350-0d3e79cf77af364063944b5884c34c9da7c0466d.tar.gz scummvm-rg350-0d3e79cf77af364063944b5884c34c9da7c0466d.tar.bz2 scummvm-rg350-0d3e79cf77af364063944b5884c34c9da7c0466d.zip |
GUI: Simplify font loading a bit more.
-rw-r--r-- | gui/ThemeEngine.cpp | 41 |
1 files changed, 16 insertions, 25 deletions
diff --git a/gui/ThemeEngine.cpp b/gui/ThemeEngine.cpp index 7678efb648..ae93154419 100644 --- a/gui/ThemeEngine.cpp +++ b/gui/ThemeEngine.cpp @@ -570,35 +570,19 @@ bool ThemeEngine::addFont(TextData textId, const Common::String &file) { _texts[textId]->_fontPtr = _font; } else { Common::String localized = FontMan.genLocalizedFontFilename(file); - // Try built-in fonts - _texts[textId]->_fontPtr = FontMan.getFontByName(localized); + // Try localized fonts + _texts[textId]->_fontPtr = loadFont(localized); if (!_texts[textId]->_fontPtr) { - // First try to load localized font - _texts[textId]->_fontPtr = loadFont(localized); + // Try standard fonts + _texts[textId]->_fontPtr = loadFont(file); - if (_texts[textId]->_fontPtr) - FontMan.assignFontToName(localized, _texts[textId]->_fontPtr); - - // Fallback to non-localized font and default translation - else { - // Try built-in fonts - _texts[textId]->_fontPtr = FontMan.getFontByName(file); - - // Try to load it - if (!_texts[textId]->_fontPtr) { - _texts[textId]->_fontPtr = loadFont(file); - - if (!_texts[textId]->_fontPtr) - error("Couldn't load font '%s'", file.c_str()); - - FontMan.assignFontToName(file, _texts[textId]->_fontPtr); - } + if (!_texts[textId]->_fontPtr) + error("Couldn't load font '%s'", file.c_str()); #ifdef USE_TRANSLATION - TransMan.setLanguage("C"); + TransMan.setLanguage("C"); #endif - warning("Failed to load localized font '%s'. Using non-localized font and default GUI language instead", localized.c_str()); - } + warning("Failed to load localized font '%s'. Using non-localized font and default GUI language instead", localized.c_str()); } } @@ -1402,7 +1386,11 @@ DrawData ThemeEngine::parseDrawDataId(const Common::String &name) const { *********************************************************/ const Graphics::Font *ThemeEngine::loadFont(const Common::String &filename) { - const Graphics::Font *font = 0; + // Try already loaded fonts. + const Graphics::Font *font = FontMan.getFontByName(filename); + if (font) + return font; + Common::String cacheFilename = genCacheFilename(filename); Common::ArchiveMemberList members; @@ -1428,6 +1416,9 @@ const Graphics::Font *ThemeEngine::loadFont(const Common::String &filename) { break; } + // If the font is successfully loaded store it in the font manager. + if (font) + FontMan.assignFontToName(filename, font); return font; } |