Version 3.2.3: editor layout with aligned controls and full-width button bars; docs on recordings shared between languages

This commit is contained in:
2026-10-11 01:17:35 +02:00
parent b6b96307ca
commit e3040b8e6e
13 changed files with 119 additions and 57 deletions

View File

@@ -149,8 +149,13 @@ copy per voice language) is filtered the same way, so the sound list never mixes
## 7. Editor UX choices
- One window with three tabs. *Sounds*: filters (left) and sound table on top, the editor of the selected
sound below across the full width, in three resizable columns (Listen | Replace | Subtitle) so nothing has
to scroll at usual window sizes. *Subtitles* and *Menu text*: search, filters, table, editor. The primary flow
sound below across the full width, in three resizable columns (Listen | Replace | Subtitle). Inside each
column the controls are aligned, not packed in rows that wrap: Replace's edit fields in a grid with one
label column, and every column's actions in one full-width bar at its bottom, level across the three
columns (Listen: Original | Installed | Stop; Replace: Apply to game, twice as wide, | Revert | Save WAV;
Subtitle: Apply | Revert). Every row of buttons fills its column's width (Load file / device / Record; Trim
silence / Replacement; Show in list). A/B and Loop are icon buttons with tooltips next to the volume. The editor fits a 1000-pixel-wide window without horizontal scrolling (measured:
minimum 984 px with the window's vertical scroll bar). *Subtitles* and *Menu text*: search, filters, table, editor. The primary flow
(search -> select -> Space to listen -> Load file/Record -> Apply) needs no menus; power features (tags,
favorites, multi-select revert, mod packages, settings) are in the toolbar and context menu.
- Long work (loading, encoding, writing 0.5 GB WADs) runs in background jobs with status messages; the

View File

@@ -91,6 +91,12 @@ and the game ties the recordings together itself:
identical, e.g. `Speech_STEEL_A1_CH2_Thug_behinddoormuffled` and `DIA_SteelA1Muffled`): the second place
is a copy of the line (same `line`, keeps its position name) and is written and reverted with it, because
the game plays whichever place the loaded package's table names.
- Not every line has its own recording in every language; the game shares some itself: in each voice WAD
616-651 lines are byte-identical to the INT recording (ITA 651: efforts and emotes 509, cinematics 117,
boss fights 10, story 8, radio/TV 4, character lines 2), 167 in-memory voice lines are stored once for every
language (efforts, radio chatter, crowds) and 6 DLC intro lines are one recording shared by INT/FRA/ITA(/ESN).
So some lines play the English recording in every language: that is the game's own data, which the catalog
shows as it is.
- Independent checks (no BKPK involved): every WAD recording is named as a source by a Sound object of a bank
of its own language (54,055 of 54,055); every stored head or whole copy equals the start of the recording
its line gives it (2,185 of 2,185); a line's recordings have similar lengths across languages (11,761 of 12,434

Binary file not shown.

Before

Width:  |  Height:  |  Size: 219 KiB

After

Width:  |  Height:  |  Size: 215 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 191 KiB

After

Width:  |  Height:  |  Size: 187 KiB

View File

@@ -25,6 +25,9 @@ game is set to (Steam > game properties > Language) and applies to everything yo
editor shows those and says *voices: INT* next to the list.
- **Subtitles** and **Menu text**: the texts of that language.
Changing it reloads the lists; the next start is again in the game's language.
Some voice lines sound English in every language: the game itself ships the English recording for most
efforts and grunts, many cinematics and a few other lines, and some in-memory lines exist only once for all
languages. The editor shows what each language's game files contain.
## Names
Every voice line has one name in every language, taken from the game itself (e.g. `Speech_TAPE_JOKER_1_04`, the
@@ -56,10 +59,11 @@ the same line and are changed and reverted together.
## Listen
The editor under the list shows the selected sound in three columns side by side (drag the dividers to
resize them): **Listen**, **Replace** and **Subtitle**. Select a row and press **Space** (or double-click) to
play the original. In **Listen**:
- **Original** / **Installed** play the game's original and what is currently in the game. Click on a
waveform to play from that point. **Loop**, **Volume** and **Stop** (Esc) work for everything.
- **A/B** switches between the original and your replacement at the same position, to compare.
play the original. Each column ends with its own buttons on one line. In **Listen**:
- **Original** / **Installed** play the game's original and what is currently in the game; **Stop** (Esc).
Click on a waveform to play from that point.
- Above them: **A/B** (switch between the original and your replacement at the same position, to compare),
**Loop**, **Volume** and the playback position. The icon buttons show their names when you point at them.
## Replace
![Editor](img/editor.png)