SSBM Decomp
Loading...
Searching...
No Matches
gobj.h
Go to the documentation of this file.
1#ifndef GALE01_390730
2#define GALE01_390730
3
4#include <Runtime/platform.h>
5
7
9
10#define HSD_GOBJ_GXLINK_NONE ((u8) 0xFF)
11#define HSD_GOBJ_OBJ_NONE 0xFF
12#define HSD_GOBJ_PLINK_MAX 63
13#define HSD_GOBJ_GX_LINK_MAX 63
14#define HSD_GOBJPROC_PRI_MAX 2
15
16typedef struct HSD_GObj {
17 /* +0 */ u16 classifier;
18 /* +2 */ u8 p_link;
19 /* +3 */ u8 gx_link;
20 /* +4 */ u8 p_priority;
22 /* +6 */ u8 obj_kind;
24 /* +8 */ HSD_GObj* next;
25 /* +C */ HSD_GObj* prev;
26 /* +10 */ HSD_GObj* next_gx;
27 /* +14 */ HSD_GObj* prev_gx;
28 /* +18 */ HSD_GObjProc* proc;
30 /* +20 */ u64 gxlink_prios;
31 /* +28 */ void* hsd_obj;
32 /* +2C */ void* user_data;
33 /* +30 */ void (*user_data_remove_func)(void* data);
34 /* +34 */ void* x34_unk;
35} HSD_GObj;
36
37typedef void (*GObjFunc)(HSD_Obj*);
38
44
45typedef struct _HSD_GObjLibInitDataType {
46 u8 p_link_max; // 804CE380
47 u8 gx_link_max; // 804CE381
48 u8 gproc_pri_max; // 804CE382
49 GObjFuncs* funcs; // 804CE384
50 u64* unk_2; // 804CE388
52
68
83extern s8 HSD_GObj_FogKind;
89
91
92void HSD_GObj_80390C5C(HSD_GObj* gobj);
93void HSD_GObj_80390C84(HSD_GObj* gobj);
94void HSD_GObj_80390CAC(HSD_GObj* gobj);
98HSD_GObj* GObj_Create(u16 classifier, u8 p_link, u8 priority);
100void HSD_GObj_80390CD4(HSD_GObj* gobj);
101void HSD_GObj_RunProcs(void);
102void HSD_GObj_80390FC0(void);
103void HSD_GObj_LObjCallback(HSD_GObj* gobj, intptr_t unused);
104void HSD_GObj_FogCallback(HSD_GObj* gobj, intptr_t unused);
105void HSD_GObj_80391120(HSD_Obj* obj);
106void HSD_GObj_803911C0(HSD_Obj* obj);
109void HSD_GObj_80390ED0(HSD_GObj* gobj, u32 mask);
111
112static inline void* HSD_GObjGetUserData(HSD_GObj* gobj)
113{
114 return gobj->user_data;
115}
116
117static inline void* HSD_GObjGetHSDObj(HSD_GObj* gobj)
118{
119 return gobj->hsd_obj;
120}
121
123{
124 return gobj->classifier;
125}
126
127static inline HSD_GObj* HSD_GObjGetNext(HSD_GObj* gobj)
128{
129 return gobj->next;
130}
131
132#define GET_COBJ(gobj) ((HSD_CObj*) HSD_GObjGetHSDObj(gobj))
133#define GET_FOG(gobj) ((HSD_Fog*) HSD_GObjGetHSDObj(gobj))
134#define GET_JOBJ(gobj) ((HSD_JObj*) HSD_GObjGetHSDObj(gobj))
135#define GET_LOBJ(gobj) ((HSD_LObj*) HSD_GObjGetHSDObj(gobj))
136
137#endif
HSD_GObjProc * HSD_GObj_CurrentInvokedProc
Definition gobj.c:11
HSD_ObjAllocData gobj_alloc_data
Definition gobj.c:186
HSD_GObj ** HSD_GObjGXLinkHead
Definition gobj.c:16
HSD_GObj * HSD_GObj_CurrentInvokedProcGObj
Definition gobj.c:18
struct _unk_gobj_struct HSD_GObj_DelayedProcInfo
Definition gobj.c:184
HSD_GObjProc ** HSD_GObj_GObjProcHead
Definition gobj.c:9
HSD_GObjProc * HSD_GObj_NextInvokedProc
Definition gobj.c:13
HSD_GObj * HSD_GObj_804D7814
Definition gobj.c:20
HSD_GObjProc ** HSD_GObj_ProcList
Definition gobj.c:8
GObjFunc * HSD_GObj_804D7810
Definition gobj.c:21
HSD_GObjLibInitDataType HSD_GObjLibInitData
Definition gobj.c:187
HSD_GObj ** plinklow_gobjs
Definition gobj.c:15
HSD_GObj ** HSD_GObj_804D7820
Definition gobj.c:17
s32 HSD_GObj_CurrentInvokedSLink
Definition gobj.c:12
HSD_ObjAllocData gobjproc_alloc_data
Definition gobj.c:185
HSD_GObj ** HSD_GObjPLinkHead
Definition gobj.c:14
HSD_GObj * HSD_GObj_804D7818
Definition gobj.c:19
s32 HSD_GObj_804D783C
Definition gobj.c:10
static HSD_GObj * HSD_GObjGetNext(HSD_GObj *gobj)
Definition gobj.h:127
u8 HSD_GObj_JObjKind
Definition hsd_3910.c:11
void HSD_GObj_LObjCallback(HSD_GObj *gobj, intptr_t unused)
Definition hsd_3910.c:27
u8 HSD_GObj_CameraKind
Definition hsd_3910.c:9
void HSD_GObj_80390CAC(HSD_GObj *gobj)
Definition gobj.c:51
void HSD_GObj_80390C5C(HSD_GObj *gobj)
Definition gobj.c:41
void HSD_GObj_80390CD4(HSD_GObj *gobj)
Definition gobj.c:56
void HSD_GObj_803911C0(HSD_Obj *obj)
Definition hsd_3910.c:59
s8 HSD_GObj_FogKind
Definition hsd_3910.c:12
u8 HSD_GObj_803912A8(HSD_GObjLibInitDataType *, GObjFuncs *)
Definition hsd_3910.c:73
void(* GObjFunc)(HSD_Obj *)
Definition gobj.h:37
void HSD_GObj_80391260(HSD_GObjLibInitDataType *)
Definition hsd_3910.c:64
void HSD_GObj_JObjCallback(HSD_GObj *gobj, intptr_t arg1)
Definition hsd_3910.c:33
void HSD_GObj_803910D8(HSD_GObj *, intptr_t)
Definition hsd_3910.c:44
static void * HSD_GObjGetUserData(HSD_GObj *gobj)
Definition gobj.h:112
void HSD_GObj_FogCallback(HSD_GObj *gobj, intptr_t unused)
Definition hsd_3910.c:39
void HSD_GObjInit(HSD_GObjLibInitDataType *)
Definition gobjinit.c:17
void HSD_GObjSetInitDefaults(HSD_GObjLibInitDataType *arg0)
Definition gobjinit.c:12
void HSD_GObj_80390ED0(HSD_GObj *gobj, u32 mask)
GObj_SetTextureCamera.
Definition gobj.c:141
u32 HSD_GObj_80390EB8(s32 i)
GObj_GetFlagFromArray.
Definition gobj.c:127
static void * HSD_GObjGetHSDObj(HSD_GObj *gobj)
Definition gobj.h:117
void HSD_GObj_80391120(HSD_Obj *obj)
Definition hsd_3910.c:52
void HSD_GObj_80390C84(HSD_GObj *gobj)
Definition gobj.c:46
HSD_GObj * GObj_Create(u16 classifier, u8 p_link, u8 priority)
Definition gobjplink.c:96
static u16 HSD_GObjGetClassifier(HSD_GObj *gobj)
Definition gobj.h:122
void HSD_GObj_RunProcs(void)
GObj_RunProcs.
Definition gobj.c:67
s8 HSD_GObj_LightKind
Definition hsd_3910.c:10
void HSD_GObj_80390FC0(void)
GObj_RunGXLinkMaxCallbacks.
Definition gobj.c:169
signed int s32
Definition types.h:12
unsigned int u32
Definition types.h:13
signed char s8
Definition types.h:4
unsigned short int u16
Definition types.h:7
unsigned long long int u64
Definition types.h:16
unsigned char u8
Definition types.h:5
__INTPTR_TYPE__ intptr_t
Definition stddef.h:12
Definition gobj.h:39
u8 size
Definition gobj.h:41
GObjFunc * funcs
Definition gobj.h:42
struct GObjFuncs * next
Definition gobj.h:40
Definition gobj.h:45
u8 p_link_max
Definition gobj.h:46
GObjFuncs * funcs
Definition gobj.h:49
u8 gx_link_max
Definition gobj.h:47
u8 gproc_pri_max
Definition gobj.h:48
u64 * unk_2
Definition gobj.h:50
Definition gobjproc.h:8
Definition gobj.h:16
u64 gxlink_prios
Definition gobj.h:30
void * hsd_obj
Definition gobj.h:31
u16 classifier
Definition gobj.h:17
u8 p_priority
Definition gobj.h:20
u8 obj_kind
Definition gobj.h:22
HSD_GObj * prev
Definition gobj.h:25
void * x34_unk
Definition gobj.h:34
void * user_data
Definition gobj.h:32
GObj_RenderFunc render_cb
Definition gobj.h:29
HSD_GObj * next_gx
Definition gobj.h:26
HSD_GObj * next
Definition gobj.h:24
u8 render_priority
Definition gobj.h:21
u8 p_link
Definition gobj.h:18
HSD_GObj * prev_gx
Definition gobj.h:27
u8 gx_link
Definition gobj.h:19
HSD_GObjProc * proc
Definition gobj.h:28
u8 user_data_kind
Definition gobj.h:23
void(* user_data_remove_func)(void *data)
Definition gobj.h:33
Definition objalloc.h:19
Definition object.h:60
Definition gobj.h:53
u8 p_prio
Definition gobj.h:65
HSD_GObj * gobj
Definition gobj.h:66
union _unk_gobj_struct::_unk_gobj_struct_x0 x0
u32 type
Definition gobj.h:63
u8 p_link
Definition gobj.h:64
void(* GObj_RenderFunc)(HSD_GObj *gobj, intptr_t code)
Definition forward.h:110