From ffd0495f90372e2e9ba4645a3fa37f2798739296 Mon Sep 17 00:00:00 2001 From: Banjo Kazooie Date: Wed, 22 Feb 2023 16:34:34 -0600 Subject: [PATCH] func_80307CA0() match --- README.md | 2 +- decompressed.us.v10.yaml | 6 +-- include/enums.h | 8 ++-- progress/progress_core2.svg | 4 +- progress/progress_total.svg | 4 +- src/MMM/code_47D0.c | 2 +- src/core2/bsStoredState.c | 6 +-- src/core2/code_7AF80.c | 61 ++++++++++++------------- src/core2/code_956B0.c | 2 +- src/core2/code_B5040.c | 6 +-- src/core2/code_C4320.c | 4 +- src/core2/code_CF5F0.c | 2 +- src/core2/code_E680.c | 12 ++--- src/lair/{code_42A0.c => ch/cauldron.c} | 10 ++-- src/lair/code_5ED0.c | 18 ++++---- 15 files changed, 72 insertions(+), 75 deletions(-) rename src/lair/{code_42A0.c => ch/cauldron.c} (97%) diff --git a/README.md b/README.md index 42993c4b..ed0d3406 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# banjo (98.4318%) +# banjo (98.4559%) diff --git a/decompressed.us.v10.yaml b/decompressed.us.v10.yaml index bc519fba..7afa4d99 100644 --- a/decompressed.us.v10.yaml +++ b/decompressed.us.v10.yaml @@ -2172,7 +2172,7 @@ segments: exclusive_ram_id: overlay subsegments: - [0x1098070, c, code_0] #DONE - - [0x109C310, c, code_42A0] #DONE + - [0x109C310, c, ch/cauldron] #DONE - [0x109D6B0, c, ch/brentilda] #DONE - [0x109DF40, c, code_5ED0] #DONE - [0x10A0760, c, code_86F0] #DONE @@ -2186,7 +2186,7 @@ segments: - [0x10A4230, c, code_C1C0] #DONE - [0x10A4730, c, code_C6C0] #DONE - [0x10A4930, .data, code_0] - - [0x10A51A0, .data, code_42A0] + - [0x10A51A0, .data, ch/cauldron] - [0x10A5390, .data, ch/brentilda] - [0x10A53E0, .data, code_5ED0] - [0x10A6430, .data, code_86F0] @@ -2200,7 +2200,7 @@ segments: - [0x10A6940, .data, code_C1C0] - [0x10A69A0, .data, code_C6C0] - [0x10A69D0, .rodata, code_0] - - [0x10A6C80, .rodata, code_42A0] + - [0x10A6C80, .rodata, ch/cauldron] - [0x10A6D10, .rodata, ch/brentilda] - [0x10A6D40, .rodata, code_5ED0] - [0x10A6E50, .rodata, code_86F0] diff --git a/include/enums.h b/include/enums.h index 3152d932..18be86e6 100644 --- a/include/enums.h +++ b/include/enums.h @@ -1746,7 +1746,7 @@ enum actor_e ACTOR_239_FP_WITCH_SWITCH = 0x239, - ACTOR_23B_DINGPOT = 0x23B, + ACTOR_23B_WARP_CAULDRON = 0x23B, ACTOR_243_GV_SNS_CHAMBER_DOOR = 0x243, ACTOR_244_GV_SNS_SARCOPHAGUS, @@ -1798,7 +1798,7 @@ enum actor_e ACTOR_2A8_NABNUT = 0x2A8, ACTOR_2A9_ACORN, - ACTOR_2DB_WARP_CAULDRON = 0x2DB, + ACTOR_2DB_DINGPOT = 0x2DB, ACTOR_2E5_DOOR_OF_GRUNTY = 0x2e5, @@ -4346,7 +4346,7 @@ enum marker_e{ MARKER_22A_CCW_WITCH_SWITCH = 0x22A, MARKER_22B_FP_WITCH_SWITCH, - MARKER_231_DINGPOT = 0x231, + MARKER_231_WARP_CAULDRON = 0x231, MARKER_23A_GV_SNS_CHAMBER_DOOR = 0x23A, MARKER_23B_GV_SNS_SARCOPHAGUS, @@ -4355,7 +4355,7 @@ enum marker_e{ MARKER_23F_LAIR_FLIGHT_PAD_SWITCH = 0x23F, MARKER_240_LAIR_SWITCH_FLIGHT_PAD = 0x240, - MARKER_244_WARP_CAULDRON = 0x244, + MARKER_244_DINGPOT = 0x244, MARKER_245_XMAS_TREE_EGG_TOLL = 0x245, MARKER_250_ICECUBE_A = 0x250, diff --git a/progress/progress_core2.svg b/progress/progress_core2.svg index 315816ba..a339b8fc 100644 --- a/progress/progress_core2.svg +++ b/progress/progress_core2.svg @@ -17,7 +17,7 @@ core2 - 97.6633% - 97.6633% + 97.7054% + 97.7054% \ No newline at end of file diff --git a/progress/progress_total.svg b/progress/progress_total.svg index 435a2d96..023f0312 100644 --- a/progress/progress_total.svg +++ b/progress/progress_total.svg @@ -17,7 +17,7 @@ Banjo-Kazooie (us.v10) - 98.4318% - 98.4318% + 98.4559% + 98.4559% \ No newline at end of file diff --git a/src/MMM/code_47D0.c b/src/MMM/code_47D0.c index 4651c0fa..b5a9c6ba 100644 --- a/src/MMM/code_47D0.c +++ b/src/MMM/code_47D0.c @@ -16,7 +16,7 @@ typedef struct { /* .code */ void MMM_func_8038ABC0(s32 arg0) { if (getGameMode() != 7) { - func_80295864(func_802957F0() & ~arg0); + ability_setAllLearned(ability_getAllLearned() & ~arg0); } } diff --git a/src/core2/bsStoredState.c b/src/core2/bsStoredState.c index 31fc2fd4..fc977d13 100644 --- a/src/core2/bsStoredState.c +++ b/src/core2/bsStoredState.c @@ -10,12 +10,12 @@ struct { u8 bsStoredStateInTrot; //in trot /* .code */ -void func_8029A890(void){ - func_802957FC(); +void bsStoredState_debug(void){ + ability_debug(); } void bsStoredState_clear(void){ - func_80295804(); + ability_clearAll(); bsStoredState.longleg_timer = bsStoredState.turbo_timer = 0.0f; bsStoredState.transformation = TRANSFORM_1_BANJO; bsStoredStateInTrot = FALSE; diff --git a/src/core2/code_7AF80.c b/src/core2/code_7AF80.c index bd4501c4..3c6a2a79 100644 --- a/src/core2/code_7AF80.c +++ b/src/core2/code_7AF80.c @@ -2017,39 +2017,36 @@ Cube **func_80307948(s32 arg0[3]) { } #endif -#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_7AF80/func_80307CA0.s") -// void func_80307CA0(ActorMarker *marker) { -// s32 sp58[3]; -// s32 sp40[3]; -// Cube **var_s2; -// Cube *var_a0; -// NodeProp *temp_v0_2; -// s32 temp_v0_3; -// u32 var_s0; -// u8 temp_s4; -// s32 i; +void func_80307CA0(ActorMarker *marker) { + s32 temp_s4; + s32 sp58[3]; + s32 i; + Cube **var_s2; + NodeProp *temp_v0_2; + s32 sp40[3]; + s32 temp_v0_3; + s32 var_s0; -// temp_s4 = D_8036A9E4[marker->unk14_20]; -// if ((temp_s4 != 0xFF) && (bitfield_isBitSet(D_8036A9E0, temp_s4) == 1)) { -// func_8032E010(marker->propPtr, sp58); -// var_s2 = func_80307948(sp58); -// var_a0 = *var_s2; -// for(i = 0; var_s2[i] != NULL; i++) { -// for(var_s0 = 0; var_s0 < var_s2[i]->unk0_4; var_s0++){ -// temp_v0_2 = func_8032E02C(var_a0, var_s0); -// if (func_80330F74(temp_v0_2) == temp_s4) { -// temp_v0_3 = func_80330F94(temp_v0_2, sp40); -// if( ((sp40[0] - temp_v0_3) < sp58[0]) && (sp58[0] < (sp40[0] + temp_v0_3)) -// && ((sp40[1] - temp_v0_3) < sp58[1]) && (sp58[1] < (sp40[1] + temp_v0_3)) -// && ((sp40[2] - temp_v0_3) < sp58[2]) && (sp58[2] < (sp40[2] + temp_v0_3)) -// ) { -// func_80334448(temp_v0_2, marker); -// } -// } -// } -// } -// } -// } + temp_s4 = D_8036A9E4[marker->unk14_20]; + if ((temp_s4 != 0xFF) && (bitfield_isBitSet(D_8036A9E0, temp_s4) == 1)) { + func_8032E010(marker->propPtr, sp58); + var_s2 = func_80307948(sp58); + for(i = 0; var_s2[i] != NULL; i++) { + for(var_s0 = 0; var_s0 < var_s2[i]->unk0_4; var_s0++){ + temp_v0_2 = func_8032E02C(var_s2[i], var_s0); + if (func_80330F74(temp_v0_2) == temp_s4) { + temp_v0_3 = func_80330F94(temp_v0_2, sp40); + if( ((sp40[0] - temp_v0_3) < sp58[0]) && (sp58[0] < (sp40[0] + temp_v0_3)) + && ((sp40[1] - temp_v0_3) < sp58[1]) && (sp58[1] < (sp40[1] + temp_v0_3)) + && ((sp40[2] - temp_v0_3) < sp58[2]) && (sp58[2] < (sp40[2] + temp_v0_3)) + ) { + func_80334448(temp_v0_2, marker); + } + } + } + } + } +} u32 func_80307E1C(void) { diff --git a/src/core2/code_956B0.c b/src/core2/code_956B0.c index 270a918d..fb9a7b61 100644 --- a/src/core2/code_956B0.c +++ b/src/core2/code_956B0.c @@ -1464,6 +1464,6 @@ void func_8031FBF8(void) { honeycombscore_debug(); jiggyscore_debug(); func_803465DC(); - func_8029A890(); + bsStoredState_debug(); func_802C5A48(); } diff --git a/src/core2/code_B5040.c b/src/core2/code_B5040.c index 768ebd63..cb6150b2 100644 --- a/src/core2/code_B5040.c +++ b/src/core2/code_B5040.c @@ -115,7 +115,7 @@ void savedata_init(void){ //savedata_init func_80346F44(&sp48, &sp24); itemscore_timeScores_getSizeAndPtr(&sp44, &sp20); func_80347630(&sp3C, &sp1C); - func_8029587C(&sp38, &sp18); + ability_getSizeAndPtr(&sp38, &sp18); D_80383CF0 = 0; D_80383CF4 = D_80383CF0 + 2; D_80383CF8 = D_80383CF4 + sp54; @@ -216,7 +216,7 @@ void __savedata_load_abilities(u8 *savedata){ //savedata_load_abilities u8 *sp28; int i; - func_8029587C(&sp2C, &sp28); + ability_getSizeAndPtr(&sp2C, &sp28); for(i = D_80383D10; i < D_80383D10 + sp2C; i++){ sp28[i - D_80383D10] = savedata[i]; } @@ -308,7 +308,7 @@ void __savedata_save_abilities(u8 *savedata){ //savedata_save_abilities u8 *sp28; int i; - func_8029587C(&sp2C, &sp28); + ability_getSizeAndPtr(&sp2C, &sp28); for(i = D_80383D10; i < D_80383D10 + sp2C; i++){ savedata[i] = sp28[i - D_80383D10]; } diff --git a/src/core2/code_C4320.c b/src/core2/code_C4320.c index 7eb93e91..ae851f9e 100644 --- a/src/core2/code_C4320.c +++ b/src/core2/code_C4320.c @@ -196,8 +196,8 @@ void func_8034B834(void) { item_set(ITEM_F_RED_FEATHER, 50); item_set(ITEM_10_GOLD_FEATHER, 10); item_set(ITEM_1C_MUMBO_TOKEN, 25); - func_80295864(-1); - func_80295870(-1); + ability_setAllLearned(-1); + ability_setAllUsed(-1); for(i = 0; i < 10; i++){ fileProgressFlag_set(D_80371FA0[i], 1); } diff --git a/src/core2/code_CF5F0.c b/src/core2/code_CF5F0.c index 4435f71c..ecaa9d91 100644 --- a/src/core2/code_CF5F0.c +++ b/src/core2/code_CF5F0.c @@ -82,6 +82,6 @@ void func_80356714(void) { void func_80356734(void) { func_803565BC(); if (func_803565BC() == 0) { - func_80295864(0x10); + ability_setAllLearned(0x10); } } diff --git a/src/core2/code_E680.c b/src/core2/code_E680.c index d81c456e..b624c321 100644 --- a/src/core2/code_E680.c +++ b/src/core2/code_E680.c @@ -84,13 +84,13 @@ int ability_hasLearned(enum ability_e move){ return (1 << move) & D_8037C3A0; } -s32 func_802957F0(void){ +s32 ability_getAllLearned(void){ return D_8037C3A0; } -void func_802957FC(void){} +void ability_debug(void){} -void func_80295804(void){ +void ability_clearAll(void){ D_8037C3A0 = 0; D_8037C3A4 = 0; } @@ -103,15 +103,15 @@ void func_80295818(s32 move, s32 val){ } } -void func_80295864(s32 val){ +void ability_setAllLearned(s32 val){ D_8037C3A0 = val; } -void func_80295870(s32 val){ +void ability_setAllUsed(s32 val){ D_8037C3A4 = val; } -void func_8029587C(s32 *size, u8 **addr){ +void ability_getSizeAndPtr(s32 *size, u8 **addr){ *size = 8; *addr = &D_8037C3A0; } diff --git a/src/lair/code_42A0.c b/src/lair/ch/cauldron.c similarity index 97% rename from src/lair/code_42A0.c rename to src/lair/ch/cauldron.c index 8bd86722..95e2014f 100644 --- a/src/lair/code_42A0.c +++ b/src/lair/ch/cauldron.c @@ -33,8 +33,8 @@ ActorAnimationInfo D_80393520[] = { {0x28F, 5.167f}, {0x290, 6.26f} }; -ActorInfo D_80393560 = { MARKER_231_DINGPOT, ACTOR_23B_DINGPOT, ASSET_4DF_MODEL_WARP_CAULDRON, 1, D_80393520, chWarpCauldron_update, func_80326224, chWarpCauldron_draw, 0, 0, 3.0f, 0}; -ActorInfo D_80393584 = { MARKER_244_WARP_CAULDRON, ACTOR_2DB_WARP_CAULDRON, ASSET_450_MODEL_DINGPOT, 1, D_80393520, chWarpCauldron_update, func_80326224, chWarpCauldron_draw, 0, 0, 3.0f, 0}; +ActorInfo D_80393560 = { MARKER_231_WARP_CAULDRON, ACTOR_23B_WARP_CAULDRON, ASSET_4DF_MODEL_WARP_CAULDRON, 1, D_80393520, chWarpCauldron_update, func_80326224, chWarpCauldron_draw, 0, 0, 3.0f, 0}; +ActorInfo D_80393584 = { MARKER_244_DINGPOT, ACTOR_2DB_DINGPOT, ASSET_450_MODEL_DINGPOT, 1, D_80393520, chWarpCauldron_update, func_80326224, chWarpCauldron_draw, 0, 0, 3.0f, 0}; f32 D_803935A8[][2][3] = { {{1.0f, 1.0f, 1.0f}, {1.0f, 0.0f, 1.0f}}, {{1.0f, 1.0f, 1.0f}, {0.0f, 1.0f, 1.0f}}, @@ -129,7 +129,7 @@ void func_8038A96C(Actor *this, s32 arg1) { f32 sp38[4]; if( ( (arg1 != 3) || ( (this->unk1C[1] == 0.0f) && (this->marker->unk14_21 == 1))) - && (this->modelCacheIndex == ACTOR_23B_DINGPOT) + && (this->modelCacheIndex == ACTOR_23B_WARP_CAULDRON) && ((arg1 != 0) || fileProgressFlag_get(chWarpCauldron_getFileProgressFlagIndex(this))) ){ sp5C = func_8034C2C4(this->marker, 0x1C3); @@ -227,7 +227,7 @@ void chWarpCauldron_update(Actor *this) { this->marker->propPtr->unk8_3 = TRUE; this->unk1C[1] = 0.0f; this->velocity[0] = this->yaw; - if (this->modelCacheIndex == ACTOR_2DB_WARP_CAULDRON) { + if (this->modelCacheIndex == ACTOR_2DB_DINGPOT) { if (fileProgressFlag_get(FILEPROG_F3_MET_DINGPOT)) { sp4C = (fileProgressFlag_get(FILEPROG_CF_HAS_ENTERED_FINAL_FIGHT)) ? 0xFB7 : 0xFAE; phi_v0 = (fileProgressFlag_get(FILEPROG_CF_HAS_ENTERED_FINAL_FIGHT)) ? 0xFBC : 0xFB7; @@ -434,7 +434,7 @@ Actor *chWarpCauldron_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx) s32 sp3C[4]; this = marker_getActor(marker); - if(this->modelCacheIndex == ACTOR_23B_DINGPOT) { + if(this->modelCacheIndex == ACTOR_23B_WARP_CAULDRON) { func_8033A45C(3, this->unk38_0 ? TRUE : FALSE); func_8033A45C(4, this->unk38_0 ? FALSE : TRUE); } diff --git a/src/lair/code_5ED0.c b/src/lair/code_5ED0.c index 060a9f5f..3c476497 100644 --- a/src/lair/code_5ED0.c +++ b/src/lair/code_5ED0.c @@ -59,8 +59,8 @@ extern int quizQuestionAskedBitfield_get(u32); // ff_isAsked_flag_get extern void BKModel_getMeshCenter(BKModel *model, s32 mesh_id, s16 [3]); //! $a2 type unk extern s32 func_803203FC(s32); // get volatile flag -extern void func_80295864(s32); // set unlocked moves bitfield -extern s32 func_802957F0(void); // get unlocked moves bitfield +extern void ability_setAllLearned(s32); // set unlocked moves bitfield +extern s32 ability_getAllLearned(void); // get unlocked moves bitfield extern s32 item_getCount(s32); // item count get extern void func_803463F4(s32, s32); // item count set @@ -568,7 +568,7 @@ void lair_func_8038CD48(void) * Sets moves upon entering SM or MM from the Lair, FF asm code stays * latent until then */ - func_80295864(D_8037DCB8->unlockedMoves); + ability_setAllLearned(D_8037DCB8->unlockedMoves); D_8037DCB8->unk0 = NULL; @@ -600,7 +600,7 @@ void func_8038CE28(void) quizQuestionAskedBitfield_init(); // dump currently unlocked moves to storage - D_8037DCB8->unlockedMoves = func_802957F0(); + D_8037DCB8->unlockedMoves = ability_getAllLearned(); for (i = 0; i < ARRLEN(D_8037DCB8->unk3C); i++) D_8037DCB8->unk3C[i] = 0; @@ -833,7 +833,7 @@ void func_8038D4BC(void) // restore moves after a delay timedFunc_set_1(0.25f, - func_80295864, + ability_setAllLearned, D_8037DCB8->unlockedMoves ); @@ -901,12 +901,12 @@ void func_8038D670(enum FF_Action next_state) { } func_802FAD64(ITEM_27_JOKER_CARD); D_8037DCB8->unkF = -2; - func_80295864(D_8037DCB8->unlockedMoves); + ability_setAllLearned(D_8037DCB8->unlockedMoves); func_80347A14(1); break; case FFA_2_ON_BOARD_FORGET_MOVES: //L8038D70C - func_80295864(0); + ability_setAllLearned(0); break; case FFA_3_TRIGGER_QUESTION: //L8038D720 @@ -1008,7 +1008,7 @@ void func_8038D670(enum FF_Action next_state) { break; case FFA_5_FORGET_MOVES_2: //L8038DBEC - func_80295864(0); + ability_setAllLearned(0); break; case FFA_8_FURNACE_FUN_COMPLETE: //L8038DC00 @@ -1026,7 +1026,7 @@ void func_8038D670(enum FF_Action next_state) { func_80347A14(0); } func_8038D5A0(); - func_80295864(D_8037DCB8->unlockedMoves); + ability_setAllLearned(D_8037DCB8->unlockedMoves); func_80347A14(1); func_802FAD64(ITEM_27_JOKER_CARD); break;