Opened 20 years ago

Closed 20 years ago

Last modified 6 years ago

#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:


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)

text-render.patch (26.9 KB ) - added by fingolfin 20 years ago.

Download all attachments as: .zip

Change History (9)

comment:1 by fingolfin, 20 years ago

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).

by fingolfin, 20 years ago

Attachment: text-render.patch added

comment:2 by fingolfin, 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 fingolfin, 20 years ago

Owner: changed from eriktorbjorn to SF/ender

comment:4 by SF/ender, 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 SF/ender, 20 years ago

Owner: changed from SF/ender to fingolfin

comment:6 by fingolfin, 20 years ago

OK, so I just checked it in. We'll see how it develops from here, I guess :-)

comment:7 by fingolfin, 20 years ago

Status: newclosed

comment:8 by digitall, 6 years ago

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