10 if (
anim.x == e.animstate_startframe)
12 if (
anim.y == e.animstate_numframes)
14 if (
anim.z == e.animstate_framerate)
22 e.animstate_startframe =
anim.x;
23 e.animstate_numframes =
anim.y;
24 e.animstate_framerate =
anim.z;
26 e.animstate_endtime = e.animstate_starttime + e.animstate_numframes / e.animstate_framerate;
27 e.animstate_looping = looping;
28 e.animstate_override =
override;
29 e.frame = e.animstate_startframe;
38 if (
time >= e.animstate_endtime)
40 if (e.animstate_looping)
42 e.animstate_starttime = e.animstate_endtime;
43 e.animstate_endtime = e.animstate_starttime + e.animstate_numframes / e.animstate_framerate;
45 e.animstate_override =
false;
47 float frameofs =
bound(0, (
time - e.animstate_starttime) * e.animstate_framerate, e.animstate_numframes - 1);
48 e.frame = e.animstate_startframe + frameofs;
void anim_update(entity e)
Update e.frame based on its animstate relative to time.
void anim_set(entity e, vector anim, bool looping, bool override, bool restart)
var entity(vector mins, vector maxs,.entity tofield) findbox_tofield_OrFallback
const int EF_RESTARTANIM_BIT
#define BITXOR_ASSIGN(a, b)