}
// don't let monster sounds override player sounds
- if (ch->entnum == cl.viewentity && entnum != cl.viewentity)
+ if ((ch->entnum == cl.viewentity || ch->entnum == CL_VM_GetViewEntity()) && !(entnum == cl.viewentity || entnum == CL_VM_GetViewEntity()))
continue;
// don't override looped sounds
// anything coming from the view entity will always be full volume
// LordHavoc: make sounds with ATTN_NONE have no spatialization
- if (ch->entnum == cl.viewentity || ch->distfade == 0)
+ if (ch->entnum == cl.viewentity || ch->entnum == CL_VM_GetViewEntity() || ch->distfade == 0)
{
ch->prologic_invert = 1;
if (snd_spatialization_prologic.integer != 0)
ch = &channels[channel_ind];
sfx = ch->sfx;
- if (ch->sfx != NULL)
+ if (sfx != NULL)
{
if (sfx->fetcher != NULL && sfx->fetcher->stopchannel != NULL)
sfx->fetcher->stopchannel(ch);
ch->fetcher_data = NULL;
ch->sfx = NULL;
+ if (freesfx)
+ S_FreeSfx(sfx, true);
}
if (lockmutex && !simsound)
SndSys_UnlockRenderBuffer();
- if (freesfx)
- S_FreeSfx(sfx, true);
}