6#define CONSTANT_SPEED_DECAY
17classfield(BGMScript) .float bgmscriptstatetime;
35 return ((t - a) / d) * (s - 1) + 1;
42 float decayval, releaseval;
50 releaseval = s * (1 - t / r);
60 decayval = ((t + d) / d) * (s - 1) + 1;
61 return max(decayval, releaseval);
74 float decaytime, releasetime;
80 releasetime = (1 - amp / s) * r;
90 decaytime = (amp - 1) / (s - 1) * d - d;
91 return max(decaytime, releasetime);
108 while((s =
fgets(fh)))
120 if(e.bgmscript !=
"")
127 m =
strcat(e.bgmscript,
" ");
130 e.bgmscriptline0 = -1;
136 e.bgmscriptline = e.bgmscriptline0 = i;
139 LOG_INFOF(
"ERROR: bgmscript does not define %s", e.bgmscript);
151#ifdef CONSTANT_SPEED_DECAY
152 return GetReleaseAmplitude(e.bgmscriptdecay, e.bgmscriptsustain * e.bgmscriptvolume, e.bgmscriptrelease, trel);
154 return GetReleaseAmplitude(e.bgmscriptdecay, e.bgmscriptsustain, e.bgmscriptrelease, trel) * e.bgmscriptvolume;
162 return GetAttackTime(e.bgmscriptattack, amp / e.bgmscriptvolume);
165#ifdef CONSTANT_SPEED_DECAY
166 return GetReleaseTime(e.bgmscriptdecay, e.bgmscriptsustain * e.bgmscriptvolume, e.bgmscriptrelease, amp);
168 return GetReleaseTime(e.bgmscriptdecay, e.bgmscriptsustain, e.bgmscriptrelease, amp / e.bgmscriptvolume);
177 if(e.bgmscript ==
"")
183 e.just_toggled =
false;
192 e.bgmscriptline = e.bgmscriptline0;
196 e.bgmscriptstate =
false;
197 e.bgmscriptvolume = 1;
212 e.bgmscriptline += 1;
221 e.just_toggled = e.bgmscriptstate =
true;
222 e.bgmscriptvolume = vel;
225 e.just_toggled = e.bgmscriptstate =
false;
var entity(vector mins, vector maxs,.entity tofield) findbox_tofield_OrFallback
float GetAttackDecaySustainAmplitude(float a, float d, float s, float t)
float GetReleaseTime(float d, float s, float r, float amp)
void BGMScript_InitEntity(entity e)
float GetReleaseAmplitude(float d, float s, float r, float t)
float doBGMScript(entity e)
float GetCurrentAmplitude(entity e, float trel)
float GetAttackTime(float a, float amp)
float GetTimeForAmplitude(entity e, float amp)
strcat(_("^F4Countdown stopped!"), "\n^BG", _("Teams are too unbalanced."))