[Scummvm-tracker] [ScummVM :: Bugs] #12734: SCUMM: Missing sentence when Rapp gives the map piece

ScummVM :: Bugs trac at scummvm.org
Sun Jul 25 10:12:28 UTC 2021


#12734: SCUMM: Missing sentence when Rapp gives the map piece
---------------------+------------------------------
Reporter:  dwatteau  |       Owner:  (none)
    Type:  defect    |      Status:  new
Priority:  normal    |   Component:  Engine: SCUMM
 Version:            |  Resolution:
Keywords:            |        Game:  Monkey Island 2
---------------------+------------------------------
Comment (by eriktorbjorn):

 WaitForMessage() would probably delay the animation of Rapp turning back
 to ashes, so not printing the space is probably better. I don't dare
 patching the script when it's loaded, because I don't know how that would
 affect localized versions of the game. (I think the strings are hard-coded
 in the scripts.) So you'd probably have to detect at runtime when the
 print happens, and ignore it. A bit tricky since it happens a couple of
 times during that script.

 Something like this seems to work, but could use more testing:

 {{{
 diff --git a/engines/scumm/string.cpp b/engines/scumm/string.cpp
 index d3a53dfc42..74dfe27c36 100644
 --- a/engines/scumm/string.cpp
 +++ b/engines/scumm/string.cpp
 @@ -55,6 +55,22 @@ namespace Scumm {
  void ScummEngine::printString(int m, const byte *msg) {
         switch (m) {
         case 0:
 +               // WORKAROUND bug #12734: The script tries to clear the
 currently
 +               // displayed message after Rapp gives you the map, but
 that means
 +               // you'll never see Guybrush's reaction to finding a map
 piece.
 +               //
 +               // It's a bit hard to pin down the exact case, since it
 happens
 +               // at a few different points during the script. We limit
 it to
 +               // when the player has the map piece.
 +               //
 +               // We have to do it here, because we don't want to delay
 the
 +               // animation of Rapp turning back to Ashes.
 +               if (_roomResource == 19 && vm.slot[_currentScript].number
 == 203 &&
 +                       _actorToPrintStrFor == 255 && strcmp((const char
 *)msg, " ") == 0 &&
 +                       getOwner(200) == VAR(VAR_EGO) &&
 VAR(VAR_HAVE_MSG)) {
 +                       return;
 +               }
 +
 }}}
-- 
Ticket URL: <https://bugs.scummvm.org/ticket/12734#comment:2>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM


More information about the Scummvm-tracker mailing list