diff options
-rw-r--r-- | engines/scumm/gfx.cpp | 9 | ||||
-rw-r--r-- | engines/scumm/gfx_towns.cpp | 2 |
2 files changed, 5 insertions, 6 deletions
diff --git a/engines/scumm/gfx.cpp b/engines/scumm/gfx.cpp index 2ee54337b8..5a2be3f7d8 100644 --- a/engines/scumm/gfx.cpp +++ b/engines/scumm/gfx.cpp @@ -326,7 +326,7 @@ void ScummEngine::initScreens(int b, int h) { if (!_townsClearLayerFlag && (h - b != _virtscr[kMainVirtScreen].h)) _townsScreen->clearLayer(0); - if (_game.id == GID_MONKEY2 || _game.id == GID_INDY4) { + if (_game.id != GID_MONKEY) { _textSurface.fillRect(Common::Rect(0, 0, _textSurface.w * _textSurfaceMultiplier, _textSurface.h * _textSurfaceMultiplier), 0); _townsScreen->clearLayer(1); } @@ -3678,18 +3678,17 @@ void ScummEngine::fadeOut(int effect) { if (_game.version < 7) camera._last.x = camera._cur.x; + if (_game.version == 3 && _game.platform == Common::kPlatformFMTowns) + _textSurface.fillRect(Common::Rect(0, vs->topline * _textSurfaceMultiplier, _textSurface.pitch, (vs->topline + vs->h) * _textSurfaceMultiplier), 0); + // TheDig can disable fadeIn(), and may call fadeOut() several times // successively. Disabling the _screenEffectFlag check forces the screen // to get cleared. This fixes glitches, at least, in the first cutscenes // when bypassed of FT and TheDig. if ((_game.version == 7 || _screenEffectFlag) && effect != 0) { - // Fill screen 0 with black memset(vs->getPixels(0, 0), 0, vs->pitch * vs->h); - if (_game.version == 3 && _game.platform == Common::kPlatformFMTowns) - _textSurface.fillRect(Common::Rect(0, vs->topline * _textSurfaceMultiplier, _textSurface.pitch, (vs->topline + vs->h) * _textSurfaceMultiplier), 0); - // Fade to black with the specified effect, if any. switch (effect) { case 1: diff --git a/engines/scumm/gfx_towns.cpp b/engines/scumm/gfx_towns.cpp index 602f6984b4..1a1e2adc9d 100644 --- a/engines/scumm/gfx_towns.cpp +++ b/engines/scumm/gfx_towns.cpp @@ -49,7 +49,7 @@ void ScummEngine::towns_drawStripToScreen(VirtScreen *vs, int dstX, int dstY, in int sp1 = vs->pitch - (width * vs->bytesPerPixel); int sp2 = _textSurface.pitch - width * m; - if (vs->number == kMainVirtScreen) { + if (vs->number == kMainVirtScreen || _game.id == GID_INDY3 || _game.id == GID_ZAK) { for (int h = 0; h < height; ++h) { if (_bytesPerPixelOutput == 2) { for (int w = 0; w < width; ++w) { |