summaryrefslogtreecommitdiff
path: root/src/code/m_submenu.c
diff options
context:
space:
mode:
authorAnghelo Carvajal <angheloalf95@gmail.com>2023-09-08 12:02:32 -0300
committerGitHub <noreply@github.com>2023-09-08 08:02:32 -0700
commit81b40ad296cc1f501bf8a33ecb38015a1d6148a8 (patch)
treee784e455d63c1a77b697278c5d4e52f311cb14ef /src/code/m_submenu.c
parente8c701eeb4309235940ca685b00031140e22f79a (diff)
`submenu_ovl`, 3 NON_EQUIVALENTs and 2 NON_MATCHINGs (#88)
* C file * func_8085DA28_jp, func_8085DA9C_jp * func_8085D638_jp * func_8085D358_jp, func_8085D500_jp, func_8085D674_jp * bleh * func_8085BAC0_jp * func_8085D128_jp * Rename many functions * mSM_move_menu * a * func_8085D43C_jp * mSM_set_char_matrix * mSM_cbuf_copy draft * mSM_cbuf_copy NON_EQUIVALENT * func_8085C20C_jp draft * match func_8085C20C_jp * cleanup unc_8085C20C_jp * func_8085C7A4_jp ok, func_8085C7B8_jp NON_EQUIVALENT * mSM_draw_mail NON_MATCHING * func_8085D094_jp * mSM_set_other_seg mSM_set_before_menu_proc * meh * mSM_move_Move * migrate data * move submenu overlays to the submenu folder and make headers for them * name some files based on rodata strings * name functions from known submenu overlays * mSM_move_chg_base * mSM_menu_ovl_init NON_MATCHING * migrate bss * mSM_menu_ovl_init * SubmenuProgramId * mSM_save_before_func * mSM_return_func NON_EQUIVALENT * some cleanup * rename lots of data * kinda format * more cleanup * symbolize remaining stuff * format * Kinda fix whatever is going on with Game_Play_unk_0110 * mroecleanup * name known overlays * tag_program_dlftbl, hand_program_dlftbl, haniwa_program_dlftbl * format * flag defines
Diffstat (limited to 'src/code/m_submenu.c')
-rw-r--r--src/code/m_submenu.c81
1 files changed, 41 insertions, 40 deletions
diff --git a/src/code/m_submenu.c b/src/code/m_submenu.c
index a09cfb1..b40490c 100644
--- a/src/code/m_submenu.c
+++ b/src/code/m_submenu.c
@@ -60,7 +60,7 @@ s32 SubmenuArea_IsPlayer(void) {
#ifdef NON_MATCHING
// regalloc
void mSM_load_player_anime(Game_Play* game_play) {
- Game_Play_unk_0110* var_s4;
+ Game_Play_unk_0110_unk_0000* var_s4;
s32 var_s0;
s32 var_s3;
Player* temp_v0;
@@ -71,7 +71,7 @@ void mSM_load_player_anime(Game_Play* game_play) {
return;
}
- var_s4 = game_play->unk_0110;
+ var_s4 = game_play->unk_0110.unk_0000;
var_s4 += mSc_bank_regist_check(var_s4, 9);
for (var_s3 = 0; var_s3 < 2; var_s3++, var_s4++) {
@@ -101,7 +101,7 @@ void mSM_load_player_anime(Game_Play* game_play);
#pragma GLOBAL_ASM("asm/jp/nonmatchings/code/m_submenu/mSM_load_player_anime.s")
#endif
-void SubmenuArea_DoLink(SubmenuArea* area, mSM* submenu, SubmenuAreaIndex index) {
+void SubmenuArea_DoLink(SubmenuArea* area, Submenu* submenu, SubmenuAreaIndex index) {
area->allocatedRamAddr = D_8010DCE0_jp;
if (index == SUBMENU_AREA_INDEX_PLAYER) {
@@ -129,7 +129,7 @@ void SubmenuArea_DoLink(SubmenuArea* area, mSM* submenu, SubmenuAreaIndex index)
(void*)((uintptr_t)area->allocatedRamAddr + ALIGN64((uintptr_t)area->vramEnd - (uintptr_t)area->vramStart));
}
-void SubmenuArea_DoUnlink(SubmenuArea* area, mSM* submenu) {
+void SubmenuArea_DoUnlink(SubmenuArea* area, Submenu* submenu) {
if (area->allocatedRamAddr == NULL) {
return;
}
@@ -142,7 +142,7 @@ void SubmenuArea_DoUnlink(SubmenuArea* area, mSM* submenu) {
SubmenuArea_visit = NULL;
}
-s32 mSM_ovlptr_dllcnv_sub(void* vram, SubmenuArea* area, mSM* submenu) {
+s32 mSM_ovlptr_dllcnv_sub(void* vram, SubmenuArea* area, Submenu* submenu) {
SubmenuAreaIndex index;
s32 len = SUBMENU_AREA_INDEX_MAX;
@@ -156,7 +156,7 @@ s32 mSM_ovlptr_dllcnv_sub(void* vram, SubmenuArea* area, mSM* submenu) {
return 0;
}
-void* mSM_ovlptr_dllcnv(void* vram, mSM* submenu) {
+void* mSM_ovlptr_dllcnv(void* vram, Submenu* submenu) {
SubmenuArea* area = SubmenuArea_visit;
if (area == NULL) {
@@ -248,7 +248,7 @@ void mSM_submenu_ovlptr_init(Game_Play* game_play) {
size_t temp8 = ALIGN64(SEGMENT_VRAM_SIZE(ovl__0079E430));
size_t temp9 = ALIGN64(SEGMENT_VRAM_SIZE(ovl__0079F810));
size_t submenuOvlSize = ALIGN64(SEGMENT_VRAM_SIZE(submenu_ovl));
- size_t temp_a0 = ALIGN64(SEGMENT_VRAM_SIZE(ovl__00777AE0));
+ size_t temp_a0 = ALIGN64(SEGMENT_VRAM_SIZE(tag_ovl));
size_t var_t0 = temp6 + temp7;
size_t temp10;
size_t temp1;
@@ -262,12 +262,12 @@ void mSM_submenu_ovlptr_init(Game_Play* game_play) {
var_t0 = MAX(temp8 + temp9, var_t0);
- temp10 = ALIGN64(SEGMENT_VRAM_SIZE(ovl__007829E0));
- temp1 = ALIGN64(SEGMENT_VRAM_SIZE(ovl__00785700));
- temp2 = ALIGN64(SEGMENT_VRAM_SIZE(ovl__007908A0));
+ temp10 = ALIGN64(SEGMENT_VRAM_SIZE(hand_ovl));
+ temp1 = ALIGN64(SEGMENT_VRAM_SIZE(inventory_ovl));
+ temp2 = ALIGN64(SEGMENT_VRAM_SIZE(board_ovl));
temp3 = ALIGN64(SEGMENT_VRAM_SIZE(ovl__0078CB80));
temp4 = ALIGN64(SEGMENT_VRAM_SIZE(ovl__00799580));
- temp5 = ALIGN64(SEGMENT_VRAM_SIZE(ovl__007A28F0));
+ temp5 = ALIGN64(SEGMENT_VRAM_SIZE(catalog_ovl));
var_a3 = submenuOvlSize + temp1 + temp_a0 + temp10 + temp2 + temp3 + temp4 + var_t0;
var_a3 = MAX(submenuOvlSize + temp_a0 + temp10 + temp5 + 0x4000, var_a3);
@@ -294,7 +294,7 @@ dummy_label_255895:
fault_AddressConverterAddClient(&B_80144680_jp, func_800C497C_jp, NULL);
}
-void mSM_submenu_ovlptr_cleanup(mSM* submenu) {
+void mSM_submenu_ovlptr_cleanup(Submenu* submenu) {
fault_RemoveClient(&B_80144670_jp);
fault_AddressConverterRemoveClient(&B_80144680_jp);
if (SubmenuArea_visit != NULL) {
@@ -307,7 +307,7 @@ void mSM_submenu_ovlptr_cleanup(mSM* submenu) {
D_8010DCE4_jp = 0;
}
-void load_player(mSM* submenu) {
+void load_player(Submenu* submenu) {
SubmenuArea* playerActorOvl = &SubmenuArea_dlftbl[SUBMENU_AREA_INDEX_PLAYER];
if (SubmenuArea_visit == playerActorOvl) {
@@ -321,8 +321,8 @@ void load_player(mSM* submenu) {
SubmenuArea_DoLink(playerActorOvl, submenu, SUBMENU_AREA_INDEX_PLAYER);
}
-void mSM_submenu_ct(mSM* submenu) {
- bzero(submenu, sizeof(mSM));
+void mSM_submenu_ct(Submenu* submenu) {
+ bzero(submenu, sizeof(Submenu));
submenu->moveProcIndex = MSM_MOVE_PROC_WAIT;
submenu->unk_20 = 0;
@@ -332,23 +332,23 @@ void mSM_submenu_ct(mSM* submenu) {
common_data.unk_104AD = 0;
}
- submenu->play = (void*)none_proc1;
+ submenu->move = (void*)none_proc1;
submenu->draw = (void*)none_proc1;
}
-void mSM_submenu_dt(UNUSED mSM* submenu) {
+void mSM_submenu_dt(UNUSED Submenu* submenu) {
}
-void mSM_open_submenu(mSM* submenu, s32 arg1, s32 arg2, s32 arg3) {
- mSM_open_submenu_new2(submenu, arg1, arg2, arg3, 0, 0);
+void mSM_open_submenu(Submenu* submenu, SubmenuProgramId programId, s32 arg2, s32 arg3) {
+ mSM_open_submenu_new2(submenu, programId, arg2, arg3, 0, 0);
}
-void mSM_open_submenu_new(mSM* submenu, s32 arg1, s32 arg2, s32 arg3, s32 arg4) {
- mSM_open_submenu_new2(submenu, arg1, arg2, arg3, arg4, 0);
+void mSM_open_submenu_new(Submenu* submenu, SubmenuProgramId programId, s32 arg2, s32 arg3, s32 arg4) {
+ mSM_open_submenu_new2(submenu, programId, arg2, arg3, arg4, 0);
}
-void mSM_open_submenu_new2(mSM* submenu, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5) {
- submenu->unk_04 = arg1;
+void mSM_open_submenu_new2(Submenu* submenu, SubmenuProgramId programId, s32 arg2, s32 arg3, s32 arg4, s32 arg5) {
+ submenu->programId = programId;
submenu->unk_10 = arg2;
submenu->unk_14 = arg3;
submenu->unk_18 = arg4;
@@ -373,7 +373,7 @@ void mSM_Reset_player_btn_type2(Game_Play* game_play) {
}
void mSM_submenu_ctrl(Game_Play* game_play) {
- mSM* submenu = &game_play->submenu;
+ Submenu* submenu = &game_play->submenu;
if ((game_play->submenu.moveProcIndex != MSM_MOVE_PROC_WAIT) || (game_play->unk_1EE0 != 0) ||
(game_play->unk_1EE3 != 0)) {
@@ -422,14 +422,14 @@ void mSM_submenu_ctrl(Game_Play* game_play) {
}
}
- if (submenu->unk_04 != 0) {
+ if (submenu->programId != SUBMENU_PROGRAM_0) {
submenu->moveProcIndex = MSM_MOVE_PROC_PREWAIT;
submenu->unk_00 = 1;
SetGameFrame(2);
}
}
-void mSM_move_Wait(mSM* submenu) {
+void mSM_move_Wait(Submenu* submenu) {
if (submenu->unk_20 != 0) {
submenu->unk_20--;
}
@@ -439,13 +439,13 @@ void mSM_move_Wait(mSM* submenu) {
}
}
-void mSM_move_PREWait(mSM* submenu) {
+void mSM_move_PREWait(Submenu* submenu) {
if (submenu->unk_00 > 2) {
submenu->moveProcIndex = MSM_MOVE_PROC_LINKWAIT;
}
}
-void mSM_move_LINKWait(mSM* submenu) {
+void mSM_move_LINKWait(Submenu* submenu) {
SubmenuArea* submenuOvl = &SubmenuArea_dlftbl[SUBMENU_AREA_INDEX_SUBMENU];
if (SubmenuArea_visit == submenuOvl) {
@@ -457,7 +457,7 @@ void mSM_move_LINKWait(mSM* submenu) {
}
SubmenuArea_DoLink(submenuOvl, submenu, SUBMENU_AREA_INDEX_SUBMENU);
- submenu->play = mSM_ovlptr_dllcnv(mSM_menu_ovl_init, submenu);
+ submenu->move = mSM_ovlptr_dllcnv(mSM_menu_ovl_init, submenu);
submenu->draw = (void*)none_proc1;
submenu->moveProcIndex = MSM_MOVE_PROC_PLAY;
submenu->unk_DC = 1;
@@ -469,7 +469,8 @@ void mSM_move_LINKWait(mSM* submenu) {
xyz_t_move(&submenu->unk_E4, &ZeroVec);
if (submenu->unk_00 != 4) {
- if (((submenu->unk_04 == 4) && (submenu->unk_10 == 0)) || (common_data.now_private->gender == 0)) {
+ if (((submenu->programId == SUBMENU_PROGRAM_LEDIT) && (submenu->unk_10 == 0)) ||
+ (common_data.now_private->gender == 0)) {
sAdo_SpecChange(5);
} else {
sAdo_SpecChange(6);
@@ -478,22 +479,22 @@ void mSM_move_LINKWait(mSM* submenu) {
}
}
-void mSM_move_Play(mSM* submenu) {
- submenu->play(submenu);
+void mSM_move_Play(Submenu* submenu) {
+ submenu->move(submenu);
}
#ifdef NON_MATCHING
// likely branch instead of normal branch
-void mSM_move_End(mSM* submenu) {
+void mSM_move_End(Submenu* submenu) {
UNUSED s32 pad;
Game_Play* sp28;
UNK_TYPE sp24;
UNUSED s32 sp20[1];
sp28 = (Game_Play*)gamePT;
- submenu->play(submenu);
+ submenu->move(submenu);
submenu->moveProcIndex = MSM_MOVE_PROC_WAIT;
- submenu->unk_04 = 0;
+ submenu->programId = SUBMENU_PROGRAM_0;
submenu->unk_20 = 2;
submenu->unk_DC = 0;
@@ -505,7 +506,7 @@ void mSM_move_End(mSM* submenu) {
sp24 = mMsg_Get_base_window_p();
submenu->unk_00 = 0;
- mSc_dmacopy_all_exchange_bank(sp28->unk_0110);
+ mSc_dmacopy_all_exchange_bank(sp28->unk_0110.unk_0000);
SubmenuArea_DoUnlink(SubmenuArea_dlftbl, submenu);
load_player(submenu);
mSM_load_player_anime(sp28);
@@ -522,11 +523,11 @@ void mSM_move_End(mSM* submenu) {
mMsg_sound_spec_change_voice(sp24);
}
#else
-void mSM_move_End(mSM* submenu);
+void mSM_move_End(Submenu* submenu);
#pragma GLOBAL_ASM("asm/jp/nonmatchings/code/m_submenu/mSM_move_End.s")
#endif
-typedef void (*MoveProcFunc)(mSM*);
+typedef void (*MoveProcFunc)(Submenu*);
MoveProcFunc move_proc_616[MSM_MOVE_PROC_MAX] = {
mSM_move_Wait, // MSM_MOVE_PROC_WAIT
@@ -536,11 +537,11 @@ MoveProcFunc move_proc_616[MSM_MOVE_PROC_MAX] = {
mSM_move_End, // MSM_MOVE_PROC_END
};
-void mSM_submenu_move(mSM* submenu) {
+void mSM_submenu_move(Submenu* submenu) {
move_proc_616[submenu->moveProcIndex](submenu);
}
-void mSM_submenu_draw(mSM* submenu, struct Game_Play* game_play) {
+void mSM_submenu_draw(Submenu* submenu, struct Game_Play* game_play) {
SubmenuArea* submenuOvl = &SubmenuArea_dlftbl[SUBMENU_AREA_INDEX_SUBMENU];
if ((submenu->unk_00 >= 3) && (submenu->moveProcIndex == 3) && (submenuOvl == SubmenuArea_visit)) {