Two of the owner's answers to the sound audit (2026-10-24): hiders should hear the locator ping, and the unused AIRBORNE / TEN / FIVE SECONDS lines can be removed.
Locator ping (src/game/server.cpp, src/client/game.cpp)
- What: when the locator fires (hide and seek's seeker, tag's tagger), every other connected player (spectators too) hears
SND_LOCATORin 3D at the firer's position + 1.5 m, volume 1.0, in the firer's sound pack. The firer keeps its own 2D ping. - How: the reserved event type
EV_SOUND(unused until now):Server::useLocatorsends it when the locator really fires, with a = the firer, c =WPN_LOCATOR, the feet position in the text. - Why not the firing flag: a player hidden from you (the usual case for the seeker, seen from a hider) has their position and
PS_FIRINGstripped from your snapshot, so the remote fire-sound loop can't know about it. - No protocol change: older clients drop unknown event types, and demos never held this event. Bots don't react to the ping.
- Test (rules group): in hide and seek and in tag, a hider gets exactly one
EV_SOUND(a = it, c = locator, within 2 m of "it"); "it" gets none; the hider still gets noEV_LOCATE.
Announcer lines (src/client/audio.h/.cpp, tools/make_voice.py, assets/provenance/voices.json, tools/sound_editor)
SND_VOICE_AIRBORNE,SND_VOICE_TEN_SECONDSandSND_VOICE_FIVE_SECONDSare removed. None was ever played, and no voice had a recording: each was exported as 0.1 s of silence.- Every voice now has 27 lines (189 voice files instead of 210; 415 exported assets instead of 436). An override or mod file with one of those names is now ignored.
- The remaining 189 voice files export byte-identical to before (checked with
cmp), so every line still maps to its own recording. Quips drew only from lines with sound, so they're unchanged. - The sound editor's line list, levelling presets and audit notes follow; docs/ASSETS.md says 27 x 7.