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.