Super Mario 64 Source
A Super Mario 64 decompilation, brought to you by a bunch of clever folks.
Functions | Variables
joints.c File Reference
#include <ultra64.h>
#include <macros.h>
#include "gd_types.h"
#include "gd_macros.h"
#include "joints.h"
#include "gd_main.h"
#include "sfx.h"
#include "draw_objects.h"
#include "objects.h"
#include "skin_movement.h"
#include "dynlist_proc.h"
#include "debug_utils.h"
#include "skin.h"
#include "gd_math.h"
#include "renderer.h"

Functions

void set_joint_vecs (struct ObjJoint *, f32, f32, f32)
 
void Proc8018E520 (struct ObjJoint *self)
 
void Proc8018EBE8 (struct ObjJoint *self)
 
void Unknown8018EE5C (struct ObjJoint *j1, struct ObjJoint *j2, struct ObjJoint *j3)
 
struct ObjJointmake_joint (s32 flags, f32 x, f32 y, f32 z)
 
struct ObjJointmake_joint_withshape (struct ObjShape *shape, s32 flags, f32 x, f32 y, f32 z)
 
void func_8018F328 (struct ObjBone *b)
 
void Unknown8018F4CC (struct ObjJoint *j)
 
void func_8018F520 (struct ObjBone *b)
 
void func_8018F89C (struct ObjBone *b)
 
void Unknown8018FA68 (struct ObjBone *b)
 
s32 set_skin_weight (struct ObjJoint *j, s32 id, struct ObjVertex *vtx, f32 weight)
 
void func_8018FB58 (struct ObjBone *b)
 
void add_joint2bone (struct ObjBone *b, struct ObjJoint *j)
 
struct ObjBonemake_bone (s32 a0, struct ObjJoint *j1, struct ObjJoint *j2, UNUSED s32 a3)
 
void Unknown8018FF14 (UNUSED u32 a0)
 
void Unknown8018FF28 (struct ObjJoint *a0, struct ObjJoint *a1)
 
void Unknown8018FF88 (s32 size)
 
s32 func_8018FFE8 (struct ObjBone **a0, struct ObjJoint **a1, struct ObjJoint *a2, struct ObjJoint *a3)
 
void func_80190168 (struct ObjBone *b, UNUSED struct ObjJoint *a1, UNUSED struct ObjJoint *a2, struct GdVec3f *a3)
 
void func_801903E8 (struct ObjJoint *j, struct GdVec3f *a1, f32 x, f32 y, f32 z)
 
void func_80190574 (s32 a0, struct ObjJoint *a1, struct ObjJoint *a2, f32 x, f32 y, f32 z)
 
void func_801909B4 (void)
 
void Unknown80190A20 (void)
 
void func_80190B54 (struct ObjJoint *a0, struct ObjJoint *a1, struct GdVec3f *a2)
 
void Unknown80190E68 (struct GdObj *obj, f32 x, f32 y, f32 z)
 
f32 func_80190F3C (struct ObjJoint *a0, f32 a1, f32 a2, f32 a3)
 
void Unknown801911A8 (struct ObjJoint *j)
 
void Unknown80191220 (struct ObjJoint *j)
 
void Unknown801913C0 (struct ObjJoint *j)
 
void Unknown801913F0 (struct ObjJoint *j)
 
void Unknown801914F8 (UNUSED struct ObjJoint *j)
 
void Unknown8019150C (Mat4f *a0, struct GdVec3f *a1)
 
void func_80191604 (struct ObjJoint *j)
 
void Unknown80191824 (struct ObjJoint *j)
 
void Unknown801918F4 (struct ObjJoint *j)
 
void Unknown80191A1C (struct ObjBone *a0)
 
void Unknown80191BF8 (struct ObjJoint *j)
 
void Unknown80191D60 (struct ObjJoint *j)
 
void Unknown80191E54 (struct ObjJoint *j)
 
void func_80191E88 (struct ObjGroup *grp)
 
void reset_joint_counts (void)
 

Variables

static s32 D_801A82D0 = 0
 
static struct ObjBonegGdTempBone = NULL
 
s32 sTargetWeightID
 
static Mat4fD_801BA964
 
static struct GdVec3f D_801BA968
 
static s32 sJointCount
 
static s32 sJointNotF1Count
 
static s32 sBoneCount
 
static s32 sJointArrLen
 
static struct ObjJointsJointArr [10]
 
static struct GdVec3f sJointArrVecs [10]
 
static s32 sJointArr2Len
 
static struct ObjJointsJointArr2 [10]
 
static struct GdVec3f sJointArr2Vecs [10]
 
static struct GdVec3f D_801BAAD0
 
static struct GdVec3f D_801BAAE0
 

Function Documentation

◆ add_joint2bone()

void add_joint2bone ( struct ObjBone b,
struct ObjJoint j 
)

◆ func_8018F328()

void func_8018F328 ( struct ObjBone b)

◆ func_8018F520()

void func_8018F520 ( struct ObjBone b)

◆ func_8018F89C()

void func_8018F89C ( struct ObjBone b)

◆ func_8018FB58()

void func_8018FB58 ( struct ObjBone b)

◆ func_8018FFE8()

s32 func_8018FFE8 ( struct ObjBone **  a0,
struct ObjJoint **  a1,
struct ObjJoint a2,
struct ObjJoint a3 
)

