Fix bss ordering in code_7AF80

This commit is contained in:
Mr-Wiseguy
2024-08-30 20:51:36 -04:00
parent 9f05494e7c
commit 9d1d1e5de8

View File

@@ -117,9 +117,6 @@ struct {
s32 unk44; s32 unk44;
} D_80381FA0; } D_80381FA0;
u8 D_80381FE8[0x50];
/* .code */ /* .code */
void func_80301F10(Cube *cube, Gfx **gfx, Mtx **mtx, Vtx **vtx){ void func_80301F10(Cube *cube, Gfx **gfx, Mtx **mtx, Vtx **vtx){
func_80308F0C(cube); func_80308F0C(cube);
@@ -252,6 +249,7 @@ void func_80301F50(Gfx **gfx, Mtx **mtx, Vtx **vtx, s32 arg3[3], s32 arg4[3], s3
sp44 -= D_80381FA0.stride[0]; sp44 -= D_80381FA0.stride[0];
} }
} }
u8 D_80381FE8[0x50];
void func_80302634(Gfx **gfx, Mtx **mtx, Vtx **vtx, s32 arg3[3], s32 arg4[3], s32 arg5[3]) { void func_80302634(Gfx **gfx, Mtx **mtx, Vtx **vtx, s32 arg3[3], s32 arg4[3], s32 arg5[3]) {
s32 sp54; s32 sp54;
@@ -541,6 +539,7 @@ Cube *func_8030364C(void){
return D_80381FA0.unk40; return D_80381FA0.unk40;
} }
s32 D_803820A8[3];
Cube *func_80303658(void){ Cube *func_80303658(void){
return D_80381FA0.unk3C; return D_80381FA0.unk3C;
} }
@@ -637,6 +636,11 @@ BKCollisionTri * func_80303960(f32 volume_p1[3], f32 volume_p2[3], f32 radius, f
return var_s5; return var_s5;
} }
s32 D_803820B8[0x20]; //ActorProp *, (maybe Prop *)
u8 pad_80382138[4];
s32 D_8038213C;
extern Cube *D_80382144;
//BKCollisionTri * //BKCollisionTri *
BKCollisionTri * func_80303AF0(f32 position[3], f32 radius, f32 arg2[3], u32 arg3) { BKCollisionTri * func_80303AF0(f32 position[3], f32 radius, f32 arg2[3], u32 arg3) {
s32 cube_indx[3]; s32 cube_indx[3];
@@ -664,7 +668,6 @@ BKCollisionTri * func_80303AF0(f32 position[3], f32 radius, f32 arg2[3], u32 arg
return var_s5; return var_s5;
} }
s32 D_803820B8[0x20]; //ActorProp *, (maybe Prop *)
void func_80303C54(Cube *cube, ActorMarker *marker, f32 arg2, s32 arg3, s32 *arg4, s32 *arg5) { void func_80303C54(Cube *cube, ActorMarker *marker, f32 arg2, s32 arg3, s32 *arg4, s32 *arg5) {
ActorProp *phi_s0; ActorProp *phi_s0;
@@ -688,7 +691,10 @@ void func_80303C54(Cube *cube, ActorMarker *marker, f32 arg2, s32 arg3, s32 *arg
}; };
} }
s32 D_8038213C; Cube *D_80382144;
s32 D_80382148;
s16 D_80382150[0x48];
u32 D_803821E0[0x5B];
void func_80303D78(ActorMarker *arg0, f32 arg1, UNK_TYPE(s32) arg2) { void func_80303D78(ActorMarker *arg0, f32 arg1, UNK_TYPE(s32) arg2) {
s32 sp6C[3]; s32 sp6C[3];
s32 sp60[3]; s32 sp60[3];
@@ -727,17 +733,19 @@ void func_80303F6C(s32 indx, s32 arg1){
ActorProp *func_80303F7C(ActorMarker *arg0, f32 arg1, s32 arg2, s32 arg3) { ActorProp *func_80303F7C(ActorMarker *arg0, f32 arg1, s32 arg2, s32 arg3) {
s32 temp_v1; s32 temp_v1;
s32 phi_a0; s32 phi_a0;
static s32 D_80382148; // This matches without a pointer by using a function static, but
// triggers tricky bss reordering.
s32* D_80382148_ptr = &D_80382148;
if (arg3 == 0) { if (arg3 == 0) {
func_80303D78(arg0, arg1, arg2); func_80303D78(arg0, arg1, arg2);
D_80382148 = 0; *D_80382148_ptr = 0;
return 0; return 0;
} }
else{ else{
temp_v1 = D_803820B8[D_80382148]; temp_v1 = D_803820B8[*D_80382148_ptr];
if (temp_v1 != 0) { if (temp_v1 != 0) {
D_80382148++; (*D_80382148_ptr)++;
} }
return temp_v1; return temp_v1;
} }
@@ -2042,10 +2050,8 @@ u32 func_80307EA8(s32 arg0, s32 arg1[3], s32 *arg2, s32 *arg3) {
u32 var_s4; u32 var_s4;
NodeProp *temp_a0; NodeProp *temp_a0;
Cube *temp_v0; Cube *temp_v0;
static s32 D_803820A8[3];
static s32 D_803820B4; static s32 D_803820B4;
var_s4 = 0; var_s4 = 0;
if (arg0 == 0) { if (arg0 == 0) {
D_803820A8[0] = (s32) D_80381FA0.min[0]; D_803820A8[0] = (s32) D_80381FA0.min[0];
@@ -2154,11 +2160,9 @@ bool func_803082D8(Cube *arg0, s32 *arg1, bool arg2, bool arg3) {
return var_a0; return var_a0;
} }
Cube *D_80382144;
s32 func_803083B0(s32 arg0) { s32 func_803083B0(s32 arg0) {
s32 var_v0; s32 var_v0;
Cube *var_s0; Cube *var_s0;
static u8 a;
static s32 D_80382140; static s32 D_80382140;
if (arg0 == -1) { if (arg0 == -1) {
@@ -2323,9 +2327,6 @@ bool func_803088C8(s32 arg0) {
return (D_8036ABAC[i] == -1) ? FALSE : TRUE; return (D_8036ABAC[i] == -1) ? FALSE : TRUE;
} }
/* .bss */ //must be defined AFTER func_80303F7C for local static alignment
s16 D_80382150[0x48];
/* .code */ /* .code */
void func_8030895C(s32 arg0){ void func_8030895C(s32 arg0){
D_80382150[D_8036ABD4] = arg0; D_80382150[D_8036ABD4] = arg0;
@@ -2416,9 +2417,6 @@ void func_80308D2C(Gfx **gfx, Mtx **mtx, Vtx **vtx) {
func_8032F464(0); func_8032F464(0);
} }
/* .bss */
u32 D_803821E0[0x5B];
/* .code */ /* .code */
void func_80308EC8(void){ void func_80308EC8(void){
s32 i; s32 i;