Each character in a font can have an X and Y offset. This was not
considered when calculating the width and height of the font. One way
this could be noticed was in Serrated Scalpel, when talking to a
character with a lot of conversation options. Scrolling down would
highlight the "Up" button. Selecting a conversation option would then
dim the button, but the bottommost pixel of the "p" was still
highlighted.
Hopefully this does not negatively affect anything else.
Support for spanish inverted exclamation mark
Was skipped over in the original interpreter and also wasn't
even included in the spanish font
We create the character by ourselves and map it accordingly
Rose Tattoo did different font char mapping for at least
the German version of the game (can't verify anything else).
RT seems to map 0xE1 only, but to a different character
and other upper characters (>= 0x80) are not mapped at all.
this fixes broken special characters in RT.
Since this table must only be set up for RT when changing fonts, I
needed to put an engine reference in the Fonts base class. Because
of this, I've been able to simplify the creation of the various
surfaces, since you no longer need to pass in the platform
- allow characters > 0x80
- adjust characters >= 0x80 (Spanish + German didn't do exactly
the same)
- behavior inside SH2 unconfirmed
- makes text in SH1 German+Spanish work