Opened 17 years ago

Closed 17 years ago

Last modified 17 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

Description

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, 17 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, 17 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, 17 years ago

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

comment:4 by SF/ender, 17 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, 17 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, 17 years ago

Yep, that one is still needed, apparantly.

Note: See TracTickets for help on using tickets.