diff --git a/src/s_sound.c b/src/s_sound.c index d87b6106d..6dae619a1 100644 --- a/src/s_sound.c +++ b/src/s_sound.c @@ -531,6 +531,9 @@ void S_StartSoundAtVolume(const void *origin_p, sfxenum_t sfx_id, INT32 volume) pitch = NORM_PITCH; priority = NORM_PRIORITY; + if (splitscreen && origin) + volume = FixedDiv(volume<>FRACBITS; + if (splitscreen && listenmobj2) // Copy the sound for the split player { // Check to see if it is audible, and if not, modify the params @@ -1011,6 +1014,9 @@ void S_UpdateSounds(void) pitch = NORM_PITCH; sep = NORM_SEP; + if (splitscreen && c->origin) + volume = FixedDiv(volume<>FRACBITS; + // check non-local sounds for distance clipping // or modify their params if (c->origin && ((c->origin != players[consoleplayer].mo) @@ -1325,6 +1331,9 @@ INT32 S_AdjustSoundParams(const mobj_t *listener, const mobj_t *source, INT32 *v *vol = (15 * ((S_CLIPPING_DIST - approx_dist)>>FRACBITS)) / S_ATTENUATOR; } + if (splitscreen) + *vol = FixedDiv((*vol)<>FRACBITS; + return (*vol > 0); }