[Scummvm-tracker] [ScummVM :: Bugs] #12734: SCUMM: Missing sentence when Rapp gives the map piece
ScummVM :: Bugs
trac at scummvm.org
Mon Jul 26 11:47:25 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 dwatteau):
Thank you very much!
I had done some local tests with some hand-patching of the original
LFLF_0019/ROOM/LSCR_0203 script.
With your first suggestion, I changed:
{{{
print(255,[Text(" ")]);
}}}
to this:
{{{
WaitForMessage();
print(255,[Text(" ")]);
}}}
and now the text is printed. But indeed, if you do it this way, Rapp
"waits" for your lines before doing his final goodbye animation, and it's
a bit strange, especially if Rapp's map is the last one, because Guybrush
speaks even more, then.
So I tried doing it a bit differently.
Instead of doing this in the original script:
{{{
(0A) startScript(109,[200]);
(**) }
(**) }
(58) endOverride();
(14) print(255,[Text(" ")]);
(0A) startScript(204,[Bit[586]]);
(80) breakHere();
(68) VAR_RESULT = isScriptRunning(204);
(28) unless (!VAR_RESULT) goto XXXX;
(48) if (VAR_VERB_SCRIPT == 14) {
(1A) VAR_VERB_SCRIPT = 201;
(0A) startScript(16,[2]);
(**) }
(2C) CursorShow();
(2C) UserputOn();
(80) breakHere();
(A0) stopObjectCode();
}}}
I did this:
{{{
(**) (nothing) # <== not starting script 109 here anymore
(1)
(**) }
(**) }
(58) endOverride();
(14) print(255,[Text(" ")]);
(0A) startScript(204,[Bit[586]]);
(80) breakHere();
(68) VAR_RESULT = isScriptRunning(204);
(28) unless (!VAR_RESULT) goto XXXX;
(A8) if (Bit[366]) { # <== only start script 109 there, if the
map was given (2)
(0A) startScript(109,[200]); # <== (2)
(AE) WaitForMessage(); # <== (2)
(**) } # <== (2)
(48) if (VAR_VERB_SCRIPT == 14) {
(1A) VAR_VERB_SCRIPT = 201;
(0A) startScript(16,[2]);
(**) }
(2C) CursorShow();
(2C) UserputOn();
(80) breakHere();
(A0) stopObjectCode();
}}}
i.e. I start Guybrush's lines once Rapp is done animating.
The problem with my "solution" is that it's a bit more invasive so it's
probably harder to work around in ScummVM, and it's potentially more
risky.
I'll test your PR as soon as possible. The case I'm most interested is
when Rapp's map is the last one you get. Guybrush has a couple more lines
in that case, so I'd like to make sure that it doesn't cause any problem.
Thanks!
--
Ticket URL: <https://bugs.scummvm.org/ticket/12734#comment:5>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM
More information about the Scummvm-tracker
mailing list