◆ func_80190168()

void func_80190168 ( struct ObjBone b,
UNUSED struct ObjJoint a1,
UNUSED struct ObjJoint a2,
struct GdVec3f a3 
)

◆ func_801903E8()

void func_801903E8 ( struct ObjJoint j,
struct GdVec3f a1,
f32  x,
f32  y,
f32  z 
)

◆ func_80190574()

void func_80190574 ( s32  a0,
struct ObjJoint a1,
struct ObjJoint a2,
f32  x,
f32  y,
f32  z 
)

◆ func_801909B4()

void func_801909B4 ( void  )

◆ func_80190B54()

void func_80190B54 ( struct ObjJoint a0,
struct ObjJoint a1,
struct GdVec3f a2 
)

◆ func_80190F3C()

f32 func_80190F3C ( struct ObjJoint a0,
f32  a1,
f32  a2,
f32  a3 
)

◆ func_80191604()

void func_80191604 ( struct ObjJoint j)

◆ func_80191E88()

void func_80191E88 ( struct ObjGroup grp)

◆ make_bone()

struct ObjBone* make_bone ( s32  a0,
struct ObjJoint j1,
struct ObjJoint j2,
UNUSED s32  a3 
)

◆ make_joint()

struct ObjJoint* make_joint ( s32  flags,
f32  x,
f32  y,
f32  z 
)

◆ make_joint_withshape()

struct ObjJoint* make_joint_withshape ( struct ObjShape shape,
s32  flags,
f32  x,
f32  y,
f32  z 
)

◆ Proc8018E520()

void Proc8018E520 ( struct ObjJoint self)

◆ Proc8018EBE8()

void Proc8018EBE8 ( struct ObjJoint self)

◆ reset_joint_counts()

void reset_joint_counts ( void  )

◆ set_joint_vecs()

void set_joint_vecs ( struct ObjJoint j,
f32  x,
f32  y,
f32  z 
)

◆ set_skin_weight()

s32 set_skin_weight ( struct ObjJoint j,
s32  id,
struct ObjVertex vtx,
f32  weight 
)

◆ Unknown8018EE5C()

void Unknown8018EE5C ( struct ObjJoint j1,
struct ObjJoint j2,
struct ObjJoint j3 
)

◆ Unknown8018F4CC()

void Unknown8018F4CC ( struct ObjJoint j)

◆ Unknown8018FA68()

void Unknown8018FA68 ( struct ObjBone b)

◆ Unknown8018FF14()

void Unknown8018FF14 ( UNUSED u32  a0)

◆ Unknown8018FF28()

void Unknown8018FF28 ( struct ObjJoint a0,
struct ObjJoint a1 
)

◆ Unknown8018FF88()

void Unknown8018FF88 ( s32  size)

◆ Unknown80190A20()

void Unknown80190A20 ( void  )

◆ Unknown80190E68()

void Unknown80190E68 ( struct GdObj obj,
f32  x,
f32  y,
f32  z 
)

◆ Unknown801911A8()

void Unknown801911A8 ( struct ObjJoint j)

◆ Unknown80191220()

void Unknown80191220 ( struct ObjJoint j)

◆ Unknown801913C0()

void Unknown801913C0 ( struct ObjJoint j)

◆ Unknown801913F0()

void Unknown801913F0 ( struct ObjJoint j)

◆ Unknown801914F8()

void Unknown801914F8 ( UNUSED struct ObjJoint j)

◆ Unknown8019150C()

void Unknown8019150C ( Mat4f a0,
struct GdVec3f a1 
)

◆ Unknown80191824()

void Unknown80191824 ( struct ObjJoint j)

◆ Unknown801918F4()

void Unknown801918F4 ( struct ObjJoint j)

◆ Unknown80191A1C()

void Unknown80191A1C ( struct ObjBone a0)

◆ Unknown80191BF8()

void Unknown80191BF8 ( struct ObjJoint j)

◆ Unknown80191D60()

void Unknown80191D60 ( struct ObjJoint j)

◆ Unknown80191E54()

void Unknown80191E54 ( struct ObjJoint j)

Variable Documentation

◆ D_801A82D0

s32 D_801A82D0 = 0
static

◆ D_801BA964

Mat4f* D_801BA964
static

◆ D_801BA968

struct GdVec3f D_801BA968
static

◆ D_801BAAD0

struct GdVec3f D_801BAAD0
static

◆ D_801BAAE0

struct GdVec3f D_801BAAE0
static

◆ gGdTempBone

struct ObjBone* gGdTempBone = NULL
static

◆ sBoneCount

s32 sBoneCount
static

◆ sJointArr

struct ObjJoint* sJointArr[10]
static

◆ sJointArr2

struct ObjJoint* sJointArr2[10]
static

◆ sJointArr2Len

s32 sJointArr2Len
static

◆ sJointArr2Vecs

struct GdVec3f sJointArr2Vecs[10]
static

◆ sJointArrLen

s32 sJointArrLen
static

◆ sJointArrVecs

struct GdVec3f sJointArrVecs[10]
static

◆ sJointCount

s32 sJointCount
static

◆ sJointNotF1Count

s32 sJointNotF1Count
static

◆ sTargetWeightID

s32 sTargetWeightID