mirror of
https://git.do.srb2.org/KartKrew/Kart-Public.git
synced 2025-01-18 23:41:48 +00:00
Fixed stereoreverse, and its effects are applied to mirror mode
How long has this cvar been broken?!
This commit is contained in:
parent
da32f9a4ed
commit
6d3d098c3f
1 changed files with 26 additions and 25 deletions
|
@ -391,7 +391,7 @@ void S_StartSoundAtVolume(const void *origin_p, sfxenum_t sfx_id, INT32 volume)
|
|||
{
|
||||
INT32 sep, pitch, priority, cnum;
|
||||
sfxinfo_t *sfx;
|
||||
|
||||
const boolean reverse = (stereoreverse.value ^ mirrormode);
|
||||
const mobj_t *origin = (const mobj_t *)origin_p;
|
||||
|
||||
listener_t listener = {0,0,0,0};
|
||||
|
@ -572,14 +572,13 @@ void S_StartSoundAtVolume(const void *origin_p, sfxenum_t sfx_id, INT32 volume)
|
|||
if (sfx->usefulness++ < 0)
|
||||
sfx->usefulness = -1;
|
||||
|
||||
#ifdef SURROUND
|
||||
// Avoid channel reverse if surround
|
||||
if (stereoreverse.value && sep != SURROUND_SEP)
|
||||
sep = (~sep) & 255;
|
||||
#else
|
||||
if (stereoreverse.value)
|
||||
sep = (~sep) & 255;
|
||||
if (reverse
|
||||
#ifdef SURROUND
|
||||
&& sep != SURROUND_SEP
|
||||
#endif
|
||||
)
|
||||
sep = (~sep) & 255;
|
||||
|
||||
// Assigns the handle to one of the channels in the
|
||||
// mix/output buffer.
|
||||
|
@ -627,14 +626,13 @@ void S_StartSoundAtVolume(const void *origin_p, sfxenum_t sfx_id, INT32 volume)
|
|||
if (sfx->usefulness++ < 0)
|
||||
sfx->usefulness = -1;
|
||||
|
||||
#ifdef SURROUND
|
||||
// Avoid channel reverse if surround
|
||||
if (stereoreverse.value && sep != SURROUND_SEP)
|
||||
sep = (~sep) & 255;
|
||||
#else
|
||||
if (stereoreverse.value)
|
||||
sep = (~sep) & 255;
|
||||
if (reverse
|
||||
#ifdef SURROUND
|
||||
&& sep != SURROUND_SEP
|
||||
#endif
|
||||
)
|
||||
sep = (~sep) & 255;
|
||||
|
||||
// Assigns the handle to one of the channels in the
|
||||
// mix/output buffer.
|
||||
|
@ -682,14 +680,13 @@ void S_StartSoundAtVolume(const void *origin_p, sfxenum_t sfx_id, INT32 volume)
|
|||
if (sfx->usefulness++ < 0)
|
||||
sfx->usefulness = -1;
|
||||
|
||||
#ifdef SURROUND
|
||||
// Avoid channel reverse if surround
|
||||
if (stereoreverse.value && sep != SURROUND_SEP)
|
||||
sep = (~sep) & 255;
|
||||
#else
|
||||
if (stereoreverse.value)
|
||||
sep = (~sep) & 255;
|
||||
if (reverse
|
||||
#ifdef SURROUND
|
||||
&& sep != SURROUND_SEP
|
||||
#endif
|
||||
)
|
||||
sep = (~sep) & 255;
|
||||
|
||||
// Assigns the handle to one of the channels in the
|
||||
// mix/output buffer.
|
||||
|
@ -732,14 +729,13 @@ dontplay:
|
|||
if (sfx->usefulness++ < 0)
|
||||
sfx->usefulness = -1;
|
||||
|
||||
#ifdef SURROUND
|
||||
// Avoid channel reverse if surround
|
||||
if (stereoreverse.value && sep != SURROUND_SEP)
|
||||
sep = (~sep) & 255;
|
||||
#else
|
||||
if (stereoreverse.value)
|
||||
sep = (~sep) & 255;
|
||||
if (reverse
|
||||
#ifdef SURROUND
|
||||
&& sep != SURROUND_SEP
|
||||
#endif
|
||||
)
|
||||
sep = (~sep) & 255;
|
||||
|
||||
// Assigns the handle to one of the channels in the
|
||||
// mix/output buffer.
|
||||
|
@ -1212,6 +1208,8 @@ INT32 S_AdjustSoundParams(const mobj_t *listener, const mobj_t *source, INT32 *v
|
|||
|
||||
listener_t listensource;
|
||||
|
||||
const boolean reverse = (stereoreverse.value ^ mirrormode);
|
||||
|
||||
(void)pitch;
|
||||
if (!listener)
|
||||
return false;
|
||||
|
@ -1309,6 +1307,9 @@ INT32 S_AdjustSoundParams(const mobj_t *listener, const mobj_t *source, INT32 *v
|
|||
else
|
||||
angle = angle + InvAngle(listensource.angle);
|
||||
|
||||
if (reverse)
|
||||
angle = InvAngle(angle);
|
||||
|
||||
#ifdef SURROUND
|
||||
// Produce a surround sound for angle from 105 till 255
|
||||
if (surround.value == 1 && (angle > ANG105 && angle < ANG255 ))
|
||||
|
|
Loading…
Reference in a new issue