2/3rds m412, fix previous headers

This commit is contained in:
CreateSource 2024-07-31 21:53:10 -04:00
parent ebef402160
commit 88aa365b97
10 changed files with 1767 additions and 498 deletions

View file

@ -273,13 +273,13 @@ lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 scope:local data:
lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x8 scope:local data:double
lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float
lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float
lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float
lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float
lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x30 data:4byte
lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x10 data:byte
lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 data:float
lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x8 data:double
lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float
lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float
lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float
lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x30 scope:local data:4byte
lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x10 scope:local data:byte
lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x8 scope:local data:double
lbl_1_data_0 = .data:0x00000000; // type:object size:0xC
lbl_1_data_C = .data:0x0000000C; // type:object size:0xC
lbl_1_data_18 = .data:0x00000018; // type:object size:0x10

View file

@ -167,7 +167,8 @@ lbl_1_data_348 = .data:0x00000348; // type:object size:0x18
lbl_1_data_360 = .data:0x00000360; // type:object size:0x9 data:string
lbl_1_bss_0 = .bss:0x00000000; // type:object size:0xC data:float
lbl_1_bss_C = .bss:0x0000000C; // type:object size:0xC data:float
lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x10 data:float
lbl_1_bss_18 = .bss:0x00000018; // type:object size:0xC data:float
lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4
lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x114
lbl_1_bss_13C = .bss:0x0000013C; // type:object size:0x114
lbl_1_bss_250 = .bss:0x00000250; // type:object size:0xC data:float
@ -184,7 +185,7 @@ lbl_1_bss_77C = .bss:0x0000077C; // type:object size:0x4 data:float
lbl_1_bss_780 = .bss:0x00000780; // type:object size:0x10 data:4byte
lbl_1_bss_790 = .bss:0x00000790; // type:object size:0x4 data:4byte
lbl_1_bss_794 = .bss:0x00000794; // type:object size:0x4 data:4byte
lbl_1_bss_798 = .bss:0x00000798; // type:object size:0x2 data:2byte
lbl_1_bss_798 = .bss:0x00000798; // type:object size:0x4 data:2byte
lbl_1_bss_79C = .bss:0x0000079C; // type:object size:0x2 data:2byte
lbl_1_bss_79E = .bss:0x0000079E; // type:object size:0x2 data:2byte
lbl_1_bss_7A0 = .bss:0x000007A0; // type:object size:0x2 data:2byte

View file

