Opened 18 years ago

Closed 18 years ago

Last modified 18 years ago

#483 closed defect (fixed)

FT: Text is sometimes obscured by actors

Reported by: eriktorbjorn Owned by: SF/ender
Priority: normal Component: Engine: SCUMM
Keywords: Cc:
Game: Full Throttle


In Full Throttle, text is sometimes obscured by actors, e.g. in the scene where you get the keys from the bartender.

One possible culprit is this line in Actor::drawActorCostume():

ar.charsetmask = _vm->_vars[_vm->VAR_CHARSET_MASK] != 0;

If I change this so that ar.charsetmask is always true, then it works. At least in the aforementioned bartender scene.

I doubt this is the correct fix, though. Surely there has to be some reason for checking this variable. Is ScummVM supposed to set it when it knows there is text on screen and clear it when the text is removed, or are the scripts supposed to handle it themselves?

By the way, I assume all of this also applies to The Dig, but I haven't checked.

Ticket imported from: #617939. Ticket imported from: bugs/483.

Change History (6)

comment:1 by SF/ender, 18 years ago

This sounds pretty correct - V7 engines (eg Ft/Dig) seem to have a lot of the more complex features disabled, like pseudorooms.

Does this change negate the other masking hack for verbage?

comment:2 by eriktorbjorn, 18 years ago

> Does this change negate the other masking hack for verbage?

I doubt it. If I understand the code correctly, the verb masking hack was about when to produce a charsetmask. (Looks like it was being produced for all text drawing, *except* verb text.)

This change, on the other hand, is about when to *use* the charset mask.

Hmm... So since the first hack worked, does that mean _vars[VAR_CHARSET_MASK] was true when the verbs had been drawn? I wonder what caused that...

comment:3 by SF/ender, 18 years ago

Owner: set to SF/ender
Resolution: fixed
Status: newclosed

comment:4 by SF/ender, 18 years ago

I've applied this, and negated the hack in drawString() for changing the
masking variable. I think the first hack working was just a total fluke, because you were forcing a mask update there.

Seems good for both FT and Dig.

comment:5 by eriktorbjorn, 18 years ago

Well, since you can test it and I can't at the moment, you're obviously in a better position to tell what works and what doesn't. :-)

What about the code that was added modify charset._hasMask and gdi._mask_*? Is that part still needed?

comment:6 by SF/ender, 18 years ago

Yep, that one is still needed, apparantly.

Note: See TracTickets for help on using tickets.