SSBM Decomp
Loading...
Searching...
No Matches
jobj.c File Reference
#include "jobj.h"
#include "aobj.h"
#include "class.h"
#include "cobj.h"
#include "displayfunc.h"
#include "dobj.h"
#include "fobj.h"
#include "id.h"
#include "math.h"
#include "mobj.h"
#include "mtx.h"
#include "pobj.h"
#include "robj.h"
#include "spline.h"
#include <__mem.h>
#include <trigf.h>
#include <dolphin/mtx/mtxvec.h>
#include <dolphin/mtx/vec.h>
#include <dolphin/os.h>

Typedefs

typedef void(* ufc_callback) (HSD_JObj *, u32, f32)
 

Functions

void JObjInfoInit (void)
 
void HSD_JObjCheckDepend (HSD_JObj *jobj)
 
void JObjResetRST (HSD_JObj *jobj, HSD_Joint *joint)
 
void HSD_JObjResetRST (HSD_JObj *jobj, HSD_Joint *joint)
 
void HSD_JObjWalkTree0 (HSD_JObj *jobj, HSD_JObjWalkTreeCallback cb, f32 **cb_args)
 
void HSD_JObjWalkTree (HSD_JObj *jobj, HSD_JObjWalkTreeCallback cb, f32 **cb_args)
 
bool has_scl (HSD_JObj *jobj)
 
void HSD_JObjMakeMatrix (HSD_JObj *jobj)
 
void HSD_JObjRemoveAnimByFlags (HSD_JObj *jobj, u32 flags)
 
void HSD_JObjRemoveAnimAllByFlags (HSD_JObj *jobj, u32 flags)
 
void HSD_JObjRemoveAnim (HSD_JObj *jobj)
 
void HSD_JObjRemoveAnimAll (HSD_JObj *jobj)
 
void HSD_JObjReqAnimByFlags (HSD_JObj *jobj, u32 flags, f32 frame)
 
void HSD_JObjReqAnimAllByFlags (HSD_JObj *jobj, u32 flags, f32 frame)
 
void HSD_JObjReqAnimAll (HSD_JObj *jobj, f32 frame)
 
void HSD_JObjReqAnim (HSD_JObj *jobj, f32 frame)
 
void JObjSortAnim (HSD_AObj *aobj)
 
void HSD_JObjAddAnim (HSD_JObj *jobj, HSD_AnimJoint *an_joint, HSD_MatAnimJoint *mat_joint, HSD_ShapeAnimJoint *sh_joint)
 
void HSD_JObjAddAnimAll (HSD_JObj *jobj, HSD_AnimJoint *ajoint, HSD_MatAnimJoint *mjoint, HSD_ShapeAnimJoint *sjoint)
 
void JObjUpdateFunc (void *obj, enum_t type, HSD_ObjData *val)
 
void HSD_JObjAnim (HSD_JObj *jobj)
 
void JObjAnimAll (HSD_JObj *jobj)
 
void HSD_JObjAnimAll (HSD_JObj *jobj)
 
MtxPtr HSD_CObjGetViewMtx (HSD_CObj *cobj)
 
void HSD_JObjDispAll (HSD_JObj *jobj, Mtx vmtx, u32 flags, u32 rendermode)
 
void HSD_JObjSetDefaultClass (HSD_ClassInfo *info)
 
HSD_JObjJObjLoadJointSub (HSD_Joint *joint, HSD_JObj *parent)
 
s32 JObjLoad (HSD_JObj *jobj, HSD_Joint *joint, HSD_JObj *parent)
 
HSD_JObjHSD_JObjLoadJoint (HSD_Joint *arg0)
 
void HSD_JObjResolveRefs (HSD_JObj *jobj, HSD_Joint *joint)
 
void HSD_JObjResolveRefsAll (HSD_JObj *jobj, HSD_Joint *joint)
 
void HSD_JObjUnref (HSD_JObj *jobj)
 
void HSD_JObjUnrefThis (HSD_JObj *jobj)
 
