diff options
-rw-r--r-- | scumm/charset.cpp | 2 | ||||
-rw-r--r-- | scumm/charset.h | 1 | ||||
-rw-r--r-- | scumm/gfx.cpp | 6 | ||||
-rw-r--r-- | scumm/saveload.cpp | 1 |
4 files changed, 8 insertions, 2 deletions
diff --git a/scumm/charset.cpp b/scumm/charset.cpp index 9f1ddbc3c0..09e167d422 100644 --- a/scumm/charset.cpp +++ b/scumm/charset.cpp @@ -208,11 +208,11 @@ CharsetRenderer::CharsetRenderer(ScummEngine *vm) { const int size = _vm->_screenWidth * _vm->_screenHeight; _textSurface.pixels = malloc(size); - memset(_textSurface.pixels, CHARSET_MASK_TRANSPARENCY, size); _textSurface.w = _vm->_screenWidth; _textSurface.h = _vm->_screenHeight; _textSurface.pitch = _vm->_screenWidth; _textSurface.bytesPerPixel = 1; + clearTextSurface(); } CharsetRenderer::~CharsetRenderer() { diff --git a/scumm/charset.h b/scumm/charset.h index a9be1dd231..cbf44e0540 100644 --- a/scumm/charset.h +++ b/scumm/charset.h @@ -92,6 +92,7 @@ public: void restoreCharsetBg(); void clearCharsetMask(); + void clearTextSurface(); virtual void printChar(int chr) = 0; virtual void drawChar(int chr, const Graphics::Surface &s, int x, int y) {} diff --git a/scumm/gfx.cpp b/scumm/gfx.cpp index b5bdcb312a..ae5334ece7 100644 --- a/scumm/gfx.cpp +++ b/scumm/gfx.cpp @@ -887,7 +887,7 @@ void CharsetRenderer::restoreCharsetBg() { if (vs->hasTwoBuffers) { // Clean out the charset mask - memset(_textSurface.pixels, CHARSET_MASK_TRANSPARENCY, _textSurface.pitch * _textSurface.h); + clearTextSurface(); } } } @@ -896,6 +896,10 @@ void CharsetRenderer::clearCharsetMask() { memset(_vm->getResourceAddress(rtBuffer, 9), 0, _vm->gdi._imgBufOffs[1]); } +void CharsetRenderer::clearTextSurface() { + memset(_textSurface.pixels, CHARSET_MASK_TRANSPARENCY, _textSurface.pitch * _textSurface.h); +} + byte *ScummEngine::getMaskBuffer(int x, int y, int z) { return gdi.getMaskBuffer((x + virtscr[0].xstart) / 8, y, z); } diff --git a/scumm/saveload.cpp b/scumm/saveload.cpp index 9f228b191e..afd2180ed6 100644 --- a/scumm/saveload.cpp +++ b/scumm/saveload.cpp @@ -311,6 +311,7 @@ bool ScummEngine::loadState(int slot, bool compat) { // Reset charset mask _charset->_hasMask = false; + _charset->clearTextSurface(); _lastCodePtr = NULL; _drawObjectQueNr = 0; |