[Scummvm-tracker] [ScummVM :: Bugs] #10850: SHERLOCK: Rose tattoo city map glitch
ScummVM :: Bugs
trac at scummvm.org
Sun Nov 28 19:18:05 UTC 2021
#10850: SHERLOCK: Rose tattoo city map glitch
-------------------------+-------------------------------------------------
Reporter: eriktorbjorn | Owner: (none)
Type: defect | Status: new
Priority: normal | Component: Engine: Sherlock
Version: | Resolution:
Keywords: | Game: Sherlock Holmes: Case of the Rose
| Tattoo
-------------------------+-------------------------------------------------
Comment (by eriktorbjorn):
If I understand correctly, TattooMap::show() will:
- Display the map by calling screen.slamArea(). ("Display the built map to
the screen")
- Set _targetScroll to the desired position (saved from earlier). ("Set
initial scroll position")
- At the same time, it will set screen._currentScroll to -1, -1, which
will force the sceen to redraw since screen._currentScroll !=
_targetScroll.
So is there really any reason for the initial screen.slamArea()? Removing
that seems to fix the glitch for me. Like this:
{{{
--- a/engines/sherlock/tattoo/tattoo_map.cpp
+++ b/engines/sherlock/tattoo/tattoo_map.cpp
@@ -117,9 +117,6 @@ int TattooMap::show() {
screen._backBuffer2.create(SHERLOCK_SCREEN_WIDTH * 2,
SHERLOCK_SCREEN_HEIGHT * 2);
screen._backBuffer2.SHblitFrom(screen._backBuffer1);
- // Display the built map to the screen
- screen.slamArea(0, 0, SHERLOCK_SCREEN_WIDTH,
SHERLOCK_SCREEN_HEIGHT);
-
// Set initial scroll position
_targetScroll = _bigPos;
screen._currentScroll = Common::Point(-1, -1);
}}}
--
Ticket URL: <https://bugs.scummvm.org/ticket/10850#comment:1>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM
More information about the Scummvm-tracker
mailing list