HSD_JObjHSD_JObjGetPrev (HSD_JObj *)
 
HSD_JObjHSD_JObjRemove (HSD_JObj *jobj)
 
void HSD_JObjRemoveAll (HSD_JObj *jobj)
 
void RecalcParentTrspBits (HSD_JObj *jobj)
 
static void UpdateParentTrspBits (HSD_JObj *jobj, HSD_JObj *child)
 
void HSD_JObjAddChild (HSD_JObj *jobj, HSD_JObj *child)
 
HSD_JObjHSD_JObjReparent (HSD_JObj *jobj, HSD_JObj *parent)
 
void HSD_JObjAddNext (HSD_JObj *jobj, HSD_JObj *next)
 
HSD_DObjHSD_JObjGetDObj (HSD_JObj *jobj)
 
void HSD_JObjAddDObj (HSD_JObj *jobj, HSD_DObj *dobj)
 
HSD_RObjrobj_set_next (HSD_RObj *robj, HSD_RObj *next)
 
void HSD_JObjPrependRObj (HSD_JObj *jobj, HSD_RObj *robj)
 
void HSD_JObjDeleteRObj (HSD_JObj *jobj, HSD_RObj *robj)
 
u32 HSD_JObjGetFlags (HSD_JObj *jobj)
 
void HSD_JObjSetFlags (HSD_JObj *jobj, u32 flags)
 
void HSD_JObjSetFlagsAll (HSD_JObj *jobj, u32 flags)
 
void HSD_JObjClearFlags (HSD_JObj *jobj, u32 arg1)
 
void HSD_JObjClearFlagsAll (HSD_JObj *jobj, u32 flags)
 
HSD_JObjHSD_JObjAlloc (void)
 
void HSD_JObjSetCurrent (HSD_JObj *jobj)
 
HSD_JObjHSD_JObjGetCurrent (void)
 
HSD_JObjjobj_get_joint2 (HSD_JObj *jobj)
 
HSD_JObjjobj_get_effector (HSD_JObj *jobj)
 
HSD_JObjjobj_get_effector_checked (HSD_JObj *eff)
 
void resolveIKJoint1 (HSD_JObj *jobj)
 
void resolveIKJoint2 (HSD_JObj *jobj)
 
void HSD_JObjSetupMatrixSub (HSD_JObj *jobj)
 
void HSD_JObjSetMtxDirtySub (HSD_JObj *jobj)
 
void HSD_JObjSetDPtclCallback (DPCtlCallback cb)
 
int JObjInit (HSD_Class *o)
 
void JObjReleaseChild (HSD_JObj *jobj)
 
void JObjRelease (HSD_Class *o)
 
void JObjAmnesia (HSD_ClassInfo *info)
 
void HSD_JObjDispSub (HSD_JObj *jobj, MtxPtr vmtx, MtxPtr pmtx, HSD_TrspMask trsp_mask, u32 rendermode)
 
void HSD_JObjMakePositionMtx (HSD_JObj *jobj, MtxPtr mtx, MtxPtr rmtx)
 

Variables

HSD_JObjInfo hsdJObj = { JObjInfoInit }
 
static HSD_ClassInfodefault_class
 
static HSD_SListufc_callbacks
 
static void(* dptcl_callback )(int, int lo, int hi, HSD_JObj *jobj)
 
static void(* jsound_callback )(s32)
 
static void(* ptcltgt_callback )(HSD_JObj *, s32)
 
static HSD_JObjcurrent_jobj
 
static char unused1 [] = "jobj_root"
 
static char unused2 [] = "jobj_root == NULL"
 
const Vec3 HSD_JObj_803B94C4 = { 0.0F, 0.0F, 0.0F }
 
const Vec3 HSD_JObj_803B94D0 = { 1.0F, 1.0F, 1.0F }
 
static char unused3 [] = "jobj[%d,%d]"
 
static char unused4 [] = "SKELETON_ROOT "
 
static char unused5 [] = "SKELETON "
 
