papermario
Decompilation of Paper Mario
 
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Loading...
Searching...
No Matches
animator.c File Reference

Data Structures

struct  DisplayListBufferHandle
 

Typedefs

typedef DisplayListBufferHandle AnimatedMeshVertexCopyList[0x60]
 

Functions

void appendGfx_animator_node (ModelAnimator *, AnimatorNode *, Matrix4f)
 
Vtx * animator_copy_vertices_to_buffer (ModelAnimator *animator, AnimatorNode *node, Vec3s *buffer, s32 vtxCount, s32 overhead, s32 startIdx)
 
void animator_make_mirrorZ (Matrix4f mtx)
 
void animator_make_mirrorY (Matrix4f mtx)
 
void animator_make_mirrorX (Matrix4f mtx)
 
void animator_make_identity (Matrix4f mtx)
 
AnimatorNodeget_animator_child_with_id (AnimatorNode *node, s32 id)
 
AnimatorNodeget_animator_child_for_model (AnimatorNode *node, s32 modelId)
 
void free_animator_nodes (AnimatorNode *root)
 
void clear_animator_list (void)
 
void reset_animator_list (void)
 
void delete_model_animator_node (AnimatorNode *node)
 
void delete_model_animator_nodes (ModelAnimator *animator)
 
void delete_model_animator (ModelAnimator *animator)
 
s32 create_model_animator (s16 *animPos)
 
s32 create_mesh_animator (s16 *animPos, s16 *animBuffer)
 
AnimatorNodeadd_anim_node (ModelAnimator *animator, s32 parentNodeID, AnimatorNodeBlueprint *nodeBP)
 
void update_model_animator (s32 animatorID)
 
void update_model_animator_with_transform (s32 animatorID, Mtx *mtx)
 
s32 step_model_animator (ModelAnimator *animator)
 
void animator_update_model_transforms (ModelAnimator *animator, Mtx *rootTransform)
 
void animator_node_update_model_transform (ModelAnimator *animator, f32(*flipMtx)[4], AnimatorNode *node, Mtx *rootTransform)
 
void render_animated_model (s32 animatorID, Mtx *rootTransform)
 
void render_animated_model_with_vertices (s32 animatorID, Mtx *rootTransform, s32 segment, void *baseAddr)
 
void appendGfx_animator (ModelAnimator *animator)
 
AnimatorNodeget_animator_node_for_tree_index (ModelAnimator *animator, s32 arg1)
 
AnimatorNodeget_animator_node_with_id (ModelAnimator *animator, s32 id)
 
void set_animator_tree_to_node_map (ModelAnimator *animator, s32 *nodeIDs, s32 count)
 
ModelAnimatorget_animator_by_index (s32 animModelID)
 
ModelAnimatorset_animator_render_callback (s32 animModelID, void *callbackArg, void(*callbackFunc)(void *))
 
void enable_anim_model_fog (void)
 
void disable_anim_model_fog (void)
 
void set_anim_model_fog_dist (s32 start, s32 end)
 
void set_anim_model_fog_color (s32 r, s32 g, s32 b, s32 a)
 
s32 is_anim_model_fog_enabled (void)
 
void get_anim_model_fog_distance (s32 *start, s32 *end)
 
void get_anim_model_fog_color (s32 *r, s32 *g, s32 *b, s32 *a)
 
void set_animator_flags (s32 index, s32 bits)
 
void clear_animator_flags (s32 index, s32 bits)
 
void play_model_animation (s32 index, s16 *animPos)
 
void play_model_animation_starting_from (s32 index, s16 *animPos, s32 framesToSkip)
 
void load_model_animator_node (StaticAnimatorNode *node, ModelAnimator *animator, s32 parentNodeID, s32 *treeIndexToNodeIDs)
 
void load_model_animator_tree (s32 index, StaticAnimatorNode **tree)
 
void load_mesh_animator_node (StaticAnimatorNode *node, ModelAnimator *animator, s32 parentNodeID, s32 *treeIndexToNodeIDs)
 
void load_mesh_animator_tree (s32 index, StaticAnimatorNode **tree)
 
void reload_mesh_animator_node (StaticAnimatorNode *node, ModelAnimator *animator, s32 parentNodeID, s32 *treeIndexToNodeIDs)
 
void reload_mesh_animator_tree (ModelAnimator *animator)
 
