diff options
Diffstat (limited to 'engines/scumm/gfx.cpp')
-rw-r--r-- | engines/scumm/gfx.cpp | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/engines/scumm/gfx.cpp b/engines/scumm/gfx.cpp index e7c81bd418..313e8b88c0 100644 --- a/engines/scumm/gfx.cpp +++ b/engines/scumm/gfx.cpp @@ -1013,11 +1013,6 @@ void ScummEngine::restoreBackground(Common::Rect rect, byte backColor) { if (rect.left > vs->w) return; - -#ifndef DISABLE_TOWNS_DUAL_LAYER_MODE - if (_game.platform == Common::kPlatformFMTowns && _game.id == GID_MONKEY && vs->number == kVerbVirtScreen && rect.bottom <= 154) - rect.right = 320; -#endif // Convert 'rect' to local (virtual screen) coordinates rect.top -= vs->topline; @@ -1025,13 +1020,18 @@ void ScummEngine::restoreBackground(Common::Rect rect, byte backColor) { rect.clip(vs->w, vs->h); + const int height = rect.height(); + const int width = rect.width(); + +#ifndef DISABLE_TOWNS_DUAL_LAYER_MODE + if (_game.platform == Common::kPlatformFMTowns && _game.id == GID_MONKEY && vs->number == kVerbVirtScreen && rect.bottom <= 154) + rect.right = 319; +#endif + markRectAsDirty(vs->number, rect, USAGE_BIT_RESTORED); screenBuf = vs->getPixels(rect.left, rect.top); - const int height = rect.height(); - const int width = rect.width(); - if (!height) return; @@ -2457,7 +2457,7 @@ void ScummEngine::decodeNESBaseTiles() { } static const int v1MMNEScostTables[2][6] = { - /* desc lens offs data gfx pal */ + /* desc lens offs data gfx pal */ { 25, 27, 29, 31, 33, 35}, { 26, 28, 30, 32, 34, 36} }; @@ -3737,6 +3737,10 @@ void ScummEngine::fadeOut(int effect) { // Just blit screen 0 to the display (i.e. display will be black) vs->setDirtyRange(0, vs->h); updateDirtyScreen(kMainVirtScreen); +#ifndef DISABLE_TOWNS_DUAL_LAYER_MODE + if (_townsScreen) + _townsScreen->update(); +#endif break; case 134: dissolveEffect(1, 1); |