43 #define _sound(e, c, s, v, a) \
46 if (sound_allowed(MSG_BROADCAST, __e)) \
47 sound7(__e, c, s, v, a, 0, 0); \
50 #define _sound(e, c, s, v, a) sound7(e, c, s, v, a, 0, 0)
52#define sound(e, c, s, v, a) _sound(e, c, Sound_fixpath(s), v, a)
66#define sound8(e, o, chan, samp, vol, atten, speed, sf) \
70 string __samp = samp; \
72 if (__chan > 0) __e = e; \
76 __chan = fabs(__chan); \
77 entity tmp = __e = new(csqc_autochannel); \
78 setthink(tmp, SUB_Remove); \
79 tmp.nextthink = time + soundlength(__samp); \
81 vector old_origin = __e.origin; \
82 vector old_mins = __e.mins; \
83 vector old_maxs = __e.maxs; \
85 setsize(__e, '0 0 0', '0 0 0'); \
86 sound7(__e, __chan, __samp, vol, atten, speed, sf); \
89 setorigin(__e, old_origin); \
90 setsize(__e, old_mins, old_maxs); \
98 return strcat(base,
".wav");
100#define extensions(x) \
105#define tryext(ext) { \
106 string s = strcat(base, "." #ext); \
107 if (fexists(strcat("sound/", s))) { \
126 this.sound_str = path;
135 strcpy(this.sound_str_, s);
141#define Sound_fixpath(this) ( \
142 _Sound_fixpath_this = (this), \
143 _Sound_fixpath_cached = _Sound_fixpath_this.sound_str_, \
144 _Sound_fixpath_cached ? _Sound_fixpath_cached : _Sound_fixpath(_Sound_fixpath_this.sound_str()) \
var entity(vector mins, vector maxs,.entity tofield) findbox_tofield_OrFallback
ATTRIB(Sound, sound_str, string())
virtual void sound_precache()
strcat(_("^F4Countdown stopped!"), "\n^BG", _("Teams are too unbalanced."))
#define METHOD(cname, name, prototype)
#define CONSTRUCTOR(cname,...)
#define CONSTRUCT(cname,...)
const float VOL_BASEVOICE
const int CH_TRIGGER_SINGLE
const int CH_WEAPON_SINGLE
const int CH_PLAYER_SINGLE
entity _Sound_fixpath_this
const int CH_SHOTS_SINGLE
const int CH_AMBIENT_SINGLE
string _Sound_fixpath(string base)
string _Sound_fixpath_cached