EGA LOOM: More text-drawing hackery
|Reported by:||eriktorbjorn||Owned by:||fingolfin|
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.