Files
Sylpheed/export-probe/audio/voice/ADV.ogg
Sylpheed port agent fda417a5db port(exporter): the archive list is data, not a hardcoded constant
crates/sylpheed-export read dat/GP_TITLE.pak and nothing else. authored/flow.json
records LOAD GAME, TUTORIAL, OPTIONS and NEW GAME's difficulty chain as MEASURED
destinations that are blocked because 'not a GP_TITLE build, so there is no
screen file to go to'. The blocker was neither the disc nor the reader --
examples/probe_archives.rs finds screen builds in 24 archives using the EXISTING
detector -- it was that constant.

The list now comes from authored/screen_names.json export_archives, whose
'archives' map was ALREADY keyed by archive path. Absent, it defaults to
dat/GP_TITLE.pak, so an old authored tree exports what it always did.

Sprite groups are mapped per archive rather than derived from the filename:
sprites live at sprites/<group>/<screen>/, unnamed builds are named build_NN by
entry index which restarts at 0 in every archive, so two archives sharing a group
would collide. An unmapped archive is rejected rather than given a directory a
typo could invent.

NO BEHAVIOUR CHANGE, and verified as such before anything is added: exported to a
separate tree with the current authored data and diffed -- export/screens and
export-probe/screens are IDENTICAL, manifest screen list identical.

The archive list itself is unchanged in this commit. Adding one is next, and
separately, so any regression is attributable to the archive rather than to the
refactor.
2026-09-03 17:57:06 +00:00

663 KiB