diff options
Diffstat (limited to 'engines/wintermute/base')
-rw-r--r-- | engines/wintermute/base/font/base_font_truetype.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/engines/wintermute/base/font/base_font_truetype.cpp b/engines/wintermute/base/font/base_font_truetype.cpp index 63ccfd91a1..2fcdebc117 100644 --- a/engines/wintermute/base/font/base_font_truetype.cpp +++ b/engines/wintermute/base/font/base_font_truetype.cpp @@ -39,6 +39,7 @@ #include "graphics/fonts/ttf.h" #include "graphics/fontman.h" #include "common/unzip.h" +#include "common/config-manager.h" // For Scummmodern.zip #include <limits.h> namespace Wintermute { @@ -566,7 +567,19 @@ bool BaseFontTT::initFont() { // Fallback2: Try to find ScummModern.zip, and get the font from there: if (!_font) { - Common::SeekableReadStream *themeFile = SearchMan.createReadStreamForMember("scummmodern.zip"); + Common::SeekableReadStream *themeFile = nullptr; + if (ConfMan.hasKey("themepath")) { + Common::FSNode themePath(ConfMan.get("themepath")); + if (themePath.exists()) { + Common::FSNode scummModern = themePath.getChild("scummmodern.zip"); + if (scummModern.exists()) { + themeFile = scummModern.createReadStream(); + } + } + } + if (!themeFile) { // Fallback 2.5: Search for ScummModern.zip in SearchMan. + themeFile = SearchMan.createReadStreamForMember("scummmodern.zip"); + } if (themeFile) { Common::Archive *themeArchive = Common::makeZipArchive(themeFile); if (themeArchive->hasFile("FreeSans.ttf")) { |