s32 step_mesh_animator (ModelAnimator *animator)
 

Variables

s32 gAnimCount
 
BSS AnimatedMeshVertexCopyList D_801533C0
 
BSS AnimatedMeshVertexCopyList D_801536C0
 
BSS AnimatedMeshList D_801539C0
 
BSS AnimatedMeshList D_80153A00
 
BSS AnimatedMeshListgCurrentAnimMeshListPtr
 
BSS s32 gAnimModelFogEnabled
 
BSS s32 gAnimModelFogR
 
BSS s32 gAnimModelFogG
 
BSS s32 gAnimModelFogB
 
BSS s32 gAnimModelFogA
 
BSS s32 gAnimModelFogStart
 
BSS s32 gAnimModelFogEnd
 
BSS s32 gAnimVtxSegment
 
BSS s32 D_80153A64
 
BSS Matrix4f gAnimRotMtx
 
BSS Matrix4f gAnimScaleMtx
 
BSS Matrix4f gAnimTranslateMtx
 
BSS Matrix4f gAnimRotScaleMtx
 
BSS StaticAnimatorNode ** gAnimTreeRoot
 
Gfx Gfx_RM1_SURFACE_OPA []
 
Gfx Gfx_RM1_DECAL_OPA []
 
Gfx Gfx_RM1_INTERSECTING_OPA []
 
Gfx Gfx_RM1_ALPHATEST []
 
Gfx Gfx_RM1_SURFACE_XLU []
 
Gfx Gfx_RM1_DECAL_XLU []
 
Gfx Gfx_RM1_INTERSECTING_XLU []
 
Gfx Gfx_RM3_SURFACE_OPA []
 
Gfx Gfx_RM3_DECAL_OPA []
 
Gfx Gfx_RM3_INTERSECTING_OPA []
 
Gfx Gfx_RM3_ALPHATEST []
 
Gfx Gfx_RM3_SURFACE_XLU []
 
Gfx Gfx_RM3_DECAL_XLU []
 
Gfx Gfx_RM3_INTERSECTING_XLU []
 
AnimScript gAnimScriptDefault
 

Data Structure Documentation

◆ DisplayListBufferHandle

struct DisplayListBufferHandle
Data Fields
void * addr
s32 ttl

Typedef Documentation

◆ AnimatedMeshVertexCopyList

typedef DisplayListBufferHandle AnimatedMeshVertexCopyList[0x60]

Function Documentation

◆ add_anim_node()

AnimatorNode * add_anim_node ( ModelAnimator * animator,
s32 parentNodeID,
AnimatorNodeBlueprint * nodeBP )

◆ animator_copy_vertices_to_buffer()

Vtx * animator_copy_vertices_to_buffer ( ModelAnimator * animator,
AnimatorNode * node,
Vec3s * buffer,
s32 vtxCount,
s32 overhead,
s32 startIdx )

Referenced by appendGfx_animator_node().

◆ animator_make_identity()

void animator_make_identity ( Matrix4f mtx)

◆ animator_make_mirrorX()

void animator_make_mirrorX ( Matrix4f mtx)

◆ animator_make_mirrorY()

void animator_make_mirrorY ( Matrix4f mtx)

◆ animator_make_mirrorZ()

void animator_make_mirrorZ ( Matrix4f mtx)

◆ animator_node_update_model_transform()

void animator_node_update_model_transform ( ModelAnimator * animator,
f32(*) flipMtx[4],
AnimatorNode * node,
Mtx * rootTransform )

◆ animator_update_model_transforms()

void animator_update_model_transforms ( ModelAnimator * animator,
Mtx * rootTransform )

◆ appendGfx_animator()

void appendGfx_animator ( ModelAnimator * animator)

◆ appendGfx_animator_node()

void appendGfx_animator_node ( ModelAnimator * animator,
AnimatorNode * node,
Matrix4f mtx )

◆ clear_animator_flags()

void clear_animator_flags ( s32 index,
s32 bits )

◆ clear_animator_list()

◆ create_mesh_animator()

s32 create_mesh_animator ( s16 * animPos,
s16 * animBuffer )

Referenced by load_split_entity_data().

◆ create_model_animator()

s32 create_model_animator ( s16 * animPos)

◆ delete_model_animator()

void delete_model_animator ( ModelAnimator * animator)

◆ delete_model_animator_node()

void delete_model_animator_node ( AnimatorNode * node)

