Edit subtitles and menu text

This commit is contained in:
2026-10-09 22:36:46 +02:00
parent 5d6c2447f7
commit ef68edbe45
40 changed files with 105877 additions and 1291 deletions

View File

@@ -27,7 +27,11 @@
rebuilt from a mandatory full original copy); editor shows bank + copies. `ackit verify` PASS (300/300
BANK WEMs rebuilt identically); `ackit verify --ingame --banks` PASS (loaded, no crash, revert identical;
audible check not possible without input: findings 18).
4. [ ] Subtitles + menu text: find/document formats, `ackit` parse/write with backup/revert.
4. [x] Subtitles = RDialogueEvent objects in packages (9,016 lines x 11 languages, 168k copies; parser
`ackit/subtitles.py`, catalog SUB_<LANG>.csv + SUB_locations.csv.gz, 92 % linked to speech sounds via
events); menu text = Localization/<LANG>/*.int (`ackit/loctext.py`, ~7,000 strings/language).
`Workspace.texts` (ackit/texts.py): states, apply/revert, conflicts, mod packages; CLI `ackit text`.
Subtitles in place (NUL-padded, limit = original length); decision + reasons in decisions.md 4c.
5. [ ] Editor: Subtitles section linked to audio, separate Menu text section, revert, mod export/import.
6. [ ] Final e2e (audio + text), packaged build, REPORT.md.
- OPEN: channel order for >2 channels unverified; speech and in-memory sounds *heard* in-game (need gameplay;
@@ -105,3 +109,7 @@
runs (no compressor needed). Bank-file conflicts use the whole-file SHA-1 (the cheap guid+chunk-table
fingerprint missed same-size edits in tests). Name collisions in the WAD catalogs (2 per language) are shown as
NAME#i. `soundcard` comes from the `verify` extra (was missing from the venv).
- 2026-10-09 (mission 3, stage 4): subtitle links by name were wrong for most multi-variation entries (WEMs are
stored in media-ID order, not _NN order): links come only from events. Numbered event names (Speech_X_04)
live in export tables, not in name tables: the bank scan now collects export names (+40 named BANK sounds,
links 71 % -> 92 %). Version*.int (build IDs) are not treated as UI text.