level overlay .bss sections defined

This commit is contained in:
Banjo Kazooie
2022-12-05 19:04:09 -06:00
parent 1e8dc04fb8
commit 0258e21af5
37 changed files with 170 additions and 129 deletions

1
src/FP/bss_end_pad.c Normal file
View File

@@ -0,0 +1 @@
char pad_FP_803935A8[0x20];

1
src/FP/bss_pad.c Normal file
View File

@@ -0,0 +1 @@
char pad_FP_80392F10[0x10];

View File

@@ -80,8 +80,7 @@ Struct_FP_2350 D_80391DB8[7]={
{0x364, 0x35E}
};
f64 D_80392CB8;
/* .bss */
s32 D_80392F20[3];
/* .code */

View File

@@ -5,7 +5,7 @@
f32 D_80391EB0[3] = {-625.0f, 8840.0f, -111.0f};
/* .bss */
extern struct {
struct {
u8 unk0;
s32 unk4;
s32 unk8;

View File

@@ -13,7 +13,8 @@ typedef struct {
f32 D_80391EC0[3] ={-625.0f, 466.0f, -111.0f};
extern Struct_FP_45D0_0 D_80392F50;
/* .bss */
Struct_FP_45D0_0 D_80392F50;
/* .code */
void FP_func_8038A9C0(void){

View File

@@ -31,8 +31,10 @@ f32 D_80391F2C[3] = {-4454.0f, 1920.0f, -6898.0f};
f32 D_80391F38[3] = {-4451.0f, 1920.0f, -6685.0f};
/* .bss */
extern ActorMarker *D_80393590[5];
extern struct {
Struct_FP_4770 D_80392F70[0x27];
Struct_FP_4770 D_80393280[0x27];
ActorMarker *D_80393590[5];
struct {
u8 unk0;
// u8 pad1[0x3];
s32 unk4;
@@ -43,9 +45,7 @@ extern struct {
u8 unk18;
u8 unk19;
u8 unk1A;
}D_803935A8;
extern Struct_FP_4770 D_80392F70[0x27];
extern Struct_FP_4770 D_80393280[0x27];
}FP_D_803935A8;
/* .code */
@@ -209,7 +209,7 @@ void func_8038B190(void){
}
void func_8038B1C4(void){
D_803935A8.unk0 = 0;
FP_D_803935A8.unk0 = 0;
}
void func_8038B1D0(enum jiggy_e jiggy_id){
@@ -233,8 +233,8 @@ void func_8038B268(void){
void func_8038B2C8(ActorMarker *caller, enum asset_e text_id, s32 arg2){
Actor *actor;
if(D_803935A8.unk14){
actor = marker_getActor(D_803935A8.unk14);
if(FP_D_803935A8.unk14){
actor = marker_getActor(FP_D_803935A8.unk14);
}
switch(text_id){
@@ -278,8 +278,8 @@ void func_8038B410(void){
Actor *sp2C;
func_8028F918(2);
if(D_803935A8.unk14)
sp2C = marker_getActor(D_803935A8.unk14);
if(FP_D_803935A8.unk14)
sp2C = marker_getActor(FP_D_803935A8.unk14);
sp2C->unk38_31 = 1;
func_8025A6EC(COMUSIC_3C_MINIGAME_LOSS, 28000);
@@ -304,9 +304,9 @@ void func_8038B544(void){
f32 f2;
f32 f0;
switch(D_803935A8.unk0){
switch(FP_D_803935A8.unk0){
case 1: //L8038B57C
if(D_803935A8.unk4 < 0x4e) break;
if(FP_D_803935A8.unk4 < 0x4e) break;
for(i = 0; i < 0x27; i++){
if(i < 0x26){
@@ -318,7 +318,7 @@ void func_8038B544(void){
D_80392F70[0x26].unk10 = D_80392F70[i].unk10;
}
func_8038AEA0();
D_803935A8.unk0 = NULL;
FP_D_803935A8.unk0 = NULL;
break;
case 2: //L8038B61C
@@ -330,19 +330,19 @@ void func_8038B544(void){
if(3.0f == marker_getActor(D_80392F70[0x26].marker)->velocity[0]){
func_8038B39C();
D_803935A8.unk0 = 3;
FP_D_803935A8.unk0 = 3;
break;
}
if(D_803935A8.unk10){
if(FP_D_803935A8.unk10){
func_8038B410();
D_803935A8.unk0 = 4;
FP_D_803935A8.unk0 = 4;
}
break;
case 3: //L8038B6C4
if(D_803935A8.unk14){
sp2C = marker_getActor(D_803935A8.unk14);
if(FP_D_803935A8.unk14){
sp2C = marker_getActor(FP_D_803935A8.unk14);
}
sp2C->unk38_31 = 2;
timed_playSfx(1.0f, SFX_8D_BOGGY_OHWW, 1.0f, 32000);
@@ -352,7 +352,7 @@ void func_8038B544(void){
else{
func_80324DBC(2.0f, 0xc07, 0x22, sp2C->position, NULL, func_8038B2C8, NULL);
}
D_803935A8.unk0 = 4;
FP_D_803935A8.unk0 = 4;
break;
}//L8038B794
}
@@ -363,19 +363,19 @@ void func_8038B7A4(void){
FP_func_8038AB60(0);
if(map_get() != MAP_27_FP_FREEZEEZY_PEAK || jiggyscore_isCollected(JIGGY_2C_FP_BOGGY_3)){
D_803935A8.unk0 = 0;
FP_D_803935A8.unk0 = 0;
return;
}
D_803935A8.unk0 = 1;
D_803935A8.unk14 = NULL;
D_803935A8.unk4 = 0;
D_803935A8.unk8 = -1;
D_803935A8.unkC = -1;
D_803935A8.unk10 = 0;
D_803935A8.unk18 = 0;
D_803935A8.unk19 = 0;
D_803935A8.unk1A = 0;
FP_D_803935A8.unk0 = 1;
FP_D_803935A8.unk14 = NULL;
FP_D_803935A8.unk4 = 0;
FP_D_803935A8.unk8 = -1;
FP_D_803935A8.unkC = -1;
FP_D_803935A8.unk10 = 0;
FP_D_803935A8.unk18 = 0;
FP_D_803935A8.unk19 = 0;
FP_D_803935A8.unk1A = 0;
for(i = 0; i < 0x27; i++){
D_80392F70[i].marker = NULL;
@@ -402,7 +402,7 @@ void func_8038B8B0(ActorMarker *marker){
D_80392F70[tmp_a0].position[0] = actor->position[0];
D_80392F70[tmp_a0].position[1] = actor->position[1];
D_80392F70[tmp_a0].position[2] = actor->position[2];
D_803935A8.unk4++;
FP_D_803935A8.unk4++;
}//L8038B920
}
@@ -416,16 +416,16 @@ void func_8038B930(ActorMarker *marker){
D_80393280[tmp_a0].position[0] = actor->position[0];
D_80393280[tmp_a0].position[1] = actor->position[1];
D_80393280[tmp_a0].position[2] = actor->position[2];
D_803935A8.unk4++;
FP_D_803935A8.unk4++;
}//L8038B9A0
}
void func_8038B9B0(ActorMarker *marker){
D_803935A8.unk14 = marker;
FP_D_803935A8.unk14 = marker;
}
void func_8038B9BC(void){
D_803935A8.unk14 = NULL;
FP_D_803935A8.unk14 = NULL;
}
void func_8038B9C8(void){
@@ -441,19 +441,19 @@ void func_8038B9C8(void){
__spawnQueue_add_0(func_8038B0F8);
}
D_803935A8.unk8 = -1;
D_803935A8.unkC = -1;
D_803935A8.unk10 = 0;
D_803935A8.unk18 = 0;
D_803935A8.unk19 = 0;
D_803935A8.unk1A = 0;
FP_D_803935A8.unk8 = -1;
FP_D_803935A8.unkC = -1;
FP_D_803935A8.unk10 = 0;
FP_D_803935A8.unk18 = 0;
FP_D_803935A8.unk19 = 0;
FP_D_803935A8.unk1A = 0;
FP_func_8038AB60(1);
D_803935A8.unk0 = 2;
FP_D_803935A8.unk0 = 2;
}
void FP_func_8038BA88(s32 arg0){
D_803935A8.unk8 = --arg0;
FP_D_803935A8.unk8 = --arg0;
func_8038AC20(arg0, 3);
if(arg0 + 1 < 39){
func_8038AC20(arg0 + 1, 1);
@@ -481,7 +481,7 @@ void FP_func_8038BA88(s32 arg0){
func_8028F8F8(30, 1);
}
switch(D_803935A8.unkC - D_803935A8.unk8){
switch(FP_D_803935A8.unkC - FP_D_803935A8.unk8){
case 3:
func_8025AEA0(0x3a, 0x411aa);
break;
@@ -500,47 +500,47 @@ void FP_func_8038BA88(s32 arg0){
void func_8038BC0C(s32 arg0){
if(D_803935A8.unkC - D_803935A8.unk8 < 4 || 0x23 < D_803935A8.unkC){
if(D_803935A8.unk14)
marker_getActor(D_803935A8.unk14);
if(FP_D_803935A8.unkC - FP_D_803935A8.unk8 < 4 || 0x23 < FP_D_803935A8.unkC){
if(FP_D_803935A8.unk14)
marker_getActor(FP_D_803935A8.unk14);
if(func_8038A1A0(D_803935A8.unk14))
if(func_8038A1A0(FP_D_803935A8.unk14))
return;
D_803935A8.unkC = arg0-1;
if(D_803935A8.unkC >= 0x26){
D_803935A8.unk10 = 1;
FP_D_803935A8.unkC = arg0-1;
if(FP_D_803935A8.unkC >= 0x26){
FP_D_803935A8.unk10 = 1;
return;
}
if(D_803935A8.unk0 == 3) return;
if(D_803935A8.unk0 == 4) return;
if(D_803935A8.unkC >= 0x25) return;
if(FP_D_803935A8.unk0 == 3) return;
if(FP_D_803935A8.unk0 == 4) return;
if(FP_D_803935A8.unkC >= 0x25) return;
switch(D_803935A8.unkC - D_803935A8.unk8){
switch(FP_D_803935A8.unkC - FP_D_803935A8.unk8){
case 4:
if(D_803935A8.unk1A)
if(FP_D_803935A8.unk1A)
break;
D_803935A8.unk1A = TRUE;
FP_D_803935A8.unk1A = TRUE;
FP_func_8038AB60(0);
if(!func_8028F22C()){
func_8028F918(2);
func_80311480(0xc10, 0x20, NULL, NULL, func_8038B2C8, NULL);
}//L8038BD40
D_803935A8.unk0 = 4;
FP_D_803935A8.unk0 = 4;
break;
case 3:
if(!D_803935A8.unk19 && !func_8028F22C()){
D_803935A8.unk19 = 1;
if(!FP_D_803935A8.unk19 && !func_8028F22C()){
FP_D_803935A8.unk19 = 1;
func_80311480(0xc0f, 0x20, NULL, NULL, NULL, NULL);
}//L8038BD94
func_8025AEA0(0x3a, 0x411aa);
break;
case 2:
if(!D_803935A8.unk18 && !func_8028F22C()){
D_803935A8.unk18 = 1;
if(!FP_D_803935A8.unk18 && !func_8028F22C()){
FP_D_803935A8.unk18 = 1;
func_80311480(0xc0e, 0x20, NULL, NULL, NULL, NULL);
}//L8038BDF0
func_8025AEA0(0x3a, 0x493e0);
@@ -560,19 +560,19 @@ f32 func_8038BE20(f32 arg0[3]){
f32 sp2C;
f32 tmp_f12;
tmp_f12 = (f32)(D_803935A8.unkC - D_803935A8.unk8);
if(D_803935A8.unk0 != 2 || D_803935A8.unkC < 0 || D_803935A8.unk8 < 0)
tmp_f12 = (f32)(FP_D_803935A8.unkC - FP_D_803935A8.unk8);
if(FP_D_803935A8.unk0 != 2 || FP_D_803935A8.unkC < 0 || FP_D_803935A8.unk8 < 0)
return 0.0f;
if(tmp_f12 == 0.0f){
player_getPosition(sp38);
f18 = D_80392F70[D_803935A8.unkC].unk10;
f18 = D_80392F70[FP_D_803935A8.unkC].unk10;
if( 0.0 == f18 )
return 0.5f;
sp30 = ((arg0[0] - D_80392F70[D_803935A8.unkC].position[0])*(D_80392F70[D_803935A8.unkC+1].position[0] - D_80392F70[D_803935A8.unkC].position[0]) + (arg0[2] - D_80392F70[D_803935A8.unkC].position[2])*(D_80392F70[D_803935A8.unkC+1].position[2] - D_80392F70[D_803935A8.unkC].position[2]))/f18;
sp2C = ((sp38[0] - D_80392F70[D_803935A8.unkC].position[0])*(D_80392F70[D_803935A8.unkC+1].position[0] - D_80392F70[D_803935A8.unkC].position[0]) + (sp38[2] - D_80392F70[D_803935A8.unkC].position[2])*(D_80392F70[D_803935A8.unkC+1].position[2] - D_80392F70[D_803935A8.unkC].position[2]))/f18;
sp30 = ((arg0[0] - D_80392F70[FP_D_803935A8.unkC].position[0])*(D_80392F70[FP_D_803935A8.unkC+1].position[0] - D_80392F70[FP_D_803935A8.unkC].position[0]) + (arg0[2] - D_80392F70[FP_D_803935A8.unkC].position[2])*(D_80392F70[FP_D_803935A8.unkC+1].position[2] - D_80392F70[FP_D_803935A8.unkC].position[2]))/f18;
sp2C = ((sp38[0] - D_80392F70[FP_D_803935A8.unkC].position[0])*(D_80392F70[FP_D_803935A8.unkC+1].position[0] - D_80392F70[FP_D_803935A8.unkC].position[0]) + (sp38[2] - D_80392F70[FP_D_803935A8.unkC].position[2])*(D_80392F70[FP_D_803935A8.unkC+1].position[2] - D_80392F70[FP_D_803935A8.unkC].position[2]))/f18;
return -(sp30 - sp2C);
}//L8038BF58
@@ -581,10 +581,10 @@ f32 func_8038BE20(f32 arg0[3]){
}
bool func_8038BFA0(void){
if ( D_803935A8.unk0 == 2
|| D_803935A8.unk0 == 3
|| D_803935A8.unk0 == 4
|| D_803935A8.unk1A
if ( FP_D_803935A8.unk0 == 2
|| FP_D_803935A8.unk0 == 3
|| FP_D_803935A8.unk0 == 4
|| FP_D_803935A8.unk1A
){
return TRUE;
}
@@ -594,8 +594,8 @@ bool func_8038BFA0(void){
bool func_8038BFE8(f32 arg0[3], s32 arg1){
Actor *actor;
if(D_803935A8.unk14){
actor = marker_getActor(D_803935A8.unk14);
if(FP_D_803935A8.unk14){
actor = marker_getActor(FP_D_803935A8.unk14);
}
else{
return FALSE;
@@ -612,5 +612,5 @@ bool func_8038BFE8(f32 arg0[3], s32 arg1){
}
s32 func_8038C098(void){
return D_803935A8.unk10;
return FP_D_803935A8.unk10;
}