◆ delete_model_animator_nodes()

void delete_model_animator_nodes ( ModelAnimator * animator)

◆ disable_anim_model_fog()

void disable_anim_model_fog ( void )

◆ enable_anim_model_fog()

void enable_anim_model_fog ( void )

◆ free_animator_nodes()

void free_animator_nodes ( AnimatorNode * root)

Referenced by free_animator_nodes().

◆ get_anim_model_fog_color()

void get_anim_model_fog_color ( s32 * r,
s32 * g,
s32 * b,
s32 * a )

◆ get_anim_model_fog_distance()

void get_anim_model_fog_distance ( s32 * start,
s32 * end )

◆ get_animator_by_index()

◆ get_animator_child_for_model()

AnimatorNode * get_animator_child_for_model ( AnimatorNode * node,
s32 modelId )

◆ get_animator_child_with_id()

◆ get_animator_node_for_tree_index()

AnimatorNode * get_animator_node_for_tree_index ( ModelAnimator * animator,
s32 arg1 )

◆ get_animator_node_with_id()

AnimatorNode * get_animator_node_with_id ( ModelAnimator * animator,
s32 id )

◆ is_anim_model_fog_enabled()

s32 is_anim_model_fog_enabled ( void )

◆ load_mesh_animator_node()

void load_mesh_animator_node ( StaticAnimatorNode * node,
ModelAnimator * animator,
s32 parentNodeID,
s32 * treeIndexToNodeIDs )

◆ load_mesh_animator_tree()

void load_mesh_animator_tree ( s32 index,
StaticAnimatorNode ** tree )

Referenced by load_split_entity_data().

◆ load_model_animator_node()

void load_model_animator_node ( StaticAnimatorNode * node,
ModelAnimator * animator,
s32 parentNodeID,
s32 * treeIndexToNodeIDs )

◆ load_model_animator_tree()

void load_model_animator_tree ( s32 index,
StaticAnimatorNode ** tree )

◆ play_model_animation()

◆ play_model_animation_starting_from()

void play_model_animation_starting_from ( s32 index,
s16 * animPos,
s32 framesToSkip )

◆ reload_mesh_animator_node()

void reload_mesh_animator_node ( StaticAnimatorNode * node,
ModelAnimator * animator,
s32 parentNodeID,
s32 * treeIndexToNodeIDs )

◆ reload_mesh_animator_tree()

void reload_mesh_animator_tree ( ModelAnimator * animator)

◆ render_animated_model()

void render_animated_model ( s32 animatorID,
Mtx * rootTransform )

◆ render_animated_model_with_vertices()

void render_animated_model_with_vertices ( s32 animatorID,
Mtx * rootTransform,
s32 segment,
void * baseAddr )

Referenced by render_entities(), and render_shadows().

◆ reset_animator_list()

void reset_animator_list ( void )

◆ set_anim_model_fog_color()

void set_anim_model_fog_color ( s32 r,
s32 g,
s32 b,
s32 a )

◆ set_anim_model_fog_dist()

void set_anim_model_fog_dist ( s32 start,
s32 end )

◆ set_animator_flags()

void set_animator_flags ( s32 index,
s32 bits )

◆ set_animator_render_callback()

ModelAnimator * set_animator_render_callback ( s32 animModelID,
void * callbackArg,
void(*)(void *) callbackFunc )

Referenced by render_entities().

◆ set_animator_tree_to_node_map()

void set_animator_tree_to_node_map ( ModelAnimator * animator,
s32 * nodeIDs,
s32 count )

◆ step_mesh_animator()

s32 step_mesh_animator ( ModelAnimator * animator)

◆ step_model_animator()

s32 step_model_animator ( ModelAnimator * animator)

◆ update_model_animator()

◆ update_model_animator_with_transform()

void update_model_animator_with_transform ( s32 animatorID,
Mtx * mtx )

Referenced by update_animated_models().

Variable Documentation

◆ D_801533C0

◆ D_801536C0

◆ D_801539C0

◆ D_80153A00

◆ D_80153A64

BSS s32 D_80153A64

◆ gAnimCount

◆ gAnimModelFogA

◆ gAnimModelFogB

◆ gAnimModelFogEnabled

◆ gAnimModelFogEnd

◆ gAnimModelFogG

◆ gAnimModelFogR

◆ gAnimModelFogStart

◆ gAnimRotMtx

◆ gAnimRotScaleMtx

BSS Matrix4f gAnimRotScaleMtx

◆ gAnimScaleMtx

BSS Matrix4f gAnimScaleMtx

◆ gAnimScriptDefault

AnimScript gAnimScriptDefault
Initial value:
= {
AS_WAIT, 60 ,
}
@ AS_END
Definition animation_script.h:9
@ AS_WAIT
Definition animation_script.h:10

Referenced by create_model_animator().

◆ gAnimTranslateMtx

BSS Matrix4f gAnimTranslateMtx

◆ gAnimTreeRoot

◆ gAnimVtxSegment

BSS s32 gAnimVtxSegment

◆ gCurrentAnimMeshListPtr

◆ Gfx_RM1_ALPHATEST

Gfx Gfx_RM1_ALPHATEST
extern
Initial value:
= {
gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2),
gsDPSetCycleType(G_CYC_1CYCLE),
gsSPClearGeometryMode(G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | G_LOD | G_SHADING_SMOOTH),
gsSPSetGeometryMode(G_ZBUFFER | G_SHADE | G_LIGHTING | G_SHADING_SMOOTH),
gsSPEndDisplayList(),
}

Referenced by appendGfx_animator().

◆ Gfx_RM1_DECAL_OPA

Gfx Gfx_RM1_DECAL_OPA
extern
Initial value:
= {
gsDPSetRenderMode(G_RM_AA_ZB_OPA_DECAL, G_RM_AA_ZB_OPA_DECAL2),
gsDPSetCycleType(G_CYC_1CYCLE),
gsSPClearGeometryMode(G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | G_LOD |
G_SHADING_SMOOTH),
gsSPSetGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BACK | G_LIGHTING | G_SHADING_SMOOTH),
gsSPEndDisplayList(),
}

Referenced by appendGfx_animator().

◆ Gfx_RM1_DECAL_XLU

Gfx Gfx_RM1_DECAL_XLU
extern
Initial value:
= {
gsDPSetRenderMode(G_RM_AA_ZB_XLU_DECAL, G_RM_AA_ZB_XLU_DECAL2),
gsDPSetCycleType(G_CYC_1CYCLE),
gsSPClearGeometryMode(G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | G_LOD | G_SHADING_SMOOTH),
gsSPSetGeometryMode(G_ZBUFFER | G_SHADE | G_LIGHTING | G_SHADING_SMOOTH),
gsSPEndDisplayList(),
}

Referenced by appendGfx_animator().

◆ Gfx_RM1_INTERSECTING_OPA

Gfx Gfx_RM1_INTERSECTING_OPA
extern
Initial value:
= {
gsDPSetRenderMode(G_RM_AA_ZB_OPA_INTER, G_RM_AA_ZB_OPA_INTER2),
gsDPSetCycleType(G_CYC_1CYCLE),
gsSPClearGeometryMode(G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | G_LOD |
G_SHADING_SMOOTH),
gsSPSetGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BACK | G_LIGHTING | G_SHADING_SMOOTH),
gsSPEndDisplayList(),
}

Referenced by appendGfx_animator().

◆ Gfx_RM1_INTERSECTING_XLU

Gfx Gfx_RM1_INTERSECTING_XLU
extern
Initial value:
= {
gsDPSetRenderMode(G_RM_AA_ZB_XLU_INTER, G_RM_AA_ZB_XLU_INTER2),
gsDPSetCycleType(G_CYC_1CYCLE),
gsSPClearGeometryMode(G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | G_LOD | G_SHADING_SMOOTH),
gsSPSetGeometryMode(G_ZBUFFER | G_SHADE | G_LIGHTING | G_SHADING_SMOOTH),
gsSPEndDisplayList(),
}

Referenced by appendGfx_animator().

◆ Gfx_RM1_SURFACE_OPA

Gfx Gfx_RM1_SURFACE_OPA
extern
Initial value:
= {
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
gsDPSetCycleType(G_CYC_1CYCLE),
gsSPClearGeometryMode(G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | G_LOD |
G_SHADING_SMOOTH),
gsSPSetGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BACK | G_LIGHTING | G_SHADING_SMOOTH),
gsSPEndDisplayList(),
}

Referenced by appendGfx_animator().

◆ Gfx_RM1_SURFACE_XLU

