SSBM Decomp
Loading...
Searching...
No Matches
pobj.c File Reference
#include "pobj.h"
#include "aobj.h"
#include "class.h"
#include "debug.h"
#include "displayfunc.h"
#include "id.h"
#include "jobj.h"
#include "memory.h"
#include "mtx.h"
#include "perf.h"
#include "state.h"
#include "tobj.h"
#include "util.h"
#include "forward.h"
#include <__mem.h>
#include <math.h>
#include <dolphin/gx.h>
#include <dolphin/mtx.h>
#include <dolphin/os.h>

Macros

#define pobj_min(x, y)

Functions

static void PObjInfoInit (void)
u32 HSD_PObjGetFlags (HSD_PObj *pobj)
void HSD_PObjRemoveAnimByFlags (HSD_PObj *pobj, u32 flags)
void HSD_PObjRemoveAnimAllByFlags (HSD_PObj *pobj, u32 flags)
void HSD_PObjAddAnim (HSD_PObj *pobj, HSD_ShapeAnim *shapeanim)
void HSD_PObjAddAnimAll (HSD_PObj *pobj, HSD_ShapeAnim *shapeanim)
void HSD_PObjReqAnimByFlags (HSD_PObj *pobj, f32 startframe, u32 flags)
void HSD_PObjReqAnimAllByFlags (HSD_PObj *pobj, f32 startframe, u32 flags)
static void ShapeSetSetAnimResult (HSD_ShapeSet *shape_set, u32 type, HSD_ObjData *val)
static void PObjUpdateFunc (void *obj, int type, HSD_ObjData *val)
void HSD_PObjAnim (HSD_PObj *pobj)
void HSD_PObjAnimAll (HSD_PObj *pobj)
static HSD_EnvelopeHSD_EnvelopeAlloc (void)
static void HSD_EnvelopeFree (HSD_Envelope *env)
static void HSD_EnvelopeListFree (HSD_SList *list)
static HSD_SListloadEnvelopeDesc (HSD_EnvelopeDesc **edesc_p)
static void HSD_ShapeSetFree (HSD_ShapeSet *shape_set)
static void HSD_ShapeSetRemove (HSD_ShapeSet *shape_set)
static HSD_ShapeSetloadShapeSetDesc (HSD_ShapeSetDesc *sdesc)
static s32 PObjLoad (HSD_PObj *pobj, HSD_PObjDesc *desc)
HSD_PObjHSD_PObjLoadDesc (HSD_PObjDesc *pobjdesc)
void HSD_PObjRemove (HSD_PObj *pobj)
void HSD_PObjRemoveAll (HSD_PObj *pobj)
HSD_PObjInfoHSD_PObjGetDefaultClass (void)
void HSD_PObjSetDefaultClass (HSD_PObjInfo *info)
HSD_PObjHSD_PObjAlloc (void)
void HSD_PObjFree (HSD_PObj *pobj)
static void resolveEnvelope (HSD_SList *list, HSD_EnvelopeDesc **edesc_p)
void HSD_PObjResolveRefs (HSD_PObj *pobj, HSD_PObjDesc *pdesc)
void HSD_PObjResolveRefsAll (HSD_PObj *pobj, HSD_PObjDesc *pdesc)
void HSD_ClearVtxDesc (void)
static void setupArrayDesc (HSD_VtxDescList *desc_list)
static void setupVtxDesc (HSD_PObj *pobj)
static void setupShapeAnimArrayDesc (HSD_VtxDescList *desc_list)
static void setupShapeAnimVtxDesc (HSD_PObj *pobj)
static void get_shape_vertex_xyz (HSD_ShapeSet *shape_set, int shape_id, int arrayidx, f32 dst[3])
static void get_shape_normal_xyz (HSD_ShapeSet *shape_set, int shape_id, int arrayidx, float dst[3])
static void get_shape_nbt_xyz (HSD_ShapeSet *shape_set, int shape_id, int arrayidx, float *dst)
 https://decomp.me/scratch/aleJ2
static void interpretShapeAnimDisplayList (HSD_PObj *pobj, float(*vertex)[3], float(*normal)[3])
static void drawShapeAnim (HSD_PObj *pobj)
void HSD_PObjClearMtxMark (void *obj, u32 mark)
void HSD_PObjSetMtxMark (int idx, void *obj, u32 mark)
void HSD_PObjGetMtxMark (int idx, void **obj, u32 *mark)
static PObjSetupFlag GetSetupFlags (HSD_JObj *jobj, u32 rendermode)
static void SetupRigidModelMtx (HSD_PObj *pobj, Mtx vmtx, Mtx pmtx, u32 rendermode)
static void SetupSharedVtxModelMtx (HSD_PObj *pobj, Mtx vmtx, Mtx pmtx, u32 rendermode)
static void SetupEnvelopeModelMtx (HSD_PObj *pobj, Mtx vmtx, Mtx pmtx, u32 rendermode)
static void PObjSetupMtx (HSD_PObj *pobj, Mtx vmtx, Mtx pmtx, u32 rendermode)
static void PObjDispSimplePrimitive (HSD_PObj *pobj, u32 rendermode)
static void PObjDispShapeAnim (HSD_PObj *pobj, u32 rendermode)
void HSD_PObjDisp (HSD_PObj *pobj, Mtx vmtx, Mtx pmtx, u32 rendermode)
static void PObjRelease (HSD_Class *o)
static void PObjAmnesia (HSD_ClassInfo *info)

