#3803 closed defect (fixed)
DOTT: Bernard impersonating LaVerne
Reported by: | raziel- | Owned by: | fingolfin |
---|---|---|---|
Priority: | low | Component: | Engine: SCUMM |
Version: | Keywords: | original | |
Cc: | Game: | Day of the Tentacle |
Description
ScummVM 0.12.0svn (Jul 12 2008 07:07:53) Features compiled in: Vorbis FLAC MP3 zLib MPEG2
For a good laugh (as it looks really hillarious) load the provided savegame, "Walk to upstairs" and "Use Fork with Gum with a Dime stuck in it". Bernard will start saying: "I'm not chewing gum with shoemarks in it" with LaVerne's voice :-)
Day of the Tentacle (CD/English)
AmigaOS4 gcc version 4.0.2 (AmigaOS build 20051012)
Ticket imported from: #2016521. Ticket imported from: bugs/3803.
Attachments (1)
Change History (11)
by , 16 years ago
Attachment: | tentacle.s04 added |
---|
comment:2 by , 16 years ago
Priority: | normal → high |
---|
comment:3 by , 16 years ago
I confirm. Also, clicking on the floor near the gum before using the fork on it plays the correct sound.
comment:4 by , 16 years ago
The problem happens with the original interpreter as well. The script is rather strange. Here's a fragment from it:
[01D2] (5D) } else if (dup[6] == 199) { [01DD] (BA) talkActor(:sound:"It's REALLY stuck to the floor.",1) [0212] (73) /* jump 216; */ [0215] (**) } [0215] (5D) if (VAR_EGO == 3) { [0220] (68) beginCutscene([2]) [0227] (BA) talkActor(:sound:"Way gross!",3) [0246] (A9) wait.waitForMessage() [0248] (67) endCutscene() [0249] (BA) talkActor(:sound:"I'm not chewin' that!",3) [0273] (73) } else { [0276] (BA) talkActor(:sound:"I'm not chewing gum with shoe marks in it.",2) [02B5] (**) }
So each time, it first requests to play "It's REALLY stuck ..." and then, *immediately* afterwards, "I'm not chewing gum ...". I haven't managed to figure out why it picks LaVerne's line sometimes, and in such a predictable way.
comment:5 by , 16 years ago
It might be nice to get fixed, but since it also occurs in the original, I don't think it deserves prio 7; rather, normally "nice to get fixed" stuff is more like prio 3.
Torbjörn: Indeed, that script is it... actor 1 = Bernhard, actor 2 = LaVerne, actor 3 = Hoagie. So the LaVerne line is missing an "if VAR_EGO == 3". Suggested workaround: If we detect that particular talkActor call, only execute it if VAR_EGO==2. Are you up to that? :)
comment:6 by , 16 years ago
Keywords: | original added |
---|
comment:7 by , 16 years ago
Do we have any way of identifying that talkActor() call, other than by the text itself? If not, then I would only be able to do it for the English version.
Anyway, the odd thing is that the bug only seems to happen the *first* time you use the fork on the chewing gum, and only (?) if it's right after entering the room from the basement, or from upstairs. If I do something else to the gum first, or enter from another room, Bernard will say "It's REALLY stuck to the floor." in his own voice.
I don't know why it behaves this way.
comment:8 by , 16 years ago
Priority: | high → low |
---|
comment:9 by , 16 years ago
OK, found the problem: The script is always doing 100% exactly the same: It firsts asks to print the text for Bernhard, then for Laverne. Normally, the first talkActor executes and thus blocks the second. However, in this particular savegame, what happens if you do "use fork on gum" is that Bernhard walks to the left, causing the camera to scroll. Then, when the first actorTalk is executed, the scrolling is not yet done. Then this code in CHARSET_1 aborts the talk: if (_game.version >= 4 && _game.version <= 6) { // Do nothing while the camera is moving if ((camera._dest.x / 8) != (camera._cur.x / 8) || camera._cur.x != camera._last.x) return; } which causes the second, normally hidden, actorTalk to take effect. It only happens when scrolling is involved.
So the bug really is that the script does not check for VAR_EGO==2 before issuing that second actorTalk. I commited a fix to the repos. It might not work in international versions if they changed the object numbering, but usually they don't; anyway, I'll check the german version later when I am back home.
comment:10 by , 16 years ago
Owner: | set to |
---|---|
Resolution: | → fixed |
Status: | new → closed |
Walk upstairs