Gfx Gfx_RM1_SURFACE_XLU
extern
Initial value:
= {
gsDPSetRenderMode(G_RM_AA_ZB_XLU_SURF, G_RM_AA_ZB_XLU_SURF2),
gsDPSetCycleType(G_CYC_1CYCLE),
gsSPClearGeometryMode(G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | G_LOD | G_SHADING_SMOOTH),
gsSPSetGeometryMode(G_ZBUFFER | G_SHADE | G_LIGHTING | G_SHADING_SMOOTH),
gsSPEndDisplayList(),
}

Referenced by appendGfx_animator().

◆ Gfx_RM3_ALPHATEST

Gfx Gfx_RM3_ALPHATEST
extern
Initial value:
= {
gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_TEX_EDGE2),
gsDPSetCycleType(G_CYC_2CYCLE),
gsSPClearGeometryMode(G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | G_LOD | G_SHADING_SMOOTH),
gsSPSetGeometryMode(G_ZBUFFER | G_SHADE | G_FOG | G_LIGHTING | G_SHADING_SMOOTH),
gsSPEndDisplayList(),
}

Referenced by appendGfx_animator().

◆ Gfx_RM3_DECAL_OPA

Gfx Gfx_RM3_DECAL_OPA
extern
Initial value:
= {
gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_OPA_DECAL2),
gsDPSetCycleType(G_CYC_2CYCLE),
gsSPClearGeometryMode(G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | G_LOD | G_SHADING_SMOOTH),
gsSPSetGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BACK | G_FOG | G_LIGHTING | G_SHADING_SMOOTH),
gsSPEndDisplayList(),
}

Referenced by appendGfx_animator().

◆ Gfx_RM3_DECAL_XLU

Gfx Gfx_RM3_DECAL_XLU
extern
Initial value:
= {
gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_XLU_DECAL2),
gsDPSetCycleType(G_CYC_2CYCLE),
gsSPClearGeometryMode(G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | G_LOD | G_SHADING_SMOOTH),
gsSPSetGeometryMode(G_ZBUFFER | G_SHADE | G_FOG | G_LIGHTING | G_SHADING_SMOOTH),
gsSPEndDisplayList(),
}

Referenced by appendGfx_animator().

◆ Gfx_RM3_INTERSECTING_OPA

Gfx Gfx_RM3_INTERSECTING_OPA
extern
Initial value:
= {
gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_OPA_INTER2),
gsDPSetCycleType(G_CYC_2CYCLE),
gsSPClearGeometryMode(G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | G_LOD | G_SHADING_SMOOTH),
gsSPSetGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BACK | G_FOG | G_LIGHTING | G_SHADING_SMOOTH),
gsSPEndDisplayList(),
}

Referenced by appendGfx_animator().

◆ Gfx_RM3_INTERSECTING_XLU

Gfx Gfx_RM3_INTERSECTING_XLU
extern
Initial value:
= {
gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_XLU_INTER2),
gsDPSetCycleType(G_CYC_2CYCLE),
gsSPClearGeometryMode(G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | G_LOD | G_SHADING_SMOOTH),
gsSPSetGeometryMode(G_ZBUFFER | G_SHADE | G_FOG | G_LIGHTING | G_SHADING_SMOOTH),
gsSPEndDisplayList(),
}

Referenced by appendGfx_animator().

◆ Gfx_RM3_SURFACE_OPA

Gfx Gfx_RM3_SURFACE_OPA
extern
Initial value:
= {
gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_OPA_SURF2),
gsDPSetCycleType(G_CYC_2CYCLE),
gsSPClearGeometryMode(G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | G_LOD | G_SHADING_SMOOTH),
gsSPSetGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BACK | G_FOG | G_LIGHTING | G_SHADING_SMOOTH),
gsSPEndDisplayList(),
}

Referenced by appendGfx_animator().

◆ Gfx_RM3_SURFACE_XLU

Gfx Gfx_RM3_SURFACE_XLU
extern
Initial value:
= {
gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_XLU_SURF2),
gsDPSetCycleType(G_CYC_2CYCLE),
gsSPClearGeometryMode(G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | G_LOD | G_SHADING_SMOOTH),
gsSPSetGeometryMode(G_ZBUFFER | G_SHADE | G_FOG | G_LIGHTING | G_SHADING_SMOOTH),
gsSPEndDisplayList(),
}

Referenced by appendGfx_animator().