Variables

HSD_PObjInfo hsdPObj = { PObjInfoInit }
static HSD_PObjInfodefault_class = NULL
static f32(* vertex_buffer )[3] = NULL
static f32(* normal_buffer )[3] = NULL
static u32 vertex_buffer_size = 0
static u32 normal_buffer_size = 0
static HSD_VtxDescListprev_vtxdesclist_array = NULL
static HSD_VtxDescListprev_vtxdesc = NULL
struct { 
   void *   obj 
   u32   mark 
mtx_mark [2]

Macro Definition Documentation

◆ pobj_min

#define pobj_min ( x,
y )
Value:
(x < y ? x : y)

Function Documentation

◆ PObjInfoInit()

void PObjInfoInit ( void )
static
Todo
Several differently-signed comparisons appear in asserts, likely indicating the sign of one of the variables is declared incorrectly

◆ HSD_PObjGetFlags()

u32 HSD_PObjGetFlags ( HSD_PObj * pobj)

◆ HSD_PObjRemoveAnimByFlags()

void HSD_PObjRemoveAnimByFlags ( HSD_PObj * pobj,
u32 flags )

◆ HSD_PObjRemoveAnimAllByFlags()

void HSD_PObjRemoveAnimAllByFlags ( HSD_PObj * pobj,
u32 flags )

◆ HSD_PObjAddAnim()

void HSD_PObjAddAnim ( HSD_PObj * pobj,
HSD_ShapeAnim * shapeanim )

◆ HSD_PObjAddAnimAll()

void HSD_PObjAddAnimAll ( HSD_PObj * pobj,
HSD_ShapeAnim * shapeanim )

◆ HSD_PObjReqAnimByFlags()

void HSD_PObjReqAnimByFlags ( HSD_PObj * pobj,
f32 startframe,
u32 flags )

◆ HSD_PObjReqAnimAllByFlags()

void HSD_PObjReqAnimAllByFlags ( HSD_PObj * pobj,
f32 startframe,
u32 flags )

◆ ShapeSetSetAnimResult()

void ShapeSetSetAnimResult ( HSD_ShapeSet * shape_set,
u32 type,
HSD_ObjData * val )
static

◆ PObjUpdateFunc()

void PObjUpdateFunc ( void * obj,
int type,
HSD_ObjData * val )
static

◆ HSD_PObjAnim()

void HSD_PObjAnim ( HSD_PObj * pobj)

◆ HSD_PObjAnimAll()

void HSD_PObjAnimAll ( HSD_PObj * pobj)

◆ HSD_EnvelopeAlloc()

HSD_Envelope * HSD_EnvelopeAlloc ( void )
static

◆ HSD_EnvelopeFree()

void HSD_EnvelopeFree ( HSD_Envelope * env)
static

◆ HSD_EnvelopeListFree()

void HSD_EnvelopeListFree ( HSD_SList * list)
static

◆ loadEnvelopeDesc()

HSD_SList * loadEnvelopeDesc ( HSD_EnvelopeDesc ** edesc_p)
static

◆ HSD_ShapeSetFree()

void HSD_ShapeSetFree ( HSD_ShapeSet * shape_set)
static

◆ HSD_ShapeSetRemove()

void HSD_ShapeSetRemove ( HSD_ShapeSet * shape_set)
static

◆ loadShapeSetDesc()

HSD_ShapeSet * loadShapeSetDesc ( HSD_ShapeSetDesc * sdesc)
static

◆ PObjLoad()

s32 PObjLoad ( HSD_PObj * pobj,
HSD_PObjDesc * desc )
static

◆ HSD_PObjLoadDesc()

HSD_PObj * HSD_PObjLoadDesc ( HSD_PObjDesc * pobjdesc)

◆ HSD_PObjRemove()

void HSD_PObjRemove ( HSD_PObj * pobj)

◆ HSD_PObjRemoveAll()

void HSD_PObjRemoveAll ( HSD_PObj * pobj)

◆ HSD_PObjGetDefaultClass()

HSD_PObjInfo * HSD_PObjGetDefaultClass ( void )

◆ HSD_PObjSetDefaultClass()

void HSD_PObjSetDefaultClass ( HSD_PObjInfo * info)

◆ HSD_PObjAlloc()

