SCUMM: New text rendering code (fixes various bugs)
|Reported by:||fingolfin||Owned by:||fingolfin|
This is the new code we discussed on bug #937017 (SAM: Inventory masking regression). That bug is fixed by this code. Also, bug #777999 (COMI: Text on scrolling backgrounds) is fixed. Contrary to my hopes, bug #744650 (SAM: screen scrolling doesn't redisplay subtitles) is not fixed, though. It seems to be caused by something else; I noticed that the camera won't move until the text ends (so you can delay the camer movement infinitely by repeatedly 'e'xamining an object)...
What it does is this: a new surface is added into which text is rendered (not all text: only text on double buffered virtual screens; and only text for which the ignoreCharsetMask flag isn't set). This text is then composited over the actual graphis by Gdi:: drawStripToScreen.
The result is that it is possible to keep the text fixed while the game graphics behind it scroll (relevant for the above mentioned COMI bug). Also, the mask level 0 isn't (ab)used for the charset mask anymore, which fixes the SAM regression.
Ticket imported from: #1003866. Ticket imported from: patches/457.