fix #417: world ambience kept playing at character select after the in-world logoff
The character-session reset manifest had no audio step: retail's logoff destroys the world's sound sources with the world, but our OpenAL world pool and ambient scheduler are process-lifetime — the continuous ambient beds played on at character select and the scheduler kept RE-FIRING deadlines against the stale listener (Suspend/StopAll had zero callers; WorldGenerationQuiescence only cycles around teleport-style generation replaces). New WorldAudioSessionGate: the reset manifest's 'world audio' step stops all sixteen world-pool voices (SuspendWorldAudio) and drops every ambient deadline (StopAll); the pool reopens at the entered-world edge through the new default-null LiveSessionEnteredWorldBindings.ResumeWorldAudio binding, invoked first in ApplyEnteredWorld. The ambient soundscape needs no explicit resume — the next objcell observation rebuilds it exactly as a cell change always did. Covers logout, reconnect, and full stop uniformly. UI-pool sounds (interface bank, portal cues) untouched by design. App tests 5568/3 skips, Runtime 1756/0. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
91c1962b0d
commit
0bb47f2711
8 changed files with 104 additions and 2 deletions
|
|
@ -210,6 +210,7 @@ public sealed class LiveSessionResetPlanTests
|
|||
MouseCapture = Stage("mouse capture"),
|
||||
PlayerPresentation = Stage("player presentation"),
|
||||
TeleportPresentation = Stage("teleport presentation"),
|
||||
WorldAudio = Stage("world audio"),
|
||||
SessionDialogs = Stage("session dialogs"),
|
||||
SettingsCharacterContext = Stage("settings character context"),
|
||||
EquippedChildren = Stage("equipped children"),
|
||||
|
|
@ -295,6 +296,7 @@ public sealed class LiveSessionResetPlanTests
|
|||
"mouse capture",
|
||||
"player presentation",
|
||||
"teleport presentation",
|
||||
"world audio",
|
||||
"session dialogs",
|
||||
"settings character context",
|
||||
"equipped children",
|
||||
|
|
|
|||
|
|
@ -1019,6 +1019,7 @@ public sealed class CurrentGameRuntimeAdapterTests
|
|||
MouseCapture = noop,
|
||||
PlayerPresentation = noop,
|
||||
TeleportPresentation = noop,
|
||||
WorldAudio = noop,
|
||||
SessionDialogs = noop,
|
||||
SettingsCharacterContext = noop,
|
||||
EquippedChildren = noop,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue