papermario
Decompilation of Paper Mario
 
Loading...
Searching...
No Matches
model.h File Reference

Data Structures

union  ModelNodePropertyData
 
struct  ModelBoundingBox
 
struct  ModelNodeProperty
 
struct  ModelGroupData
 
struct  ModelDisplayData
 
struct  ModelNode
 
struct  Model
 
struct  ModelTransformGroup
 
struct  ModelIDList
 
struct  ModelLocalVertexCopy
 
struct  ModelTreeInfo
 
struct  TextureHandle
 
struct  ModelBlueprint
 
struct  ShapeFileHeader
 
struct  ShapeFile
 

Macros

#define SHAPE_SIZE_LIMIT   0x8000
 

Typedefs

typedef ModelModelList[256]
 
typedef ModelTransformGroupModelTransformGroupList[4]
 
typedef ModelLocalVertexCopyModelLocalVertexCopyList[16]
 
typedef void(* ModelCustomGfxBuilderFunc) (s32 index)
 
typedef Gfx * ModelCustomGfxList[32]
 
typedef ModelCustomGfxBuilderFunc ModelCustomGfxBuilderList[32]
 
typedef ModelTreeInfo ModelTreeInfoList[0x200]
 

Enumerations

enum  ModelPropertyKeys {
  MODEL_PROP_KEY_RENDER_MODE = 0x5C , MODEL_PROP_KEY_CAMERA_DATA = 0x5D , MODEL_PROP_KEY_TEXTURE_NAME = 0x5E , MODEL_PROP_KEY_SPECIAL = 0x5F ,
  MODEL_PROP_KEY_GROUP_INFO = 0x60 , MODEL_PROP_KEY_BOUNDING_BOX = 0x61 , MODEL_PROP_KEY_62 = 0x62
}
 
enum  ShapeTypes { SHAPE_TYPE_MODEL = 2 , SHAPE_TYPE_GROUP = 5 , SHAPE_TYPE_ROOT = 7 , SHAPE_TYPE_SPECIAL_GROUP = 10 }
 
enum  GroupTypes { GROUP_TYPE_0 = 0 , GROUP_TYPE_1 = 1 }
 
enum  ExtraTileTypes {
  EXTRA_TILE_NONE = 0 , EXTRA_TILE_MIPMAPS = 1 , EXTRA_TILE_AUX_SAME_AS_MAIN = 2 , EXTRA_TILE_AUX_INDEPENDENT = 3 ,
  EXTRA_TILE_4 = 4
}
 

Functions

void mdl_set_depth_tint_params (u8 primR, u8 primG, u8 primB, u8 primA, u8 fogR, u8 fogG, u8 fogB, s32 fogStart, s32 fogEnd)
 
void mdl_set_remap_tint_params (u8 primR, u8 primG, u8 primB, u8 envR, u8 envG, u8 envB)
 
void mdl_get_remap_tint_params (u8 *primR, u8 *primG, u8 *primB, u8 *envR, u8 *envG, u8 *envB)
 
void init_model_data (void)
 
void update_model_animator (s32)
 
void update_model_animator_with_transform (s32 animatorID, Mtx *mtx)
 
void set_mdl_custom_gfx_set (Model *, s32, u32)
 
ModelNodePropertyget_model_property (ModelNode *node, ModelPropertyKeys key)
 
void load_texture_variants (u32 romOffset, s32 textureID, s32 baseOffset, s32 size)
 
s32 step_model_animator (ModelAnimator *animator)
 
AnimatorNodeget_animator_node_for_tree_index (ModelAnimator *animator, s32 treeIndex)
 
AnimatorNodeget_animator_node_with_id (ModelAnimator *animator, s32 id)
 
void animator_update_model_transforms (ModelAnimator *animator, Mtx *rootTransform)
 
void render_animated_model (s32 animatorID, Mtx *rootTransform)
 
void animator_node_update_model_transform (ModelAnimator *animator, f32(*flipMtx)[4], AnimatorNode *node, Mtx *rootTransform)
 
void init_worker_list (void)
 
ModelAnimatorget_animator_by_index (s32 animModelID)
 
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)
 
void render_animated_model_with_vertices (s32 animatorID, Mtx *rootTransform, s32 segment, void *baseAddr)
 
void appendGfx_animator (ModelAnimator *animator)
 
ModelAnimatorset_animator_render_callback (s32 animModelID, void *callbackArg, void(*callbackFunc)(void *))
 
void reload_mesh_animator_tree (ModelAnimator *animator)
 
s32 step_mesh_animator (ModelAnimator *animator)
 
void set_custom_gfx_builders (s32 customGfxIndex, ModelCustomGfxBuilderFunc pre, ModelCustomGfxBuilderFunc post)
 
void mdl_make_local_vertex_copy (s32 arg0, u16 treeIdx, s32)
 
void play_model_animation_starting_from (s32 index, s16 *animPos, s32 framesToSkip)
 
void mdl_set_shroud_tint_params (u8 r, u8 g, u8 b, u8 a)
 

Variables

ModelTreeInfoListgCurrentModelTreeNodeInfo
 
ModelListgCurrentModels
 

Data Structure Documentation

◆ ModelNodePropertyData

union ModelNodePropertyData
Data Fields
f32 f
void * p
s32 s

◆ ModelBoundingBox

struct ModelBoundingBox
Data Fields
s32 halfSizeX
s32 halfSizeY
s32 halfSizeZ
s32 key
f32 maxX
f32 maxY
f32 maxZ
f32 minX
f32 minY
f32 minZ
char unk_0C[0x04]
char unk_18[0x04]
char unk_24[0x8]
char unk_30[0x8]
char unk_3C[0x8]

◆ ModelNodeProperty

struct ModelNodeProperty
Data Fields
ModelNodePropertyData data
s32 dataType
s32 key

◆ ModelGroupData

struct ModelGroupData
Data Fields
struct ModelNode ** childList
Lightsn * lightingGroup
s32 numChildren
s32 numLights
Mtx * transformMatrix

◆ ModelDisplayData

struct ModelDisplayData
Data Fields
Gfx * displayList
char unk_04[0x4]

◆ ModelNode

struct ModelNode
Data Fields
ModelDisplayData * displayData
struct ModelGroupData * groupData
s32 numProperties
ModelNodeProperty * propertyList
s32 type

◆ Model

struct Model
Data Fields
Mtx * bakedMtx
Vec3f center
u8 customGfxIndex
Mtx * finalMtx
u16 flags
ModelGroupData * groupData
u8 matrixFreshness
u16 modelID
ModelNode * modelNode
s8 renderMode
Mtx savedMtx
u8 texPannerID
u8 textureID
s8 textureVariation
char unk_14[4]
char unk_AA[6]
Matrix4f userTransformMtx

◆ ModelTransformGroup

struct ModelTransformGroup
Data Fields
Mtx * bakedMtx
ModelNode * baseModelNode
Vec3f center
Mtx * finalMtx
u16 flags
u16 groupModelID
u8 matrixFreshness
u8 maxChildModelIndex
u8 minChildModelIndex
u8 renderMode
Mtx savedMtx
Matrix4f userTransformMtx

◆ ModelIDList

struct ModelIDList
Data Fields
u16 count
u16 list[]

◆ ModelLocalVertexCopy

struct ModelLocalVertexCopy
Data Fields
Gfx * gfxCopy[2]
Vtx * minVertexAddr
s32 numVertices
s32 selector
Vtx * vtxCopy[2]

◆ ModelTreeInfo

struct ModelTreeInfo
Data Fields
u8 modelIndex
u8 textureID
u8 treeDepth
char unk_03

◆ TextureHandle

struct TextureHandle
Data Fields
u16 * auxPalette
u8 * auxRaster
Gfx * gfx
TextureHeader header
u16 * palette
u8 * raster

◆ ModelBlueprint

struct ModelBlueprint
Data Fields
s16 flags
ModelGroupData * groupData
ModelNode * mdlNode
Mtx * mtx
char unk_02[0x2]

◆ ShapeFileHeader

struct ShapeFileHeader
Data Fields
char ** colliderNames
char ** modelNames
unsigned char pad_14[0xC]
ModelNode * root
Vtx_t * vertexTable
char ** zoneNames

◆ ShapeFile

struct ShapeFile
Data Fields
u8 data[0x8000 - sizeof(ShapeFileHeader)]
ShapeFileHeader header

Macro Definition Documentation

◆ SHAPE_SIZE_LIMIT