static char unused6 [] = "ENVELOPE_MODEL "
 
static char unused7 [] = "EFFECTOR "
 
static char unused8 [] = " rot(L): "
 
static char unused9 [] = " sca(L): "
 
static char unused10 [] = " tra(L): "
 
static char unused11 [] = " rot(G): "
 
static char unused12 [] = " sca(G): "
 
static char unused13 [] = " tra(G): "
 
static u32 unused14 [6] = { 0 }
 

Typedef Documentation

◆ ufc_callback

typedef void(* ufc_callback) (HSD_JObj *, u32, f32)

Function Documentation

◆ JObjInfoInit()

void JObjInfoInit ( void  )

◆ HSD_JObjCheckDepend()

void HSD_JObjCheckDepend ( HSD_JObj jobj)

◆ JObjResetRST()

void JObjResetRST ( HSD_JObj jobj,
HSD_Joint joint 
)

◆ HSD_JObjResetRST()

void HSD_JObjResetRST ( HSD_JObj jobj,
HSD_Joint joint 
)

◆ HSD_JObjWalkTree0()

void HSD_JObjWalkTree0 ( HSD_JObj jobj,
HSD_JObjWalkTreeCallback  cb,
f32 **  cb_args 
)

◆ HSD_JObjWalkTree()

void HSD_JObjWalkTree ( HSD_JObj jobj,
HSD_JObjWalkTreeCallback  cb,
f32 **  cb_args 
)

◆ has_scl()

bool has_scl ( HSD_JObj jobj)
inline

◆ HSD_JObjMakeMatrix()

void HSD_JObjMakeMatrix ( HSD_JObj jobj)

◆ HSD_JObjRemoveAnimByFlags()

void HSD_JObjRemoveAnimByFlags ( HSD_JObj jobj,
u32  flags 
)

◆ HSD_JObjRemoveAnimAllByFlags()

void HSD_JObjRemoveAnimAllByFlags ( HSD_JObj jobj,
u32  flags 
)

◆ HSD_JObjRemoveAnim()

void HSD_JObjRemoveAnim ( HSD_JObj jobj)

◆ HSD_JObjRemoveAnimAll()

void HSD_JObjRemoveAnimAll ( HSD_JObj jobj)

◆ HSD_JObjReqAnimByFlags()

void HSD_JObjReqAnimByFlags ( HSD_JObj jobj,
u32  flags,
f32  frame 
)

◆ HSD_JObjReqAnimAllByFlags()

void HSD_JObjReqAnimAllByFlags ( HSD_JObj jobj,
u32  flags,
f32  frame 
)

◆ HSD_JObjReqAnimAll()

void HSD_JObjReqAnimAll ( HSD_JObj jobj,
f32  frame 
)

◆ HSD_JObjReqAnim()

void HSD_JObjReqAnim ( HSD_JObj jobj,
f32  frame 
)

◆ JObjSortAnim()

void JObjSortAnim ( HSD_AObj aobj)

◆ HSD_JObjAddAnim()

void HSD_JObjAddAnim ( HSD_JObj jobj,
HSD_AnimJoint an_joint,
HSD_MatAnimJoint mat_joint,
HSD_ShapeAnimJoint sh_joint 
)

◆ HSD_JObjAddAnimAll()

void HSD_JObjAddAnimAll ( HSD_JObj jobj,
HSD_AnimJoint ajoint,
HSD_MatAnimJoint mjoint,
HSD_ShapeAnimJoint sjoint 
)

◆ JObjUpdateFunc()

void JObjUpdateFunc ( void *  obj,
enum_t  type,
HSD_ObjData val 
)

◆ HSD_JObjAnim()

void HSD_JObjAnim ( HSD_JObj jobj)

◆ JObjAnimAll()

void JObjAnimAll ( HSD_JObj jobj)

◆ HSD_JObjAnimAll()

void HSD_JObjAnimAll ( HSD_JObj jobj)

◆ HSD_CObjGetViewMtx()

