#pragma once // sound channels // channel 0 never willingly overrides // other channels (1-7) allways override a playing sound on that channel #define CHAN_AUTO 0 #define CHAN_WEAPON 1 #define CHAN_VOICE 2 #define CHAN_ITEM 3 #define CHAN_BODY 4 #define CHAN_ENT1 5 #define CHAN_ENT2 6 // modifier flags #define CHAN_NO_PHS_ADD 8 // send to all clients, not just ones in PHS (ATTN 0 will also do this) #define CHAN_RELIABLE 16 // send by reliable message, not datagram // sound attenuation values #define ATTN_NONE 0 // full volume the entire level #define ATTN_NORM 1 #define ATTN_IDLE 2 #define ATTN_STATIC 3 // diminish very rapidly with distance #define SND_LOCALIZE_GLOBAL 0 // Default, means that the sound is projected into the world as normal. #define SND_LOCALIZE_CLIENT 1 // Means to ONLY play the sound on the associated client. // sound info fields #define SIF_MUSIC_STATE 0x01 #define SIF_DESIGNER_MUSIC 0x02 #define SIF_AMB_GEN_SET 0x04 #define SIF_SOUND_EFFECT 0x08 enum { SPE_NORMAL, SPE_WATER, SPE_NUM_PROC_TYPES }; // volume mask for ent->sound_data - makes room for attn value in the lower bits #define ENT_VOL_MASK 0xf8 enum { SND_LOOPATTN, SND_NEARATTN, SND_NORMATTN, SND_FARATTN, SND_VERYFARATTN, SND_MAXATTN };