- elimintated all cases from the ZScript code where channel indices and flags were combined into one parameter and removed all remnants of CHAN_PICKUP.

This commit is contained in:
Christoph Oelckers 2019-12-30 09:47:25 +01:00
parent d79c6c1c0a
commit d08bb93b84
5 changed files with 17 additions and 8 deletions

View file

@ -20,8 +20,6 @@ enum EChanFlag
CHANF_AREA = 128, // Sound plays from all around. Only valid with sector sounds. CHANF_AREA = 128, // Sound plays from all around. Only valid with sector sounds.
CHANF_LOOP = 256, CHANF_LOOP = 256,
CHANF_PICKUP = CHANF_MAYBE_LOCAL,
CHANF_NONE = 0, CHANF_NONE = 0,
CHANF_IS3D = 1, // internal: Sound is 3D. CHANF_IS3D = 1, // internal: Sound is 3D.
CHANF_EVICTED = 2, // internal: Sound was evicted. CHANF_EVICTED = 2, // internal: Sound was evicted.

View file

@ -192,7 +192,6 @@ struct FSoundChan : public FISoundChannel
// CHAN_VOICE is for oof, sight, or other voice sounds // CHAN_VOICE is for oof, sight, or other voice sounds
// CHAN_ITEM is for small things and item pickup // CHAN_ITEM is for small things and item pickup
// CHAN_BODY is for generic body sounds // CHAN_BODY is for generic body sounds
// CHAN_PICKUP can optionally be set as a local sound only for "compatibility"
enum EChannel enum EChannel
{ {

View file

@ -124,7 +124,7 @@ class Lightning : Actor
if ((!thing.player && !thing.bBoss) || !(Level.maptime & 1)) if ((!thing.player && !thing.bBoss) || !(Level.maptime & 1))
{ {
thing.DamageMobj(self, target, 3, 'Electric'); thing.DamageMobj(self, target, 3, 'Electric');
A_PlaySound(AttackSound, CHAN_WEAPON|CHAN_NOSTOP, 1, false); A_StartSound(AttackSound, CHAN_WEAPON, CHANF_NOSTOP, 1, false);
if (thing.bIsMonster && random[LightningHit]() < 64) if (thing.bIsMonster && random[LightningHit]() < 64)
{ {
thing.Howl (); thing.Howl ();

View file

@ -1046,6 +1046,7 @@ class Inventory : Actor
{ {
double atten; double atten;
int chan; int chan;
int flags = 0;
if (bNoAttenPickupSound) if (bNoAttenPickupSound)
{ {
@ -1065,13 +1066,15 @@ class Inventory : Actor
if (toucher != NULL && toucher.CheckLocalView()) if (toucher != NULL && toucher.CheckLocalView())
{ {
chan = CHAN_PICKUP|CHAN_NOPAUSE; chan = CHAN_ITEM;
flags = CHANF_NOPAUSE | CHANF_MAYBE_LOCAL;
} }
else else
{ {
chan = CHAN_PICKUP; chan = CHAN_ITEM;
flags = CHANF_MAYBE_LOCAL;
} }
toucher.A_PlaySound(PickupSound, chan, 1, false, atten); toucher.A_StartSound(PickupSound, chan, flags, 1, false, atten);
} }
//=========================================================================== //===========================================================================

View file

@ -418,10 +418,19 @@ enum ESoundFlags
CHAN_UI = 32, CHAN_UI = 32,
CHAN_NOPAUSE = 64, CHAN_NOPAUSE = 64,
CHAN_LOOP = 256, CHAN_LOOP = 256,
CHAN_PICKUP = (CHAN_ITEM|CHAN_MAYBE_LOCAL), CHAN_PICKUP = (CHAN_ITEM|CHAN_MAYBE_LOCAL), // Do not use this with A_StartSound! It would not do what is expected.
CHAN_NOSTOP = 4096, CHAN_NOSTOP = 4096,
CHAN_OVERLAP = 8192, CHAN_OVERLAP = 8192,
// Same as above, with an F appended to allow better distinction of channel and channel flags.
CHANF_LISTENERZ = 8,
CHANF_MAYBE_LOCAL = 16,
CHANF_UI = 32,
CHANF_NOPAUSE = 64,
CHANF_LOOP = 256,
CHANF_NOSTOP = 4096,
CHANF_OVERLAP = 8192,
}; };
// sound attenuation values // sound attenuation values