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;