aboutsummaryrefslogtreecommitdiff
path: root/engines/sci
diff options
context:
space:
mode:
authorMartin Kiewitz2010-01-12 18:43:10 +0000
committerMartin Kiewitz2010-01-12 18:43:10 +0000
commita14f044daa9210c55431a9683610064fa3594054 (patch)
tree026a328179d6a0c342b9816530eb6823fcda5391 /engines/sci
parent73bacd5d3a1b9a4c4646313c7efb8c81a185de73 (diff)
downloadscummvm-rg350-a14f044daa9210c55431a9683610064fa3594054.tar.gz
scummvm-rg350-a14f044daa9210c55431a9683610064fa3594054.tar.bz2
scummvm-rg350-a14f044daa9210c55431a9683610064fa3594054.zip
SCI: deleting _font when changing active font
svn-id: r47269
Diffstat (limited to 'engines/sci')
-rw-r--r--engines/sci/graphics/text.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/engines/sci/graphics/text.cpp b/engines/sci/graphics/text.cpp
index c0bb8d8e00..a65bd36339 100644
--- a/engines/sci/graphics/text.cpp
+++ b/engines/sci/graphics/text.cpp
@@ -41,7 +41,8 @@ Text::Text(ResourceManager *resMan, Gfx *gfx, Screen *screen)
}
Text::~Text() {
- delete _font;
+ if (_font != NULL)
+ delete _font;
}
void Text::init() {
@@ -57,15 +58,21 @@ GuiResourceId Text::GetFontId() {
}
Font *Text::GetFont() {
- if ((_font == NULL) || (_font->getResourceId() != _gfx->_curPort->fontId))
+ if ((_font == NULL) || (_font->getResourceId() != _gfx->_curPort->fontId)) {
+ if (_font != NULL)
+ delete _font;
_font = new Font(_resMan, _gfx->_curPort->fontId);
+ }
return _font;
}
void Text::SetFont(GuiResourceId fontId) {
- if ((_font == NULL) || (_font->getResourceId() != fontId))
+ if ((_font == NULL) || (_font->getResourceId() != fontId)) {
+ if (_font != NULL)
+ delete _font;
_font = new Font(_resMan, fontId);
+ }
_gfx->_curPort->fontId = _font->getResourceId();
_gfx->_curPort->fontHeight = _font->getHeight();