Use pitchadj as a % instead, its slightly more intuitive.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/branches/wip@3622 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
Spoike 2010-11-06 23:54:36 +00:00
parent 2dbf289fc4
commit 84a5466ce7
4 changed files with 9 additions and 7 deletions

View file

@ -3464,9 +3464,9 @@ void CLNQ_ParseStartSoundPacket(void)
attenuation = DEFAULT_SOUND_PACKET_ATTENUATION; attenuation = DEFAULT_SOUND_PACKET_ATTENUATION;
if (field_mask & FTESND_PITCHADJ) if (field_mask & FTESND_PITCHADJ)
pitchadj = MSG_ReadChar(); pitchadj = MSG_ReadByte();
else else
pitchadj = 0; pitchadj = 100;
if (field_mask & DPSND_LARGEENTITY) if (field_mask & DPSND_LARGEENTITY)
{ {

View file

@ -880,6 +880,8 @@ void S_StartSoundCard(soundcardinfo_t *sc, int entnum, int entchannel, sfx_t *sf
#endif #endif
vol = fvol*255; vol = fvol*255;
if (!pitchadj)
pitchadj = 100;
// pick a channel to play on // pick a channel to play on
target_chan = SND_PickChannel(sc, entnum, entchannel); target_chan = SND_PickChannel(sc, entnum, entchannel);
@ -919,7 +921,7 @@ void S_StartSoundCard(soundcardinfo_t *sc, int entnum, int entchannel, sfx_t *sf
startpos = scache->length - snd_speed*10; startpos = scache->length - snd_speed*10;
} }
target_chan->sfx = sfx; target_chan->sfx = sfx;
target_chan->rate = (1<<PITCHSHIFT) + pitchadj; target_chan->rate = ((1<<PITCHSHIFT) * pitchadj) / 100;
target_chan->pos = startpos*target_chan->rate; target_chan->pos = startpos*target_chan->rate;
target_chan->end = sc->paintedtime + ((scache->length - startpos)<<PITCHSHIFT)/target_chan->rate; target_chan->end = sc->paintedtime + ((scache->length - startpos)<<PITCHSHIFT)/target_chan->rate;
target_chan->looping = false; target_chan->looping = false;

View file

@ -603,7 +603,7 @@ enum clcq2_ops_e
#define DPSND_LOOPING (1<<2) // a long, supposedly #define DPSND_LOOPING (1<<2) // a long, supposedly
#define DPSND_LARGEENTITY (1<<3) #define DPSND_LARGEENTITY (1<<3)
#define DPSND_LARGESOUND (1<<4) #define DPSND_LARGESOUND (1<<4)
#define FTESND_PITCHADJ (1<<7) //a char (final rate is (1<<8)+pitch as 24.8 fixed point) #define FTESND_PITCHADJ (1<<7) //a byte (speed percent (0=100%))
#define DEFAULT_SOUND_PACKET_VOLUME 255 #define DEFAULT_SOUND_PACKET_VOLUME 255
#define DEFAULT_SOUND_PACKET_ATTENUATION 1.0 #define DEFAULT_SOUND_PACKET_ATTENUATION 1.0

View file

@ -857,7 +857,7 @@ void SV_StartSound (int ent, vec3_t origin, int seenmask, int channel, char *sam
extfield_mask |= DPSND_LARGEENTITY; extfield_mask |= DPSND_LARGEENTITY;
if (sound_num > 0xff) if (sound_num > 0xff)
extfield_mask |= DPSND_LARGESOUND; extfield_mask |= DPSND_LARGESOUND;
if (pitchadj) if (pitchadj && (pitchadj != 100))
extfield_mask |= FTESND_PITCHADJ; extfield_mask |= FTESND_PITCHADJ;
#ifdef PEXT_SOUNDDBL #ifdef PEXT_SOUNDDBL
@ -871,7 +871,7 @@ void SV_StartSound (int ent, vec3_t origin, int seenmask, int channel, char *sam
if (extfield_mask & NQSND_ATTENUATION) if (extfield_mask & NQSND_ATTENUATION)
MSG_WriteByte (&sv.multicast, attenuation*64); MSG_WriteByte (&sv.multicast, attenuation*64);
if (extfield_mask & FTESND_PITCHADJ) if (extfield_mask & FTESND_PITCHADJ)
MSG_WriteChar (&sv.multicast, pitchadj); MSG_WriteByte (&sv.multicast, pitchadj);
if (extfield_mask & DPSND_LARGEENTITY) if (extfield_mask & DPSND_LARGEENTITY)
{ {
MSG_WriteShort (&sv.multicast, ent); MSG_WriteShort (&sv.multicast, ent);
@ -926,7 +926,7 @@ void SV_StartSound (int ent, vec3_t origin, int seenmask, int channel, char *sam
if (extfield_mask & NQSND_ATTENUATION) if (extfield_mask & NQSND_ATTENUATION)
MSG_WriteByte (&sv.nqmulticast, attenuation*64); MSG_WriteByte (&sv.nqmulticast, attenuation*64);
if (extfield_mask & FTESND_PITCHADJ) if (extfield_mask & FTESND_PITCHADJ)
MSG_WriteChar (&sv.nqmulticast, pitchadj); MSG_WriteByte (&sv.nqmulticast, pitchadj);
if (extfield_mask & DPSND_LARGEENTITY) if (extfield_mask & DPSND_LARGEENTITY)
{ {
MSG_WriteShort (&sv.nqmulticast, ent); MSG_WriteShort (&sv.nqmulticast, ent);