[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