Opened 16 years ago

Closed 16 years ago

Last modified 21 months ago

#8347 closed patch (wontfix)

COMI: Possible fix/workaround for bug #754419

Reported by: eriktorbjorn Owned by: Kirben
Priority: normal Component: Engine: SCUMM
Keywords: Cc:
Game: Monkey Island 3

Description

I've already attached this in a comment to the bug report, but it may be more noticeable here. It's an attempt to fix, or at least work around, the annoying graphics glitch that causes Wally's floating head to appear while he's crying.

The reasoning behind the workaround is that Wally's crying is done in "mumble" mode. That means that when he starts talking and when he stops talking, we do not call startAnimActor() with his talkStartFrame/talkStopFrame.

However, when the "chore limb frame" opcode is used to move his mouth - and COMI does this all the time, presumably for lip sync - we cheerfully allow it to do talk animations. In Wally's case, the talk animation is either his hook on the ground, or - once you leave and re-enter the room - his head facing left near the cannon.

So it seems likely and reasonable to me that the original had to block talk animations when the character was mumbling. Perhaps not at this particular point in the code, or in the way I did it, but *somewhere*.

I haven't given this patch much testing, but so far it seems like an improvement.

Ticket imported from: #991536. Ticket imported from: patches/452.

Attachments (1)

chore-hack.diff (661 bytes ) - added by eriktorbjorn 16 years ago.
Patch against a July 15 CVS snapshot

Download all attachments as: .zip

Change History (6)

by eriktorbjorn, 16 years ago

Attachment: chore-hack.diff added

Patch against a July 15 CVS snapshot

comment:1 by eriktorbjorn, 16 years ago

Well, I found one problem already. If I cause Guybrush to speak while Wally is crying, e.g. by examining an object, the bad frame will appear again for as long as Guybrush is speaking.

I'll have to look into that...

comment:2 by fingolfin, 16 years ago

The problem of course is that _useTalkAnims doesn't tell you which actor it refers to; so as soon as you have more than one actor talking, you get a problem. So maybe one has to make the _useTalkAnims per-actor... ? Though I bet that would easily cause other problems :-/

comment:3 by Kirben, 16 years ago

Owner: set to Kirben
Resolution: wontfix
Status: newclosed

comment:4 by Kirben, 16 years ago

Rejected, as it is hack.

comment:5 by digitall, 21 months ago

Component: Engine: SCUMM
Game: Monkey Island 3
Note: See TracTickets for help on using tickets.