Xonotic
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. More...
 

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.

References BITXOR_ASSIGN, EF_RESTARTANIM_BIT, frametime, and time.

Referenced by viewmodel_draw(), and W_Model().

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 }
const int EF_RESTARTANIM_BIT
float frametime
Definition: csprogsdefs.qc:17
#define BITXOR_ASSIGN(a, b)
Definition: common.qh:107
float time
Definition: csprogsdefs.qc:16
+ Here is the caller graph for this function:

◆ 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.

References bound(), and time.

Referenced by viewmodel_draw().

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 time
Definition: csprogsdefs.qc:16
+ Here is the call graph for this function:
+ Here is the caller graph for this function: