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

ScummVM :: Bugs trac at scummvm.org
Tue Jul 13 08:32:43 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:                   |   Keywords:
    Game:  Monkey Island 2  |
----------------------------+---------------------------
 (This was discovered by Threepwang.)

 How to reproduce:

 1. Start any version of Monkey Island 2 with the 1978 boot-code (any
 platform, any language, the 1991 release or the Ultimate Edition… as far
 as I can say).
 2. Open Rapp's coffin, and apply Ash-2-Life on his ashes.
 3. Choose dialog option 2 (saying that the gas is now off).
 4. Rapp gives you his part of the map.
 5. When receiving it, Guybrush should say something, but no text is
 displayed. If you play the Ultimate Edition, you'll hear the associated
 vocal sample, though, but the text itself is still missing.

 This also happens with the original interpreter.

 (Note: which sentence Guybrush is supposed to say depends of the number of
 map pieces you already own. All of these sentences work as intended when
 you're not triggering them with Rapp.)

 I think it's a bug in the original script, as in Bug #2215 for Indy4
 (where commit 549eb83986a works around it in ScummVM).

 The associated script is LFLF_0019/ROOM/LSCR_0203:

 {{{
 ...

 (14)     print(7,[Text(sound(0x3B5222F, 0xA) + "Now I can rest in the
 folds of the earth^")]);
 (AE)     WaitForMessage();
 (14)     print(7,[Text(sound(0x3B6A5B6, 0xA) + "^like a Steamin' Weenie in
 a soft, fresh bun.")]);
 (AE)     WaitForMessage();
 (14)     print(7,[Text(sound(0x3B85B7C, 0xA) + "Ahhh^")]);
 (AE)     WaitForMessage();
 (80)     breakHere();
 (A8)     if (VAR_OVERRIDE) {
 (05)       drawObject(199);
 (29)       setOwnerOf(1139,0);
 (29)       setOwnerOf(1139,15);
 (29)       setOwnerOf(1138,0);
 (29)       setOwnerOf(1138,15);
 (29)       setOwnerOf(1142,0);
 (29)       setOwnerOf(1142,15);
 (**)     }
 (58)     endOverride();
 (14)     print(255,[Text(" ")]);
 (10)     VAR_RESULT = getObjectOwner(200);
 (88)     if (VAR_RESULT != VAR_EGO) {
 (25)       pickupObject(200,0);
 (1A)       Bit[366] = 1;
 (**)     }
 (0A)     startScript(109,[200]); # <==
 (**)   }
 (**) }
 (58) endOverride();
 (14) print(255,[Text(" ")]);
 (0A) startScript(204,[Bit[586]]);
 (80) breakHere();
 }}}

 Script 109 is the one starting Guybrush's sentences upon obtaining a part
 of the map.

 Some calls to WaitForMessage() or breakHere() are maybe missing there, but
 I'm not sure as I don't really understand how this works.
-- 
Ticket URL: <https://bugs.scummvm.org/ticket/12734>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM


More information about the Scummvm-tracker mailing list