diff options
author | Eugene Sandulenko | 2016-01-03 12:39:29 +0100 |
---|---|---|
committer | Eugene Sandulenko | 2016-01-03 12:39:29 +0100 |
commit | 2aef67c0acdffea281daf5cea3aac055bee17d05 (patch) | |
tree | 7865b35dc4b8e74a1d524c5a8ed0c0d9cdc591ad /engines/wage | |
parent | 077048032b493c5ee81c0ccefaea9acac1a964ba (diff) | |
download | scummvm-rg350-2aef67c0acdffea281daf5cea3aac055bee17d05.tar.gz scummvm-rg350-2aef67c0acdffea281daf5cea3aac055bee17d05.tar.bz2 scummvm-rg350-2aef67c0acdffea281daf5cea3aac055bee17d05.zip |
WAGE: Refactored font querying
Diffstat (limited to 'engines/wage')
-rw-r--r-- | engines/wage/gui.cpp | 98 | ||||
-rw-r--r-- | engines/wage/gui.h | 6 |
2 files changed, 45 insertions, 59 deletions
diff --git a/engines/wage/gui.cpp b/engines/wage/gui.cpp index bfafe0b4ea..6a67984fdd 100644 --- a/engines/wage/gui.cpp +++ b/engines/wage/gui.cpp @@ -150,6 +150,39 @@ Gui::Gui(WageEngine *engine) { Gui::~Gui() { } +const Graphics::Font *Gui::getFont(const char *name, Graphics::FontManager::FontUsage fallback) { + const Graphics::Font *font; + + if (!_builtInFonts) { + font = FontMan.getFontByName(name); + + if (!font) + warning("Cannot load font %s", name); + } + + if (_builtInFonts || !font) + font = FontMan.getFontByUsage(fallback); + + return font; +} + +const Graphics::Font *Gui::getConsoleFont() { + char fontName[128]; + Scene *scene = _engine->_world->_player->_currentScene; + + snprintf(fontName, 128, "%s-%d", scene->getFontName(), scene->_fontSize); + + return getFont(fontName, Graphics::FontManager::kConsoleFont); +} + +const Graphics::Font *Gui::getMenuFont() { + return getFont("Chicago-12", Graphics::FontManager::kBigGUIFont); +} + +const Graphics::Font *Gui::getTitleFont() { + return getFont("Chicago-12", Graphics::FontManager::kBigGUIFont); +} + void Gui::clearOutput() { _out.clear(); } @@ -326,20 +359,8 @@ void Gui::paintBorder(Graphics::Surface *g, Common::Rect &r, WindowType windowTy } if (drawTitle) { - const Graphics::Font *font; - int yOff = 1; - - if (!_builtInFonts) { - font = FontMan.getFontByName("Chicago-12"); - - if (!font) - warning("Cannot load font Chicago-12"); - } - - if (_builtInFonts || !font) { - font = FontMan.getFontByUsage(Graphics::FontManager::kBigGUIFont); - yOff = 3; - } + const Graphics::Font *font = getTitleFont(); + int yOff = _builtInFonts ? 3 : 1; int w = font->getStringWidth(_scene->_name) + 6; int maxWidth = width - size*2 - 7; @@ -362,22 +383,7 @@ enum { void Gui::flowText(String &str) { Common::StringArray wrappedLines; int textW = _consoleTextArea.width() - kConWPadding * 2; - - const Graphics::Font *font; - - if (!_builtInFonts) { - char fontName[128]; - Scene *scene = _engine->_world->_player->_currentScene; - - snprintf(fontName, 128, "%s-%d", scene->getFontName(), scene->_fontSize); - font = FontMan.getFontByName(fontName); - - if (!font) - warning("Cannot load font %s", fontName); - } - - if (_builtInFonts || !font) - font = FontMan.getFontByUsage(Graphics::FontManager::kConsoleFont); + const Graphics::Font *font = getConsoleFont(); font->wordWrapText(str, textW, wrappedLines); @@ -411,20 +417,7 @@ void Gui::renderConsole(Graphics::Surface *g, Common::Rect &r) { if (fullRedraw) _console.fillRect(fullR, kColorWhite); - const Graphics::Font *font; - - if (!_builtInFonts) { - char fontName[128]; - - snprintf(fontName, 128, "%s-%d", _scene->getFontName(), _scene->_fontSize); - font = FontMan.getFontByName(fontName); - - if (!font) - warning("Cannot load font %s", fontName); - } - - if (_builtInFonts || !font) - font = FontMan.getFontByUsage(Graphics::FontManager::kConsoleFont); + const Graphics::Font *font = getConsoleFont(); int lineHeight = font->getFontHeight() + kLineSpacing; int textW = r.width() - kConWPadding * 2; @@ -525,21 +518,8 @@ void Gui::renderMenu() { r.top = kMenuHeight - 1; Design::drawFilledRect(&_screen, r, kColorBlack, p, 1); - const Graphics::Font *font = NULL; - int y = 1; - - if (!_builtInFonts) { - font = FontMan.getFontByName("Chicago-12"); - - if (!font) - warning("Cannot load font Chicago-12"); - } - - if (_builtInFonts || !font) { - font = FontMan.getFontByUsage(Graphics::FontManager::kBigGUIFont); - y = 3; - } - + const Graphics::Font *font = getMenuFont(); + int y = _builtInFonts ? 3 : 1; int x = 18; for (int i = 0; menuItems[i]; i++) { diff --git a/engines/wage/gui.h b/engines/wage/gui.h index 28e1934fd4..aafc9b3fec 100644 --- a/engines/wage/gui.h +++ b/engines/wage/gui.h @@ -49,6 +49,8 @@ #define WAGE_GUI_H #include "common/str-array.h" +#include "graphics/font.h" +#include "graphics/fontman.h" #include "graphics/surface.h" #include "common/rect.h" @@ -78,6 +80,10 @@ private: void loadFonts(); void renderMenu(); void flowText(Common::String &str); + const Graphics::Font *getConsoleFont(); + const Graphics::Font *getMenuFont(); + const Graphics::Font *getTitleFont(); + const Graphics::Font *getFont(const char *name, Graphics::FontManager::FontUsage fallback); private: WageEngine *_engine; |