#define SHAPE_SIZE_LIMIT   0x8000

Typedef Documentation

◆ ModelCustomGfxBuilderFunc

typedef void(* ModelCustomGfxBuilderFunc) (s32 index)

◆ ModelCustomGfxBuilderList

typedef ModelCustomGfxBuilderFunc ModelCustomGfxBuilderList[32]

◆ ModelCustomGfxList

typedef Gfx* ModelCustomGfxList[32]

◆ ModelList

typedef Model* ModelList[256]

◆ ModelLocalVertexCopyList

typedef ModelLocalVertexCopy* ModelLocalVertexCopyList[16]

◆ ModelTransformGroupList

typedef ModelTransformGroup* ModelTransformGroupList[4]

◆ ModelTreeInfoList

typedef ModelTreeInfo ModelTreeInfoList[0x200]

Enumeration Type Documentation

◆ ExtraTileTypes

Enumerator
EXTRA_TILE_NONE 
EXTRA_TILE_MIPMAPS 
EXTRA_TILE_AUX_SAME_AS_MAIN 
EXTRA_TILE_AUX_INDEPENDENT 
EXTRA_TILE_4 

◆ GroupTypes

enum GroupTypes
Enumerator
GROUP_TYPE_0 
GROUP_TYPE_1 

◆ ModelPropertyKeys

Enumerator
MODEL_PROP_KEY_RENDER_MODE 
MODEL_PROP_KEY_CAMERA_DATA 
MODEL_PROP_KEY_TEXTURE_NAME 
MODEL_PROP_KEY_SPECIAL 
MODEL_PROP_KEY_GROUP_INFO 
MODEL_PROP_KEY_BOUNDING_BOX 
MODEL_PROP_KEY_62 

◆ ShapeTypes

enum ShapeTypes
Enumerator
SHAPE_TYPE_MODEL 
SHAPE_TYPE_GROUP 
SHAPE_TYPE_ROOT 
SHAPE_TYPE_SPECIAL_GROUP 

Function Documentation

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

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

◆ get_animator_by_index()

◆ get_animator_node_for_tree_index()

AnimatorNode * get_animator_node_for_tree_index ( ModelAnimator * animator,
s32 treeIndex )

◆ get_animator_node_with_id()

AnimatorNode * get_animator_node_with_id ( ModelAnimator * animator,
s32 id )

◆ get_model_property()

◆ init_model_data()

void init_model_data ( void )

◆ init_worker_list()

void init_worker_list ( void )

◆ load_texture_variants()

void load_texture_variants ( u32 romOffset,
s32 textureID,
s32 baseOffset,
s32 size )

Referenced by load_texture_by_name().

◆ mdl_get_remap_tint_params()

void mdl_get_remap_tint_params ( u8 * primR,
u8 * primG,
u8 * primB,
u8 * envR,
u8 * envG,
u8 * envB )

◆ mdl_make_local_vertex_copy()

void mdl_make_local_vertex_copy ( s32 arg0,
u16 treeIdx,
s32 isMakingCopy )

◆ mdl_set_depth_tint_params()

void mdl_set_depth_tint_params ( u8 primR,
u8 primG,
u8 primB,
u8 primA,
u8 fogR,
u8 fogG,
u8 fogB,
s32 fogStart,
s32 fogEnd )

◆ mdl_set_remap_tint_params()

void mdl_set_remap_tint_params ( u8 primR,
u8 primG,
u8 primB,
u8 envR,
u8 envG,
u8 envB )

◆ mdl_set_shroud_tint_params()

void mdl_set_shroud_tint_params ( u8 r,
u8 g,
u8 b,
u8 a )

◆ play_model_animation_starting_from()

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

◆ 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_animator_render_callback()

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

Referenced by render_entities().

◆ set_custom_gfx_builders()

void set_custom_gfx_builders ( s32 customGfxIndex,
ModelCustomGfxBuilderFunc pre,
ModelCustomGfxBuilderFunc post )

◆ set_mdl_custom_gfx_set()

void set_mdl_custom_gfx_set ( Model * model,
s32 customGfxIndex,
u32 tintType )

Referenced by mdl_set_all_tint_type().

◆ 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

◆ gCurrentModels

◆ gCurrentModelTreeNodeInfo

ModelTreeInfoList* gCurrentModelTreeNodeInfo
extern