diff --git a/engine/client/snd_dma.c b/engine/client/snd_dma.c index 5cfb89f46..2b74304cc 100644 --- a/engine/client/snd_dma.c +++ b/engine/client/snd_dma.c @@ -2949,7 +2949,7 @@ static void S_UpdateSoundCard(soundcardinfo_t *sc, qboolean updateonly, channel_ if (sfx->loopstart == -1 && !(flags&CF_FORCELOOP)) //only skip if its not looping. { target_chan->sfx = NULL; - return; // not audible at all + goto updatechannel; } target_chan->sfx = sfx; @@ -2977,6 +2977,8 @@ static void S_UpdateSoundCard(soundcardinfo_t *sc, qboolean updateonly, channel_ } } +updatechannel: + if (sc->ChannelUpdate) sc->ChannelUpdate(sc, target_chan, chanupdatetype); }