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))) { \ 121 ATTRIB(Sound, sound_str,
string());
122 ATTRIB(Sound, sound_str_,
string);
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()) \
string _Sound_fixpath_cached
string _Sound_fixpath(string base)
const int CH_PLAYER_SINGLE
#define METHOD(cname, name, prototype)
#define CONSTRUCT(cname,...)
spree_cen s1 spree_cen s1 spree_cen s1 spree_cen s1 spree_cen s1 spree_cen s1 spree_cen s1 f1 s1 strcat(_("Level %s: "), "^BG%s\3\, _("^BGPress ^F2%s^BG to enter the game"))
const int CH_WEAPON_SINGLE
const int CH_TRIGGER_SINGLE
entity _Sound_fixpath_this
const float VOL_BASEVOICE
const int CH_SHOTS_SINGLE
const int CH_AMBIENT_SINGLE
#define CONSTRUCTOR(cname,...)