diff --git a/Progress.md b/Progress.md index 0bc920d024b..47400bc8aa8 100644 --- a/Progress.md +++ b/Progress.md @@ -7,22 +7,22 @@ Section | Percentage | Decompiled (bytes) | Total (bytes) .init | 97.972973% | 9280 | 9472 .extab | 100.000000% | 96 | 96 .extabindex | 100.000000% | 96 | 96 -.text | 47.114341% | 1694488 | 3596544 +.text | 47.116120% | 1694552 | 3596544 .ctors | 100.000000% | 448 | 448 .dtors | 100.000000% | 32 | 32 .rodata | 100.000000% | 193856 | 193856 .data | 100.000000% | 197632 | 197632 .sdata | 100.000000% | 1408 | 1408 .sdata2 | 100.000000% | 20832 | 20832 -Total | 52.688307% | 2118424 | 4020672 +Total | 52.689899% | 2118488 | 4020672 ## Total Section | Percentage | Decompiled (bytes) | Total (bytes) ---|---|---|--- -main.dol | 52.688307% | 2118424 | 4020672 +main.dol | 52.689899% | 2118488 | 4020672 RELs | 36.662828% | 4216344 | 11500324 -Total | 40.814185% | 6334768 | 15520996 +Total | 40.814597% | 6334832 | 15520996 ## RELs diff --git a/asm/d/menu/d_menu_fishing/draw__15dMenu_Fishing_cFv.s b/asm/d/menu/d_menu_fishing/draw__15dMenu_Fishing_cFv.s deleted file mode 100644 index 109dbc1fb90..00000000000 --- a/asm/d/menu/d_menu_fishing/draw__15dMenu_Fishing_cFv.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_801C659C: -/* 801C659C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801C65A0 7C 08 02 A6 */ mflr r0 -/* 801C65A4 90 01 00 14 */ stw r0, 0x14(r1) -/* 801C65A8 4B FF EB A5 */ bl _draw__15dMenu_Fishing_cFv -/* 801C65AC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801C65B0 7C 08 03 A6 */ mtlr r0 -/* 801C65B4 38 21 00 10 */ addi r1, r1, 0x10 -/* 801C65B8 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_insect/draw__14dMenu_Insect_cFv.s b/asm/d/menu/d_menu_insect/draw__14dMenu_Insect_cFv.s deleted file mode 100644 index c7230951c0b..00000000000 --- a/asm/d/menu/d_menu_insect/draw__14dMenu_Insect_cFv.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_801DA630: -/* 801DA630 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801DA634 7C 08 02 A6 */ mflr r0 -/* 801DA638 90 01 00 14 */ stw r0, 0x14(r1) -/* 801DA63C 4B FF E1 25 */ bl _draw__14dMenu_Insect_cFv -/* 801DA640 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801DA644 7C 08 03 A6 */ mtlr r0 -/* 801DA648 38 21 00 10 */ addi r1, r1, 0x10 -/* 801DA64C 4E 80 00 20 */ blr diff --git a/include/d/menu/d_menu_fishing.h b/include/d/menu/d_menu_fishing.h index e40a4c1bb83..884ed5d60e7 100644 --- a/include/d/menu/d_menu_fishing.h +++ b/include/d/menu/d_menu_fishing.h @@ -30,7 +30,7 @@ public: /* 801C605C */ void setFishParam(int, u16, u8); /* 801C6210 */ void setHIO(bool); - /* 801C659C */ virtual void draw(); + /* 801C659C */ virtual void draw() { _draw(); } /* 801C4D98 */ virtual ~dMenu_Fishing_c(); u8 getStatus() { return mStatus; } diff --git a/include/d/menu/d_menu_insect.h b/include/d/menu/d_menu_insect.h index ade614d2c08..540f069e34a 100644 --- a/include/d/menu/d_menu_insect.h +++ b/include/d/menu/d_menu_insect.h @@ -51,7 +51,7 @@ public: /* 801DA3B4 */ void setBButtonString(u16); /* 801DA464 */ void setHIO(bool); - /* 801DA630 */ virtual void draw(); + /* 801DA630 */ virtual void draw() { _draw(); } /* 801D82F4 */ virtual ~dMenu_Insect_c(); u8 getStatus() { return mStatus; } diff --git a/src/d/menu/d_menu_fishing.cpp b/src/d/menu/d_menu_fishing.cpp index 1f8bdaf88a5..14eb9b64146 100644 --- a/src/d/menu/d_menu_fishing.cpp +++ b/src/d/menu/d_menu_fishing.cpp @@ -1,10 +1,8 @@ /** * d_menu_fishing.cpp - * Fish Journal + * Menu - Fishing Journal */ -#define NO_INLINE_DLSTBASE_DRAW - #include "d/menu/d_menu_fishing.h" #include "JSystem/J2DGraph/J2DTextBox.h" #include "JSystem/JKernel/JKRMemArchive.h" @@ -17,77 +15,6 @@ #include "m_Do/m_Do_controller_pad.h" #include "m_Do/m_Do_graphic.h" -// -// Forward References: -// - -extern "C" void __ct__15dMenu_Fishing_cFP10JKRExpHeapP9STControlP10CSTControl(); -extern "C" void __dt__15dMenu_Fishing_cFv(); -extern "C" void _create__15dMenu_Fishing_cFv(); -extern "C" void _move__15dMenu_Fishing_cFv(); -extern "C" void _draw__15dMenu_Fishing_cFv(); -extern "C" void isSync__15dMenu_Fishing_cFv(); -extern "C" void init__15dMenu_Fishing_cFv(); -extern "C" void _open__15dMenu_Fishing_cFv(); -extern "C" void _close__15dMenu_Fishing_cFv(); -extern "C" void wait_init__15dMenu_Fishing_cFv(); -extern "C" void wait_move__15dMenu_Fishing_cFv(); -extern "C" void screenSetBase__15dMenu_Fishing_cFv(); -extern "C" void screenSetDoIcon__15dMenu_Fishing_cFv(); -extern "C" void setAButtonString__15dMenu_Fishing_cFUs(); -extern "C" void setBButtonString__15dMenu_Fishing_cFUs(); -extern "C" void getFigure__15dMenu_Fishing_cFi(); -extern "C" void setFishParam__15dMenu_Fishing_cFiUsUc(); -extern "C" void setHIO__15dMenu_Fishing_cFb(); -extern "C" void draw__15dMenu_Fishing_cFv(); -extern "C" void __sinit_d_menu_fishing_cpp(); -extern "C" extern char const* const d_menu_d_menu_fishing__stringBase0; - -// -// External References: -// - -extern "C" void mDoExt_setCurrentHeap__FP7JKRHeap(); -extern "C" void mDoExt_getMesgFont__Fv(); -extern "C" void mDoExt_getSubFont__Fv(); -extern "C" void create__24mDoDvdThd_mountArchive_cFPCcUcP7JKRHeap(); -extern "C" void getStringKanji__13dMeter2Info_cFUlPcP14JMSMesgEntry_c(); -extern "C" void __ct__12dMsgString_cFv(); -extern "C" void __dt__12dMsgString_cFv(); -extern "C" void __ct__8CPaneMgrFP9J2DScreenUxUcP10JKRExpHeap(); -extern "C" void paneTrans__8CPaneMgrFff(); -extern "C" void dPaneClass_showNullPane__FP9J2DScreen(); -extern "C" void show__13CPaneMgrAlphaFv(); -extern "C" void hide__13CPaneMgrAlphaFv(); -extern "C" void setAlphaRate__13CPaneMgrAlphaFf(); -extern "C" void* __nw__FUl(); -extern "C" void __dl__FPv(); -extern "C" void __ct__9J2DScreenFv(); -extern "C" void setPriority__9J2DScreenFPCcUlP10JKRArchive(); -extern "C" void draw__9J2DScreenFffPC14J2DGrafContext(); -extern "C" void __ct__10J2DPictureFPC7ResTIMG(); -extern "C" void getStringPtr__10J2DTextBoxCFv(); -extern "C" void setString__10J2DTextBoxFsPCce(); -extern "C" void __ptmf_scall(); -extern "C" void _savegpr_18(); -extern "C" void _savegpr_23(); -extern "C" void _savegpr_24(); -extern "C" void _savegpr_25(); -extern "C" void _savegpr_27(); -extern "C" void _savegpr_28(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_18(); -extern "C" void _restgpr_23(); -extern "C" void _restgpr_24(); -extern "C" void _restgpr_25(); -extern "C" void _restgpr_27(); -extern "C" void _restgpr_28(); -extern "C" void _restgpr_29(); -extern "C" extern void* __vt__12dDlst_base_c[3]; -extern "C" u8 m_cpadInfo__8mDoCPd_c[256]; - -extern "C" u8 mFader__13mDoGph_gInf_c[4]; - /* 803BD038-803BD044 01A158 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */ static u8 cNullVec__6Z2Calc[12] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -105,18 +32,6 @@ moveFunc map_move_process[] = { &dMenu_Fishing_c::wait_move, }; -/* 803BD074-803BD090 01A194 0010+0C 2/2 0/0 0/0 .data __vt__15dMenu_Fishing_c */ -SECTION_DATA extern void* __vt__15dMenu_Fishing_c[4 + 3 /* padding */] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)draw__15dMenu_Fishing_cFv, - (void*)__dt__15dMenu_Fishing_cFv, - /* padding */ - NULL, - NULL, - NULL, -}; - /* 801C4D54-801C4D98 1BF694 0044+00 0/0 2/2 0/0 .text * __ct__15dMenu_Fishing_cFP10JKRExpHeapP9STControlP10CSTControl */ dMenu_Fishing_c::dMenu_Fishing_c(JKRExpHeap* heap, STControl* stControl, CSTControl* cstControl) { @@ -304,117 +219,64 @@ void dMenu_Fishing_c::wait_move() { } } -/* 80395D90-80395DC0 0223F0 0030+00 1/1 0/0 0/0 .rodata fish_n$4060 */ -static const u64 fish_n[6] = { - 'fish_n_6', 'fish_n_5', 'fish_n_3', 'fish_n_1', 'fish_n_2', 'fish_n_4', -}; - -/* 80395DC0-80395DF0 022420 0030+00 0/1 0/0 0/0 .rodata fish_p0$4061 */ -#pragma push -#pragma force_active on -static const u64 fish_p0[6] = { - 'fi_pa_6n', 'fi_pa_5n', 'fi_pa_3n', 'fi_pa_1n', 'fi_pa_2n', 'fi_pa_4n', -}; -#pragma pop - -/* 80395DF0-80395E20 022450 0030+00 0/1 0/0 0/0 .rodata fish_p1$4062 */ -#pragma push -#pragma force_active on -static const u64 fish_p1[6] = { - 'fi_na_6n', 'fi_na_5n', 'fi_na_3n', 'fi_na_1n', 'fi_na_2n', 'fi_na_4n', -}; -#pragma pop - -/* 80395E20-80395E50 022480 0030+00 0/1 0/0 0/0 .rodata fish_p2$4063 */ -#pragma push -#pragma force_active on -static const u64 fish_p2[6] = {'fi_li_6n', 'fi_li_5n', 'fi_li_3n', - 'fi_li_1n', 'fi_li_2n', 'fi_li_4n'}; -#pragma pop - -/* 80395E50-80395E80 0224B0 0030+00 0/1 0/0 0/0 .rodata fish_p3$4064 */ -#pragma push -#pragma force_active on -static const u64 fish_p3[6] = { - 'b_box_6n', 'b_box_5n', 'b_box_3n', 'b_box_1n', 'b_box_2n', 'b_box_4n', -}; -#pragma pop - -/* 80395E80-80395EB0 0224E0 0030+00 0/1 0/0 0/0 .rodata fish_p4$4065 */ -#pragma push -#pragma force_active on -static const u64 fish_p4[6] = { - 'r_box_6n', 'r_box_5n', 'r_box_3n', 'r_box_1n', 'r_box_2n', 'r_box_4n', -}; -#pragma pop - -/* 80395EB0-80395EE0 022510 0030+00 0/1 0/0 0/0 .rodata fish_p5$4066 */ -#pragma push -#pragma force_active on -static const u64 fish_p5[6] = { - 'info_6_n', 'info_5_n', 'info_3_n', 'info_1_n', 'info_2_n', 'info_4_n', -}; -#pragma pop - -/* 80395EE0-80395F10 022540 0030+00 0/1 0/0 0/0 .rodata size_1$4081 */ -#pragma push -#pragma force_active on -static const u64 size_1[6] = { - 'size_t_6', 'size_t_5', 'size_t_3', 'size_t_1', 'size_t_2', 'size_t_4', -}; -#pragma pop - -/* 80395F10-80395F40 022570 0030+00 0/1 0/0 0/0 .rodata size_unit_1$4082 */ -#pragma push -#pragma force_active on -static const u64 size_unit_1[6] = { - 'cm_t_6', 'cm_t_5', 'cm_t_3', 'cm_t_1', 'cm_t_2', 'cm_t_4', -}; -#pragma pop - -/* 80395F40-80395F70 0225A0 0030+00 0/1 0/0 0/0 .rodata count_1$4083 */ -#pragma push -#pragma force_active on -static const u64 count_1[6] = { - 'count_t6', 'count_t5', 'count_t3', 'count_t1', 'count_t2', 'count_t4', -}; -#pragma pop - -/* 80395F70-80395FA0 0225D0 0030+00 0/1 0/0 0/0 .rodata count_unit_1$4084 */ -#pragma push -#pragma force_active on -static const u64 count_unit_1[6] = { - 'cou_t_6', 'cou_t_5', 'cou_t_3', 'cou_t_1', 'cou_t_2', 'cou_t_4', -}; -#pragma pop - -/* 80395FA0-80395FD0 022600 0030+00 0/1 0/0 0/0 .rodata name_0$4085 */ -#pragma push -#pragma force_active on -static const u64 name_0[6] = { - 'name_6', 'name_5', 'name_3', 'name_1', 'name_2', 'name_4', -}; -#pragma pop - -/* 80395FD0-80396000 022630 0030+00 0/1 0/0 0/0 .rodata fname_0$4086 */ -#pragma push -#pragma force_active on -static const u64 fname_0[6] = { - 'f_name_6', 'f_name_5', 'f_name_3', 'f_name_1', 'f_name_2', 'f_name_4', -}; -#pragma pop - -/* 80396000-80396018 022660 0018+00 0/1 0/0 0/0 .rodata name_id$4087 */ -#pragma push -#pragma force_active on -static const u32 name_id[6] = { - 0x59E, 0x59D, 0x59B, 0x599, 0x59A, 0x59C, -}; -#pragma pop - /* 801C55D8-801C5D3C 1BFF18 0764+00 1/1 0/0 0/0 .text screenSetBase__15dMenu_Fishing_cFv */ void dMenu_Fishing_c::screenSetBase() { + static const u64 fish_n[6] = { + 'fish_n_6', 'fish_n_5', 'fish_n_3', 'fish_n_1', 'fish_n_2', 'fish_n_4', + }; + + static const u64 fish_p0[6] = { + 'fi_pa_6n', 'fi_pa_5n', 'fi_pa_3n', 'fi_pa_1n', 'fi_pa_2n', 'fi_pa_4n', + }; + + static const u64 fish_p1[6] = { + 'fi_na_6n', 'fi_na_5n', 'fi_na_3n', 'fi_na_1n', 'fi_na_2n', 'fi_na_4n', + }; + + static const u64 fish_p2[6] = {'fi_li_6n', 'fi_li_5n', 'fi_li_3n', + 'fi_li_1n', 'fi_li_2n', 'fi_li_4n'}; + + static const u64 fish_p3[6] = { + 'b_box_6n', 'b_box_5n', 'b_box_3n', 'b_box_1n', 'b_box_2n', 'b_box_4n', + }; + + static const u64 fish_p4[6] = { + 'r_box_6n', 'r_box_5n', 'r_box_3n', 'r_box_1n', 'r_box_2n', 'r_box_4n', + }; + + static const u64 fish_p5[6] = { + 'info_6_n', 'info_5_n', 'info_3_n', 'info_1_n', 'info_2_n', 'info_4_n', + }; + + static const u64 size_1[6] = { + 'size_t_6', 'size_t_5', 'size_t_3', 'size_t_1', 'size_t_2', 'size_t_4', + }; + + static const u64 size_unit_1[6] = { + 'cm_t_6', 'cm_t_5', 'cm_t_3', 'cm_t_1', 'cm_t_2', 'cm_t_4', + }; + + static const u64 count_1[6] = { + 'count_t6', 'count_t5', 'count_t3', 'count_t1', 'count_t2', 'count_t4', + }; + + static const u64 count_unit_1[6] = { + 'cou_t_6', 'cou_t_5', 'cou_t_3', 'cou_t_1', 'cou_t_2', 'cou_t_4', + }; + + static const u64 name_0[6] = { + 'name_6', 'name_5', 'name_3', 'name_1', 'name_2', 'name_4', + }; + + static const u64 fname_0[6] = { + 'f_name_6', 'f_name_5', 'f_name_3', 'f_name_1', 'f_name_2', 'f_name_4', + }; + + static const u32 name_id[6] = { + 0x59E, 0x59D, 0x59B, 0x599, 0x59A, 0x59C, + }; + ResTIMG* TIMG = (ResTIMG*)dComIfGp_getMain2DArchive()->getResource('TIMG', "tt_block8x8.bti"); mpBlackTex = new J2DPicture(TIMG); @@ -473,14 +335,11 @@ void dMenu_Fishing_c::screenSetBase() { dMeter2Info_getStringKanji(0x5a0, field_0x1e8->getStringPtr(), NULL); } -/* 80396018-80396040 022678 0028+00 1/1 0/0 0/0 .rodata text_a_tag$4167 */ -static const u64 text_a_tag[5] = {'atext1_1', 'atext1_2', 'atext1_3', 'atext1_4', 'atext1_5'}; - -/* 80396040-80396068 0226A0 0028+00 1/1 0/0 0/0 .rodata text_b_tag$4168 */ -static const u64 text_b_tag[5] = {'btext1_1', 'btext1_2', 'btext1_3', 'btext1_4', 'btext1_5'}; - /* 801C5D3C-801C5EB8 1C067C 017C+00 1/1 0/0 0/0 .text screenSetDoIcon__15dMenu_Fishing_cFv */ void dMenu_Fishing_c::screenSetDoIcon() { + static const u64 text_a_tag[5] = {'atext1_1', 'atext1_2', 'atext1_3', 'atext1_4', 'atext1_5'}; + static const u64 text_b_tag[5] = {'btext1_1', 'btext1_2', 'btext1_3', 'btext1_4', 'btext1_5'}; + mpIconScreen = new J2DScreen(); mpIconScreen->setPriority("zelda_collect_soubi_do_icon_parts.blo", 0x20000, mpArchive); for (int i = 0; i < 2; i++) { @@ -651,21 +510,3 @@ void dMenu_Fishing_c::setHIO(bool param_0) { } } } - -/* 801C659C-801C65BC 1C0EDC 0020+00 1/0 0/0 0/0 .text draw__15dMenu_Fishing_cFv */ -#ifdef NONMATCHING -// vtable padding -void dMenu_Fishing_c::draw() { - _draw(); -} -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -// asm void dMenu_Fishing_c::draw() { -extern "C" asm void draw__15dMenu_Fishing_cFv() { - nofralloc -#include "asm/d/menu/d_menu_fishing/draw__15dMenu_Fishing_cFv.s" -} -#pragma pop -#endif diff --git a/src/d/menu/d_menu_insect.cpp b/src/d/menu/d_menu_insect.cpp index a15a92efd26..a79f8e769a6 100644 --- a/src/d/menu/d_menu_insect.cpp +++ b/src/d/menu/d_menu_insect.cpp @@ -3,144 +3,22 @@ * Menu - Insect List */ -#define NO_INLINE_DLSTBASE_DRAW - #include "d/menu/d_menu_insect.h" #include "JSystem/J2DGraph/J2DTextBox.h" #include "JSystem/JKernel/JKRExpHeap.h" #include "JSystem/JKernel/JKRMemArchive.h" #include "JSystem/JUtility/JUTTexture.h" -#include "stdio.h" #include "d/d_lib.h" #include "d/d_select_cursor.h" #include "d/meter/d_meter2_info.h" #include "d/meter/d_meter_HIO.h" +#include "d/msg/d_msg_scrn_3select.h" #include "d/msg/d_msg_string.h" #include "dol2asm.h" #include "dolphin/types.h" #include "m_Do/m_Do_controller_pad.h" #include "m_Do/m_Do_graphic.h" -#include "d/msg/d_msg_scrn_3select.h" - -// -// Forward References: -// - -extern "C" void __ct__14dMenu_Insect_cFP10JKRExpHeapP9STControlP10CSTControlUc(); -extern "C" void __dt__14dMenu_Insect_cFv(); -extern "C" void _create__14dMenu_Insect_cFv(); -extern "C" void _move__14dMenu_Insect_cFv(); -extern "C" void _draw__14dMenu_Insect_cFv(); -extern "C" void isSync__14dMenu_Insect_cFv(); -extern "C" void init__14dMenu_Insect_cFv(); -extern "C" void _open__14dMenu_Insect_cFv(); -extern "C" void _close__14dMenu_Insect_cFv(); -extern "C" void wait_init__14dMenu_Insect_cFv(); -extern "C" void wait_move__14dMenu_Insect_cFv(); -extern "C" void explain_open_init__14dMenu_Insect_cFv(); -extern "C" void explain_open_move__14dMenu_Insect_cFv(); -extern "C" void explain_move_init__14dMenu_Insect_cFv(); -extern "C" void explain_move_move__14dMenu_Insect_cFv(); -extern "C" void select_move_init__14dMenu_Insect_cFv(); -extern "C" void select_move_move__14dMenu_Insect_cFv(); -extern "C" void explain_close_init__14dMenu_Insect_cFv(); -extern "C" void explain_close_move__14dMenu_Insect_cFv(); -extern "C" void screenSetBase__14dMenu_Insect_cFv(); -extern "C" void screenSetExplain__14dMenu_Insect_cFv(); -extern "C" void screenSetDoIcon__14dMenu_Insect_cFv(); -extern "C" void getGetInsectNum__14dMenu_Insect_cFv(); -extern "C" void getInsectItemID__14dMenu_Insect_cFii(); -extern "C" void isGetInsect__14dMenu_Insect_cFii(); -extern "C" void isGiveInsect__14dMenu_Insect_cFii(); -extern "C" void isCatchInsect__14dMenu_Insect_cFUc(); -extern "C" void isGiveInsect__14dMenu_Insect_cFUc(); -extern "C" void isCatchNotGiveInsect__14dMenu_Insect_cFUc(); -extern "C" void cursorMove__14dMenu_Insect_cFv(); -extern "C" void setCursorPos__14dMenu_Insect_cFv(); -extern "C" bool dpdMove__14dMenu_Insect_cFv(); -extern "C" void setAButtonString__14dMenu_Insect_cFUs(); -extern "C" void setBButtonString__14dMenu_Insect_cFUs(); -extern "C" void setHIO__14dMenu_Insect_cFb(); -extern "C" void draw__14dMenu_Insect_cFv(); -extern "C" void __sinit_d_menu_insect_cpp(); -extern "C" extern char const* const d_menu_d_menu_insect__stringBase0; - -// -// External References: -// - -extern "C" void mDoExt_setCurrentHeap__FP7JKRHeap(); -extern "C" void mDoExt_getMesgFont__Fv(); -extern "C" void mDoExt_getSubFont__Fv(); -extern "C" void create__24mDoDvdThd_mountArchive_cFPCcUcP7JKRHeap(); -extern "C" void checkTrigger__9STControlFv(); -extern "C" void checkLeftTrigger__9STControlFv(); -extern "C" void checkRightTrigger__9STControlFv(); -extern "C" void checkUpTrigger__9STControlFv(); -extern "C" void checkDownTrigger__9STControlFv(); -extern "C" void isFirstBit__21dSv_player_get_item_cCFUc(); -extern "C" void isEventBit__11dSv_event_cCFUs(); -extern "C" void __ct__16dSelect_cursor_cFUcfP10JKRArchive(); -extern "C" void setPos__16dSelect_cursor_cFffP7J2DPaneb(); -extern "C" void setParam__16dSelect_cursor_cFfffff(); -extern "C" void setScale__16dSelect_cursor_cFf(); -extern "C" void setAlphaRate__16dSelect_cursor_cFf(); -extern "C" void getString__13dMeter2Info_cFUlPcP14JMSMesgEntry_c(); -extern "C" void getStringKanji__13dMeter2Info_cFUlPcP14JMSMesgEntry_c(); -extern "C" void getStringLength__13dMeter2Info_cFP7JUTFontffPc(); -extern "C" void -readItemTexture__13dMeter2Info_cFUcPvP10J2DPicturePvP10J2DPicturePvP10J2DPicturePvP10J2DPicturei(); -extern "C" void dMeter2Info_set2DVibration__Fv(); -extern "C" void __ct__17dMsgScrn3Select_cFv(); -extern "C" void isSelect__17dMsgScrn3Select_cFv(); -extern "C" void setString__17dMsgScrn3Select_cFPcPcPc(); -extern "C" void setRubyString__17dMsgScrn3Select_cFPcPcPc(); -extern "C" void translate__17dMsgScrn3Select_cFff(); -extern "C" void draw__17dMsgScrn3Select_cFff(); -extern "C" void selAnimeInit__17dMsgScrn3Select_cFUcUcUcfUc(); -extern "C" void selAnimeMove__17dMsgScrn3Select_cFUcUcb(); -extern "C" void selAnimeEnd__17dMsgScrn3Select_cFv(); -extern "C" void getTextBoxWidth__17dMsgScrn3Select_cFv(); -extern "C" void getFontSize__17dMsgScrn3Select_cFv(); -extern "C" void getCharSpace__17dMsgScrn3Select_cFv(); -extern "C" void __ct__12dMsgString_cFv(); -extern "C" void __dt__12dMsgString_cFv(); -extern "C" void __ct__8CPaneMgrFP9J2DScreenUxUcP10JKRExpHeap(); -extern "C" void paneTrans__8CPaneMgrFff(); -extern "C" void getGlobalVtxCenter__8CPaneMgrFP7J2DPanebs(); -extern "C" void dPaneClass_showNullPane__FP9J2DScreen(); -extern "C" void show__13CPaneMgrAlphaFv(); -extern "C" void hide__13CPaneMgrAlphaFv(); -extern "C" void setAlphaRate__13CPaneMgrAlphaFf(); -extern "C" void getAlphaRate__13CPaneMgrAlphaFv(); -extern "C" void alphaAnime__13CPaneMgrAlphaFsUcUcUc(); -extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); -extern "C" void alloc__7JKRHeapFUli(); -extern "C" void free__7JKRHeapFPv(); -extern "C" void* __nw__FUl(); -extern "C" void __dl__FPv(); -extern "C" void __ct__9J2DScreenFv(); -extern "C" void setPriority__9J2DScreenFPCcUlP10JKRArchive(); -extern "C" void draw__9J2DScreenFffPC14J2DGrafContext(); -extern "C" void __ct__10J2DPictureFPC7ResTIMG(); -extern "C" void getStringPtr__10J2DTextBoxCFv(); -extern "C" void setString__10J2DTextBoxFsPCce(); -extern "C" void __ptmf_scall(); -extern "C" void _savegpr_24(); -extern "C" void _savegpr_26(); -extern "C" void _savegpr_27(); -extern "C" void _savegpr_28(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_24(); -extern "C" void _restgpr_26(); -extern "C" void _restgpr_27(); -extern "C" void _restgpr_28(); -extern "C" void _restgpr_29(); -extern "C" extern void* __vt__12dDlst_base_c[3]; -extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */]; -extern "C" u8 m_cpadInfo__8mDoCPd_c[256]; -extern "C" u8 mFader__13mDoGph_gInf_c[4]; -extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; +#include "stdio.h" /* 803BD780-803BD78C 01A8A0 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */ static u8 cNullVec__6Z2Calc[12] = { @@ -161,34 +39,6 @@ static moveFunc map_move_process[] = { &dMenu_Insect_c::explain_close_move, }; -/* 803BD87C-803BD894 01A99C 0018+00 1/1 0/0 0/0 .data l_itemno$4346 */ -static u8 l_itemno_4346[MAX_INSECT_NUM] = { - M_BEETLE, F_BEETLE, M_BUTTERFLY, F_BUTTERFLY, M_STAG_BEETLE, F_STAG_BEETLE, - M_GRASSHOPPER, F_GRASSHOPPER, M_NANAFUSHI, F_NANAFUSHI, M_DANGOMUSHI, F_DANGOMUSHI, - M_MANTIS, F_MANTIS, M_LADYBUG, F_LADYBUG, M_SNAIL, F_SNAIL, - M_DRAGONFLY, F_DRAGONFLY, M_ANT, F_ANT, M_MAYFLY, F_MAYFLY, -}; - -/* 803BD894-803BD8AC 01A9B4 0018+00 1/1 0/0 0/0 .data l_itemno$4364 */ -static u8 l_itemno_4364[MAX_INSECT_NUM] = { - M_ANT, F_ANT, M_MAYFLY, F_MAYFLY, M_BEETLE, F_BEETLE, - M_MANTIS, F_MANTIS, M_STAG_BEETLE, F_STAG_BEETLE, M_DANGOMUSHI, F_DANGOMUSHI, - M_BUTTERFLY, F_BUTTERFLY, M_LADYBUG, F_LADYBUG, M_SNAIL, F_SNAIL, - M_NANAFUSHI, F_NANAFUSHI, M_GRASSHOPPER, F_GRASSHOPPER, M_DRAGONFLY, F_DRAGONFLY, -}; - -/* 803BD8AC-803BD8C8 01A9CC 0010+0C 2/2 0/0 0/0 .data __vt__14dMenu_Insect_c */ -SECTION_DATA extern void* __vt__14dMenu_Insect_c[4 + 3 /* padding */] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)draw__14dMenu_Insect_cFv, - (void*)__dt__14dMenu_Insect_cFv, - /* padding */ - NULL, - NULL, - NULL, -}; - /* 801D8114-801D82F4 1D2A54 01E0+00 0/0 2/2 0/0 .text * __ct__14dMenu_Insect_cFP10JKRExpHeapP9STControlP10CSTControlUc */ dMenu_Insect_c::dMenu_Insect_c(JKRExpHeap* i_heap, STControl* i_stick, CSTControl* i_cstick, @@ -350,12 +200,12 @@ void dMenu_Insect_c::init() { /* 801D894C-801D8B2C 1D328C 01E0+00 0/0 3/3 0/0 .text _open__14dMenu_Insect_cFv */ int dMenu_Insect_c::_open() { - if (!mpMount) { + if (mpMount == NULL) { mpMount = mDoDvdThd_mountArchive_c::create("/res/Layout/insectRes.arc", 0, NULL); } - if (!mpArchive) { + if (mpArchive == NULL) { if (mpMount->sync() != 0) { - if (!mpArchive) { + if (mpArchive == NULL) { mpArchive = (JKRArchive*)mpMount->getArchive(); delete mpMount; mpMount = NULL; @@ -612,23 +462,20 @@ void dMenu_Insect_c::explain_close_move() { } } -/* 80396690-80396750 022CF0 00C0+00 1/1 0/0 0/0 .rodata insect_tag$4249 */ -static const u64 insect_tag[MAX_INSECT_NUM] = { - 'ari_os', 'ari_ms', 'kag_os', 'kag_ms', 'kab_os', 'kab_ms', 'kam_os', 'kam_mes', - 'kuwa_os', 'kuwa_mes', 'dan_os', 'dan_mes', 'cho_os', 'cho_ms', 'tent_os', 'tent_mes', - 'kata_os', 'kata_mes', 'nana_os', 'nana_mes', 'bat_os', 'bat_mes', 'tonb_os', 'tonb_mes', -}; - -/* 80396750-80396810 022DB0 00C0+00 1/1 0/0 0/0 .rodata ageha_tag$4250 */ -static const u64 ageha_tag[MAX_INSECT_NUM] = { - 'ageha00', 'ageha01', 'ageha02', 'ageha03', 'ageha04', 'ageha05', 'ageha06', 'ageha07', - 'ageha08', 'ageha09', 'ageha10', 'ageha11', 'ageha12', 'ageha13', 'ageha14', 'ageha15', - 'ageha16', 'ageha17', 'ageha18', 'ageha19', 'ageha20', 'ageha21', 'ageha22', 'ageha23', -}; - /* 801D9644-801D98F0 1D3F84 02AC+00 1/1 0/0 0/0 .text screenSetBase__14dMenu_Insect_cFv */ void dMenu_Insect_c::screenSetBase() { + static const u64 insect_tag[MAX_INSECT_NUM] = { + 'ari_os', 'ari_ms', 'kag_os', 'kag_ms', 'kab_os', 'kab_ms', 'kam_os', 'kam_mes', + 'kuwa_os', 'kuwa_mes', 'dan_os', 'dan_mes', 'cho_os', 'cho_ms', 'tent_os', 'tent_mes', + 'kata_os', 'kata_mes', 'nana_os', 'nana_mes', 'bat_os', 'bat_mes', 'tonb_os', 'tonb_mes', + }; + static const u64 ageha_tag[MAX_INSECT_NUM] = { + 'ageha00', 'ageha01', 'ageha02', 'ageha03', 'ageha04', 'ageha05', 'ageha06', 'ageha07', + 'ageha08', 'ageha09', 'ageha10', 'ageha11', 'ageha12', 'ageha13', 'ageha14', 'ageha15', + 'ageha16', 'ageha17', 'ageha18', 'ageha19', 'ageha20', 'ageha21', 'ageha22', 'ageha23', + }; + mpScreen = new J2DScreen(); mpScreen->setPriority("zelda_gold_insects.blo", 0x20000, mpArchive); dPaneClass_showNullPane(mpScreen); @@ -686,19 +533,16 @@ void dMenu_Insect_c::screenSetExplain() { field_0x5c->setString(0x100, ""); } -/* 80396810-80396838 022E70 0028+00 1/1 0/0 0/0 .rodata text_a_tag$4328 */ -static const u64 text_a_tag[5] = { - 'atext1_1', 'atext1_2', 'atext1_3', 'atext1_4', 'atext1_5', -}; - -/* 80396838-80396860 022E98 0028+00 1/1 0/0 0/0 .rodata text_b_tag$4329 */ -static const u64 text_b_tag[5] = { - 'btext1_1', 'btext1_2', 'btext1_3', 'btext1_4', 'btext1_5', -}; - /* 801D9BD0-801D9D4C 1D4510 017C+00 1/1 0/0 0/0 .text screenSetDoIcon__14dMenu_Insect_cFv */ void dMenu_Insect_c::screenSetDoIcon() { + static const u64 text_a_tag[5] = { + 'atext1_1', 'atext1_2', 'atext1_3', 'atext1_4', 'atext1_5', + }; + static const u64 text_b_tag[5] = { + 'btext1_1', 'btext1_2', 'btext1_3', 'btext1_4', 'btext1_5', + }; + mpIconScreen = new J2DScreen(); mpIconScreen->setPriority("zelda_collect_soubi_do_icon_parts.blo", 0x20000, mpArchive); for (int i = 0; i < 2; i++) { @@ -719,8 +563,15 @@ void dMenu_Insect_c::screenSetDoIcon() { /* 801D9D4C-801D9DCC 1D468C 0080+00 0/0 1/1 0/0 .text getGetInsectNum__14dMenu_Insect_cFv */ u8 dMenu_Insect_c::getGetInsectNum() { + static u8 l_itemno[MAX_INSECT_NUM] = { + M_BEETLE, F_BEETLE, M_BUTTERFLY, F_BUTTERFLY, M_STAG_BEETLE, F_STAG_BEETLE, + M_GRASSHOPPER, F_GRASSHOPPER, M_NANAFUSHI, F_NANAFUSHI, M_DANGOMUSHI, F_DANGOMUSHI, + M_MANTIS, F_MANTIS, M_LADYBUG, F_LADYBUG, M_SNAIL, F_SNAIL, + M_DRAGONFLY, F_DRAGONFLY, M_ANT, F_ANT, M_MAYFLY, F_MAYFLY, + }; + u8 insectNum = 0; - u8* insectList = l_itemno_4346; + u8* insectList = l_itemno; for (u32 i = 0; i < MAX_INSECT_NUM; i++) { u8 insectId = *insectList; insectList++; @@ -734,8 +585,15 @@ u8 dMenu_Insect_c::getGetInsectNum() { /* 801D9DCC-801D9DE4 1D470C 0018+00 3/3 0/0 0/0 .text getInsectItemID__14dMenu_Insect_cFii */ u8 dMenu_Insect_c::getInsectItemID(int param_0, int param_1) { + static u8 l_itemno[MAX_INSECT_NUM] = { + M_ANT, F_ANT, M_MAYFLY, F_MAYFLY, M_BEETLE, F_BEETLE, + M_MANTIS, F_MANTIS, M_STAG_BEETLE, F_STAG_BEETLE, M_DANGOMUSHI, F_DANGOMUSHI, + M_BUTTERFLY, F_BUTTERFLY, M_LADYBUG, F_LADYBUG, M_SNAIL, F_SNAIL, + M_NANAFUSHI, F_NANAFUSHI, M_GRASSHOPPER, F_GRASSHOPPER, M_DRAGONFLY, F_DRAGONFLY, + }; + int index = param_0 + param_1 * 6; - return l_itemno_4364[index]; + return l_itemno[index]; } /* 801D9DE4-801D9E20 1D4724 003C+00 4/4 0/0 0/0 .text isGetInsect__14dMenu_Insect_cFii */ @@ -743,15 +601,14 @@ bool dMenu_Insect_c::isGetInsect(int param_0, int param_1) { return i_dComIfGs_isItemFirstBit(getInsectItemID(param_0, param_1)) != 0; } -/* 80396860-803968C0 022EC0 0060+00 1/1 0/0 0/0 .rodata i_evtID$4383 */ -static const u32 i_evtID[MAX_INSECT_NUM] = { - 0x1A5, 0x1A6, 0x1A7, 0x1A8, 0x191, 0x192, 0x19D, 0x19E, 0x195, 0x196, 0x19B, 0x19C, - 0x193, 0x194, 0x19F, 0x1A0, 0x1A1, 0x1A2, 0x199, 0x19A, 0x197, 0x198, 0x1A3, 0x1A4, -}; - /* 801D9E20-801D9E7C 1D4760 005C+00 4/4 0/0 0/0 .text isGiveInsect__14dMenu_Insect_cFii */ bool dMenu_Insect_c::isGiveInsect(int param_0, int param_1) { + static const u32 i_evtID[MAX_INSECT_NUM] = { + 0x1A5, 0x1A6, 0x1A7, 0x1A8, 0x191, 0x192, 0x19D, 0x19E, 0x195, 0x196, 0x19B, 0x19C, + 0x193, 0x194, 0x19F, 0x1A0, 0x1A1, 0x1A2, 0x199, 0x19A, 0x197, 0x198, 0x1A3, 0x1A4, + }; + return i_dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[i_evtID[param_0 + param_1 * 6]]) != 0; } @@ -924,14 +781,3 @@ void dMenu_Insect_c::setHIO(bool i_useHIO) { } } } - -/* 801DA630-801DA650 1D4F70 0020+00 1/0 0/0 0/0 .text draw__14dMenu_Insect_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -// asm void dMenu_Insect_c::draw() { -extern "C" asm void draw__14dMenu_Insect_cFv() { - nofralloc -#include "asm/d/menu/d_menu_insect/draw__14dMenu_Insect_cFv.s" -} -#pragma pop \ No newline at end of file diff --git a/src/d/menu/d_menu_item_explain.cpp b/src/d/menu/d_menu_item_explain.cpp index 46ea9dbfcb9..1af8952497e 100644 --- a/src/d/menu/d_menu_item_explain.cpp +++ b/src/d/menu/d_menu_item_explain.cpp @@ -27,22 +27,6 @@ #include "d/msg/d_msg_scrn_3select.h" #include "d/msg/d_msg_scrn_arrow.h" -/* 80396950-80396970 022FB0 0020+00 1/1 0/0 0/0 .rodata name_tag$3883 */ -static const u64 name_tag[4] = { - 'item_n04', - 'item_n05', - 'item_n06', - 'item_n07', -}; - -/* 80396970-80396990 022FD0 0020+00 1/1 0/0 0/0 .rodata fame_tag$3884 */ -static const u64 fame_tag[4] = { - 'f_item_1', - 'f_item_2', - 'f_item_3', - 'f_item_4', -}; - /* 803BD8C8-803BD8D4 01A9E8 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */ static u8 cNullVec__6Z2Calc[12] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -66,6 +50,20 @@ static moveFunc move_process[] = { * __ct__19dMenu_ItemExplain_cFP10JKRExpHeapP10JKRArchiveP9STControlb */ dMenu_ItemExplain_c::dMenu_ItemExplain_c(JKRExpHeap* i_heap, JKRArchive* i_archive, STControl* i_stick, bool param_3) { + static const u64 name_tag[4] = { + 'item_n04', + 'item_n05', + 'item_n06', + 'item_n07', + }; + + static const u64 fame_tag[4] = { + 'f_item_1', + 'f_item_2', + 'f_item_3', + 'f_item_4', + }; + mpHeap = i_heap; mpArchive = dComIfGp_getDemoMsgArchive(); mpStick = i_stick;