MtxPtr HSD_CObjGetViewMtx ( HSD_CObj cobj)
inline

◆ HSD_JObjDispAll()

void HSD_JObjDispAll ( HSD_JObj jobj,
Mtx  vmtx,
u32  flags,
u32  rendermode 
)

◆ HSD_JObjSetDefaultClass()

void HSD_JObjSetDefaultClass ( HSD_ClassInfo info)

◆ JObjLoadJointSub()

HSD_JObj * JObjLoadJointSub ( HSD_Joint joint,
HSD_JObj parent 
)
inline

◆ JObjLoad()

s32 JObjLoad ( HSD_JObj jobj,
HSD_Joint joint,
HSD_JObj parent 
)

◆ HSD_JObjLoadJoint()

HSD_JObj * HSD_JObjLoadJoint ( HSD_Joint arg0)

◆ HSD_JObjResolveRefs()

void HSD_JObjResolveRefs ( HSD_JObj jobj,
HSD_Joint joint 
)

◆ HSD_JObjResolveRefsAll()

void HSD_JObjResolveRefsAll ( HSD_JObj jobj,
HSD_Joint joint 
)

◆ HSD_JObjUnref()

void HSD_JObjUnref ( HSD_JObj jobj)

◆ HSD_JObjUnrefThis()

void HSD_JObjUnrefThis ( HSD_JObj jobj)

◆ HSD_JObjGetPrev()

HSD_JObj * HSD_JObjGetPrev ( HSD_JObj jobj)

◆ HSD_JObjRemove()

HSD_JObj * HSD_JObjRemove ( HSD_JObj jobj)

◆ HSD_JObjRemoveAll()

void HSD_JObjRemoveAll ( HSD_JObj jobj)
Todo:
Regswaps

◆ RecalcParentTrspBits()

void RecalcParentTrspBits ( HSD_JObj jobj)

◆ UpdateParentTrspBits()

static void UpdateParentTrspBits ( HSD_JObj jobj,
HSD_JObj child 
)
static

◆ HSD_JObjAddChild()

void HSD_JObjAddChild ( HSD_JObj jobj,
HSD_JObj child 
)

◆ HSD_JObjReparent()

HSD_JObj * HSD_JObjReparent ( HSD_JObj jobj,
HSD_JObj parent 
)

◆ HSD_JObjAddNext()

void HSD_JObjAddNext ( HSD_JObj jobj,
HSD_JObj next 
)

◆ HSD_JObjGetDObj()

HSD_DObj * HSD_JObjGetDObj ( HSD_JObj jobj)

◆ HSD_JObjAddDObj()

void HSD_JObjAddDObj ( HSD_JObj jobj,
HSD_DObj dobj 
)

◆ robj_set_next()

HSD_RObj * robj_set_next ( HSD_RObj robj,
HSD_RObj next 
)
inline

◆ HSD_JObjPrependRObj()

void HSD_JObjPrependRObj ( HSD_JObj jobj,
HSD_RObj robj 
)

◆ HSD_JObjDeleteRObj()

void HSD_JObjDeleteRObj ( HSD_JObj jobj,
HSD_RObj robj 
)

◆ HSD_JObjGetFlags()

u32 HSD_JObjGetFlags ( HSD_JObj jobj)

◆ HSD_JObjSetFlags()

void HSD_JObjSetFlags ( HSD_JObj jobj,
u32  flags 
)

◆ HSD_JObjSetFlagsAll()

void HSD_JObjSetFlagsAll ( HSD_JObj jobj,
u32  flags 
)

◆ HSD_JObjClearFlags()

void HSD_JObjClearFlags ( HSD_JObj jobj,
u32  arg1 
)

◆ HSD_JObjClearFlagsAll()

void HSD_JObjClearFlagsAll ( HSD_JObj jobj,
u32  flags 
)

◆ HSD_JObjAlloc()

HSD_JObj * HSD_JObjAlloc ( void  )

◆ HSD_JObjSetCurrent()

