diff options
author | Paul Gilbert | 2018-03-10 07:54:28 -0500 |
---|---|---|
committer | Paul Gilbert | 2018-03-10 07:54:28 -0500 |
commit | 5b731a1f44b44563937e2afc5604b4e98e37860d (patch) | |
tree | 198c54b255807db8be32e800fe3ba1bcac283177 | |
parent | 3bec5a7f9dcb0035f221cd001ff0b27a1a11c0a4 (diff) | |
download | scummvm-rg350-5b731a1f44b44563937e2afc5604b4e98e37860d.tar.gz scummvm-rg350-5b731a1f44b44563937e2afc5604b4e98e37860d.tar.bz2 scummvm-rg350-5b731a1f44b44563937e2afc5604b4e98e37860d.zip |
XEEN: Fix use of globally constructed object
-rw-r--r-- | engines/xeen/font.cpp | 7 | ||||
-rw-r--r-- | engines/xeen/font.h | 4 | ||||
-rw-r--r-- | engines/xeen/window.cpp | 2 |
3 files changed, 9 insertions, 4 deletions
diff --git a/engines/xeen/font.cpp b/engines/xeen/font.cpp index 3a70c4c8be..ccdcbf4627 100644 --- a/engines/xeen/font.cpp +++ b/engines/xeen/font.cpp @@ -27,18 +27,19 @@ namespace Xeen { const byte *FontData::_fontData; -Common::Point FontData::_writePos; +Common::Point *FontData::_fontWritePos; byte FontData::_textColors[4]; byte FontData::_bgColor; bool FontData::_fontReduced; Justify FontData::_fontJustify; -FontSurface::FontSurface() : XSurface(), _msgWraps(false), _displayString(nullptr) { +FontSurface::FontSurface() : XSurface(), _msgWraps(false), _displayString(nullptr), + _writePos(*FontData::_fontWritePos) { setTextColor(0); } FontSurface::FontSurface(int wv, int hv) : XSurface(wv, hv), - _msgWraps(false), _displayString(nullptr) { + _msgWraps(false), _displayString(nullptr), _writePos(*FontData::_fontWritePos) { create(w, h); setTextColor(0); } diff --git a/engines/xeen/font.h b/engines/xeen/font.h index ca2cf87ad4..90bd24b67e 100644 --- a/engines/xeen/font.h +++ b/engines/xeen/font.h @@ -35,7 +35,7 @@ enum Justify { JUSTIFY_NONE = 0, JUSTIFY_CENTER = 1, JUSTIFY_RIGHT = 2 }; struct FontData { static const byte *_fontData; - static Common::Point _writePos; + static Common::Point *_fontWritePos; static byte _textColors[4]; static byte _bgColor; static bool _fontReduced; @@ -77,6 +77,8 @@ private: */ void writeChar(char c, const Common::Rect &clipRect); public: + Common::Point &_writePos; +public: FontSurface(); FontSurface(int wv, int hv); virtual ~FontSurface() {} diff --git a/engines/xeen/window.cpp b/engines/xeen/window.cpp index 99ceb9a0be..47732dc841 100644 --- a/engines/xeen/window.cpp +++ b/engines/xeen/window.cpp @@ -31,6 +31,7 @@ Windows::Windows() { byte *data = new byte[f.size()]; f.read(data, f.size()); _fontData = data; + _fontWritePos = new Common::Point(); Common::fill(&_textColors[0], &_textColors[4], 0); _bgColor = DEFAULT_BG_COLOR; @@ -87,6 +88,7 @@ Windows::Windows() { Windows::~Windows() { delete[] _fontData; + delete _fontWritePos; } void Windows::closeAll() { |