HSD_PObj * HSD_PObjAlloc ( void )

◆ HSD_PObjFree()

void HSD_PObjFree ( HSD_PObj * pobj)

◆ resolveEnvelope()

void resolveEnvelope ( HSD_SList * list,
HSD_EnvelopeDesc ** edesc_p )
static

◆ HSD_PObjResolveRefs()

void HSD_PObjResolveRefs ( HSD_PObj * pobj,
HSD_PObjDesc * pdesc )

◆ HSD_PObjResolveRefsAll()

void HSD_PObjResolveRefsAll ( HSD_PObj * pobj,
HSD_PObjDesc * pdesc )

◆ HSD_ClearVtxDesc()

void HSD_ClearVtxDesc ( void )

◆ setupArrayDesc()

void setupArrayDesc ( HSD_VtxDescList * desc_list)
static

◆ setupVtxDesc()

void setupVtxDesc ( HSD_PObj * pobj)
static

◆ setupShapeAnimArrayDesc()

void setupShapeAnimArrayDesc ( HSD_VtxDescList * desc_list)
static

◆ setupShapeAnimVtxDesc()

void setupShapeAnimVtxDesc ( HSD_PObj * pobj)
static

◆ get_shape_vertex_xyz()

void get_shape_vertex_xyz ( HSD_ShapeSet * shape_set,
int shape_id,
int arrayidx,
f32 dst[3] )
static

◆ get_shape_normal_xyz()

void get_shape_normal_xyz ( HSD_ShapeSet * shape_set,
int shape_id,
int arrayidx,
float dst[3] )
static

◆ get_shape_nbt_xyz()

void get_shape_nbt_xyz ( HSD_ShapeSet * shape_set,
int shape_id,
int arrayidx,
float * dst )
static

◆ interpretShapeAnimDisplayList()

void interpretShapeAnimDisplayList ( HSD_PObj * pobj,
float(*) vertex[3],
float(*) normal[3] )
static

◆ drawShapeAnim()

void drawShapeAnim ( HSD_PObj * pobj)
static

◆ HSD_PObjClearMtxMark()

void HSD_PObjClearMtxMark ( void * obj,
u32 mark )

◆ HSD_PObjSetMtxMark()

void HSD_PObjSetMtxMark ( int idx,
void * obj,
u32 mark )

◆ HSD_PObjGetMtxMark()

void HSD_PObjGetMtxMark ( int idx,
void ** obj,
u32 * mark )

◆ GetSetupFlags()

PObjSetupFlag GetSetupFlags ( HSD_JObj * jobj,
u32 rendermode )
static

◆ SetupRigidModelMtx()

void SetupRigidModelMtx ( HSD_PObj * pobj,
Mtx vmtx,
Mtx pmtx,
u32 rendermode )
static

◆ SetupSharedVtxModelMtx()

void SetupSharedVtxModelMtx ( HSD_PObj * pobj,
Mtx vmtx,
Mtx pmtx,
u32 rendermode )
static
Todo
Unused stack

◆ SetupEnvelopeModelMtx()

void SetupEnvelopeModelMtx ( HSD_PObj * pobj,
Mtx vmtx,
Mtx pmtx,
u32 rendermode )
static

◆ PObjSetupMtx()

void PObjSetupMtx ( HSD_PObj * pobj,
Mtx vmtx,
Mtx pmtx,
u32 rendermode )
static

◆ PObjDispSimplePrimitive()

void PObjDispSimplePrimitive ( HSD_PObj * pobj,
u32 rendermode )
static

◆ PObjDispShapeAnim()

void PObjDispShapeAnim ( HSD_PObj * pobj,
u32 rendermode )
static

◆ HSD_PObjDisp()

void HSD_PObjDisp ( HSD_PObj * pobj,
Mtx vmtx,
Mtx pmtx,
u32 rendermode )

◆ PObjRelease()

void PObjRelease ( HSD_Class * o)
static

◆ PObjAmnesia()

void PObjAmnesia ( HSD_ClassInfo * info)
static

Variable Documentation

◆ hsdPObj

HSD_PObjInfo hsdPObj = { PObjInfoInit }

◆ default_class

HSD_PObjInfo* default_class = NULL
static

◆ vertex_buffer

f32(* vertex_buffer)[3] = NULL
static

◆ normal_buffer

f32(* normal_buffer)[3] = NULL
static

◆ vertex_buffer_size

u32 vertex_buffer_size = 0
static

◆ normal_buffer_size

u32 normal_buffer_size = 0
static

◆ prev_vtxdesclist_array

HSD_VtxDescList* prev_vtxdesclist_array = NULL
static

◆ prev_vtxdesc

HSD_VtxDescList* prev_vtxdesc = NULL
static

◆ obj

void* obj

◆ mark

u32 mark

◆ [struct]

struct { ... } mtx_mark[2]