Xonotic QuakeC
The free, fast arena FPS with crisp movement and a wide array of weapons
anim.qc File Reference
#include "anim.qh"
Include dependency graph for anim.qc:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void anim_set (entity e, vector anim, bool looping, bool override, bool restart)
void anim_update (entity e)
 Update e.frame based on its animstate relative to time.

Function Documentation

◆ anim_set()

void anim_set ( entity e,
vector anim,
bool looping,
bool override,
bool restart )
Parameters
animx = startframe, y = numframes, z = framerate

Definition at line 6 of file anim.qc.

7{
8 if (!anim) return; // no animation was given to us! We can't use this.
9
10 if (anim.x == e.animstate_startframe)
11 {
12 if (anim.y == e.animstate_numframes)
13 {
14 if (anim.z == e.animstate_framerate)
15 {
16 if (!restart) return;
17 if (anim.y == 1) // ZYM animation
19 }
20 }
21 }
22 e.animstate_startframe = anim.x;
23 e.animstate_numframes = anim.y;
24 e.animstate_framerate = anim.z;
25 e.animstate_starttime = time - 0.1 * frametime; // shift it a little bit into the past to prevent float inaccuracy hiccups
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;
30 e.frame1time = time;
31}
float frametime
float time
const int EF_RESTARTANIM_BIT
#define BITXOR_ASSIGN(a, b)
Definition common.qh:107
entity anim
Definition menu.qh:25

References anim, BITXOR_ASSIGN, EF_RESTARTANIM_BIT, entity(), frametime, time, and vector.

Referenced by NET_HANDLE(), and viewmodel_draw().

◆ anim_update()

void anim_update ( entity e)

Update e.frame based on its animstate relative to time.

Definition at line 36 of file anim.qc.

37{
38 if (time >= e.animstate_endtime)
39 {
40 if (e.animstate_looping)
41 {
42 e.animstate_starttime = e.animstate_endtime;
43 e.animstate_endtime = e.animstate_starttime + e.animstate_numframes / e.animstate_framerate;
44 }
45 e.animstate_override = false;
46 }
47 float frameofs = bound(0, (time - e.animstate_starttime) * e.animstate_framerate, e.animstate_numframes - 1);
48 e.frame = e.animstate_startframe + frameofs;
49}
float bound(float min, float value, float max)

References bound(), entity(), and time.

Referenced by viewmodel_draw().