@ -762,8 +762,8 @@ config.libs = [
"cflags": cflags_libhu,
"host": False,
"objects": [
Object(NonMatching, "libhu/setvf.c"),
Object(NonMatching, "libhu/subvf.c"),
Object(Matching, "libhu/setvf.c"),
Object(Matching, "libhu/subvf.c"),
],
},
{

View file

@ -248,168 +248,118 @@ typedef struct _unkStruct12 {
} unkStruct12;
// bss
// player.c
extern omObjData* lbl_1_bss_3A0[4];
extern omObjData* lbl_1_bss_39C;
extern s32 lbl_1_bss_38C[4];
extern unkStruct10 lbl_1_bss_10C[8];
extern s16 lbl_1_bss_108;
extern s16 lbl_1_bss_106;
extern s16 lbl_1_bss_104;
extern unkStruct9 lbl_1_bss_F0;
// main.c
extern Process* lbl_1_bss_E8;
extern s16 lbl_1_bss_E4;
extern omObjData* lbl_1_bss_E0;
extern omObjData* lbl_1_bss_DC;
extern Vec lbl_1_bss_D0;
extern unkStruct4 lbl_1_bss_40[4];
extern s32 lbl_1_bss_3C;
extern unkStruct3 lbl_1_bss_24;
extern s8 lbl_1_bss_21;
extern u8 lbl_1_bss_20;
extern f32 lbl_1_bss_1C;
extern f32 lbl_1_bss_18;
extern s16 lbl_1_bss_16;
extern s8 lbl_1_bss_14;
extern f32 lbl_1_bss_10;
extern f32 lbl_1_bss_C;
extern s8 lbl_1_bss_A;
extern s16 lbl_1_bss_8;
extern s8 lbl_1_bss_6;
extern s16 lbl_1_bss_4;
extern s16 lbl_1_bss_2;
extern s8 lbl_1_bss_0;
// data
// main.c
extern Vec lbl_1_data_0;
extern Vec lbl_1_data_C;
extern unkStruct2 lbl_1_data_18;
extern Vec lbl_1_data_28;
extern Vec lbl_1_data_34;
extern Vec lbl_1_data_40;
extern unkStruct lbl_1_data_4C[4];
extern u32 lbl_1_data_BC;
extern s32 lbl_1_data_C0;
// player.c
extern u32 lbl_1_data_138; // unk
extern s32 lbl_1_data_13C[7];
extern GXColor lbl_1_data_158[8];
extern HsfVector2f lbl_1_data_178[4];
extern GXColor lbl_1_data_198[8];
extern u32 lbl_1_data_1EC;
// prototypes
extern void ModuleProlog(void);
extern void fn_1_434(omObjData* object);
extern void fn_1_4DC(omObjData* object);
extern s8 fn_1_524(void);
extern s8 fn_1_B80(void);
extern void fn_1_DDC(omObjData* object);
extern void fn_1_F70(omObjData* object);
extern s8 fn_1_10E8(omObjData* object);
extern s8 fn_1_1B74(omObjData* object);
extern void fn_1_2098(omObjData* object);
extern void fn_1_23EC(s16);
extern void fn_1_2414(u16, u16);
extern u16 fn_1_2454(u16);
extern void fn_1_2484(omObjData* object);
extern void fn_1_2DCC(omObjData* object);
extern void fn_1_3840(void);
extern void fn_1_3988(unkStruct4*, s16, s16);
extern s32 fn_1_3AD8(s32, f32, f32, f32, f32, f32, f32);
extern void fn_1_40A4(Mtx, Mtx);
extern f32 fn_1_4120(f32, f32, f32, f32);
extern void fn_1_417C(void);
extern void fn_1_44F0(s16, f32, f32, f32, s8, s16);
extern void fn_1_4FFC(s16, f32, f32, f32, s16);
extern void fn_1_5408(ModelData*, unkStruct6*, Mtx);
extern void fn_1_55E0(ModelData*, unkStruct6*, Mtx);
extern void fn_1_57DC(ModelData*, unkStruct6*, Mtx);
extern unkStruct5* fn_1_58E0(s16, Vec*, Vec*, f32, GXColor*);
extern s16 fn_1_5A18(AnimData*, s16, f32, s16, s16);
extern void fn_1_5F5C(s16);
extern void fn_1_5FBC(s16, m409Func6);
extern void fn_1_5FF4(s16, u8);
extern void fn_1_602C(ModelData*, Mtx);
extern void fn_1_6608(HsfVector2f*, s16, s16, f32, f32);
extern void fn_1_66D4(HsfVector2f*, HsfVector2f*, s16, f32, f32);
extern void fn_1_6778(Vec*, Vec*, Vec*, s16);
void ObjectSetup(void);
void fn_1_434(omObjData* object);
void fn_1_4DC(omObjData* object);
s8 fn_1_524(void);
s8 fn_1_B80(void);
void fn_1_DDC(omObjData* object);
void fn_1_F70(omObjData* object);
s8 fn_1_10E8(omObjData* object);
s8 fn_1_1B74(omObjData* object);
void fn_1_2098(omObjData* object);
void fn_1_23EC(s16);
void fn_1_2414(u16, u16);
u16 fn_1_2454(u16);
void fn_1_2484(omObjData* object);
void fn_1_2DCC(omObjData* object);
void fn_1_3840(void);
void fn_1_3988(unkStruct4*, s16, s16);
s32 fn_1_3AD8(s32, f32, f32, f32, f32, f32, f32);
void fn_1_40A4(Mtx, Mtx);
f32 fn_1_4120(f32, f32, f32, f32);
void fn_1_417C(void);
void fn_1_44F0(s16, f32, f32, f32, s8, s16);
void fn_1_4FFC(s16, f32, f32, f32, s16);
void fn_1_5408(ModelData*, unkStruct6*, Mtx);
void fn_1_55E0(ModelData*, unkStruct6*, Mtx);
void fn_1_57DC(ModelData*, unkStruct6*, Mtx);
unkStruct5* fn_1_58E0(s16, Vec*, Vec*, f32, GXColor*);
s16 fn_1_5A18(AnimData*, s16, f32, s16, s16);
void fn_1_5F5C(s16);
void fn_1_5FBC(s16, m409Func6);
void fn_1_5FF4(s16, u8);
void fn_1_602C(ModelData*, Mtx);
void fn_1_6608(HsfVector2f*, s16, s16, f32, f32);
void fn_1_66D4(HsfVector2f*, HsfVector2f*, s16, f32, f32);
void fn_1_6778(Vec*, Vec*, Vec*, s16);
// player.c
extern void fn_1_67E0(Process*);
extern void fn_1_6900(void);
extern void fn_1_6928(omObjData*);
extern void fn_1_7344(omObjData*);
extern void fn_1_7FE8(omObjData*);
extern void fn_1_8838(unkStruct8*);
extern s8 fn_1_8D08(u8);
extern void fn_1_8D6C(unkStruct8*);
extern void fn_1_91C0(omObjData*);
extern void fn_1_962C(omObjData*);
extern s32 fn_1_A584(unkStruct10*);
extern s8 fn_1_A9C0(Vec*, f32*);
extern s32 fn_1_ABB4(void);
extern void fn_1_AC08(s32*, s32);
extern f32 fn_1_AD40(f32, f32, f32);
extern f32 fn_1_AE94(f32, f32, f32, f32);
extern void fn_1_AF0C(f32*, f32*, f32*, f32*, f32);
extern f32 fn_1_B028(f32, f32, f32, f32);
extern void fn_1_B0A0(f32*, f32*, f32*, f32*, f32);
extern f32 fn_1_B378(Vec*);
extern f32 fn_1_B6A4(Vec*, Vec*, Vec*);
extern f32 fn_1_B9E0(Vec*, Vec*, Vec*, Vec*, Vec*);
extern f32 fn_1_BF38(s16);
void fn_1_67E0(Process*);
void fn_1_6900(void);
void fn_1_6928(omObjData*);
void fn_1_7344(omObjData*);
void fn_1_7FE8(omObjData*);
void fn_1_8838(unkStruct8*);
s8 fn_1_8D08(u8);
void fn_1_8D6C(unkStruct8*);
void fn_1_91C0(omObjData*);
void fn_1_962C(omObjData*);
s32 fn_1_A584(unkStruct10*);
s8 fn_1_A9C0(Vec*, f32*);
s32 fn_1_ABB4(void);
void fn_1_AC08(s32*, s32);
f32 fn_1_AD40(f32, f32, f32);
f32 fn_1_AE94(f32, f32, f32, f32);
void fn_1_AF0C(f32*, f32*, f32*, f32*, f32);
f32 fn_1_B028(f32, f32, f32, f32);
void fn_1_B0A0(f32*, f32*, f32*, f32*, f32);
f32 fn_1_B378(Vec*);
f32 fn_1_B6A4(Vec*, Vec*, Vec*);
f32 fn_1_B9E0(Vec*, Vec*, Vec*, Vec*, Vec*);
f32 fn_1_BF38(s16);
// cursor.c
extern void fn_1_BF88(s16, s16);
extern void fn_1_C0C0(void);
extern void fn_1_C164(unkStruct8*);
extern void fn_1_CB98(ModelData* model, Mtx matrix);
extern unkStruct8* fn_1_CCB0(s16 idx);
extern unkStruct8Sub* fn_1_CCCC(s16, s16);
extern void fn_1_CCF8(unkStruct11**, s16, f32, f32);
extern void fn_1_CE7C(Vec**, s16, Vec*);
extern void fn_1_CF1C(GXColor**, s16, GXColor*);
extern void fn_1_CFC4(Vec**, s16, Vec*);
extern void fn_1_D050(HsfVector2f**, s16, HsfVector2f*);
extern void fn_1_D0E8(unkStruct8Sub*);
extern void fn_1_D430(unkStruct8*);
extern s16 fn_1_DA48(u8, u8);
extern void fn_1_DDB8(s16);
extern void fn_1_DEF4(s16, s16, u8);
extern s16 fn_1_DF20(u32, s16, s16);
extern void fn_1_E228(s16);
extern s32 fn_1_E2A8(s16, u8, u32, s16, s16);
extern s32 fn_1_E7C8(s16, u8, u32);
extern void fn_1_E818(s16, f32, f32, f32);
extern void fn_1_E85C(s16, s16, f32, f32, f32);
extern void fn_1_E8CC(s16, f32, f32, f32);
extern void fn_1_E940(s16, f32, f32, f32);
extern void fn_1_E99C(s16, s16, f32, f32, f32);
extern void fn_1_E940(s16, f32, f32, f32);
extern void fn_1_EA24(s16, f32, f32, f32);
extern void fn_1_EAB0(s16, f32, f32, f32);
extern void fn_1_EAF4(s16, s16, f32, f32, f32);
extern void fn_1_EB64(s16, f32, f32, f32);
extern void fn_1_EBD8(s16, f32, f32, f32);
extern void fn_1_EC1C(s16, s16, f32, f32, f32);
extern void fn_1_EC8C(s16, f32, f32, f32);
extern void fn_1_ED00(s16, s32);
extern void fn_1_ED44(s16, s16, s32);
extern void fn_1_EDB4(s16, s32);
extern void fn_1_EE24(s16, u32);
extern void fn_1_EE68(s16, s16, u32);
extern void fn_1_EED8(s16, u32);
extern s32 fn_1_EF48(s16, s32);
extern s32 fn_1_EFA4(s16, s16, s32);
extern void fn_1_F024(s16, s16, u8, u8, u8, u8);
extern void fn_1_F098(s16, u8, u8, u8, u8);
extern void fn_1_F110(s16, s16, u8);
extern void fn_1_F17C(s16, s16, u8, u8);
extern void fn_1_F1F4(s16, u8);
extern void fn_1_F28C(s16, s16, f32);
extern void fn_1_F2F8(s16, s16, u8, f32);
extern void fn_1_F370(s16, f32);
extern void fn_1_F408(s16, s16, u8);
extern void fn_1_F478(s16, s16, u8, u8);
extern void fn_1_F4F0(s16, u8);
void fn_1_BF88(s16, s16);
void fn_1_C0C0(void);
void fn_1_C164(unkStruct8*);
void fn_1_CB98(ModelData* model, Mtx matrix);
unkStruct8* fn_1_CCB0(s16 idx);
unkStruct8Sub* fn_1_CCCC(s16, s16);
void fn_1_CCF8(unkStruct11**, s16, f32, f32);
void fn_1_CE7C(Vec**, s16, Vec*);
void fn_1_CF1C(GXColor**, s16, GXColor*);
void fn_1_CFC4(Vec**, s16, Vec*);
void fn_1_D050(HsfVector2f**, s16, HsfVector2f*);
void fn_1_D0E8(unkStruct8Sub*);
void fn_1_D430(unkStruct8*);
s16 fn_1_DA48(u8, u8);
void fn_1_DDB8(s16);
void fn_1_DEF4(s16, s16, u8);
s16 fn_1_DF20(u32, s16, s16);
void fn_1_E228(s16);
s32 fn_1_E2A8(s16, u8, u32, s16, s16);
s32 fn_1_E7C8(s16, u8, u32);
void fn_1_E818(s16, f32, f32, f32);
void fn_1_E85C(s16, s16, f32, f32, f32);
void fn_1_E8CC(s16, f32, f32, f32);
void fn_1_E940(s16, f32, f32, f32);
void fn_1_E99C(s16, s16, f32, f32, f32);
void fn_1_E940(s16, f32, f32, f32);
void fn_1_EA24(s16, f32, f32, f32);
void fn_1_EAB0(s16, f32, f32, f32);
void fn_1_EAF4(s16, s16, f32, f32, f32);
void fn_1_EB64(s16, f32, f32, f32);
void fn_1_EBD8(s16, f32, f32, f32);
void fn_1_EC1C(s16, s16, f32, f32, f32);
void fn_1_EC8C(s16, f32, f32, f32);
void fn_1_ED00(s16, s32);
void fn_1_ED44(s16, s16, s32);
void fn_1_EDB4(s16, s32);
void fn_1_EE24(s16, u32);
void fn_1_EE68(s16, s16, u32);
void fn_1_EED8(s16, u32);
s32 fn_1_EF48(s16, s32);
s32 fn_1_EFA4(s16, s16, s32);
void fn_1_F024(s16, s16, u8, u8, u8, u8);
void fn_1_F098(s16, u8, u8, u8, u8);
void fn_1_F110(s16, s16, u8);
void fn_1_F17C(s16, s16, u8, u8);
void fn_1_F1F4(s16, u8);
void fn_1_F28C(s16, s16, f32);
void fn_1_F2F8(s16, s16, u8, f32);
void fn_1_F370(s16, f32);
void fn_1_F408(s16, s16, u8);
void fn_1_F478(s16, s16, u8, u8);
void fn_1_F4F0(s16, u8);

108
include/REL/m412Dll.h Normal file
View file

@ -0,0 +1,108 @@
#include "dolphin.h"
#include "game/object.h"
#include "game/hsfman.h"
// types
typedef struct _unkStruct {
s16 unk0;
s16 unk2;
s16 unk4;
s16 unk6;
s16 unk8;
s16 unkA;
s16 unkC;
Vec unk10;
HsfVector2f unk1C;
Vec unk24;
f32 unk30;
f32 unk34;
} unkStruct;
typedef struct _unkStruct2 {
s16 unk0;
s16 unk2;
s16 unk4;
s16 unk6;
s16 unk8;
s16 unkA;
s16 unkC[5];
s16 unk16[5];
s16 unk20;
s32 unk24;
s32 unk28;
Vec unk2C;
Vec unk38;
} unkStruct2; // sizeof 0x44
typedef struct _unkStruct3 {
s16 unk0;
s16 unk2;
s16 unk4;
s16 unk6;
s16 unk8;
s16 unkA;
s16 unkC[6];
s16 unk18[6];
s32 unk24;
s32 unk28;
s32 unk2C;
s32 unk30;
char unk34[0x8];
s32 unk3C;
Vec unk40;
char unk4C[0x8];
Vec unk54;
Vec unk60;
f32 unk6C;
char unk70[0xC];
Vec unk7C;
s8 unk88;
s8 unk89;
s8 unk8A;
s8 unk8B;
u16 unk8C;
u16 unk8E;
char unk90[0x14];
s32 unkA4;
} unkStruct3; // sizeof 0xA8
typedef struct _unkStruct4 {
s32 unk0;
s32 unk4;
s32 unk8;
Vec unkC;
} unkStruct4;
// prototypes
void ObjectSetup(void);
void fn_1_6EC(f32, f32, f32, s32);
void fn_1_73C(void);
void fn_1_7BC(void);
void fn_1_894(omObjData* object);
void fn_1_898(omObjData* object);
void fn_1_8BC(void);
f32 fn_1_1D08(f32);
void fn_1_1D88(void);
void fn_1_1DBC(void);
void fn_1_2014(void);
void fn_1_2064(void);
s32 fn_1_2708(void);
f32 fn_1_27C4(s32, f32, f32);
void fn_1_2A1C(void);
void fn_1_3950(void);
s8 fn_1_4BE4(s32, s32);
void fn_1_4C9C(Vec*, f32, f32);
s8 fn_1_4E58(s32, s32);
u8 fn_1_525C(s32, s32);
u16 fn_1_531C(s32);
u16 fn_1_5388(s32);
s32 fn_1_53F4(unkStruct3*, f32, f32, f32);
s32 fn_1_561C(unkStruct3*, s32*);
//...
void fn_1_7C60(void); // *
void fn_1_A01C(ModelData* model, ParticleData* particle, Mtx matrix); // *
void fn_1_A618(ModelData* model, ParticleData* particle, Mtx matrix); // *
void fn_1_AA88(ModelData* model, ParticleData* particle, Mtx matrix); // *
void fn_1_B160(void); // *
void fn_1_B1C0(void); // *

View file

@ -239,158 +239,111 @@ typedef struct _unkObjStruct {
////// BSS //////
// object.c
extern omObjData* lbl_1_bss_C0[4];
extern s16 lbl_1_bss_B8[4];
extern Vec lbl_1_bss_88[4];
extern f32 lbl_1_bss_84;
extern Vec lbl_1_bss_78;
extern s16 lbl_1_bss_74;
extern u8 lbl_1_bss_72;
extern s16 lbl_1_bss_70;
// main.c
extern omObjData* lbl_1_bss_6C;
extern omObjData* lbl_1_bss_68;
extern unkStruct6* lbl_1_bss_64;
extern s16 lbl_1_bss_60;
extern Mtx lbl_1_bss_30;
extern s16 lbl_1_bss_2C;
extern void* lbl_1_bss_28;
extern u32 lbl_1_bss_24;
extern s16 lbl_1_bss_10[10];
extern s16 lbl_1_bss_E;
extern u8 lbl_1_bss_C;
extern u8 lbl_1_bss_B;
extern u8 lbl_1_bss_A;
extern s16 lbl_1_bss_8;
extern s16 lbl_1_bss_6;
extern s16 lbl_1_bss_4;
extern s8 lbl_1_bss_2;
extern s8 lbl_1_bss_1;
extern s8 lbl_1_bss_0;
////// DATA //////
// main.c
extern f32 lbl_1_data_0[5];
extern s16 lbl_1_data_14[6];
extern Vec lbl_1_data_20;
extern Vec lbl_1_data_2C;
extern Vec lbl_1_data_38;
extern unkStruct7 lbl_1_data_44;
extern Vec lbl_1_data_54;
extern Vec lbl_1_data_60;
extern Vec lbl_1_data_6C;
extern unkStruct lbl_1_data_78[3];
extern s16 lbl_1_data_E4[2];
extern s16 lbl_1_data_E8[2];
extern s16 lbl_1_data_EC[2];
extern s16 lbl_1_data_F0[2];
extern s32 lbl_1_data_F4[4];
extern s16 lbl_1_data_104[2];
extern s16 lbl_1_data_108[2];
// object.c
extern s16 lbl_1_data_1D8;
extern s16 lbl_1_data_1DA;
extern u32 lbl_1_data_1DC[8][2];
extern f32 lbl_1_data_21C[4];
extern f32 lbl_1_data_250;
////// FUNCTIONS //////
// main.c
extern void ObjectSetup(void);
extern void fn_1_3C4(omObjData* object);
extern void fn_1_434(omObjData* object);
extern s32 fn_1_4A4(void);
extern s32 fn_1_6C8(void);
extern void fn_1_8F0(omObjData* object);
extern void fn_1_AE0(omObjData* object);
extern u8 fn_1_E14(omObjData* object);
extern u8 fn_1_1138(omObjData* object);
extern void fn_1_16D8(void);
extern void fn_1_1708(void);
extern void fn_1_1768(void);
extern s16 fn_1_17CC(void);
extern s16 fn_1_17F4(void);
extern void fn_1_181C(void);
extern u8 fn_1_1890(void);
extern void fn_1_18E0(void);
extern u8 fn_1_1954(void);
extern void fn_1_19B0(void);
extern void fn_1_1CAC(void);
extern void fn_1_2240(ModelData* data, unkStruct5*, Mtx);
extern u16 fn_1_23E4(u16);
extern void fn_1_2428(u16, u16);
extern void fn_1_2470(omObjData* object);
extern void fn_1_2A74(omObjData* object);
extern void fn_1_2AB4(omObjData* object);
extern void fn_1_2B04(omObjData* object);
extern void fn_1_2CA8(omObjData* object);
extern void fn_1_2D28(omObjData* object);
extern void fn_1_33D4(omObjData* object);
extern void fn_1_3DD8(omObjData* object);
extern void fn_1_4558(omObjData* object);
extern void fn_1_45BC(omObjData* object);
extern void fn_1_4660(omObjData* object);
extern void fn_1_46E0(omObjData* object);
extern void fn_1_4A20(omObjData* object);
extern void fn_1_4B44(omObjData* object);
extern void fn_1_4E00(s16, f32);
extern s16 fn_1_4E2C(void);
extern s16 fn_1_4E54(s16);
extern u16 fn_1_4EA8(u16);
extern void fn_1_4EEC(u16, u16);
extern void fn_1_4F34(unkStruct6*);
extern void fn_1_5010(unkStruct6*, Vec*, f32);
extern void fn_1_57B4(unkStruct6*);
extern void fn_1_5C2C(s16, HsfObject*, unkStruct6*, u16);
extern void fn_1_6554(unkStruct6*, HsfObject*);
extern void fn_1_6B58(unkStruct6*, HsfObject*);
extern void fn_1_71FC(unkStruct6*, Vec*, s16, Vec);
extern void fn_1_7934(unkStruct6*, unkStruct8*, Vec*);
extern void fn_1_7D60(unkStruct15*, unkStruct13*, s16);
extern void fn_1_806C(ModelData*, Mtx);
extern void fn_1_8470(unkStruct12*, unkStruct13*);
extern void fn_1_8AC4(Mtx);
extern void fn_1_8D1C(void);
extern void fn_1_91A4(Vec*, Vec*, Vec*, f32[5]);
extern f32 fn_1_927C(f32, f32, f32);
extern void fn_1_9344(Mtx, Mtx);
extern f32 fn_1_93C0(f32, f32, f32);
extern f32 fn_1_93D0(f32, f32, f32, f32);
extern unkStruct4* fn_1_942C(s16, Vec*, Vec*, f32, GXColor*);
extern s16 fn_1_956C(AnimData*, s16, f32, s16, s16);
extern void fn_1_9AB0(s16);
extern unkStruct5* fn_1_9B10(s16);
extern unkStruct4* fn_1_9B3C(s16, s16);
extern void fn_1_9B94(s16, m440Func5);
extern void fn_1_9BCC(s16, u8);
extern void fn_1_9C04(ModelData*, Mtx);
extern void fn_1_A1B8(HsfVector2f*, s16, s16, f32, f32);
extern void fn_1_A284(HsfVector2f*, HsfVector2f*, s16, f32, f32);
extern void fn_1_A328(Vec*, Vec*, Vec*, s16);
void ObjectSetup(void);
void fn_1_3C4(omObjData* object);
void fn_1_434(omObjData* object);
s32 fn_1_4A4(void);
s32 fn_1_6C8(void);
void fn_1_8F0(omObjData* object);
void fn_1_AE0(omObjData* object);
u8 fn_1_E14(omObjData* object);
u8 fn_1_1138(omObjData* object);
void fn_1_16D8(void);
void fn_1_1708(void);
void fn_1_1768(void);
s16 fn_1_17CC(void);
s16 fn_1_17F4(void);
void fn_1_181C(void);
u8 fn_1_1890(void);
void fn_1_18E0(void);
u8 fn_1_1954(void);
void fn_1_19B0(void);
void fn_1_1CAC(void);
void fn_1_2240(ModelData* data, unkStruct5*, Mtx);
u16 fn_1_23E4(u16);
void fn_1_2428(u16, u16);
void fn_1_2470(omObjData* object);
void fn_1_2A74(omObjData* object);
void fn_1_2AB4(omObjData* object);
void fn_1_2B04(omObjData* object);
void fn_1_2CA8(omObjData* object);
void fn_1_2D28(omObjData* object);
void fn_1_33D4(omObjData* object);
void fn_1_3DD8(omObjData* object);
void fn_1_4558(omObjData* object);
void fn_1_45BC(omObjData* object);
void fn_1_4660(omObjData* object);
void fn_1_46E0(omObjData* object);
void fn_1_4A20(omObjData* object);
void fn_1_4B44(omObjData* object);
void fn_1_4E00(s16, f32);
s16 fn_1_4E2C(void);
s16 fn_1_4E54(s16);
u16 fn_1_4EA8(u16);
void fn_1_4EEC(u16, u16);
void fn_1_4F34(unkStruct6*);
void fn_1_5010(unkStruct6*, Vec*, f32);
void fn_1_57B4(unkStruct6*);
void fn_1_5C2C(s16, HsfObject*, unkStruct6*, u16);
void fn_1_6554(unkStruct6*, HsfObject*);
void fn_1_6B58(unkStruct6*, HsfObject*);
void fn_1_71FC(unkStruct6*, Vec*, s16, Vec);
void fn_1_7934(unkStruct6*, unkStruct8*, Vec*);
void fn_1_7D60(unkStruct15*, unkStruct13*, s16);
void fn_1_806C(ModelData*, Mtx);
void fn_1_8470(unkStruct12*, unkStruct13*);
void fn_1_8AC4(Mtx);
void fn_1_8D1C(void);
void fn_1_91A4(Vec*, Vec*, Vec*, f32[5]);
f32 fn_1_927C(f32, f32, f32);
void fn_1_9344(Mtx, Mtx);
f32 fn_1_93C0(f32, f32, f32);
f32 fn_1_93D0(f32, f32, f32, f32);
unkStruct4* fn_1_942C(s16, Vec*, Vec*, f32, GXColor*);
s16 fn_1_956C(AnimData*, s16, f32, s16, s16);
void fn_1_9AB0(s16);
unkStruct5* fn_1_9B10(s16);
unkStruct4* fn_1_9B3C(s16, s16);
void fn_1_9B94(s16, m440Func5);
void fn_1_9BCC(s16, u8);
void fn_1_9C04(ModelData*, Mtx);
void fn_1_A1B8(HsfVector2f*, s16, s16, f32, f32);
void fn_1_A284(HsfVector2f*, HsfVector2f*, s16, f32, f32);
void fn_1_A328(Vec*, Vec*, Vec*, s16);
void fn_1_A390(ModelData*, Mtx);
extern void fn_1_AA94(void);
void fn_1_AA94(void);
// object.c
extern void fn_1_AE08(Process*);
extern void fn_1_AEE4(omObjData*);
extern void fn_1_B17C(omObjData*);
extern void fn_1_B180(omObjData*);
extern void fn_1_B3A4(omObjData*);
extern void fn_1_B884(omObjData*, unkObjStruct*);
extern void fn_1_C1D4(omObjData*, unkObjStruct*);
extern void fn_1_C944(omObjData*, unkObjStruct*);
extern s16 fn_1_CFAC(unkObjStruct*, u8);
extern void fn_1_D24C(unkObjStruct*, f32, f32);
extern void fn_1_D34C(omObjData*, unkObjStruct*);
extern void fn_1_D7F8(omObjData*, unkObjStruct*);
extern void fn_1_E034(omObjData*, unkObjStruct*);
extern u8 fn_1_E8AC(omObjData*, unkObjStruct*);
extern s32 fn_1_ED88(omObjData*, s16, u32);
extern void fn_1_EE78(void);
extern void fn_1_EF50(void);
extern s16 fn_1_F0FC(void);
extern void fn_1_F168(void);
extern void fn_1_F228(void);
extern u16 fn_1_F4C0(unkObjStruct*, u16);
extern void fn_1_F4D4(unkObjStruct*, u16, u16);
extern s32 fn_1_F4FC(s32);
void fn_1_AE08(Process*);
void fn_1_AEE4(omObjData*);
void fn_1_B17C(omObjData*);
void fn_1_B180(omObjData*);
void fn_1_B3A4(omObjData*);
void fn_1_B884(omObjData*, unkObjStruct*);
void fn_1_C1D4(omObjData*, unkObjStruct*);
void fn_1_C944(omObjData*, unkObjStruct*);
s16 fn_1_CFAC(unkObjStruct*, u8);
void fn_1_D24C(unkObjStruct*, f32, f32);
void fn_1_D34C(omObjData*, unkObjStruct*);
void fn_1_D7F8(omObjData*, unkObjStruct*);
void fn_1_E034(omObjData*, unkObjStruct*);
u8 fn_1_E8AC(omObjData*, unkObjStruct*);
s32 fn_1_ED88(omObjData*, s16, u32);
void fn_1_EE78(void);
void fn_1_EF50(void);
s16 fn_1_F0FC(void);
void fn_1_F168(void);
void fn_1_F228(void);
u16 fn_1_F4C0(unkObjStruct*, u16);
void fn_1_F4D4(unkObjStruct*, u16, u16);
s32 fn_1_F4FC(s32);

View file

@ -170,197 +170,135 @@ typedef void (*m446Func1)(unkStruct*);
typedef void (*m446Func4)(unkStruct4*);
typedef void (*m446Func8)(unkStruct8*);
////// BSS //////
// stage.c
extern unkStruct3* lbl_1_bss_A0;
// cursor.c
extern unkStruct3* lbl_1_bss_98;
// camera.c
extern Vec lbl_1_bss_8C;
extern Vec lbl_1_bss_80;
extern f32 lbl_1_bss_7C;
extern Vec lbl_1_bss_70;
extern Vec lbl_1_bss_64;
extern f32 lbl_1_bss_60;
extern Vec lbl_1_bss_54;
extern Vec lbl_1_bss_48;
extern f32 lbl_1_bss_44;
extern f32 lbl_1_bss_40;
extern f32 lbl_1_bss_3C;
extern s32 lbl_1_bss_38;
// player.c
extern unkStruct3* lbl_1_bss_30;
// table.c
extern unkStruct3* lbl_1_bss_28;
// deck.c
extern u32 lbl_1_bss_20;
// card.c
extern unkStruct3* lbl_1_bss_18;
// main.c
extern s32 lbl_1_bss_14;
extern s32 lbl_1_bss_10;
extern Process* lbl_1_bss_C;
extern omObjData* lbl_1_bss_8;
extern s32 lbl_1_bss_4;
extern unkStruct* lbl_1_bss_0;
////// DATA //////
// main.c
extern Vec lbl_1_data_0;
extern Vec lbl_1_data_C;
extern f32 lbl_1_data_18;
extern Vec lbl_1_data_1C;
extern Vec lbl_1_data_28;
extern f32 lbl_1_data_34;
extern Vec lbl_1_data_38[2];
extern Vec lbl_1_data_50[2];
extern f32 lbl_1_data_68[2];
extern s32 lbl_1_data_70[2][2];
extern m446Func1 lbl_1_data_A0[5];
// card.c
extern m446Func4 lbl_1_data_150[3];
// player.c
extern s32 lbl_1_data_228[9];
extern s32 lbl_1_data_24C[9][4];
extern m446Func8 lbl_1_data_2DC[5];
// camera.c
extern Vec lbl_1_data_370;
// cursor.c
extern s32 lbl_1_data_3C8[9];
// stage.c
extern unkStruct10 lbl_1_data_460[3];
extern Vec lbl_1_data_424[5];
extern Vec lbl_1_data_4B4[3];
////// PROTOTYPES //////
// main.c
extern void ObjectSetup(void);
extern void fn_1_13C(omObjData*);
extern unkStruct* m446FlowCreate(void);
extern void fn_1_3FC(unkStruct*);
extern void fn_1_4B4(unkStruct*);
extern void fn_1_53C(unkStruct*);
extern void fn_1_958(unkStruct*);
extern void fn_1_B78(unkStruct*);
extern void fn_1_C0C(unkStruct*);
extern void fn_1_CA0(unkStruct*);
extern s32 fn_1_17FC(unkStruct*);
extern void fn_1_183C(unkStruct*);
extern void fn_1_1874(unkStruct*);
extern void fn_1_18B0(unkStruct*);
extern void fn_1_19D4(void);
void ObjectSetup(void);
void fn_1_13C(omObjData*);
unkStruct* m446FlowCreate(void);
void fn_1_3FC(unkStruct*);
void fn_1_4B4(unkStruct*);
void fn_1_53C(unkStruct*);
void fn_1_958(unkStruct*);
void fn_1_B78(unkStruct*);
void fn_1_C0C(unkStruct*);
void fn_1_CA0(unkStruct*);
s32 fn_1_17FC(unkStruct*);
void fn_1_183C(unkStruct*);
void fn_1_1874(unkStruct*);
void fn_1_18B0(unkStruct*);
void fn_1_19D4(void);
// card.c
extern unkStruct2* fn_1_1C64(s32);
extern void fn_1_1CF8(unkStruct2*);
extern s32 fn_1_1D30(unkStruct2*, void*);
extern s32 fn_1_1D6C(unkStruct2*, unkStruct4**);
extern s32 fn_1_1DA8(unkStruct2*, void**);
extern BOOL fn_1_1DDC(unkStruct2*);
extern s32 fn_1_1DEC(unkStruct2*);
extern unkStruct3* fn_1_1DF4(void*);
extern void fn_1_1E5C(unkStruct3*);
extern void fn_1_1E84(unkStruct3**);
extern void fn_1_1EC8(unkStruct3*, unkStruct3*);
extern void fn_1_1F04(unkStruct3*);
extern void fn_1_1F38(u8*, u8*, s32);
extern void fn_1_1F84(u8*, s8, s32);
extern void fn_1_1FC0(u8*, s32);
extern s32 fn_1_1FFC(s8*, s8*, s32);
extern s32 fn_1_2064(void);
extern void fn_1_207C(void);
extern void fn_1_20D4(void);
extern unkStruct4* m446CardCreate(s32);
extern void fn_1_2688(unkStruct4*);
extern void fn_1_272C(unkStruct4*);
extern void fn_1_2794(unkStruct4*);
extern void fn_1_27FC(unkStruct4*, Vec*, s32);
extern void fn_1_2890(unkStruct4*, Vec*, s32, s32);
extern void fn_1_2928(unkStruct4*, Vec*, s32);
extern void fn_1_29B4(unkStruct4*, f32, s32);
extern void fn_1_2A1C(unkStruct4*);
extern void fn_1_2A58(unkStruct4*);
extern void fn_1_2A94(unkStruct4*);
extern void fn_1_2AA8(unkStruct4*);
extern void fn_1_2D94(unkStruct4*);
extern void fn_1_2DA8(unkStruct4*);
extern void fn_1_2EC0(unkStruct4*, s32);
extern void fn_1_2F64(unkStruct4*);
unkStruct2* fn_1_1C64(s32);
void fn_1_1CF8(unkStruct2*);
s32 fn_1_1D30(unkStruct2*, void*);
s32 fn_1_1D6C(unkStruct2*, unkStruct4**);
s32 fn_1_1DA8(unkStruct2*, void**);
BOOL fn_1_1DDC(unkStruct2*);
s32 fn_1_1DEC(unkStruct2*);
unkStruct3* fn_1_1DF4(void*);
void fn_1_1E5C(unkStruct3*);
void fn_1_1E84(unkStruct3**);
void fn_1_1EC8(unkStruct3*, unkStruct3*);
void fn_1_1F04(unkStruct3*);
void fn_1_1F38(u8*, u8*, s32);
void fn_1_1F84(u8*, s8, s32);
void fn_1_1FC0(u8*, s32);
s32 fn_1_1FFC(s8*, s8*, s32);
s32 fn_1_2064(void);
void fn_1_207C(void);
void fn_1_20D4(void);
unkStruct4* m446CardCreate(s32);
void fn_1_2688(unkStruct4*);
void fn_1_272C(unkStruct4*);
void fn_1_2794(unkStruct4*);
void fn_1_27FC(unkStruct4*, Vec*, s32);
void fn_1_2890(unkStruct4*, Vec*, s32, s32);
void fn_1_2928(unkStruct4*, Vec*, s32);
void fn_1_29B4(unkStruct4*, f32, s32);
void fn_1_2A1C(unkStruct4*);
void fn_1_2A58(unkStruct4*);
void fn_1_2A94(unkStruct4*);
void fn_1_2AA8(unkStruct4*);
void fn_1_2D94(unkStruct4*);
void fn_1_2DA8(unkStruct4*);
void fn_1_2EC0(unkStruct4*, s32);
void fn_1_2F64(unkStruct4*);
// deck.c
extern unkStruct5* fn_1_3064(void);
extern void fn_1_3180(unkStruct2**);
extern void fn_1_31D8(unkStruct2**, unkStruct4**, s32*, s32);
extern void fn_1_34A0(unkStruct5*, unkStruct4**, s32, s32);
extern s32 m446DeckPushCard(unkStruct5*, unkStruct4*, s32);
extern s32 m446DeckPopCard(unkStruct2**, unkStruct4**);
extern void fn_1_38B0(unkStruct2**);
extern s32 fn_1_38F0(void);
unkStruct5* fn_1_3064(void);
void fn_1_3180(unkStruct2**);
void fn_1_31D8(unkStruct2**, unkStruct4**, s32*, s32);
void fn_1_34A0(unkStruct5*, unkStruct4**, s32, s32);
s32 m446DeckPushCard(unkStruct5*, unkStruct4*, s32);
s32 m446DeckPopCard(unkStruct2**, unkStruct4**);
void fn_1_38B0(unkStruct2**);
s32 fn_1_38F0(void);
// table.c
extern s32 fn_1_3924(void);
extern void fn_1_393C(void);
extern void fn_1_3994(void);
extern unkStruct6* fn_1_39D0(void);
extern void fn_1_3B4C(unkStruct6*);
extern s32 fn_1_3BF0(unkStruct6*, unkStruct4*, s32);
extern s32 fn_1_3EB4(unkStruct6*, unkStruct4*, s32);
extern s32 fn_1_3FD0(unkStruct6*, s32, unkStruct4**);
extern void fn_1_4000(unkStruct6*, s32);
extern s32 fn_1_4088(unkStruct6*, u8, u8, s32, unkStruct4**, s32);
extern void fn_1_46AC(unkStruct6*);
extern void fn_1_46D0(unkStruct6*);
extern s32 fn_1_4720(unkStruct6*, s32);
extern void fn_1_4798(unkStruct6*);
s32 fn_1_3924(void);
void fn_1_393C(void);
void fn_1_3994(void);
unkStruct6* fn_1_39D0(void);
void fn_1_3B4C(unkStruct6*);
s32 fn_1_3BF0(unkStruct6*, unkStruct4*, s32);
s32 fn_1_3EB4(unkStruct6*, unkStruct4*, s32);
s32 fn_1_3FD0(unkStruct6*, s32, unkStruct4**);
void fn_1_4000(unkStruct6*, s32);
s32 fn_1_4088(unkStruct6*, u8, u8, s32, unkStruct4**, s32);
void fn_1_46AC(unkStruct6*);
void fn_1_46D0(unkStruct6*);
s32 fn_1_4720(unkStruct6*, s32);
void fn_1_4798(unkStruct6*);
// player.c
extern s32 fn_1_480C(void);
extern void fn_1_4824(void);
extern void fn_1_487C(void);
extern unkStruct8* m446PlayerCreate(s32, unkStruct6*);
extern void fn_1_509C(unkStruct8*);
extern s32 m446PlayerAppendCard(unkStruct8*, unkStruct4*, s32);
extern s32 m446PlayerRemoveCard(unkStruct8*, unkStruct4*, s32);
extern s32 fn_1_5648(unkStruct8*, s32, unkStruct4**);
extern s32 fn_1_5678(unkStruct8*, unkStruct4**, s32);
extern void fn_1_5B34(unkStruct8*);
extern void fn_1_5B48(unkStruct8*);
extern void fn_1_5C10(unkStruct8*);
extern void fn_1_5C24(unkStruct8*);
extern void fn_1_5CEC(unkStruct8*);
extern void fn_1_5D00(unkStruct8*);
extern void fn_1_5E54(unkStruct8*, s32);
extern void fn_1_6074(unkStruct8*);
extern void fn_1_6264(unkStruct8*, Vec*, s32);
extern void fn_1_62F0(unkStruct8*, Vec*, s32);
extern void fn_1_637C(unkStruct8*, s32);
extern void fn_1_64BC(unkStruct8*, s32, s32);
extern void fn_1_6578(unkStruct8*);
extern void fn_1_6620(unkStruct8*);
s32 fn_1_480C(void);
void fn_1_4824(void);
void fn_1_487C(void);
unkStruct8* m446PlayerCreate(s32, unkStruct6*);
void fn_1_509C(unkStruct8*);
s32 m446PlayerAppendCard(unkStruct8*, unkStruct4*, s32);
s32 m446PlayerRemoveCard(unkStruct8*, unkStruct4*, s32);
s32 fn_1_5648(unkStruct8*, s32, unkStruct4**);
s32 fn_1_5678(unkStruct8*, unkStruct4**, s32);
void fn_1_5B34(unkStruct8*);
void fn_1_5B48(unkStruct8*);
void fn_1_5C10(unkStruct8*);
void fn_1_5C24(unkStruct8*);
void fn_1_5CEC(unkStruct8*);
void fn_1_5D00(unkStruct8*);
void fn_1_5E54(unkStruct8*, s32);
void fn_1_6074(unkStruct8*);
void fn_1_6264(unkStruct8*, Vec*, s32);
void fn_1_62F0(unkStruct8*, Vec*, s32);
void fn_1_637C(unkStruct8*, s32);
void fn_1_64BC(unkStruct8*, s32, s32);
void fn_1_6578(unkStruct8*);
void fn_1_6620(unkStruct8*);
// camera.c
extern s32 fn_1_6778(void);
extern void fn_1_68D8(void);
extern void fn_1_68DC(void);
extern void fn_1_6EA0(Vec*);
extern void fn_1_6EC4(Vec*);
extern void fn_1_6EE8(f32);
extern void fn_1_6EF8(Vec*, Vec*, f32*, s32);
extern s32 fn_1_708C(void);
extern void fn_1_709C(void);
s32 fn_1_6778(void);
void fn_1_68D8(void);
void fn_1_68DC(void);
void fn_1_6EA0(Vec*);
void fn_1_6EC4(Vec*);
void fn_1_6EE8(f32);
void fn_1_6EF8(Vec*, Vec*, f32*, s32);
s32 fn_1_708C(void);
void fn_1_709C(void);
// cursor.c
extern s32 fn_1_72E0(void);
extern void fn_1_72F8(void);
extern void fn_1_7350(void);
extern unkStruct7* m446CursorCreate(s32);
extern void fn_1_76E8(unkStruct7*);
extern void fn_1_77C8(unkStruct7*, u8);
extern void fn_1_7884(unkStruct7*);
extern void fn_1_7908(unkStruct7*, Vec*, s32);
extern void fn_1_799C(unkStruct7*);
extern void fn_1_7A38(unkStruct7*);
extern void fn_1_7AB4(unkStruct7*);
s32 fn_1_72E0(void);
void fn_1_72F8(void);
void fn_1_7350(void);
unkStruct7* m446CursorCreate(s32);
void fn_1_76E8(unkStruct7*);
void fn_1_77C8(unkStruct7*, u8);
void fn_1_7884(unkStruct7*);
void fn_1_7908(unkStruct7*, Vec*, s32);
void fn_1_799C(unkStruct7*);
void fn_1_7A38(unkStruct7*);
void fn_1_7AB4(unkStruct7*);
// stage.c
extern s32 fn_1_7BF0(void);
extern void fn_1_7C08(void);
extern void fn_1_7C60(void);
extern unkStruct9* m446StageCreate(void);
extern void fn_1_83F0(unkStruct9*);
extern void fn_1_84AC(unkStruct9*);
extern void fn_1_852C(unkStruct9*);
extern void fn_1_860C(unkStruct9*);
s32 fn_1_7BF0(void);
void fn_1_7C08(void);
void fn_1_7C60(void);
unkStruct9* m446StageCreate(void);
void fn_1_83F0(unkStruct9*);
void fn_1_84AC(unkStruct9*);
void fn_1_852C(unkStruct9*);
void fn_1_860C(unkStruct9*);

1305
src/REL/m412Dll/main.c Normal file

File diff suppressed because it is too large Load diff

7
src/libhu/setvf.c Normal file
View file

@ -0,0 +1,7 @@
#include "dolphin.h"
void HuSetVecF(Vec* arg0, f32 arg8, f32 arg9, f32 argA) {
arg0->x = arg8;
arg0->y = arg9;
arg0->z = argA;
}

7
src/libhu/subvf.c Normal file
View file

@ -0,0 +1,7 @@
#include "dolphin.h"
void HuSubVecF(Vec* out, Vec* in, Vec* sub) {
out->x = in->x - sub->x;
out->y = in->y - sub->y;
out->z = in->z - sub->z;
}