#8352 closed patch
SCUMM: New text rendering code (fixes various bugs)
Reported by: | fingolfin | Owned by: | fingolfin |
---|---|---|---|
Priority: | normal | Component: | Engine: SCUMM |
Version: | Keywords: | ||
Cc: | Game: |
Description
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.
Attachments (1)
Change History (9)
comment:1 by , 20 years ago
by , 20 years ago
Attachment: | text-render.patch added |
---|
comment:2 by , 20 years ago
have to take back that last bit :-). It turned out the change worked on base CVS, too. Well, the much the better.
comment:3 by , 20 years ago
Owner: | changed from | to
---|
comment:4 by , 20 years ago
This patch really simplifies all the code surrounding charset masking, and it seems to fix the issues that it should.
Big OK from me. :)
comment:5 by , 20 years ago
Owner: | changed from | to
---|
comment:6 by , 20 years ago
OK, so I just checked it in. We'll see how it develops from here, I guess :-)
comment:7 by , 20 years ago
Status: | new → closed |
---|
comment:8 by , 6 years ago
Component: | → Engine: SCUMM |
---|
Small update for the patch: I discovered another benefit of it, you can skip the code in restoreVerbBG() for COMI, too (just like for FT). This fixes verb text being cut-off at the bottom (like a 'g' was cut off at the lower end).