97F80, A4290, and A48B0 matching, started bss import on engine. (#47)

* stuff

* three whole files

* format

* format and such

* one cleanup
This commit is contained in:
petrie911
2023-12-09 15:53:24 -03:00
committed by GitHub
parent 392305e919
commit c9e58a815d
23 changed files with 1592 additions and 531 deletions
+6 -3
View File
@@ -85,6 +85,7 @@ void func_8001AF40(s32);
void func_8001D1C8(s32, s32);
void func_8001D400(s32);
void func_8001D444(u8, u16, u8, u8);
void func_8001D638(u8);
void func_8001DA90(u8);
void func_8001DBD0(s32);
void func_8001DC6C(u8, u16);
@@ -471,7 +472,9 @@ void func_80094954(Object_8C*);
void func_80094BBC(Object_8C*);
void func_80094D20(f32, f32);
// sf_97F80
// fox_97F80
void func_80098860(Plane *plane, Vec3f *point, Vec3f *normal);
s32 func_800988B4(Vec3f *vec, Plane *plane);
s32 func_800998FC(Vec3f*, Vec3f*, Vec3f*, s32, Vec3f*, f32*);
// fox_A24B0
@@ -488,9 +491,9 @@ void func_800A25DC(void);
Object_2F4 *func_800A3608(s32);
// fox_A4290
s32 func_800A3690(Vec3f*, Vec3f*, s32, Vec3f*);
bool func_800A3690(Vec3f*, Vec3f*, s32, Vec3f*);
// sf_A48A0
// fox_A48A0
void func_800A3CA0(void);
// sf_A4B50
+3 -1
View File
@@ -7,9 +7,11 @@
#define SEGMENTED_TO_VIRTUAL(segment) ((void*)OS_PHYSICAL_TO_K0(gSegments[((uintptr_t)(segment)<<4)>>0x1C]+(((uintptr_t)(segment))&0xFFFFFF)))
#define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0]))
#define SQ(x) ((x) * (x))
#define SIGN_OF(x) (((x) > 0) ? 1 : ((x) == 0) ? 0 : -1)
#define SQ(x) ((x) * (x))
#define VEC3F_SQ(vec) (SQ((vec).x) + SQ((vec).y) + SQ((vec).z))
#define DOT_XYZ(a, b) ((a).x * (b).x + (a).y * (b).y + (a).z * (b).z)
#define USEC_TO_CYCLES(n) (((u64)(n)*(osClockRate/15625LL))/(1000000LL/15625LL))
#define MSEC_TO_CYCLES(n) (USEC_TO_CYCLES((n) * 1000LL))
+34 -8
View File
@@ -6,6 +6,34 @@
#define UNK_TYPE s32
typedef struct {
Vec3f normal;
f32 dist;
} Plane;
typedef struct {
s16 vtx[3];
s16 unk_06;
Vec3s normal;
s32 dist;
} CollisionPoly;
typedef struct {
Vec3f min;
Vec3f max;
s32 polyCount;
CollisionPoly* polys;
Vec3s* mesh;
} CollisionHeader; // size = 0x24
typedef struct {
Vec3f min;
Vec3f max;
s32 polyCount;
s16 (*polys)[3];
Vec3f* mesh;
} CollisionHeader2; // size = 0x24
typedef void (*TimerAction)(s32*, s32);
typedef struct {
@@ -315,17 +343,15 @@ typedef struct {
/* 0x10 */ Vec3f rot;
} Object; // size = 0x1C
typedef void (*ObjectFunc)(Object*);
typedef struct {
union {
/* 0x00 */ void* drawVoid; // Have the first option be a void type to silence warnings about the wrong type in the initialization of this object.
/* 0x00 */ void (*draw)(Object*); // argument must have object type.
/* 0x00 */ Gfx* drawGfx; //Can be dlist.
/* 0x00 */ union {
ObjectFunc draw;
Gfx* dList;
};
/* 0x00 */ u8 drawType;
union {
/* 0x08 */ void* actionVoid; // Have the first option be a void type to silence warnings about the wrong type in the initialization of this object.
/* 0x08 */ void (*action)(Object*); // argument must have object type. But it can be one of many different types of objects.
};
/* 0x08 */ ObjectFunc action; // argument must have object type.
/* 0x0C */ f32* unk_0C; // some sort of script?
/* 0x10 */ f32 unk_10; // z coordinate of something
/* 0x14 */ s16 unk_14; // can be -1, 0, 1
+10 -8
View File
@@ -203,6 +203,8 @@ extern s32 D_800D2884[];
extern s32 D_800D2894[];
extern s32 D_800D28A4[];
extern s32 D_800D28B4[];
extern CollisionHeader D_800D2B38[];
extern CollisionHeader2 D_800D2CA0[];
extern u8 D_800D3180[0x1E]; // might be bigger? at least 0x21
extern s32 D_800D4A70;
extern Save gDefaultSave;
@@ -226,7 +228,7 @@ extern s32 D_801613A0;
// fox_52730
extern Vec3f D_801613B0[];
extern Vec3f D_801613E0[2];
extern Vec3f D_801613E0[];
extern s16 D_80161410;
extern Matrix D_80161418[4];
extern Vec3f D_80161518[4];
@@ -276,10 +278,7 @@ extern s32 D_801617B8;
extern s32 D_80161810[];
extern s32 D_80161900[];
extern s32 D_80161910[0x10]; // part of previous or next?
// sf_97F80
extern f32 D_80161950;
extern s32 D_80161910[0x10]; // part of sf_hud or fox_97F80?
// fox_display
extern char D_801619A0[100];
@@ -425,6 +424,7 @@ extern f32 D_80177D08;
extern s32 D_80177D10[];
extern f32 D_80177D20;
extern s32 D_80177D28[];
extern f32 D_80177D38;
extern s32 D_80177D40[];
extern f32 D_80177D50;
extern s32 D_80177D58[];
@@ -453,6 +453,8 @@ extern u32* D_80178298;
extern s32 D_8017829C;
extern s32 D_801782A4;
extern Object_58 *D_801782A8;
extern s32 D_801782AC;
extern s32 D_801782B4;
extern s32 D_801782B8;
extern s32 D_801782BC;
extern s32 D_801782C0;
@@ -543,9 +545,9 @@ extern s32 D_80178570;
extern s32 D_80178574;
extern s32 D_80178578;
// file split -- part of radio? rcp?
extern s32 D_80178580;
extern s32 *D_80178710;
// fox_rcp?
extern u8 D_80178580[];
extern void *D_80178710;
//fox_radio
extern u16** D_80178720;