diff options
-rw-r--r-- | src/strife/s_sound.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/strife/s_sound.c b/src/strife/s_sound.c index 7a919737..d22f84e4 100644 --- a/src/strife/s_sound.c +++ b/src/strife/s_sound.c @@ -277,7 +277,7 @@ static int S_GetChannel(mobj_t *origin, sfxinfo_t *sfxinfo, boolean isvoice) channel_t* c; // Find an open channel - for (cnum=0 ; cnum<snd_channels ; cnum++) + for (cnum=0 ; cnum<snd_channels ; cnum++) { if (!channels[cnum].sfxinfo) { @@ -286,6 +286,11 @@ static int S_GetChannel(mobj_t *origin, sfxinfo_t *sfxinfo, boolean isvoice) else if (origin && channels[cnum].origin == origin && (isvoice || cnum != i_voicehandle)) // haleyjd { + // haleyjd 20150220: [STRIFE] missing sound channel priority check + // Is a higher priority sound by same origin already playing? + if(!isvoice && sfxinfo->priority > channels[cnum].sfxinfo->priority) + return -1; + S_StopChannel(cnum); break; } |