Files
Jeffie 1aba69c72d Localization: pictures of text per language, with shadows you can set
Some of the game's words are textures, not messages: the area name cards on
the loading screen, the dungeon floor banners and the bosses' names. The disc
has one picture of each per language, and the TrueType font never touched
them.

The port now takes a language's pictures from
lang/textures/<language>/<name>.png (the save folder's before the
executable's), so they follow game.language like the messages do. A picture
is scaled to its texture and left unused if its shape is wrong. The hook sits
at the two texture decode sites and at the loading screen, whose area card is
one texture called "maptitle", so it is named by its file (mt01...).

The pictures are not shipped, since they are made from the disc's art.
tools/textpack/build.py draws them on the player's machine from the words in
tools/textpack/strings/*.json: it erases the old lettering from the disc's
own textures and letters the language's words in the message font (the area
cards and floor labels are that face, squeezed or embossed). The bosses'
names are a serif, for which Cinzel (SIL OFL) stands in.

The pictures carry no shadow; the port casts it, so it follows the Options
sliders: Area Name Shadow, Floor Label Shadow and Boss Name Shadow, next to
Text Shadow and Symbol Shadow. A change shows from the next area that loads
the picture.
2026-10-08 04:29:58 -05:00
..

textpack

Draws the localization's pictures of text (area name cards, dungeon floor labels, boss names) from the words in strings/*.json. See "Pictures of text" in docs/LOCALIZATION.md for what the port does with them.

python tools/textpack/build.py --originals <extracted textures> --out <save folder>/lang/textures [--scale 1|4]
  • build.py the command. textpack.py draws text with the Compendium font (it builds the accented letters the font leaves blank). plates.py rebuilds a card's backdrop without its lettering by combining the languages' cards. slots.py finds the word boxes of an existing sheet. shadow_preview.py shows the shadow the port casts.
  • strings/titles.json, title_styles.json (per-area look), floors.json, bosses.json are the words. Nothing in this folder comes from the disc; the pictures are made from the player's own textures and are not committed.
  • Needs Python 3 with numpy, Pillow and opencv-python.