void HSD_JObjSetCurrent ( HSD_JObj jobj)

◆ HSD_JObjGetCurrent()

HSD_JObj * HSD_JObjGetCurrent ( void  )

◆ jobj_get_joint2()

HSD_JObj * jobj_get_joint2 ( HSD_JObj jobj)
inline

◆ jobj_get_effector()

HSD_JObj * jobj_get_effector ( HSD_JObj jobj)
inline

◆ jobj_get_effector_checked()

HSD_JObj * jobj_get_effector_checked ( HSD_JObj eff)

◆ resolveIKJoint1()

void resolveIKJoint1 ( HSD_JObj jobj)
Todo:
Variables var_f27 and var_f28 are used uninitialized whenever 'if' condition is false.

◆ resolveIKJoint2()

void resolveIKJoint2 ( HSD_JObj jobj)

◆ HSD_JObjSetupMatrixSub()

void HSD_JObjSetupMatrixSub ( HSD_JObj jobj)

◆ HSD_JObjSetMtxDirtySub()

void HSD_JObjSetMtxDirtySub ( HSD_JObj jobj)

◆ HSD_JObjSetDPtclCallback()

void HSD_JObjSetDPtclCallback ( DPCtlCallback  cb)

◆ JObjInit()

int JObjInit ( HSD_Class o)

◆ JObjReleaseChild()

void JObjReleaseChild ( HSD_JObj jobj)

◆ JObjRelease()

void JObjRelease ( HSD_Class o)

◆ JObjAmnesia()

void JObjAmnesia ( HSD_ClassInfo info)

◆ HSD_JObjDispSub()

void HSD_JObjDispSub ( HSD_JObj jobj,
MtxPtr  vmtx,
MtxPtr  pmtx,
HSD_TrspMask  trsp_mask,
u32  rendermode 
)

◆ HSD_JObjMakePositionMtx()

void HSD_JObjMakePositionMtx ( HSD_JObj jobj,
MtxPtr  mtx,
MtxPtr  rmtx 
)

Variable Documentation

◆ hsdJObj

HSD_JObjInfo hsdJObj = { JObjInfoInit }

◆ default_class

HSD_ClassInfo* default_class
static

◆ ufc_callbacks

HSD_SList* ufc_callbacks
static

◆ dptcl_callback

void(* dptcl_callback) (int, int lo, int hi, HSD_JObj *jobj) ( int  ,
int  lo,
int  hi,
HSD_JObj jobj 
)
static

◆ jsound_callback

void(* jsound_callback) (s32) ( s32  )
static

◆ ptcltgt_callback

void(* ptcltgt_callback) (HSD_JObj *, s32) ( HSD_JObj ,
s32   
)
static

◆ current_jobj

HSD_JObj* current_jobj
static

◆ unused1

char unused1[] = "jobj_root"
static

◆ unused2

char unused2[] = "jobj_root == NULL"
static

◆ HSD_JObj_803B94C4

const Vec3 HSD_JObj_803B94C4 = { 0.0F, 0.0F, 0.0F }

◆ HSD_JObj_803B94D0

const Vec3 HSD_JObj_803B94D0 = { 1.0F, 1.0F, 1.0F }

◆ unused3

char unused3[] = "jobj[%d,%d]"
static

◆ unused4

char unused4[] = "SKELETON_ROOT "
static

◆ unused5

char unused5[] = "SKELETON "
static

◆ unused6

char unused6[] = "ENVELOPE_MODEL "
static

◆ unused7

char unused7[] = "EFFECTOR "
static

◆ unused8

char unused8[] = " rot(L): "
static

◆ unused9

char unused9[] = " sca(L): "
static

◆ unused10

char unused10[] = " tra(L): "
static

◆ unused11

char unused11[] = " rot(G): "
static

◆ unused12

char unused12[] = " sca(G): "
static

◆ unused13

char unused13[] = " tra(G): "
static

◆ unused14

u32 unused14[6] = { 0 }
static