diff options
| author | Anghelo Carvajal <angheloalf95@gmail.com> | 2023-09-08 12:02:32 -0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-09-08 08:02:32 -0700 |
| commit | 81b40ad296cc1f501bf8a33ecb38015a1d6148a8 (patch) | |
| tree | e784e455d63c1a77b697278c5d4e52f311cb14ef /src/code/m_submenu.c | |
| parent | e8c701eeb4309235940ca685b00031140e22f79a (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.c | 81 |
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)) { |
