Opened 16 years ago

Closed 16 years ago

Last modified 11 months ago

#8202 closed patch

EGA LOOM: More text-drawing hackery

Reported by: eriktorbjorn Owned by: fingolfin
Priority: normal Component: Engine: SCUMM
Keywords: Cc:
Game: Loom


This patch fixes most of the remaining text-drawing
issues I've seen in EGA Loom. Hopefully it's more
correct than my previous text hackery.

The most noticeable issues were that text was drawn in
the wrong position, and with the wrong colour. There
were two reasons for this: First of all, the actor's
talk colour was greater than 15. We fixed that
yesterday, but only when the colour was set by
decodeParseString, not when it was set by o5_actorSet().

Fixing the text position was just a matter of extending
the hack that was already there for Indy 3. I hope
someone else understands this better than I do. (I
noticed it has been extended to cover both versions of
Indy 3 now. The snapshot I based the patch on didn't.)

The next issue was that text wasn't erased properly.
I've changed string.cpp and charset.cpp so that it
should erase the correct rectangle. I think the old
code assumed that most text was drawn as one or two
lines of left-adjusted text, while most of the text in
Loom is centered.

Finally, I changed charset.cpp to add a drop-shadow to
Loom's text. I still don't know if it should do that to
all text, or if it's conditional.

The only remaining text-drawing issue I've seen is that
text doesn't mask the background. This is noticeable
the first time you examine the Great Loom.

Ticket imported from: #728483. Ticket imported from: patches/307.

Attachments (1)

loom-text.diff (3.6 KB ) - added by eriktorbjorn 16 years ago.
Patch against an April 26 CVS snapshot

Download all attachments as: .zip

Change History (3)

by eriktorbjorn, 16 years ago

Attachment: loom-text.diff added

Patch against an April 26 CVS snapshot

comment:1 by fingolfin, 16 years ago

Owner: set to fingolfin
Status: newclosed

comment:2 by digitall, 11 months ago

Component: Engine: SCUMM
Game: Loom
Note: See TracTickets for help on using tickets.