UFO: Alien Invasion
r_mesh_anim.cpp File Reference

animation parsing and playing More...

#include "r_local.h"
#include "r_mesh.h"
#include "r_mesh_anim.h"
Include dependency graph for r_mesh_anim.cpp:

Go to the source code of this file.

Macros

#define LOOPNEXT(x)   ((x + 1 < MAX_ANIMLIST) ? x + 1 : 0)
 
#define R_AnimGetAliasAnim(mod, as)   ((mod)->alias.animdata + (as)->list[(as)->lcur])
 Get the mAliasAnim_t for the given animation state. More...
 

Functions

static void R_AnimAdd (animState_t *as, const model_t *mod, const mAliasAnim_t *anim)
 Adds the given animation to the animation state. More...
 
static const mAliasAnim_tR_AnimGet (const model_t *mod, const char *name)
 Searches a given animation id in the given model data. More...
 
void R_AnimAppend (animState_t *as, const model_t *mod, const char *name)
 Appends a new animation to the current running one. More...
 
void R_AnimChange (animState_t *as, const model_t *mod, const char *name)
 Changes the animation for md2 models. More...
 
void R_AnimRun (animState_t *as, const model_t *mod, int msec)
 Run the animation of the given model. More...
 
const char * R_AnimGetName (const animState_t *as, const model_t *mod)
 Get the current running animation for a model. More...
 

Detailed Description

animation parsing and playing

Definition in file r_mesh_anim.cpp.

Macro Definition Documentation

◆ LOOPNEXT

#define LOOPNEXT (   x)    ((x + 1 < MAX_ANIMLIST) ? x + 1 : 0)

Definition at line 30 of file r_mesh_anim.cpp.

◆ R_AnimGetAliasAnim

#define R_AnimGetAliasAnim (   mod,
  as 
)    ((mod)->alias.animdata + (as)->list[(as)->lcur])

Get the mAliasAnim_t for the given animation state.

Definition at line 47 of file r_mesh_anim.cpp.

Function Documentation

◆ R_AnimAdd()

static void R_AnimAdd ( animState_t as,
const model_t mod,
const mAliasAnim_t anim 
)
inlinestatic

Adds the given animation to the animation state.

Definition at line 35 of file r_mesh_anim.cpp.

References model_t::alias, mAliasModel_t::animdata, animState_t::ladd, animState_t::list, and LOOPNEXT.

Referenced by R_AnimAppend(), and R_AnimChange().

◆ R_AnimAppend()

void R_AnimAppend ( animState_t as,
const model_t mod,
const char *  name 
)

Appends a new animation to the current running one.

See also
R_AnimGet
R_AnimChange
R_AnimRun
R_AnimGetName
Parameters
[in,out]asThe animation state to append the new animation to
[in]modThe model to append the animation for
[in]nameThe animation name (from the *.anm file) to append

Definition at line 84 of file r_mesh_anim.cpp.

References model_t::alias, animState_t::backlerp, animState_t::change, Com_Printf(), animState_t::dt, animState_t::frame, mAliasAnim_t::from, animState_t::ladd, animState_t::lcur, name, model_t::name, mAliasModel_t::num_anims, animState_t::oldframe, R_AnimAdd(), R_AnimGet(), animState_t::time, mAliasAnim_t::time, and mAliasAnim_t::to.

Referenced by CL_ActorDie(), and CL_ActorDoShoot().

◆ R_AnimChange()

void R_AnimChange ( animState_t as,
const model_t mod,
const char *  name 
)

◆ R_AnimGet()

static const mAliasAnim_t * R_AnimGet ( const model_t mod,
const char *  name 
)
static

Searches a given animation id in the given model data.

See also
R_AnimChange
R_AnimAppend
R_AnimRun
R_AnimGetName
Parameters
[in]modThe model to search the given animation id in
[in]nameThe animation name (from the *.anm file) to search
Returns
nullptr if not found, otherwise the animation data

Definition at line 59 of file r_mesh_anim.cpp.

References model_t::alias, mAliasModel_t::animdata, i, name, mAliasAnim_t::name, mAliasModel_t::num_anims, and Q_streq.

Referenced by R_AnimAppend(), and R_AnimChange().

◆ R_AnimGetName()

const char * R_AnimGetName ( const animState_t as,
const model_t mod 
)

Get the current running animation for a model.

See also
R_AnimGet
R_AnimAppend
R_AnimRun
R_AnimChange
Parameters
[in]asThe animation state to check
[in]modThe model to check
Returns
nullptr if no animation is set or running or the name of the current running animation otherwise.

Definition at line 242 of file r_mesh_anim.cpp.

References model_t::alias, animState_t::ladd, animState_t::lcur, MAX_ANIMLIST, mAliasAnim_t::name, mAliasModel_t::num_anims, and R_AnimGetAliasAnim.

Referenced by HUD_UpdateActorCvar(), UI_DrawModelNode(), and UI_DrawModelNodeWithUIModel().

◆ R_AnimRun()

void R_AnimRun ( animState_t as,
const model_t mod,
int  msec 
)

Run the animation of the given model.

See also
R_AnimGet
R_AnimAppend
R_AnimChange
R_AnimGetName
Parameters
[in,out]asThe animation state to run
[in]modThe model to run the animation for
[in]msecThe milliseconds since this was called last

Definition at line 192 of file r_mesh_anim.cpp.

References model_t::alias, animState_t::backlerp, animState_t::change, animState_t::dt, animState_t::frame, mAliasAnim_t::from, animState_t::ladd, animState_t::lcur, LOOPNEXT, MAX_ANIMLIST, mAliasModel_t::num_anims, animState_t::oldframe, R_AnimGetAliasAnim, animState_t::time, mAliasAnim_t::time, and mAliasAnim_t::to.

Referenced by LE_Think(), LM_AddToSceneOrder(), SEQ_Render3D(), UI_DrawModelNode(), and UI_DrawModelNodeWithUIModel().