Draw menu carons with the game's own typeface, per font rather than per label
The previous commit claimed this was fixed; it was not. It hooked UIStyleManager.GetMenuFont, GetTranslatorFont, GetShipLogFont and GetShipLogCardFont — all four of which are dead code with no callers anywhere in Assembly-CSharp. Fonts are assigned straight onto the Text components in the scene data, so nothing the mod did was ever consulted. Three further things were wrong and are fixed here: - The language check reflected into the Localization Utility for TryGetLanguage, which the installed version does not have, so it could only ever fail. It now uses the utility's own definition instead: custom languages are numbered past Language.TOTAL. No reflection, nothing to fail silently. - The substitution was decided per label, from whether that label's own string needed a glyph, which left menus mixing two typefaces line by line. It is now decided per font: a face that cannot draw Slovak is replaced everywhere it is used. Faces that can — Futura PT for dialogue, Space Mono for the translator — are still never touched. - The menu font was assumed to be Gill Sans MT. Logging the fonts actually in use showed the menus are Adobe - SerifGothicStd, which had been listed as a stylised face to leave alone. Gill Sans is the HUD prompts. The replacement now prefers the game's own dynamic cut of the same typeface (Adobe - SerifGothicStd_Dynamic and friends), matched by name prefix so bold variants resolve too, which keeps the menu looking like vanilla. Bundled Cabin is the fallback where the game ships no dynamic sibling, and the new preferGameTypeface setting forces Cabin everywhere. Hooks are Text.OnEnable, the Text.text setter, TextTranslation.SetLanguage and scene load, plus a 2s sweep for menus built lazily after all of those. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -55,11 +55,14 @@ See [`CLAUDE.md`](CLAUDE.md) for the full conventions and repo layout.
|
||||
The **original mod code and the Slovak translation** in this repository are
|
||||
released under the [MIT License](LICENSE).
|
||||
|
||||
The bundled UI font in `assets/slovakfont` is **[Cabin](https://github.com/impallari/Cabin)**
|
||||
by the Cabin Project Authors, used under the **SIL Open Font License 1.1**
|
||||
(see [`assets/Cabin-OFL.txt`](assets/Cabin-OFL.txt)). It is only used for the few
|
||||
menu/HUD elements whose stock font was never baked with Slovak caron glyphs — see
|
||||
[`SlovakFont.cs`](SlovakFont.cs).
|
||||
The bundled fallback font in `assets/slovakfont` is
|
||||
**[Cabin](https://github.com/impallari/Cabin)** by the Cabin Project Authors, used
|
||||
under the **SIL Open Font License 1.1** (see
|
||||
[`assets/Cabin-OFL.txt`](assets/Cabin-OFL.txt)). The game's own menu and HUD fonts
|
||||
were never baked with Slovak caron glyphs, so those labels are redrawn with a font
|
||||
that has them — preferably one of the game's own dynamic fonts, and Cabin only where
|
||||
it ships none. See [`SlovakFont.cs`](SlovakFont.cs), and the `preferGameTypeface`
|
||||
setting if you would rather have Cabin everywhere.
|
||||
|
||||
This is an **unofficial** fan project. It is **not affiliated with, approved by, or
|
||||
endorsed by Mobius Digital or Annapurna Interactive.** *Outer Wilds*, its story,
|
||||
|
||||
Reference in New Issue
Block a user