[bug] PendingSound теряет исходную громкость отложенного звука #22

Closed
opened 2026-10-29 12:24:01 +00:00 by chexit · 1 comment
Owner

Проверено на опубликованном 90379f6 при проверке дополнительного ревью. Незакоммиченные изменения из чужой рабочей копии недоступны.

В emit() мгновенный звук воспроизводится с volume, а отложенный хранится в pending как (tick,name,position,pitch) без volume и затем проигрывается с жёстким 1.0.

Это подтверждённая потеря данных, но сейчас преимущественно латентная: текущие импульсные airdef sounds обычно отправляются с volume=1.0. Не выдавать за найденную причину текущего FPS или массово сломанный звук.

Регрессионный сценарий для host glue: тот же travel-enabled event с volume=.25 проиграть рядом (delay=0) и в 100 блоках (delay>0). В обоих render::play_sound должен получить .25, со сдвигом времени и far-вариантом по существующим правилам.

Исправление: именованная структура PendingSound с volume и pitch, без их потери при постановке/выборке.

Код:

} else if self.pending.len() < 256 {
.

Проверено на опубликованном `90379f6` при проверке дополнительного ревью. Незакоммиченные изменения из чужой рабочей копии недоступны. В emit() мгновенный звук воспроизводится с `volume`, а отложенный хранится в pending как `(tick,name,position,pitch)` без volume и затем проигрывается с жёстким 1.0. Это подтверждённая потеря данных, но сейчас преимущественно латентная: текущие импульсные airdef sounds обычно отправляются с volume=1.0. Не выдавать за найденную причину текущего FPS или массово сломанный звук. Регрессионный сценарий для host glue: тот же travel-enabled event с volume=.25 проиграть рядом (delay=0) и в 100 блоках (delay>0). В обоих render::play_sound должен получить .25, со сдвигом времени и far-вариантом по существующим правилам. Исправление: именованная структура PendingSound с volume и pitch, без их потери при постановке/выборке. Код: https://gitea.maoniao.team/chexit/airdef/src/commit/90379f6/airdef-mod/src/lib.rs#L443.
chexit added the area:audiopriority:P3type:bug labels 2026-10-29 13:10:38 +00:00
Author
Owner

🤖 Agent: исправлено в https://gitea.maoniao.team/chexit/airdef/commit/67a2a52 (запушено в main).

🤖 Agent: исправлено в https://gitea.maoniao.team/chexit/airdef/commit/67a2a52 (запушено в main).
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: chexit/airdef#22