Back to OK without undefined symbols

This commit is contained in:
Mr-Wiseguy 2024-08-30 21:56:03 -04:00
parent 9d1d1e5de8
commit fd89ad5560
1 changed files with 32 additions and 143 deletions

View File

@ -189,9 +189,18 @@ f32 D_80391774[3] = {-1290.0f, 0.0f, -1290.0f};
f32 D_80391780[3] = {1290.0f, 0.0f, -1290.0f};
f32 D_8039178C[3] = {1290.0f, 0.0f, 1290.0f};
f32 D_80391798[3] = {0.0f, 0.0f, 0.0f};
f32 D_803917A4[4] = {500.0f, 650.0f, 800.0f, 950.0f};
f32 D_803917B4[4] = {3.75f, 3.0f, 2.25f, 1.5f};
s32 D_803917C4[3] = {230, 230, 230};
f32 D_803917D0[4] = {2.4f, 2.1f, 1.8f, 1.5f};
f32 D_803917E0[3] = {0.0f, 186.0f, 0.0f};
f32 D_803917EC[3] = {-827.0f, 793.0f, 1700.0f};
f32 D_803917F8[3] = {827.0f, 793.0f, -1700.0f};
f32 D_80391804[3] = {0.0f, 0.0f, 1350.0f};
/* .bss */
f32 D_80392750;
f32 D_80392758[3];
f32 D_80392768[3];
f32 D_80392778[3];
@ -207,70 +216,10 @@ u8 __chFinalBossJinjonatorHits;
u8 D_803927C7;
u8 D_803927C8;
u8 D_803927C9;
f32 D_803927D0[4][3]; //actually f32 [0x13][3], but exploded to match .bss wrapping
//Exploded for .bss matching
u8 D_80392800;
u8 D_80392801;
u8 D_80392802;
u8 D_80392803;
u8 D_80392804;
u8 D_80392805;
u8 D_80392806;
u8 D_80392807;
u8 D_80392808;
u8 D_80392809;
u8 D_8039280A;
u8 D_8039280B;
u8 D_8039280C;
u8 D_8039280D;
u8 D_8039280E;
u8 D_8039280F;
u8 D_80392810;
u8 D_80392811;
u8 D_80392812;
u8 D_80392813;
u8 D_80392814;
u8 D_80392815;
u8 D_80392816;
u8 D_80392817;
u8 D_80392818;
u8 D_80392819;
u8 D_8039281A;
u8 D_8039281B;
u8 D_8039281C;
u8 D_8039281D;
u8 D_8039281E;
u8 D_8039281F;
u8 D_80392820;
u8 D_80392821;
u8 D_80392822;
u8 D_80392823;
u8 D_80392824;
u8 D_80392825;
u8 D_80392826;
u8 D_80392827;
u8 D_80392828;
u8 D_80392829;
u8 D_8039282A;
u8 D_8039282B;
u8 D_8039282C;
u8 D_8039282D;
u8 D_8039282E;
u8 D_8039282F;
u8 D_80392830;
u8 D_80392831;
u8 D_80392832;
u8 D_80392833;
u8 D_80392834;
u8 D_80392835;
u8 D_80392836;
u8 D_80392837;
u8 D_80392838;
u8 D_80392839;
u8 D_8039283A;
u8 D_8039283B;
f32 D_803927D0[0x13][3];
f32 D_803928B8[3];
s32 D_803928C4;
f32 D_803928C8[3];
/* .code */
Actor *chfinalboss_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx) {
@ -1312,10 +1261,8 @@ void chfinalboss_phase2_update(ActorMarker *marker) {
}
void __chfinalboss_spawnStatue(enum bossjinjo_e statue_id) {
static f32 D_80392750;
s32 pad24_A;
s32 pad20_A;
f32* D_80392750_ptr = &D_80392750;
Actor *sp1C;
ActorLocal_fight_180 *local;
@ -1343,8 +1290,8 @@ void __chfinalboss_spawnStatue(enum bossjinjo_e statue_id) {
break;
case BOSSJINJO_JINJONATOR:
D_80392750 = ((local->mirror_phase5) ? 0.0f : 180.0f);
sp1C = func_8032813C(ACTOR_3A9_JINJONATOR_STATUE_BASE, D_80391798, (s32)D_80392750);
*D_80392750_ptr = ((local->mirror_phase5) ? 0.0f : 180.0f);
sp1C = func_8032813C(ACTOR_3A9_JINJONATOR_STATUE_BASE, D_80391798, (s32)*D_80392750_ptr);
break;
}
sp1C->unk60 = (statue_id == BOSSJINJO_JINJONATOR) ? 5.25f : 1.54f;
@ -1415,63 +1362,7 @@ void chfinalboss_dropHealth(ActorMarker *marker) {
SPAWNQUEUE_ADD_1(__chfinalboss_dropHealth, marker);
}
//exploded for .bss matching
u8 D_8039283C;
u8 D_8039283D;
u8 D_8039283E;
u8 D_8039283F;
u8 fight_D_80392840;
u8 D_80392841;
u8 D_80392842;
u8 D_80392843;
u8 D_80392844;
u8 D_80392845;
u8 D_80392846;
u8 D_80392847;
u8 D_80392848;
u8 D_80392849;
u8 D_8039284A;
u8 D_8039284B;
u8 D_8039284C;
u8 D_8039284D;
u8 D_8039284E;
u8 D_8039284F;
u8 D_80392850;
u8 D_80392851;
u8 D_80392852;
u8 D_80392853;
u8 D_80392854;
u8 D_80392855;
u8 D_80392856;
u8 D_80392857;
u8 D_80392858;
u8 D_80392859;
u8 D_8039285A;
u8 D_8039285B;
u8 D_8039285C;
u8 D_8039285D;
u8 D_8039285E;
u8 D_8039285F;
u8 D_80392860;
u8 D_80392861;
u8 D_80392862;
u8 D_80392863;
u8 fight_D_80392864;
u8 D_80392865;
u8 D_80392866;
u8 D_80392867;
u8 D_80392868;
u8 D_80392869;
u8 D_8039286A;
u8 D_8039286B;
u8 D_8039286C[0x4C];
f32 D_803928B8[3];
void chfinalboss_phase3_update(ActorMarker *marker) {
static f32 D_803917A4[4] = {500.0f, 650.0f, 800.0f, 950.0f};
static f32 D_803917B4[4] = {3.75f, 3.0f, 2.25f, 1.5f};
static s32 D_803917C4[3] = {230, 230, 230};
Actor *this;
ActorLocal_fight_180 *local;
f32 sp3C;
@ -1578,8 +1469,14 @@ void chfinalboss_phase4_setState(Actor *this, s32 arg1) {
ActorLocal_fight_180 *local;
f32 sp48;
f32 sp3C[3];
s32 i;
static s32 D_803928C4;
// TODO this union is only needed to avoid making D_803928C4 a function static.
// It uses a trick to generate the same codegen as if it were a function static by taking the address to it
// and using that pointer in its place. This avoids needing to deal with bss reordering issues in this file,
// but if bss can be solved without it then this union can be removed and just replaced with `i`.
union {
s32 i;
s32 *D_803928C4_ptr;
} iter;
local = (ActorLocal_fight_180 *)&this->local;
sp48 = animctrl_getAnimTimer(this->animctrl);
@ -1595,6 +1492,7 @@ void chfinalboss_phase4_setState(Actor *this, s32 arg1) {
case 30:
if ((local->unk3 == 2) && (local->unkA == 0)) {
iter.D_803928C4_ptr = &D_803928C4;
D_803927C8 = 1;
func_80311480(randi2(0, 5) + 0x1136, 4, NULL, NULL, NULL, NULL);
if ( !fileProgressFlag_get(FILEPROG_D2_HAS_SPAWNED_A_JINJO_STATUE_IN_FINAL_FIGHT) ) {
@ -1617,8 +1515,9 @@ void chfinalboss_phase4_setState(Actor *this, s32 arg1) {
func_80324E38(8.8f, 0);
break;
}
for(D_803928C4 = 1; D_803928C4 < 5; D_803928C4++){
chfinalboss_spawnStatue(D_803928C4);
for(*iter.D_803928C4_ptr = 1; *iter.D_803928C4_ptr < 5; (*iter.D_803928C4_ptr)++){
chfinalboss_spawnStatue(*iter.D_803928C4_ptr);
}
}
break;
@ -1666,17 +1565,16 @@ void chfinalboss_phase4_setState(Actor *this, s32 arg1) {
func_8030DD14(this->unk44_31, 2);
func_8030DBB4(this->unk44_31, D_803927C0);
sfxsource_setSampleRate(this->unk44_31, 26000);
for(i = 0; i < 4; i++){
if(__chFinalBossJinjoStatueMarker[i] != NULL){
marker_despawn(__chFinalBossJinjoStatueMarker[i]);
__chFinalBossJinjoStatueMarker[i] = NULL;
for(iter.i = 0; iter.i < 4; iter.i+=1){
if(__chFinalBossJinjoStatueMarker[iter.i] != NULL){
marker_despawn(__chFinalBossJinjoStatueMarker[iter.i]);
__chFinalBossJinjoStatueMarker[iter.i] = NULL;
}
}
break;
}
}
f32 D_803928C8[3];
ActorMarker *chfinalboss_findCollidingJinjo(Actor *this, f32 arg1) {
Actor *jinjo;
@ -1768,8 +1666,6 @@ void chfinalboss_phase4_update(ActorMarker *marker) {
if (D_803927C4 == 0) {
fight_func_80387340(this, 1.0f);
if (actor_animationIsAt(this, 0.9999f)) {
static f32 D_803917D0[4] = {2.4f, 2.1f, 1.8f, 1.5f};
local->unk3++;
chfinalboss_phase4_setState(this, 0x1F);
this->unk60 = D_803917D0[sp70];
@ -1976,8 +1872,6 @@ void chfinalboss_phase5_update(ActorMarker *marker) {
timed_setStaticCameraToNode(4.4f, sp38 + 3 + __chFinalBossJinjonatorHits);
}
} else {
static f32 D_803917E0[3] = {0.0f, 186.0f, 0.0f};
func_802BB3DC(0, 63.0f, 0.9f);
chjinjonator_finalAttack(jinjonator_marker);
func_8030E6D4(SFX_HEAVY_THUNDERSTORM_01);
@ -2112,10 +2006,8 @@ void chfinalboss_phase5_update(ActorMarker *marker) {
if (actor_animationIsAt(this, 0.9f)) {
ncStaticCamera_exit();
if (local->mirror_phase5 == 0) {
static f32 D_803917EC[3] = {-827.0f, 793.0f, 1700.0f};
ncStaticCamera_setPositionAndTarget(D_803917EC, this->position);
} else {
static f32 D_803917F8[3] = {827.0f, 793.0f, -1700.0f};
ncStaticCamera_setPositionAndTarget(D_803917F8, this->position);
}
func_8038FC2C(1);
@ -2272,9 +2164,6 @@ void chfinalboss_spawnShadow(ActorMarker *marker) {
}
void chfinalboss_update(Actor *this){
static f32 D_80391804[3] = {0.0f, 0.0f, 1350.0f};
ActorLocal_fight_180 *local = (ActorLocal_fight_180 *) &this->local;
s32 i;
s32 tmp_s0;