From 9fb99d923c50a8aca28493419143b2a34c6f0121 Mon Sep 17 00:00:00 2001 From: Trueffel <106771418+Trueffeloot@users.noreply.github.com> Date: Sat, 30 Sep 2023 19:40:59 +0200 Subject: [PATCH] Work on d_menu_letter (#1949) * d_menu_letter first pass * match more funcs and optimize skill tu * decompile first rodata sections * done for now * remove unused asm * format d_menu_letter --- .../d_menu_letter/__dt__14dMenu_Letter_cFv.s | 300 ----- .../d_menu_letter/__sinit_d_menu_letter_cpp.s | 102 -- .../d_menu_letter/_move__14dMenu_Letter_cFv.s | 40 - .../changePageLight__14dMenu_Letter_cFv.s | 24 - .../d_menu_letter/init__14dMenu_Letter_cFv.s | 22 - .../isSync__14dMenu_Letter_cFv.s | 12 - .../letter_init_calc__14dMenu_Letter_cFv.s | 57 - .../read_close_init__14dMenu_Letter_cFv.s | 20 - .../read_move_init__14dMenu_Letter_cFv.s | 75 -- ...ad_next_fadeout_init__14dMenu_Letter_cFv.s | 20 - .../setCursorPos__14dMenu_Letter_cFv.s | 36 - .../wait_init__14dMenu_Letter_cFv.s | 16 - include/d/com/d_com_inf_game.h | 8 + include/d/menu/d_menu_letter.h | 29 +- include/d/save/d_save.h | 2 + src/d/menu/d_menu_letter.cpp | 1137 ++++++++++------- src/d/menu/d_menu_skill.cpp | 22 +- 17 files changed, 731 insertions(+), 1191 deletions(-) delete mode 100644 asm/d/menu/d_menu_letter/__dt__14dMenu_Letter_cFv.s delete mode 100644 asm/d/menu/d_menu_letter/__sinit_d_menu_letter_cpp.s delete mode 100644 asm/d/menu/d_menu_letter/_move__14dMenu_Letter_cFv.s delete mode 100644 asm/d/menu/d_menu_letter/changePageLight__14dMenu_Letter_cFv.s delete mode 100644 asm/d/menu/d_menu_letter/init__14dMenu_Letter_cFv.s delete mode 100644 asm/d/menu/d_menu_letter/isSync__14dMenu_Letter_cFv.s delete mode 100644 asm/d/menu/d_menu_letter/letter_init_calc__14dMenu_Letter_cFv.s delete mode 100644 asm/d/menu/d_menu_letter/read_close_init__14dMenu_Letter_cFv.s delete mode 100644 asm/d/menu/d_menu_letter/read_move_init__14dMenu_Letter_cFv.s delete mode 100644 asm/d/menu/d_menu_letter/read_next_fadeout_init__14dMenu_Letter_cFv.s delete mode 100644 asm/d/menu/d_menu_letter/setCursorPos__14dMenu_Letter_cFv.s delete mode 100644 asm/d/menu/d_menu_letter/wait_init__14dMenu_Letter_cFv.s diff --git a/asm/d/menu/d_menu_letter/__dt__14dMenu_Letter_cFv.s b/asm/d/menu/d_menu_letter/__dt__14dMenu_Letter_cFv.s deleted file mode 100644 index e43d1ca0011..00000000000 --- a/asm/d/menu/d_menu_letter/__dt__14dMenu_Letter_cFv.s +++ /dev/null @@ -1,300 +0,0 @@ -lbl_801DCF34: -/* 801DCF34 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 801DCF38 7C 08 02 A6 */ mflr r0 -/* 801DCF3C 90 01 00 24 */ stw r0, 0x24(r1) -/* 801DCF40 39 61 00 20 */ addi r11, r1, 0x20 -/* 801DCF44 48 18 52 8D */ bl _savegpr_26 -/* 801DCF48 7C 7F 1B 79 */ or. r31, r3, r3 -/* 801DCF4C 7C 9E 23 78 */ mr r30, r4 -/* 801DCF50 41 82 04 00 */ beq lbl_801DD350 -/* 801DCF54 3C 60 80 3C */ lis r3, __vt__14dMenu_Letter_c@ha /* 0x803BDB8C@ha */ -/* 801DCF58 38 03 DB 8C */ addi r0, r3, __vt__14dMenu_Letter_c@l /* 0x803BDB8C@l */ -/* 801DCF5C 90 1F 00 00 */ stw r0, 0(r31) -/* 801DCF60 80 7F 03 0C */ lwz r3, 0x30c(r31) -/* 801DCF64 28 03 00 00 */ cmplwi r3, 0 -/* 801DCF68 41 82 00 18 */ beq lbl_801DCF80 -/* 801DCF6C 38 80 00 01 */ li r4, 1 -/* 801DCF70 81 83 00 00 */ lwz r12, 0(r3) -/* 801DCF74 81 8C 00 0C */ lwz r12, 0xc(r12) -/* 801DCF78 7D 89 03 A6 */ mtctr r12 -/* 801DCF7C 4E 80 04 21 */ bctrl -lbl_801DCF80: -/* 801DCF80 38 00 00 00 */ li r0, 0 -/* 801DCF84 90 1F 03 0C */ stw r0, 0x30c(r31) -/* 801DCF88 80 7F 03 14 */ lwz r3, 0x314(r31) -/* 801DCF8C 28 03 00 00 */ cmplwi r3, 0 -/* 801DCF90 41 82 00 18 */ beq lbl_801DCFA8 -/* 801DCF94 38 80 00 01 */ li r4, 1 -/* 801DCF98 81 83 00 00 */ lwz r12, 0(r3) -/* 801DCF9C 81 8C 00 08 */ lwz r12, 8(r12) -/* 801DCFA0 7D 89 03 A6 */ mtctr r12 -/* 801DCFA4 4E 80 04 21 */ bctrl -lbl_801DCFA8: -/* 801DCFA8 38 00 00 00 */ li r0, 0 -/* 801DCFAC 90 1F 03 14 */ stw r0, 0x314(r31) -/* 801DCFB0 80 7F 03 10 */ lwz r3, 0x310(r31) -/* 801DCFB4 38 80 00 01 */ li r4, 1 -/* 801DCFB8 48 06 CD 71 */ bl __dt__12dMsgString_cFv -/* 801DCFBC 38 00 00 00 */ li r0, 0 -/* 801DCFC0 90 1F 03 10 */ stw r0, 0x310(r31) -/* 801DCFC4 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 801DCFC8 28 03 00 00 */ cmplwi r3, 0 -/* 801DCFCC 41 82 00 18 */ beq lbl_801DCFE4 -/* 801DCFD0 38 80 00 01 */ li r4, 1 -/* 801DCFD4 81 83 00 00 */ lwz r12, 0(r3) -/* 801DCFD8 81 8C 00 08 */ lwz r12, 8(r12) -/* 801DCFDC 7D 89 03 A6 */ mtctr r12 -/* 801DCFE0 4E 80 04 21 */ bctrl -lbl_801DCFE4: -/* 801DCFE4 38 00 00 00 */ li r0, 0 -/* 801DCFE8 90 1F 00 18 */ stw r0, 0x18(r31) -/* 801DCFEC 80 7F 00 1C */ lwz r3, 0x1c(r31) -/* 801DCFF0 28 03 00 00 */ cmplwi r3, 0 -/* 801DCFF4 41 82 00 18 */ beq lbl_801DD00C -/* 801DCFF8 38 80 00 01 */ li r4, 1 -/* 801DCFFC 81 83 00 00 */ lwz r12, 0(r3) -/* 801DD000 81 8C 00 08 */ lwz r12, 8(r12) -/* 801DD004 7D 89 03 A6 */ mtctr r12 -/* 801DD008 4E 80 04 21 */ bctrl -lbl_801DD00C: -/* 801DD00C 38 00 00 00 */ li r0, 0 -/* 801DD010 90 1F 00 1C */ stw r0, 0x1c(r31) -/* 801DD014 80 7F 00 20 */ lwz r3, 0x20(r31) -/* 801DD018 28 03 00 00 */ cmplwi r3, 0 -/* 801DD01C 41 82 00 18 */ beq lbl_801DD034 -/* 801DD020 38 80 00 01 */ li r4, 1 -/* 801DD024 81 83 00 00 */ lwz r12, 0(r3) -/* 801DD028 81 8C 00 08 */ lwz r12, 8(r12) -/* 801DD02C 7D 89 03 A6 */ mtctr r12 -/* 801DD030 4E 80 04 21 */ bctrl -lbl_801DD034: -/* 801DD034 38 00 00 00 */ li r0, 0 -/* 801DD038 90 1F 00 20 */ stw r0, 0x20(r31) -/* 801DD03C 80 7F 00 24 */ lwz r3, 0x24(r31) -/* 801DD040 28 03 00 00 */ cmplwi r3, 0 -/* 801DD044 41 82 00 18 */ beq lbl_801DD05C -/* 801DD048 38 80 00 01 */ li r4, 1 -/* 801DD04C 81 83 00 00 */ lwz r12, 0(r3) -/* 801DD050 81 8C 00 08 */ lwz r12, 8(r12) -/* 801DD054 7D 89 03 A6 */ mtctr r12 -/* 801DD058 4E 80 04 21 */ bctrl -lbl_801DD05C: -/* 801DD05C 3B 80 00 00 */ li r28, 0 -/* 801DD060 93 9F 00 24 */ stw r28, 0x24(r31) -/* 801DD064 3B 60 00 00 */ li r27, 0 -lbl_801DD068: -/* 801DD068 7F BF E2 14 */ add r29, r31, r28 -/* 801DD06C 80 7D 00 28 */ lwz r3, 0x28(r29) -/* 801DD070 28 03 00 00 */ cmplwi r3, 0 -/* 801DD074 41 82 00 18 */ beq lbl_801DD08C -/* 801DD078 38 80 00 01 */ li r4, 1 -/* 801DD07C 81 83 00 00 */ lwz r12, 0(r3) -/* 801DD080 81 8C 00 08 */ lwz r12, 8(r12) -/* 801DD084 7D 89 03 A6 */ mtctr r12 -/* 801DD088 4E 80 04 21 */ bctrl -lbl_801DD08C: -/* 801DD08C 38 00 00 00 */ li r0, 0 -/* 801DD090 90 1D 00 28 */ stw r0, 0x28(r29) -/* 801DD094 80 7D 02 EC */ lwz r3, 0x2ec(r29) -/* 801DD098 28 03 00 00 */ cmplwi r3, 0 -/* 801DD09C 41 82 00 18 */ beq lbl_801DD0B4 -/* 801DD0A0 38 80 00 01 */ li r4, 1 -/* 801DD0A4 81 83 00 00 */ lwz r12, 0(r3) -/* 801DD0A8 81 8C 00 08 */ lwz r12, 8(r12) -/* 801DD0AC 7D 89 03 A6 */ mtctr r12 -/* 801DD0B0 4E 80 04 21 */ bctrl -lbl_801DD0B4: -/* 801DD0B4 38 00 00 00 */ li r0, 0 -/* 801DD0B8 90 1D 02 EC */ stw r0, 0x2ec(r29) -/* 801DD0BC 80 7D 02 F4 */ lwz r3, 0x2f4(r29) -/* 801DD0C0 28 03 00 00 */ cmplwi r3, 0 -/* 801DD0C4 41 82 00 24 */ beq lbl_801DD0E8 -/* 801DD0C8 41 82 00 18 */ beq lbl_801DD0E0 -/* 801DD0CC 38 80 00 01 */ li r4, 1 -/* 801DD0D0 81 83 00 00 */ lwz r12, 0(r3) -/* 801DD0D4 81 8C 00 08 */ lwz r12, 8(r12) -/* 801DD0D8 7D 89 03 A6 */ mtctr r12 -/* 801DD0DC 4E 80 04 21 */ bctrl -lbl_801DD0E0: -/* 801DD0E0 38 00 00 00 */ li r0, 0 -/* 801DD0E4 90 1D 02 F4 */ stw r0, 0x2f4(r29) -lbl_801DD0E8: -/* 801DD0E8 80 7D 02 E0 */ lwz r3, 0x2e0(r29) -/* 801DD0EC 28 03 00 00 */ cmplwi r3, 0 -/* 801DD0F0 41 82 00 18 */ beq lbl_801DD108 -/* 801DD0F4 38 80 00 01 */ li r4, 1 -/* 801DD0F8 81 83 00 00 */ lwz r12, 0(r3) -/* 801DD0FC 81 8C 00 08 */ lwz r12, 8(r12) -/* 801DD100 7D 89 03 A6 */ mtctr r12 -/* 801DD104 4E 80 04 21 */ bctrl -lbl_801DD108: -/* 801DD108 38 00 00 00 */ li r0, 0 -/* 801DD10C 90 1D 02 E0 */ stw r0, 0x2e0(r29) -/* 801DD110 3B 7B 00 01 */ addi r27, r27, 1 -/* 801DD114 2C 1B 00 02 */ cmpwi r27, 2 -/* 801DD118 3B 9C 00 04 */ addi r28, r28, 4 -/* 801DD11C 41 80 FF 4C */ blt lbl_801DD068 -/* 801DD120 80 7F 02 E8 */ lwz r3, 0x2e8(r31) -/* 801DD124 28 03 00 00 */ cmplwi r3, 0 -/* 801DD128 41 82 00 18 */ beq lbl_801DD140 -/* 801DD12C 38 80 00 01 */ li r4, 1 -/* 801DD130 81 83 00 00 */ lwz r12, 0(r3) -/* 801DD134 81 8C 00 08 */ lwz r12, 8(r12) -/* 801DD138 7D 89 03 A6 */ mtctr r12 -/* 801DD13C 4E 80 04 21 */ bctrl -lbl_801DD140: -/* 801DD140 38 00 00 00 */ li r0, 0 -/* 801DD144 90 1F 02 E8 */ stw r0, 0x2e8(r31) -/* 801DD148 80 7F 02 B4 */ lwz r3, 0x2b4(r31) -/* 801DD14C 28 03 00 00 */ cmplwi r3, 0 -/* 801DD150 41 82 00 18 */ beq lbl_801DD168 -/* 801DD154 38 80 00 01 */ li r4, 1 -/* 801DD158 81 83 00 00 */ lwz r12, 0(r3) -/* 801DD15C 81 8C 00 08 */ lwz r12, 8(r12) -/* 801DD160 7D 89 03 A6 */ mtctr r12 -/* 801DD164 4E 80 04 21 */ bctrl -lbl_801DD168: -/* 801DD168 3B 80 00 00 */ li r28, 0 -/* 801DD16C 93 9F 02 B4 */ stw r28, 0x2b4(r31) -/* 801DD170 3B 40 00 00 */ li r26, 0 -/* 801DD174 3B A0 00 00 */ li r29, 0 -lbl_801DD178: -/* 801DD178 3B 7D 02 B8 */ addi r27, r29, 0x2b8 -/* 801DD17C 7C 7F D8 2E */ lwzx r3, r31, r27 -/* 801DD180 28 03 00 00 */ cmplwi r3, 0 -/* 801DD184 41 82 00 18 */ beq lbl_801DD19C -/* 801DD188 38 80 00 01 */ li r4, 1 -/* 801DD18C 81 83 00 00 */ lwz r12, 0(r3) -/* 801DD190 81 8C 00 08 */ lwz r12, 8(r12) -/* 801DD194 7D 89 03 A6 */ mtctr r12 -/* 801DD198 4E 80 04 21 */ bctrl -lbl_801DD19C: -/* 801DD19C 7F 9F D9 2E */ stwx r28, r31, r27 -/* 801DD1A0 3B 5A 00 01 */ addi r26, r26, 1 -/* 801DD1A4 2C 1A 00 03 */ cmpwi r26, 3 -/* 801DD1A8 3B BD 00 04 */ addi r29, r29, 4 -/* 801DD1AC 41 80 FF CC */ blt lbl_801DD178 -/* 801DD1B0 3B 40 00 00 */ li r26, 0 -/* 801DD1B4 3B A0 00 00 */ li r29, 0 -/* 801DD1B8 3B 80 00 00 */ li r28, 0 -lbl_801DD1BC: -/* 801DD1BC 3B 7D 02 C8 */ addi r27, r29, 0x2c8 -/* 801DD1C0 7C 7F D8 2E */ lwzx r3, r31, r27 -/* 801DD1C4 28 03 00 00 */ cmplwi r3, 0 -/* 801DD1C8 41 82 00 18 */ beq lbl_801DD1E0 -/* 801DD1CC 38 80 00 01 */ li r4, 1 -/* 801DD1D0 81 83 00 00 */ lwz r12, 0(r3) -/* 801DD1D4 81 8C 00 08 */ lwz r12, 8(r12) -/* 801DD1D8 7D 89 03 A6 */ mtctr r12 -/* 801DD1DC 4E 80 04 21 */ bctrl -lbl_801DD1E0: -/* 801DD1E0 7F 9F D9 2E */ stwx r28, r31, r27 -/* 801DD1E4 3B 5A 00 01 */ addi r26, r26, 1 -/* 801DD1E8 2C 1A 00 06 */ cmpwi r26, 6 -/* 801DD1EC 3B BD 00 04 */ addi r29, r29, 4 -/* 801DD1F0 41 80 FF CC */ blt lbl_801DD1BC -/* 801DD1F4 80 7F 02 C4 */ lwz r3, 0x2c4(r31) -/* 801DD1F8 28 03 00 00 */ cmplwi r3, 0 -/* 801DD1FC 41 82 00 18 */ beq lbl_801DD214 -/* 801DD200 38 80 00 01 */ li r4, 1 -/* 801DD204 81 83 00 00 */ lwz r12, 0(r3) -/* 801DD208 81 8C 00 08 */ lwz r12, 8(r12) -/* 801DD20C 7D 89 03 A6 */ mtctr r12 -/* 801DD210 4E 80 04 21 */ bctrl -lbl_801DD214: -/* 801DD214 38 00 00 00 */ li r0, 0 -/* 801DD218 90 1F 02 C4 */ stw r0, 0x2c4(r31) -/* 801DD21C 80 7F 00 30 */ lwz r3, 0x30(r31) -/* 801DD220 28 03 00 00 */ cmplwi r3, 0 -/* 801DD224 41 82 00 18 */ beq lbl_801DD23C -/* 801DD228 38 80 00 01 */ li r4, 1 -/* 801DD22C 81 83 00 00 */ lwz r12, 0(r3) -/* 801DD230 81 8C 00 08 */ lwz r12, 8(r12) -/* 801DD234 7D 89 03 A6 */ mtctr r12 -/* 801DD238 4E 80 04 21 */ bctrl -lbl_801DD23C: -/* 801DD23C 38 00 00 00 */ li r0, 0 -/* 801DD240 90 1F 00 30 */ stw r0, 0x30(r31) -/* 801DD244 3B 40 00 00 */ li r26, 0 -/* 801DD248 3B A0 00 00 */ li r29, 0 -lbl_801DD24C: -/* 801DD24C 7F 7F EA 14 */ add r27, r31, r29 -/* 801DD250 80 7B 02 FC */ lwz r3, 0x2fc(r27) -/* 801DD254 28 03 00 00 */ cmplwi r3, 0 -/* 801DD258 41 82 00 24 */ beq lbl_801DD27C -/* 801DD25C 41 82 00 18 */ beq lbl_801DD274 -/* 801DD260 38 80 00 01 */ li r4, 1 -/* 801DD264 81 83 00 00 */ lwz r12, 0(r3) -/* 801DD268 81 8C 00 08 */ lwz r12, 8(r12) -/* 801DD26C 7D 89 03 A6 */ mtctr r12 -/* 801DD270 4E 80 04 21 */ bctrl -lbl_801DD274: -/* 801DD274 38 00 00 00 */ li r0, 0 -/* 801DD278 90 1B 02 FC */ stw r0, 0x2fc(r27) -lbl_801DD27C: -/* 801DD27C 80 7B 03 04 */ lwz r3, 0x304(r27) -/* 801DD280 28 03 00 00 */ cmplwi r3, 0 -/* 801DD284 41 82 00 24 */ beq lbl_801DD2A8 -/* 801DD288 41 82 00 18 */ beq lbl_801DD2A0 -/* 801DD28C 38 80 00 01 */ li r4, 1 -/* 801DD290 81 83 00 00 */ lwz r12, 0(r3) -/* 801DD294 81 8C 00 08 */ lwz r12, 8(r12) -/* 801DD298 7D 89 03 A6 */ mtctr r12 -/* 801DD29C 4E 80 04 21 */ bctrl -lbl_801DD2A0: -/* 801DD2A0 38 00 00 00 */ li r0, 0 -/* 801DD2A4 90 1B 03 04 */ stw r0, 0x304(r27) -lbl_801DD2A8: -/* 801DD2A8 3B 5A 00 01 */ addi r26, r26, 1 -/* 801DD2AC 2C 1A 00 02 */ cmpwi r26, 2 -/* 801DD2B0 3B BD 00 04 */ addi r29, r29, 4 -/* 801DD2B4 41 80 FF 98 */ blt lbl_801DD24C -/* 801DD2B8 80 7F 00 14 */ lwz r3, 0x14(r31) -/* 801DD2BC 28 03 00 00 */ cmplwi r3, 0 -/* 801DD2C0 41 82 00 40 */ beq lbl_801DD300 -/* 801DD2C4 80 63 00 1C */ lwz r3, 0x1c(r3) -/* 801DD2C8 81 83 00 00 */ lwz r12, 0(r3) -/* 801DD2CC 81 8C 00 0C */ lwz r12, 0xc(r12) -/* 801DD2D0 7D 89 03 A6 */ mtctr r12 -/* 801DD2D4 4E 80 04 21 */ bctrl -/* 801DD2D8 80 7F 00 14 */ lwz r3, 0x14(r31) -/* 801DD2DC 28 03 00 00 */ cmplwi r3, 0 -/* 801DD2E0 41 82 00 18 */ beq lbl_801DD2F8 -/* 801DD2E4 38 80 00 01 */ li r4, 1 -/* 801DD2E8 81 83 00 10 */ lwz r12, 0x10(r3) -/* 801DD2EC 81 8C 00 08 */ lwz r12, 8(r12) -/* 801DD2F0 7D 89 03 A6 */ mtctr r12 -/* 801DD2F4 4E 80 04 21 */ bctrl -lbl_801DD2F8: -/* 801DD2F8 38 00 00 00 */ li r0, 0 -/* 801DD2FC 90 1F 00 14 */ stw r0, 0x14(r31) -lbl_801DD300: -/* 801DD300 80 7F 00 08 */ lwz r3, 8(r31) -/* 801DD304 28 03 00 00 */ cmplwi r3, 0 -/* 801DD308 41 82 00 1C */ beq lbl_801DD324 -/* 801DD30C 81 83 00 00 */ lwz r12, 0(r3) -/* 801DD310 81 8C 00 0C */ lwz r12, 0xc(r12) -/* 801DD314 7D 89 03 A6 */ mtctr r12 -/* 801DD318 4E 80 04 21 */ bctrl -/* 801DD31C 38 00 00 00 */ li r0, 0 -/* 801DD320 90 1F 00 08 */ stw r0, 8(r31) -lbl_801DD324: -/* 801DD324 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 801DD328 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 801DD32C 80 63 5C 6C */ lwz r3, 0x5c6c(r3) -/* 801DD330 81 83 00 00 */ lwz r12, 0(r3) -/* 801DD334 81 8C 00 24 */ lwz r12, 0x24(r12) -/* 801DD338 7D 89 03 A6 */ mtctr r12 -/* 801DD33C 4E 80 04 21 */ bctrl -/* 801DD340 7F C0 07 35 */ extsh. r0, r30 -/* 801DD344 40 81 00 0C */ ble lbl_801DD350 -/* 801DD348 7F E3 FB 78 */ mr r3, r31 -/* 801DD34C 48 0F 19 F1 */ bl __dl__FPv -lbl_801DD350: -/* 801DD350 7F E3 FB 78 */ mr r3, r31 -/* 801DD354 39 61 00 20 */ addi r11, r1, 0x20 -/* 801DD358 48 18 4E C5 */ bl _restgpr_26 -/* 801DD35C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 801DD360 7C 08 03 A6 */ mtlr r0 -/* 801DD364 38 21 00 20 */ addi r1, r1, 0x20 -/* 801DD368 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_letter/__sinit_d_menu_letter_cpp.s b/asm/d/menu/d_menu_letter/__sinit_d_menu_letter_cpp.s deleted file mode 100644 index 01354a7fc4c..00000000000 --- a/asm/d/menu/d_menu_letter/__sinit_d_menu_letter_cpp.s +++ /dev/null @@ -1,102 +0,0 @@ -lbl_801E1D7C: -/* 801E1D7C 3C 60 80 3C */ lis r3, cNullVec__6Z2Calc@ha /* 0x803BDA00@ha */ -/* 801E1D80 38 63 DA 00 */ addi r3, r3, cNullVec__6Z2Calc@l /* 0x803BDA00@l */ -/* 801E1D84 80 83 00 0C */ lwz r4, 0xc(r3) -/* 801E1D88 80 03 00 10 */ lwz r0, 0x10(r3) -/* 801E1D8C 90 83 00 6C */ stw r4, 0x6c(r3) -/* 801E1D90 90 03 00 70 */ stw r0, 0x70(r3) -/* 801E1D94 80 03 00 14 */ lwz r0, 0x14(r3) -/* 801E1D98 90 03 00 74 */ stw r0, 0x74(r3) -/* 801E1D9C 38 A3 00 6C */ addi r5, r3, 0x6c -/* 801E1DA0 80 83 00 18 */ lwz r4, 0x18(r3) -/* 801E1DA4 80 03 00 1C */ lwz r0, 0x1c(r3) -/* 801E1DA8 90 85 00 0C */ stw r4, 0xc(r5) -/* 801E1DAC 90 05 00 10 */ stw r0, 0x10(r5) -/* 801E1DB0 80 03 00 20 */ lwz r0, 0x20(r3) -/* 801E1DB4 90 05 00 14 */ stw r0, 0x14(r5) -/* 801E1DB8 80 83 00 24 */ lwz r4, 0x24(r3) -/* 801E1DBC 80 03 00 28 */ lwz r0, 0x28(r3) -/* 801E1DC0 90 85 00 18 */ stw r4, 0x18(r5) -/* 801E1DC4 90 05 00 1C */ stw r0, 0x1c(r5) -/* 801E1DC8 80 03 00 2C */ lwz r0, 0x2c(r3) -/* 801E1DCC 90 05 00 20 */ stw r0, 0x20(r5) -/* 801E1DD0 80 83 00 30 */ lwz r4, 0x30(r3) -/* 801E1DD4 80 03 00 34 */ lwz r0, 0x34(r3) -/* 801E1DD8 90 85 00 24 */ stw r4, 0x24(r5) -/* 801E1DDC 90 05 00 28 */ stw r0, 0x28(r5) -/* 801E1DE0 80 03 00 38 */ lwz r0, 0x38(r3) -/* 801E1DE4 90 05 00 2C */ stw r0, 0x2c(r5) -/* 801E1DE8 80 83 00 3C */ lwz r4, 0x3c(r3) -/* 801E1DEC 80 03 00 40 */ lwz r0, 0x40(r3) -/* 801E1DF0 90 85 00 30 */ stw r4, 0x30(r5) -/* 801E1DF4 90 05 00 34 */ stw r0, 0x34(r5) -/* 801E1DF8 80 03 00 44 */ lwz r0, 0x44(r3) -/* 801E1DFC 90 05 00 38 */ stw r0, 0x38(r5) -/* 801E1E00 80 83 00 48 */ lwz r4, 0x48(r3) -/* 801E1E04 80 03 00 4C */ lwz r0, 0x4c(r3) -/* 801E1E08 90 85 00 3C */ stw r4, 0x3c(r5) -/* 801E1E0C 90 05 00 40 */ stw r0, 0x40(r5) -/* 801E1E10 80 03 00 50 */ lwz r0, 0x50(r3) -/* 801E1E14 90 05 00 44 */ stw r0, 0x44(r5) -/* 801E1E18 80 83 00 54 */ lwz r4, 0x54(r3) -/* 801E1E1C 80 03 00 58 */ lwz r0, 0x58(r3) -/* 801E1E20 90 85 00 48 */ stw r4, 0x48(r5) -/* 801E1E24 90 05 00 4C */ stw r0, 0x4c(r5) -/* 801E1E28 80 03 00 5C */ lwz r0, 0x5c(r3) -/* 801E1E2C 90 05 00 50 */ stw r0, 0x50(r5) -/* 801E1E30 80 83 00 60 */ lwz r4, 0x60(r3) -/* 801E1E34 80 03 00 64 */ lwz r0, 0x64(r3) -/* 801E1E38 90 85 00 54 */ stw r4, 0x54(r5) -/* 801E1E3C 90 05 00 58 */ stw r0, 0x58(r5) -/* 801E1E40 80 03 00 68 */ lwz r0, 0x68(r3) -/* 801E1E44 90 05 00 5C */ stw r0, 0x5c(r5) -/* 801E1E48 80 83 00 CC */ lwz r4, 0xcc(r3) -/* 801E1E4C 80 03 00 D0 */ lwz r0, 0xd0(r3) -/* 801E1E50 90 83 01 2C */ stw r4, 0x12c(r3) -/* 801E1E54 90 03 01 30 */ stw r0, 0x130(r3) -/* 801E1E58 80 03 00 D4 */ lwz r0, 0xd4(r3) -/* 801E1E5C 90 03 01 34 */ stw r0, 0x134(r3) -/* 801E1E60 38 A3 01 2C */ addi r5, r3, 0x12c -/* 801E1E64 80 83 00 D8 */ lwz r4, 0xd8(r3) -/* 801E1E68 80 03 00 DC */ lwz r0, 0xdc(r3) -/* 801E1E6C 90 85 00 0C */ stw r4, 0xc(r5) -/* 801E1E70 90 05 00 10 */ stw r0, 0x10(r5) -/* 801E1E74 80 03 00 E0 */ lwz r0, 0xe0(r3) -/* 801E1E78 90 05 00 14 */ stw r0, 0x14(r5) -/* 801E1E7C 80 83 00 E4 */ lwz r4, 0xe4(r3) -/* 801E1E80 80 03 00 E8 */ lwz r0, 0xe8(r3) -/* 801E1E84 90 85 00 18 */ stw r4, 0x18(r5) -/* 801E1E88 90 05 00 1C */ stw r0, 0x1c(r5) -/* 801E1E8C 80 03 00 EC */ lwz r0, 0xec(r3) -/* 801E1E90 90 05 00 20 */ stw r0, 0x20(r5) -/* 801E1E94 80 83 00 F0 */ lwz r4, 0xf0(r3) -/* 801E1E98 80 03 00 F4 */ lwz r0, 0xf4(r3) -/* 801E1E9C 90 85 00 24 */ stw r4, 0x24(r5) -/* 801E1EA0 90 05 00 28 */ stw r0, 0x28(r5) -/* 801E1EA4 80 03 00 F8 */ lwz r0, 0xf8(r3) -/* 801E1EA8 90 05 00 2C */ stw r0, 0x2c(r5) -/* 801E1EAC 80 83 00 FC */ lwz r4, 0xfc(r3) -/* 801E1EB0 80 03 01 00 */ lwz r0, 0x100(r3) -/* 801E1EB4 90 85 00 30 */ stw r4, 0x30(r5) -/* 801E1EB8 90 05 00 34 */ stw r0, 0x34(r5) -/* 801E1EBC 80 03 01 04 */ lwz r0, 0x104(r3) -/* 801E1EC0 90 05 00 38 */ stw r0, 0x38(r5) -/* 801E1EC4 80 83 01 08 */ lwz r4, 0x108(r3) -/* 801E1EC8 80 03 01 0C */ lwz r0, 0x10c(r3) -/* 801E1ECC 90 85 00 3C */ stw r4, 0x3c(r5) -/* 801E1ED0 90 05 00 40 */ stw r0, 0x40(r5) -/* 801E1ED4 80 03 01 10 */ lwz r0, 0x110(r3) -/* 801E1ED8 90 05 00 44 */ stw r0, 0x44(r5) -/* 801E1EDC 80 83 01 14 */ lwz r4, 0x114(r3) -/* 801E1EE0 80 03 01 18 */ lwz r0, 0x118(r3) -/* 801E1EE4 90 85 00 48 */ stw r4, 0x48(r5) -/* 801E1EE8 90 05 00 4C */ stw r0, 0x4c(r5) -/* 801E1EEC 80 03 01 1C */ lwz r0, 0x11c(r3) -/* 801E1EF0 90 05 00 50 */ stw r0, 0x50(r5) -/* 801E1EF4 80 83 01 20 */ lwz r4, 0x120(r3) -/* 801E1EF8 80 03 01 24 */ lwz r0, 0x124(r3) -/* 801E1EFC 90 85 00 54 */ stw r4, 0x54(r5) -/* 801E1F00 90 05 00 58 */ stw r0, 0x58(r5) -/* 801E1F04 80 03 01 28 */ lwz r0, 0x128(r3) -/* 801E1F08 90 05 00 5C */ stw r0, 0x5c(r5) -/* 801E1F0C 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_letter/_move__14dMenu_Letter_cFv.s b/asm/d/menu/d_menu_letter/_move__14dMenu_Letter_cFv.s deleted file mode 100644 index c29ebc8aa2b..00000000000 --- a/asm/d/menu/d_menu_letter/_move__14dMenu_Letter_cFv.s +++ /dev/null @@ -1,40 +0,0 @@ -lbl_801DD474: -/* 801DD474 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 801DD478 7C 08 02 A6 */ mflr r0 -/* 801DD47C 90 01 00 24 */ stw r0, 0x24(r1) -/* 801DD480 39 61 00 20 */ addi r11, r1, 0x20 -/* 801DD484 48 18 4D 59 */ bl _savegpr_29 -/* 801DD488 7C 7D 1B 78 */ mr r29, r3 -/* 801DD48C 80 63 00 04 */ lwz r3, 4(r3) -/* 801DD490 4B E3 1D 3D */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801DD494 7C 7E 1B 78 */ mr r30, r3 -/* 801DD498 8B FD 03 6D */ lbz r31, 0x36d(r29) -/* 801DD49C 7F A3 EB 78 */ mr r3, r29 -/* 801DD4A0 1C BF 00 0C */ mulli r5, r31, 0xc -/* 801DD4A4 3C 80 80 3C */ lis r4, map_move_process@ha /* 0x803BDB2C@ha */ -/* 801DD4A8 38 04 DB 2C */ addi r0, r4, map_move_process@l /* 0x803BDB2C@l */ -/* 801DD4AC 7D 80 2A 14 */ add r12, r0, r5 -/* 801DD4B0 48 18 4B D5 */ bl __ptmf_scall -/* 801DD4B4 60 00 00 00 */ nop -/* 801DD4B8 88 1D 03 6D */ lbz r0, 0x36d(r29) -/* 801DD4BC 7C 1F 00 40 */ cmplw r31, r0 -/* 801DD4C0 41 82 00 20 */ beq lbl_801DD4E0 -/* 801DD4C4 7F A3 EB 78 */ mr r3, r29 -/* 801DD4C8 1C A0 00 0C */ mulli r5, r0, 0xc -/* 801DD4CC 3C 80 80 3C */ lis r4, map_init_process@ha /* 0x803BDA6C@ha */ -/* 801DD4D0 38 04 DA 6C */ addi r0, r4, map_init_process@l /* 0x803BDA6C@l */ -/* 801DD4D4 7D 80 2A 14 */ add r12, r0, r5 -/* 801DD4D8 48 18 4B AD */ bl __ptmf_scall -/* 801DD4DC 60 00 00 00 */ nop -lbl_801DD4E0: -/* 801DD4E0 7F A3 EB 78 */ mr r3, r29 -/* 801DD4E4 38 80 00 00 */ li r4, 0 -/* 801DD4E8 48 00 42 61 */ bl setHIO__14dMenu_Letter_cFb -/* 801DD4EC 7F C3 F3 78 */ mr r3, r30 -/* 801DD4F0 4B E3 1C DD */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801DD4F4 39 61 00 20 */ addi r11, r1, 0x20 -/* 801DD4F8 48 18 4D 31 */ bl _restgpr_29 -/* 801DD4FC 80 01 00 24 */ lwz r0, 0x24(r1) -/* 801DD500 7C 08 03 A6 */ mtlr r0 -/* 801DD504 38 21 00 20 */ addi r1, r1, 0x20 -/* 801DD508 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_letter/changePageLight__14dMenu_Letter_cFv.s b/asm/d/menu/d_menu_letter/changePageLight__14dMenu_Letter_cFv.s deleted file mode 100644 index 878f4ea746a..00000000000 --- a/asm/d/menu/d_menu_letter/changePageLight__14dMenu_Letter_cFv.s +++ /dev/null @@ -1,24 +0,0 @@ -lbl_801E0E34: -/* 801E0E34 39 00 00 00 */ li r8, 0 -/* 801E0E38 38 80 00 00 */ li r4, 0 -/* 801E0E3C 38 E0 00 01 */ li r7, 1 -/* 801E0E40 7C 86 23 78 */ mr r6, r4 -/* 801E0E44 38 00 00 09 */ li r0, 9 -/* 801E0E48 7C 09 03 A6 */ mtctr r0 -lbl_801E0E4C: -/* 801E0E4C 88 03 03 6F */ lbz r0, 0x36f(r3) -/* 801E0E50 7C 08 00 00 */ cmpw r8, r0 -/* 801E0E54 40 82 00 14 */ bne lbl_801E0E68 -/* 801E0E58 38 04 02 14 */ addi r0, r4, 0x214 -/* 801E0E5C 7C A3 00 2E */ lwzx r5, r3, r0 -/* 801E0E60 98 E5 00 B0 */ stb r7, 0xb0(r5) -/* 801E0E64 48 00 00 10 */ b lbl_801E0E74 -lbl_801E0E68: -/* 801E0E68 38 04 02 14 */ addi r0, r4, 0x214 -/* 801E0E6C 7C A3 00 2E */ lwzx r5, r3, r0 -/* 801E0E70 98 C5 00 B0 */ stb r6, 0xb0(r5) -lbl_801E0E74: -/* 801E0E74 39 08 00 01 */ addi r8, r8, 1 -/* 801E0E78 38 84 00 04 */ addi r4, r4, 4 -/* 801E0E7C 42 00 FF D0 */ bdnz lbl_801E0E4C -/* 801E0E80 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_letter/init__14dMenu_Letter_cFv.s b/asm/d/menu/d_menu_letter/init__14dMenu_Letter_cFv.s deleted file mode 100644 index 613fcb8aab4..00000000000 --- a/asm/d/menu/d_menu_letter/init__14dMenu_Letter_cFv.s +++ /dev/null @@ -1,22 +0,0 @@ -lbl_801DDA20: -/* 801DDA20 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801DDA24 7C 08 02 A6 */ mflr r0 -/* 801DDA28 90 01 00 14 */ stw r0, 0x14(r1) -/* 801DDA2C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801DDA30 7C 7F 1B 78 */ mr r31, r3 -/* 801DDA34 48 00 34 51 */ bl setPageText__14dMenu_Letter_cFv -/* 801DDA38 7F E3 FB 78 */ mr r3, r31 -/* 801DDA3C 48 00 31 75 */ bl changeActiveColor__14dMenu_Letter_cFv -/* 801DDA40 7F E3 FB 78 */ mr r3, r31 -/* 801DDA44 88 1F 03 6D */ lbz r0, 0x36d(r31) -/* 801DDA48 1C A0 00 0C */ mulli r5, r0, 0xc -/* 801DDA4C 3C 80 80 3C */ lis r4, map_init_process@ha /* 0x803BDA6C@ha */ -/* 801DDA50 38 04 DA 6C */ addi r0, r4, map_init_process@l /* 0x803BDA6C@l */ -/* 801DDA54 7D 80 2A 14 */ add r12, r0, r5 -/* 801DDA58 48 18 46 2D */ bl __ptmf_scall -/* 801DDA5C 60 00 00 00 */ nop -/* 801DDA60 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801DDA64 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801DDA68 7C 08 03 A6 */ mtlr r0 -/* 801DDA6C 38 21 00 10 */ addi r1, r1, 0x10 -/* 801DDA70 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_letter/isSync__14dMenu_Letter_cFv.s b/asm/d/menu/d_menu_letter/isSync__14dMenu_Letter_cFv.s deleted file mode 100644 index 3458bf85d3c..00000000000 --- a/asm/d/menu/d_menu_letter/isSync__14dMenu_Letter_cFv.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_801DD934: -/* 801DD934 80 63 00 14 */ lwz r3, 0x14(r3) -/* 801DD938 28 03 00 00 */ cmplwi r3, 0 -/* 801DD93C 41 82 00 18 */ beq lbl_801DD954 -/* 801DD940 88 03 00 0C */ lbz r0, 0xc(r3) -/* 801DD944 2C 00 00 00 */ cmpwi r0, 0 -/* 801DD948 40 82 00 0C */ bne lbl_801DD954 -/* 801DD94C 38 60 00 00 */ li r3, 0 -/* 801DD950 4E 80 00 20 */ blr -lbl_801DD954: -/* 801DD954 38 60 00 01 */ li r3, 1 -/* 801DD958 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_letter/letter_init_calc__14dMenu_Letter_cFv.s b/asm/d/menu/d_menu_letter/letter_init_calc__14dMenu_Letter_cFv.s deleted file mode 100644 index 0ff26e526f9..00000000000 --- a/asm/d/menu/d_menu_letter/letter_init_calc__14dMenu_Letter_cFv.s +++ /dev/null @@ -1,57 +0,0 @@ -lbl_801DD95C: -/* 801DD95C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801DD960 7C 08 02 A6 */ mflr r0 -/* 801DD964 90 01 00 14 */ stw r0, 0x14(r1) -/* 801DD968 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801DD96C 7C 7F 1B 78 */ mr r31, r3 -/* 801DD970 48 00 3D 09 */ bl getLetterNum__14dMenu_Letter_cFv -/* 801DD974 98 7F 03 75 */ stb r3, 0x375(r31) -/* 801DD978 38 C0 00 00 */ li r6, 0 -/* 801DD97C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 801DD980 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 801DD984 38 A3 01 1C */ addi r5, r3, 0x11c -/* 801DD988 38 60 00 FF */ li r3, 0xff -/* 801DD98C 38 00 00 36 */ li r0, 0x36 -/* 801DD990 7C 09 03 A6 */ mtctr r0 -lbl_801DD994: -/* 801DD994 88 1F 03 75 */ lbz r0, 0x375(r31) -/* 801DD998 7C 06 00 00 */ cmpw r6, r0 -/* 801DD99C 40 80 00 1C */ bge lbl_801DD9B8 -/* 801DD9A0 7C 86 00 50 */ subf r4, r6, r0 -/* 801DD9A4 38 04 00 0F */ addi r0, r4, 0xf -/* 801DD9A8 7C 85 00 AE */ lbzx r4, r5, r0 -/* 801DD9AC 38 06 03 AC */ addi r0, r6, 0x3ac -/* 801DD9B0 7C 9F 01 AE */ stbx r4, r31, r0 -/* 801DD9B4 48 00 00 0C */ b lbl_801DD9C0 -lbl_801DD9B8: -/* 801DD9B8 38 06 03 AC */ addi r0, r6, 0x3ac -/* 801DD9BC 7C 7F 01 AE */ stbx r3, r31, r0 -lbl_801DD9C0: -/* 801DD9C0 38 C6 00 01 */ addi r6, r6, 1 -/* 801DD9C4 42 00 FF D0 */ bdnz lbl_801DD994 -/* 801DD9C8 88 1F 03 75 */ lbz r0, 0x375(r31) -/* 801DD9CC 28 00 00 06 */ cmplwi r0, 6 -/* 801DD9D0 40 80 00 0C */ bge lbl_801DD9DC -/* 801DD9D4 98 1F 03 73 */ stb r0, 0x373(r31) -/* 801DD9D8 48 00 00 0C */ b lbl_801DD9E4 -lbl_801DD9DC: -/* 801DD9DC 38 00 00 06 */ li r0, 6 -/* 801DD9E0 98 1F 03 73 */ stb r0, 0x373(r31) -lbl_801DD9E4: -/* 801DD9E4 88 9F 03 75 */ lbz r4, 0x375(r31) -/* 801DD9E8 38 00 00 06 */ li r0, 6 -/* 801DD9EC 7C 64 03 D6 */ divw r3, r4, r0 -/* 801DD9F0 7C 03 01 D6 */ mullw r0, r3, r0 -/* 801DD9F4 7C 00 20 51 */ subf. r0, r0, r4 -/* 801DD9F8 40 82 00 0C */ bne lbl_801DDA04 -/* 801DD9FC 98 7F 03 74 */ stb r3, 0x374(r31) -/* 801DDA00 48 00 00 0C */ b lbl_801DDA0C -lbl_801DDA04: -/* 801DDA04 38 03 00 01 */ addi r0, r3, 1 -/* 801DDA08 98 1F 03 74 */ stb r0, 0x374(r31) -lbl_801DDA0C: -/* 801DDA0C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801DDA10 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801DDA14 7C 08 03 A6 */ mtlr r0 -/* 801DDA18 38 21 00 10 */ addi r1, r1, 0x10 -/* 801DDA1C 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_letter/read_close_init__14dMenu_Letter_cFv.s b/asm/d/menu/d_menu_letter/read_close_init__14dMenu_Letter_cFv.s deleted file mode 100644 index c35db1a17bf..00000000000 --- a/asm/d/menu/d_menu_letter/read_close_init__14dMenu_Letter_cFv.s +++ /dev/null @@ -1,20 +0,0 @@ -lbl_801DEE20: -/* 801DEE20 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801DEE24 7C 08 02 A6 */ mflr r0 -/* 801DEE28 90 01 00 14 */ stw r0, 0x14(r1) -/* 801DEE2C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801DEE30 7C 7F 1B 78 */ mr r31, r3 -/* 801DEE34 3C 80 80 43 */ lis r4, g_drawHIO@ha /* 0x8042EBC8@ha */ -/* 801DEE38 38 84 EB C8 */ addi r4, r4, g_drawHIO@l /* 0x8042EBC8@l */ -/* 801DEE3C A8 04 07 5E */ lha r0, 0x75e(r4) -/* 801DEE40 B0 03 03 6A */ sth r0, 0x36a(r3) -/* 801DEE44 38 80 00 00 */ li r4, 0 -/* 801DEE48 48 00 26 D1 */ bl setAButtonString__14dMenu_Letter_cFUs -/* 801DEE4C 7F E3 FB 78 */ mr r3, r31 -/* 801DEE50 38 80 00 00 */ li r4, 0 -/* 801DEE54 48 00 27 75 */ bl setBButtonString__14dMenu_Letter_cFUs -/* 801DEE58 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801DEE5C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801DEE60 7C 08 03 A6 */ mtlr r0 -/* 801DEE64 38 21 00 10 */ addi r1, r1, 0x10 -/* 801DEE68 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_letter/read_move_init__14dMenu_Letter_cFv.s b/asm/d/menu/d_menu_letter/read_move_init__14dMenu_Letter_cFv.s deleted file mode 100644 index e6e3b58af42..00000000000 --- a/asm/d/menu/d_menu_letter/read_move_init__14dMenu_Letter_cFv.s +++ /dev/null @@ -1,75 +0,0 @@ -lbl_801DE70C: -/* 801DE70C 94 21 FF 60 */ stwu r1, -0xa0(r1) -/* 801DE710 7C 08 02 A6 */ mflr r0 -/* 801DE714 90 01 00 A4 */ stw r0, 0xa4(r1) -/* 801DE718 93 E1 00 9C */ stw r31, 0x9c(r1) -/* 801DE71C 7C 7F 1B 78 */ mr r31, r3 -/* 801DE720 80 63 03 14 */ lwz r3, 0x314(r3) -/* 801DE724 48 05 D7 11 */ bl arwAnimeInit__15dMsgScrnArrow_cFv -/* 801DE728 80 7F 03 14 */ lwz r3, 0x314(r31) -/* 801DE72C 48 05 D8 99 */ bl dotAnimeInit__15dMsgScrnArrow_cFv -/* 801DE730 88 7F 03 E2 */ lbz r3, 0x3e2(r31) -/* 801DE734 28 03 00 01 */ cmplwi r3, 1 -/* 801DE738 40 81 00 C0 */ ble lbl_801DE7F8 -/* 801DE73C 88 1F 03 E3 */ lbz r0, 0x3e3(r31) -/* 801DE740 7C 00 18 40 */ cmplw r0, r3 -/* 801DE744 40 82 00 20 */ bne lbl_801DE764 -/* 801DE748 7F E3 FB 78 */ mr r3, r31 -/* 801DE74C 38 80 00 00 */ li r4, 0 -/* 801DE750 48 00 2D C9 */ bl setAButtonString__14dMenu_Letter_cFUs -/* 801DE754 7F E3 FB 78 */ mr r3, r31 -/* 801DE758 38 80 03 F9 */ li r4, 0x3f9 -/* 801DE75C 48 00 2E 6D */ bl setBButtonString__14dMenu_Letter_cFUs -/* 801DE760 48 00 00 1C */ b lbl_801DE77C -lbl_801DE764: -/* 801DE764 7F E3 FB 78 */ mr r3, r31 -/* 801DE768 38 80 04 08 */ li r4, 0x408 -/* 801DE76C 48 00 2D AD */ bl setAButtonString__14dMenu_Letter_cFUs -/* 801DE770 7F E3 FB 78 */ mr r3, r31 -/* 801DE774 38 80 03 F9 */ li r4, 0x3f9 -/* 801DE778 48 00 2E 51 */ bl setBButtonString__14dMenu_Letter_cFUs -lbl_801DE77C: -/* 801DE77C 38 61 00 20 */ addi r3, r1, 0x20 -/* 801DE780 48 07 51 B1 */ bl __ct__8CPaneMgrFv -/* 801DE784 80 7F 00 28 */ lwz r3, 0x28(r31) -/* 801DE788 3C 80 79 61 */ lis r4, 0x7961 /* 0x79615F6E@ha */ -/* 801DE78C 38 C4 5F 6E */ addi r6, r4, 0x5F6E /* 0x79615F6E@l */ -/* 801DE790 3C 80 73 65 */ lis r4, 0x7365 /* 0x7365745F@ha */ -/* 801DE794 38 A4 74 5F */ addi r5, r4, 0x745F /* 0x7365745F@l */ -/* 801DE798 81 83 00 00 */ lwz r12, 0(r3) -/* 801DE79C 81 8C 00 3C */ lwz r12, 0x3c(r12) -/* 801DE7A0 7D 89 03 A6 */ mtctr r12 -/* 801DE7A4 4E 80 04 21 */ bctrl -/* 801DE7A8 7C 65 1B 78 */ mr r5, r3 -/* 801DE7AC 38 61 00 08 */ addi r3, r1, 8 -/* 801DE7B0 38 81 00 20 */ addi r4, r1, 0x20 -/* 801DE7B4 38 C0 00 00 */ li r6, 0 -/* 801DE7B8 38 E0 00 00 */ li r7, 0 -/* 801DE7BC 48 07 67 01 */ bl getGlobalVtxCenter__8CPaneMgrFP7J2DPanebs -/* 801DE7C0 80 61 00 08 */ lwz r3, 8(r1) -/* 801DE7C4 80 01 00 0C */ lwz r0, 0xc(r1) -/* 801DE7C8 90 61 00 14 */ stw r3, 0x14(r1) -/* 801DE7CC 90 01 00 18 */ stw r0, 0x18(r1) -/* 801DE7D0 80 01 00 10 */ lwz r0, 0x10(r1) -/* 801DE7D4 90 01 00 1C */ stw r0, 0x1c(r1) -/* 801DE7D8 80 7F 03 14 */ lwz r3, 0x314(r31) -/* 801DE7DC C0 21 00 14 */ lfs f1, 0x14(r1) -/* 801DE7E0 C0 41 00 18 */ lfs f2, 0x18(r1) -/* 801DE7E4 48 05 D6 15 */ bl setPos__15dMsgScrnArrow_cFff -/* 801DE7E8 38 61 00 20 */ addi r3, r1, 0x20 -/* 801DE7EC 38 80 FF FF */ li r4, -1 -/* 801DE7F0 48 07 52 29 */ bl __dt__8CPaneMgrFv -/* 801DE7F4 48 00 00 1C */ b lbl_801DE810 -lbl_801DE7F8: -/* 801DE7F8 7F E3 FB 78 */ mr r3, r31 -/* 801DE7FC 38 80 00 00 */ li r4, 0 -/* 801DE800 48 00 2D 19 */ bl setAButtonString__14dMenu_Letter_cFUs -/* 801DE804 7F E3 FB 78 */ mr r3, r31 -/* 801DE808 38 80 03 F9 */ li r4, 0x3f9 -/* 801DE80C 48 00 2D BD */ bl setBButtonString__14dMenu_Letter_cFUs -lbl_801DE810: -/* 801DE810 83 E1 00 9C */ lwz r31, 0x9c(r1) -/* 801DE814 80 01 00 A4 */ lwz r0, 0xa4(r1) -/* 801DE818 7C 08 03 A6 */ mtlr r0 -/* 801DE81C 38 21 00 A0 */ addi r1, r1, 0xa0 -/* 801DE820 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_letter/read_next_fadeout_init__14dMenu_Letter_cFv.s b/asm/d/menu/d_menu_letter/read_next_fadeout_init__14dMenu_Letter_cFv.s deleted file mode 100644 index 322c16f3399..00000000000 --- a/asm/d/menu/d_menu_letter/read_next_fadeout_init__14dMenu_Letter_cFv.s +++ /dev/null @@ -1,20 +0,0 @@ -lbl_801DEA48: -/* 801DEA48 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801DEA4C 7C 08 02 A6 */ mflr r0 -/* 801DEA50 90 01 00 14 */ stw r0, 0x14(r1) -/* 801DEA54 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801DEA58 7C 7F 1B 78 */ mr r31, r3 -/* 801DEA5C 3C 80 80 43 */ lis r4, g_drawHIO@ha /* 0x8042EBC8@ha */ -/* 801DEA60 38 84 EB C8 */ addi r4, r4, g_drawHIO@l /* 0x8042EBC8@l */ -/* 801DEA64 A8 04 07 5E */ lha r0, 0x75e(r4) -/* 801DEA68 B0 03 03 6A */ sth r0, 0x36a(r3) -/* 801DEA6C 38 80 00 00 */ li r4, 0 -/* 801DEA70 48 00 2A A9 */ bl setAButtonString__14dMenu_Letter_cFUs -/* 801DEA74 7F E3 FB 78 */ mr r3, r31 -/* 801DEA78 38 80 00 00 */ li r4, 0 -/* 801DEA7C 48 00 2B 4D */ bl setBButtonString__14dMenu_Letter_cFUs -/* 801DEA80 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801DEA84 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801DEA88 7C 08 03 A6 */ mtlr r0 -/* 801DEA8C 38 21 00 10 */ addi r1, r1, 0x10 -/* 801DEA90 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_letter/setCursorPos__14dMenu_Letter_cFv.s b/asm/d/menu/d_menu_letter/setCursorPos__14dMenu_Letter_cFv.s deleted file mode 100644 index e312cd47287..00000000000 --- a/asm/d/menu/d_menu_letter/setCursorPos__14dMenu_Letter_cFv.s +++ /dev/null @@ -1,36 +0,0 @@ -lbl_801E0B24: -/* 801E0B24 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 801E0B28 7C 08 02 A6 */ mflr r0 -/* 801E0B2C 90 01 00 34 */ stw r0, 0x34(r1) -/* 801E0B30 93 E1 00 2C */ stw r31, 0x2c(r1) -/* 801E0B34 7C 7F 1B 78 */ mr r31, r3 -/* 801E0B38 88 03 03 6E */ lbz r0, 0x36e(r3) -/* 801E0B3C 54 00 10 3A */ slwi r0, r0, 2 -/* 801E0B40 7C 7F 02 14 */ add r3, r31, r0 -/* 801E0B44 80 83 02 C8 */ lwz r4, 0x2c8(r3) -/* 801E0B48 38 61 00 08 */ addi r3, r1, 8 -/* 801E0B4C 80 A4 00 04 */ lwz r5, 4(r4) -/* 801E0B50 38 C0 00 00 */ li r6, 0 -/* 801E0B54 38 E0 00 00 */ li r7, 0 -/* 801E0B58 48 07 43 65 */ bl getGlobalVtxCenter__8CPaneMgrFP7J2DPanebs -/* 801E0B5C 80 61 00 08 */ lwz r3, 8(r1) -/* 801E0B60 80 01 00 0C */ lwz r0, 0xc(r1) -/* 801E0B64 90 61 00 14 */ stw r3, 0x14(r1) -/* 801E0B68 90 01 00 18 */ stw r0, 0x18(r1) -/* 801E0B6C 80 01 00 10 */ lwz r0, 0x10(r1) -/* 801E0B70 90 01 00 1C */ stw r0, 0x1c(r1) -/* 801E0B74 88 1F 03 6E */ lbz r0, 0x36e(r31) -/* 801E0B78 54 00 10 3A */ slwi r0, r0, 2 -/* 801E0B7C 7C 7F 02 14 */ add r3, r31, r0 -/* 801E0B80 80 63 02 C8 */ lwz r3, 0x2c8(r3) -/* 801E0B84 80 83 00 04 */ lwz r4, 4(r3) -/* 801E0B88 80 7F 03 0C */ lwz r3, 0x30c(r31) -/* 801E0B8C C0 21 00 14 */ lfs f1, 0x14(r1) -/* 801E0B90 C0 41 00 18 */ lfs f2, 0x18(r1) -/* 801E0B94 38 A0 00 00 */ li r5, 0 -/* 801E0B98 4B FB 45 5D */ bl setPos__16dSelect_cursor_cFffP7J2DPaneb -/* 801E0B9C 83 E1 00 2C */ lwz r31, 0x2c(r1) -/* 801E0BA0 80 01 00 34 */ lwz r0, 0x34(r1) -/* 801E0BA4 7C 08 03 A6 */ mtlr r0 -/* 801E0BA8 38 21 00 30 */ addi r1, r1, 0x30 -/* 801E0BAC 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_letter/wait_init__14dMenu_Letter_cFv.s b/asm/d/menu/d_menu_letter/wait_init__14dMenu_Letter_cFv.s deleted file mode 100644 index 565033f47e5..00000000000 --- a/asm/d/menu/d_menu_letter/wait_init__14dMenu_Letter_cFv.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_801DDE18: -/* 801DDE18 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801DDE1C 7C 08 02 A6 */ mflr r0 -/* 801DDE20 90 01 00 14 */ stw r0, 0x14(r1) -/* 801DDE24 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801DDE28 7C 7F 1B 78 */ mr r31, r3 -/* 801DDE2C 38 80 04 0C */ li r4, 0x40c -/* 801DDE30 48 00 36 E9 */ bl setAButtonString__14dMenu_Letter_cFUs -/* 801DDE34 7F E3 FB 78 */ mr r3, r31 -/* 801DDE38 38 80 03 F9 */ li r4, 0x3f9 -/* 801DDE3C 48 00 37 8D */ bl setBButtonString__14dMenu_Letter_cFUs -/* 801DDE40 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801DDE44 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801DDE48 7C 08 03 A6 */ mtlr r0 -/* 801DDE4C 38 21 00 10 */ addi r1, r1, 0x10 -/* 801DDE50 4E 80 00 20 */ blr diff --git a/include/d/com/d_com_inf_game.h b/include/d/com/d_com_inf_game.h index b6dfbbcdbf4..e93a5b9f1e9 100644 --- a/include/d/com/d_com_inf_game.h +++ b/include/d/com/d_com_inf_game.h @@ -1754,6 +1754,14 @@ inline u8 dComIfGs_getFishSize(u8 param_0) { return g_dComIfG_gameInfo.info.getPlayer().getFishingInfo().getMaxSize(param_0); } +inline u8 dComIfGs_getGetNumber(int i_no) { + return g_dComIfG_gameInfo.info.getPlayer().getLetterInfo().getGetNumber(i_no); +} + +inline void dComIfGs_setGetNumber(int i_no, u8 i_value) { + g_dComIfG_gameInfo.info.getPlayer().getLetterInfo().setGetNumber(i_no, i_value); +} + inline BOOL dComIfGs_isStageMiddleBoss() { return g_dComIfG_gameInfo.info.getMemory().getBit().isStageBossEnemy2(); } diff --git a/include/d/menu/d_menu_letter.h b/include/d/menu/d_menu_letter.h index 5755da76e93..9177d512515 100644 --- a/include/d/menu/d_menu_letter.h +++ b/include/d/menu/d_menu_letter.h @@ -21,8 +21,8 @@ public: /* 801DD934 */ bool isSync(); /* 801DD95C */ void letter_init_calc(); /* 801DDA20 */ void init(); - /* 801DDA74 */ void _open(); - /* 801DDC98 */ void _close(); + /* 801DDA74 */ int _open(); + /* 801DDC98 */ int _close(); /* 801DDE18 */ void wait_init(); /* 801DDE54 */ void wait_move(); /* 801DE164 */ void slide_right_init(); @@ -52,7 +52,7 @@ public: /* 801E11EC */ void copyDMYMenu(); /* 801E1518 */ void setAButtonString(u16); /* 801E15C8 */ void setBButtonString(u16); - /* 801E1678 */ void getLetterNum(); + /* 801E1678 */ u8 getLetterNum(); /* 801E1748 */ void setHIO(bool); /* 801E1D5C */ virtual void draw(); @@ -62,36 +62,35 @@ public: private: /* 0x004 */ JKRExpHeap* mpHeap; - /* 0x008 */ JKRArchive* field_0x8; + /* 0x008 */ JKRArchive* mpArchive; /* 0x00C */ STControl* mpStick; /* 0x010 */ CSTControl* mpCStick; - /* 0x014 */ mDoDvdThd_mountArchive_c* field_0x14; + /* 0x014 */ mDoDvdThd_mountArchive_c* mpMount; /* 0x018 */ J2DScreen* mpMenuScreen; /* 0x01C */ J2DScreen* mpMenuDMYScreen; /* 0x020 */ J2DScreen* mpMenuBaseScreen; /* 0x024 */ J2DScreen* mpSdwScreen; /* 0x028 */ J2DScreen* mpLetterScreen[2]; /* 0x030 */ J2DScreen* mpIconScreen; - /* 0x034 */ J2DTextBox* field_0x40[6][5]; + /* 0x034 */ J2DTextBox* field_0x34[6][5]; /* 0x0AC */ J2DTextBox* field_0xac[6][5]; /* 0x124 */ J2DTextBox* field_0x124[6][4]; /* 0x184 */ J2DTextBox* field_0x184[6][4]; /* 0x1E4 */ J2DTextBox* field_0x1e4[2]; /* 0x1EC */ J2DTextBox* field_0x1ec; /* 0x1F0 */ J2DTextBox* field_0x1f0[9]; - /* 0x214 */ u8 field_0x214[0x24]; + /* 0x214 */ J2DTextBox* mpPageLight[9]; /* 0x238 */ J2DTextBox* field_0x238[9]; /* 0x25C */ J2DTextBox* field_0x25c[12]; - /* 0x28C */ J2DTextBox* field_0x28c[5]; - /* 0x2A0 */ J2DTextBox* field_0x2a0[5]; + /* 0x28C */ J2DTextBox* mpAButtonString[5]; + /* 0x2A0 */ J2DTextBox* mpBButtonString[5]; /* 0x2B4 */ J2DPicture* mpBlackTex; /* 0x2B8 */ CPaneMgr* mpParent[3]; /* 0x2C4 */ CPaneMgr* mpDMYParent; /* 0x2C8 */ CPaneMgr* mpLetterParent[6]; /* 0x2E0 */ CPaneMgr* mpTextParent[2]; /* 0x2E8 */ CPaneMgr* mpLineParent; - /* 0x2EC */ CPaneMgr* field_0x2ec; - /* 0x2F0 */ CPaneMgr* field_0x2f0; + /* 0x2EC */ CPaneMgr* field_0x2ec[2]; /* 0x2F4 */ CPaneMgr* field_0x2f4[2]; /* 0x2FC */ CPaneMgr* mpButtonAB[2]; /* 0x304 */ CPaneMgr* mpButtonText[2]; @@ -106,11 +105,11 @@ private: /* 0x35C */ f32 field_0x35c; /* 0x360 */ f32 field_0x360; /* 0x364 */ f32 field_0x364; - /* 0x368 */ u16 field_0x368; - /* 0x36A */ u16 field_0x36a; + /* 0x368 */ s16 field_0x368; + /* 0x36A */ s16 field_0x36a; /* 0x36C */ u8 mStatus; - /* 0x36D */ u8 field_0x36d; - /* 0x36E */ u8 field_0x36e; + /* 0x36D */ u8 mProcess; + /* 0x36E */ u8 mIndex; /* 0x36F */ u8 field_0x36f; /* 0x370 */ u8 field_0x370; /* 0x371 */ u8 field_0x371; diff --git a/include/d/save/d_save.h b/include/d/save/d_save.h index 5809c9a62ba..6cfdcc11724 100644 --- a/include/d/save/d_save.h +++ b/include/d/save/d_save.h @@ -667,6 +667,8 @@ public: BOOL isLetterGetFlag(int i_no) const; void onLetterReadFlag(int i_no); int isLetterReadFlag(int i_no) const; + u8 getGetNumber(int i_no) { return mGetNumber[i_no]; } + void setGetNumber(int i_no, u8 i_value) { mGetNumber[i_no] = i_value; } private: /* 0x00 */ u32 mLetterGetFlags[2]; diff --git a/src/d/menu/d_menu_letter.cpp b/src/d/menu/d_menu_letter.cpp index 37d025e534b..03cb118a05b 100644 --- a/src/d/menu/d_menu_letter.cpp +++ b/src/d/menu/d_menu_letter.cpp @@ -5,70 +5,23 @@ #include "d/menu/d_menu_letter.h" #include "JSystem/J2DGraph/J2DTextBox.h" +#include "JSystem/JKernel/JKRHeap.h" +#include "JSystem/JKernel/JKRMemArchive.h" +#include "MSL_C/math.h" #include "MSL_C/stdio.h" #include "MSL_C/string.h" +#include "d/com/d_com_inf_game.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_class.h" +#include "d/msg/d_msg_string.h" #include "dol2asm.h" - -// -// Types: -// - -struct mDoGph_gInf_c { - static u8 mFader[4]; -}; - -struct mDoDvdThd_mountArchive_c { - /* 80015E14 */ void create(char const*, u8, JKRHeap*); -}; - -struct mDoCPd_c { - static u8 m_cpadInfo[256]; -}; - -struct dSv_letter_info_c { - /* 80034428 */ void onLetterGetFlag(int); - /* 80034474 */ void onLetterReadFlag(int); - /* 8003449C */ void isLetterReadFlag(int) const; -}; - -struct COutFont_c {}; - -struct dMsgString_c { - /* 801E1D10 */ void getStringPage(u32, u8, u8, J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*, - u8); - /* 80249C20 */ dMsgString_c(); - /* 80249D28 */ ~dMsgString_c(); -}; - -struct dMsgStringBase_c { - /* 802498D8 */ void getStringPageLocal(u32, u8, u8, J2DTextBox*, J2DTextBox*, JUTFont*, - COutFont_c*, u8); - /* 80249A48 */ void getPageMax(int); -}; - -struct dMsgScrnArrow_c { - /* 8023B9B4 */ dMsgScrnArrow_c(); - /* 8023BDC0 */ void draw(); - /* 8023BDF8 */ void setPos(f32, f32); - /* 8023BE34 */ void arwAnimeInit(); - /* 8023BE90 */ void arwAnimeMove(); - /* 8023BFC4 */ void dotAnimeInit(); - /* 8023C010 */ void dotAnimeMove(); -}; - -struct JMSMesgEntry_c {}; - -struct dMeter2Info_c { - /* 8021C544 */ void getStringKanji(u32, char*, JMSMesgEntry_c*); -}; - -struct dMenu_Letter { - static u8 letter_data[512]; -}; - -// -// Forward References: -// +#include "dolphin/types.h" +#include "m_Do/m_Do_controller_pad.h" +#include "m_Do/m_Do_graphic.h" +#include "msg/scrn/d_msg_scrn_arrow.h" extern "C" void __ct__14dMenu_Letter_cFP10JKRExpHeapP9STControlP10CSTControl(); extern "C" void __dt__14dMenu_Letter_cFv(); @@ -194,9 +147,6 @@ extern "C" void _restgpr_29(); extern "C" extern void* __vt__12dDlst_base_c[3]; extern "C" u8 letter_data__12dMenu_Letter[512]; extern "C" u8 m_cpadInfo__8mDoCPd_c[256]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; -extern "C" extern u8 g_drawHIO[3880]; -extern "C" extern u8 g_meter2_info[248]; extern "C" u8 mFader__13mDoGph_gInf_c[4]; extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; @@ -206,188 +156,32 @@ extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; /* ############################################################################################## */ /* 803BDA00-803BDA0C 01AB20 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */ -SECTION_DATA static u8 cNullVec__6Z2Calc[12] = { +static u8 cNullVec__6Z2Calc[12] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; -/* 803BDA0C-803BDA18 -00001 000C+00 0/1 0/0 0/0 .data @3795 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3795[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait_init__14dMenu_Letter_cFv, -}; -#pragma pop - -/* 803BDA18-803BDA24 -00001 000C+00 0/1 0/0 0/0 .data @3796 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3796[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)slide_right_init__14dMenu_Letter_cFv, -}; -#pragma pop - -/* 803BDA24-803BDA30 -00001 000C+00 0/1 0/0 0/0 .data @3797 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3797[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)slide_left_init__14dMenu_Letter_cFv, -}; -#pragma pop - -/* 803BDA30-803BDA3C -00001 000C+00 0/1 0/0 0/0 .data @3798 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3798[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)read_open_init__14dMenu_Letter_cFv, -}; -#pragma pop - -/* 803BDA3C-803BDA48 -00001 000C+00 0/1 0/0 0/0 .data @3799 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3799[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)read_move_init__14dMenu_Letter_cFv, -}; -#pragma pop - -/* 803BDA48-803BDA54 -00001 000C+00 0/1 0/0 0/0 .data @3800 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3800[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)read_next_fadeout_init__14dMenu_Letter_cFv, -}; -#pragma pop - -/* 803BDA54-803BDA60 -00001 000C+00 0/1 0/0 0/0 .data @3801 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3801[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)read_next_fadein_init__14dMenu_Letter_cFv, -}; -#pragma pop - -/* 803BDA60-803BDA6C -00001 000C+00 0/1 0/0 0/0 .data @3802 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3802[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)read_close_init__14dMenu_Letter_cFv, -}; -#pragma pop - -/* 803BDA6C-803BDACC 01AB8C 0060+00 2/3 0/0 0/0 .data map_init_process */ -SECTION_DATA static u8 map_init_process[96] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +typedef void (dMenu_Letter_c::*initFunc)(); +static initFunc map_init_process[] = { + &dMenu_Letter_c::wait_init, + &dMenu_Letter_c::slide_right_init, + &dMenu_Letter_c::slide_left_init, + &dMenu_Letter_c::read_open_init, + &dMenu_Letter_c::read_move_init, + &dMenu_Letter_c::read_next_fadeout_init, + &dMenu_Letter_c::read_next_fadein_init, + &dMenu_Letter_c::read_close_init, }; -/* 803BDACC-803BDAD8 -00001 000C+00 0/1 0/0 0/0 .data @3803 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3803[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait_move__14dMenu_Letter_cFv, -}; -#pragma pop - -/* 803BDAD8-803BDAE4 -00001 000C+00 0/1 0/0 0/0 .data @3804 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3804[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)slide_right_move__14dMenu_Letter_cFv, -}; -#pragma pop - -/* 803BDAE4-803BDAF0 -00001 000C+00 0/1 0/0 0/0 .data @3805 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3805[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)slide_left_move__14dMenu_Letter_cFv, -}; -#pragma pop - -/* 803BDAF0-803BDAFC -00001 000C+00 0/1 0/0 0/0 .data @3806 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3806[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)read_open_move__14dMenu_Letter_cFv, -}; -#pragma pop - -/* 803BDAFC-803BDB08 -00001 000C+00 0/1 0/0 0/0 .data @3807 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3807[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)read_move_move__14dMenu_Letter_cFv, -}; -#pragma pop - -/* 803BDB08-803BDB14 -00001 000C+00 0/1 0/0 0/0 .data @3808 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3808[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)read_next_fadeout_move__14dMenu_Letter_cFv, -}; -#pragma pop - -/* 803BDB14-803BDB20 -00001 000C+00 0/1 0/0 0/0 .data @3809 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3809[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)read_next_fadein_move__14dMenu_Letter_cFv, -}; -#pragma pop - -/* 803BDB20-803BDB2C -00001 000C+00 0/1 0/0 0/0 .data @3810 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3810[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)read_close_move__14dMenu_Letter_cFv, -}; -#pragma pop - -/* 803BDB2C-803BDB8C 01AC4C 0060+00 1/2 0/0 0/0 .data map_move_process */ -SECTION_DATA static u8 map_move_process[96] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +typedef void (dMenu_Letter_c::*moveFunc)(); +static moveFunc map_move_process[] = { + &dMenu_Letter_c::wait_move, + &dMenu_Letter_c::slide_right_move, + &dMenu_Letter_c::slide_left_move, + &dMenu_Letter_c::read_open_move, + &dMenu_Letter_c::read_move_move, + &dMenu_Letter_c::read_next_fadeout_move, + &dMenu_Letter_c::read_next_fadein_move, + &dMenu_Letter_c::read_close_move, }; /* 803BDB8C-803BDBA8 01ACAC 0010+0C 2/2 0/0 0/0 .data __vt__14dMenu_Letter_c */ @@ -415,6 +209,38 @@ SECTION_SDATA2 static f32 lit_3828 = 1.0f; /* 801DCDC0-801DCF34 1D7700 0174+00 0/0 2/2 0/0 .text * __ct__14dMenu_Letter_cFP10JKRExpHeapP9STControlP10CSTControl */ +#ifdef NONMATCHING +// Matches with literals +dMenu_Letter_c::dMenu_Letter_c(JKRExpHeap* i_heap, STControl* i_stick, CSTControl* i_cstick) { + mpHeap = i_heap; + mpMount = NULL; + mpArchive = NULL; + mpStick = i_stick; + mpCStick = i_cstick; + mStatus = 1; + mProcess = 0; + field_0x368 = 0; + field_0x36a = 0; + mIndex = 0; + field_0x36f = 0; + field_0x372 = 0; + field_0x3e2 = 0; + field_0x3e3 = 0; + field_0x3e4 = 0; + field_0x370 = 0xff; + field_0x371 = 0xff; + letter_init_calc(); + field_0x358 = 0.0f; + field_0x35c = 0.0f; + field_0x364 = 1.0f; + field_0x360 = 1.0f; + for (int i = 0; i < 9; i++) { + for (int j = 0; j < 6; j++) { + field_0x376[i][j] = 0; + } + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -423,16 +249,93 @@ asm dMenu_Letter_c::dMenu_Letter_c(JKRExpHeap* param_0, STControl* param_1, CSTC #include "asm/d/menu/d_menu_letter/__ct__14dMenu_Letter_cFP10JKRExpHeapP9STControlP10CSTControl.s" } #pragma pop +#endif /* 801DCF34-801DD36C 1D7874 0438+00 1/0 0/0 0/0 .text __dt__14dMenu_Letter_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dMenu_Letter_c::~dMenu_Letter_c() { - nofralloc -#include "asm/d/menu/d_menu_letter/__dt__14dMenu_Letter_cFv.s" +dMenu_Letter_c::~dMenu_Letter_c() { + delete mpDrawCursor; + mpDrawCursor = NULL; + + delete mpArrow; + mpArrow = NULL; + + delete mpString; + mpString = NULL; + + delete mpMenuScreen; + mpMenuScreen = NULL; + + delete mpMenuDMYScreen; + mpMenuDMYScreen = NULL; + + delete mpMenuBaseScreen; + mpMenuBaseScreen = NULL; + + delete mpSdwScreen; + mpSdwScreen = NULL; + + for (int i = 0; i < 2; i++) { + delete mpLetterScreen[i]; + mpLetterScreen[i] = NULL; + + delete field_0x2ec[i]; + field_0x2ec[i] = NULL; + + if (field_0x2f4[i] != NULL) { + delete field_0x2f4[i]; + field_0x2f4[i] = NULL; + } + + delete mpTextParent[i]; + mpTextParent[i] = NULL; + } + + delete mpLineParent; + mpLineParent = NULL; + + delete mpBlackTex; + mpBlackTex = NULL; + + for (int i = 0; i < 3; i++) { + delete mpParent[i]; + mpParent[i] = NULL; + } + + for (int i = 0; i < 6; i++) { + delete mpLetterParent[i]; + mpLetterParent[i] = NULL; + } + + delete mpDMYParent; + mpDMYParent = NULL; + + delete mpIconScreen; + mpIconScreen = NULL; + + for (int i = 0; i < 2; i++) { + if (mpButtonAB[i] != NULL) { + delete mpButtonAB[i]; + mpButtonAB[i] = NULL; + } + + if (mpButtonText[i] != NULL) { + delete mpButtonText[i]; + mpButtonText[i] = NULL; + } + } + + if (mpMount != NULL) { + mpMount->getArchive()->unmount(); + delete mpMount; + mpMount = NULL; + } + + if (mpArchive != NULL) { + mpArchive->unmount(); + mpArchive = NULL; + } + dComIfGp_getMsgArchive(0)->removeResourceAll(); } -#pragma pop /* ############################################################################################## */ /* 804542E8-804542EC 0028E8 0004+00 1/1 0/0 0/0 .sdata2 @3964 */ @@ -448,6 +351,28 @@ SECTION_SDATA2 static f32 lit_3966 = 1.0f / 50.0f; SECTION_SDATA2 static f32 lit_3967 = 2.0f / 5.0f; /* 801DD36C-801DD474 1D7CAC 0108+00 1/1 0/0 0/0 .text _create__14dMenu_Letter_cFv */ +#ifdef NONMATCHING +// Matches with literals +void dMenu_Letter_c::_create() { + mpDrawCursor = new dSelect_cursor_c(2, 1.0f, NULL); + mpDrawCursor->setParam(1.06f, 0.9f, 0.02f, 0.4f, 0.4f); + mpDrawCursor->setAlphaRate(0.0f); + mpDrawCursor->setScale(0.0f); + mpDrawCursor->offPlayAnime(0); + + mpString = new dMsgString_c(); + + mpArrow = new dMsgScrnArrow_c(); + + screenSetMenu(); + screenSetBase(); + screenSetShadow(); + screenSetLetter(); + screenSetDoIcon(); + setHIO(true); + init(); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -456,16 +381,19 @@ asm void dMenu_Letter_c::_create() { #include "asm/d/menu/d_menu_letter/_create__14dMenu_Letter_cFv.s" } #pragma pop +#endif /* 801DD474-801DD50C 1D7DB4 0098+00 0/0 2/2 0/0 .text _move__14dMenu_Letter_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Letter_c::_move() { - nofralloc -#include "asm/d/menu/d_menu_letter/_move__14dMenu_Letter_cFv.s" +void dMenu_Letter_c::_move() { + JKRHeap* heap = mDoExt_setCurrentHeap((JKRHeap*)mpHeap); + u8 process = mProcess; + (this->*map_move_process[mProcess])(); + if (process != mProcess) { + (this->*map_init_process[mProcess])(); + } + setHIO(false); + mDoExt_setCurrentHeap(heap); } -#pragma pop /* ############################################################################################## */ /* 804542F8-804542FC 0028F8 0004+00 1/1 0/0 0/0 .sdata2 @4054 */ @@ -495,34 +423,41 @@ asm void dMenu_Letter_c::_draw() { #pragma pop /* 801DD934-801DD95C 1D8274 0028+00 0/0 2/2 0/0 .text isSync__14dMenu_Letter_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool dMenu_Letter_c::isSync() { - nofralloc -#include "asm/d/menu/d_menu_letter/isSync__14dMenu_Letter_cFv.s" +bool dMenu_Letter_c::isSync() { + if (mpMount != NULL && mpMount->sync() == false) { + return 0; + } + return 1; } -#pragma pop /* 801DD95C-801DDA20 1D829C 00C4+00 1/1 0/0 0/0 .text letter_init_calc__14dMenu_Letter_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Letter_c::letter_init_calc() { - nofralloc -#include "asm/d/menu/d_menu_letter/letter_init_calc__14dMenu_Letter_cFv.s" +void dMenu_Letter_c::letter_init_calc() { + m_letter_num = getLetterNum(); + for (int i = 0; i < 54; i++) { + if (i < m_letter_num) { + field_0x3ac[i] = dComIfGs_getGetNumber(m_letter_num - i - 1); + } else { + field_0x3ac[i] = 0xff; + } + } + if (m_letter_num < 6) { + field_0x373 = m_letter_num; + } else { + field_0x373 = 6; + } + if (m_letter_num % 6 == 0) { + field_0x374 = m_letter_num / 6; + } else { + field_0x374 = m_letter_num / 6 + 1; + } } -#pragma pop /* 801DDA20-801DDA74 1D8360 0054+00 1/1 0/0 0/0 .text init__14dMenu_Letter_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Letter_c::init() { - nofralloc -#include "asm/d/menu/d_menu_letter/init__14dMenu_Letter_cFv.s" +void dMenu_Letter_c::init() { + setPageText(); + changeActiveColor(); + (this->*map_init_process[mProcess])(); } -#pragma pop /* ############################################################################################## */ /* 80396DC0-80396DC0 023420 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ @@ -535,36 +470,171 @@ SECTION_DEAD static char const* const stringBase_80396DC0 = "/res/Layout/letres. SECTION_SDATA2 static f64 lit_4171 = 4503601774854144.0 /* cast s32 to float */; /* 801DDA74-801DDC98 1D83B4 0224+00 0/0 2/2 0/0 .text _open__14dMenu_Letter_cFv */ +#ifdef NONMATCHING +// Matches with literals +int dMenu_Letter_c::_open() { + if (mpMount == NULL) { + mpMount = mDoDvdThd_mountArchive_c::create("/res/Layout/letres.arc", 0, NULL); + } + if (!mpArchive) { + if (mpMount->sync() != 0) { + if (!mpArchive) { + mpArchive = (JKRArchive*)mpMount->getArchive(); + delete mpMount; + mpMount = NULL; + _create(); + } + } else { + return 0; + } + } + + s16 openWindowFrame = + g_drawHIO.mLetterSelectScreen.mOpenFrame[dMeter_drawLetterHIO_c::WINDOW_FRAME]; + s16 closeWindowFrame = + g_drawHIO.mLetterSelectScreen.mCloseFrame[dMeter_drawLetterHIO_c::WINDOW_FRAME]; + field_0x368 = g_drawHIO.mLetterSelectScreen.mOpenFrame[dMeter_drawLetterHIO_c::WINDOW_FRAME]; + if (field_0x368 >= openWindowFrame) { + field_0x368 = closeWindowFrame; + mStatus = 2; + for (int i = 0; i < 3; i++) { + mpParent[i]->scale(g_drawHIO.mLetterSelectScreen.mWindowScale, + g_drawHIO.mLetterSelectScreen.mWindowScale); + mpParent[i]->setAlphaRate(1.0f); + } + setCursorPos(); + mpDrawCursor->setAlphaRate(1.0f); + mpDrawCursor->setScale(1.0f); + mpDrawCursor->onPlayAnime(0); + return 1; + } else { + f32 div = (f32)field_0x368 / (f32)openWindowFrame; + for (int i = 0; i < 3; i++) { + mpParent[i]->scale(g_drawHIO.mLetterSelectScreen.mWindowScale * div, + g_drawHIO.mLetterSelectScreen.mWindowScale * div); + mpParent[i]->setAlphaRate(div); + } + setCursorPos(); + mpDrawCursor->setAlphaRate(div); + mpDrawCursor->setScale(div); + return 0; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMenu_Letter_c::_open() { +asm int dMenu_Letter_c::_open() { nofralloc #include "asm/d/menu/d_menu_letter/_open__14dMenu_Letter_cFv.s" } #pragma pop +#endif /* 801DDC98-801DDE18 1D85D8 0180+00 0/0 1/1 0/0 .text _close__14dMenu_Letter_cFv */ +#ifdef NONMATCHING +// Matches with literals +int dMenu_Letter_c::_close() { + s16 closeWindowFrame = + g_drawHIO.mLetterSelectScreen.mCloseFrame[dMeter_drawLetterHIO_c::WINDOW_FRAME]; + field_0x368 = 0; + if (field_0x368 <= 0) { + field_0x368 = 0; + mStatus = 0; + for (int i = 0; i < 3; i++) { + mpParent[i]->scale(0.0f, 0.0f); + mpParent[i]->setAlphaRate(0.0f); + } + setCursorPos(); + mpDrawCursor->setAlphaRate(0.0f); + mpDrawCursor->setScale(0.0f); + return 1; + } else { + f32 div = (f32)field_0x368 / (f32)closeWindowFrame; + for (int i = 0; i < 3; i++) { + mpParent[i]->scale(g_drawHIO.mLetterSelectScreen.mWindowScale * div, + g_drawHIO.mLetterSelectScreen.mWindowScale * div); + mpParent[i]->setAlphaRate(div); + } + setCursorPos(); + mpDrawCursor->setAlphaRate(div); + mpDrawCursor->setScale(div); + return 0; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMenu_Letter_c::_close() { +asm int dMenu_Letter_c::_close() { nofralloc #include "asm/d/menu/d_menu_letter/_close__14dMenu_Letter_cFv.s" } #pragma pop +#endif /* 801DDE18-801DDE54 1D8758 003C+00 1/0 0/0 0/0 .text wait_init__14dMenu_Letter_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Letter_c::wait_init() { - nofralloc -#include "asm/d/menu/d_menu_letter/wait_init__14dMenu_Letter_cFv.s" +void dMenu_Letter_c::wait_init() { + setAButtonString(0x40c); + setBButtonString(0x3f9); } -#pragma pop /* 801DDE54-801DE164 1D8794 0310+00 1/0 0/0 0/0 .text wait_move__14dMenu_Letter_cFv */ +#ifdef NONMATCHING +// Matches with literals +void dMenu_Letter_c::wait_move() { + u8 oldIndex = mIndex; + if (mDoGph_gInf_c::getFader()->getStatus() == 1) { + if (mDoCPd_c::getTrigB(PAD_1) != 0) { + mpDrawCursor->offPlayAnime(0); + mStatus = 3; + } else if (mDoCPd_c::getTrigA(PAD_1)) { + mProcess = 3; + Z2GetAudioMgr()->seStart(Z2SE_SY_LETTER_OPEN, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); + dMeter2Info_set2DVibration(); + } else if (mpStick->checkUpTrigger()) { + if (mIndex) { + mIndex--; + Z2GetAudioMgr()->seStart(Z2SE_SY_CURSOR_ITEM, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, + 0); + } + + } else if (mpStick->checkDownTrigger()) { + if (mIndex < field_0x373 - 1) { + mIndex++; + Z2GetAudioMgr()->seStart(Z2SE_SY_CURSOR_ITEM, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, + 0); + } + } else if (mDoCPd_c::getTrigR(PAD_1)) { + if (field_0x36f < field_0x374 - 1) { + field_0x372 = field_0x36f; + field_0x36f++; + mProcess = 2; + Z2GetAudioMgr()->seStart(Z2SE_SY_MENU_SUB_NEXT, NULL, 0, 0, 1.0f, 1.0f, -1.0f, + -1.0f, 0); + } + } else if (mDoCPd_c::getTrigL(PAD_1)) { + if (field_0x36f) { + field_0x372 = field_0x36f; + field_0x36f--; + mProcess = 1; + Z2GetAudioMgr()->seStart(Z2SE_SY_MENU_SUB_NEXT, NULL, 0, 0, 1.0f, 1.0f, -1.0f, + -1.0f, 0); + } + } + + if (mProcess == 1 || mProcess == 2) { + J2DTextBox* textBox = (J2DTextBox*)mpMenuBaseScreen->search('f_t_00'); + mpMenuBaseScreen->search('t_t00')->hide(); + dComIfGp_setMessageCountNumber(field_0x374 + (field_0x36f + 1) * 100); + mpString->getString(0x4d6, textBox, NULL, NULL, NULL, 0); + } + if (oldIndex != mIndex) { + changeActiveColor(); + } + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -573,8 +643,20 @@ asm void dMenu_Letter_c::wait_move() { #include "asm/d/menu/d_menu_letter/wait_move__14dMenu_Letter_cFv.s" } #pragma pop +#endif /* 801DE164-801DE1E8 1D8AA4 0084+00 1/0 0/0 0/0 .text slide_right_init__14dMenu_Letter_cFv */ +#ifdef NONMATCHING +// Matches with literals +void dMenu_Letter_c::slide_right_init() { + field_0x358 = -field_0x1ec->getWidth() * mDoGph_gInf_c::getInvScale(); + field_0x35c = field_0x1ec->getWidth() * mDoGph_gInf_c::getInvScale(); + changePageLight(); + copyDMYMenu(); + setAButtonString(0); + setBButtonString(0); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -583,6 +665,7 @@ asm void dMenu_Letter_c::slide_right_init() { #include "asm/d/menu/d_menu_letter/slide_right_init__14dMenu_Letter_cFv.s" } #pragma pop +#endif /* ############################################################################################## */ /* 80454318-8045431C 002918 0004+00 3/3 0/0 0/0 .sdata2 @4308 */ @@ -599,6 +682,16 @@ SECTION_SDATA2 static f32 lit_4310[1 + 1 /* padding */] = { }; /* 801DE1E8-801DE24C 1D8B28 0064+00 1/0 0/0 0/0 .text slide_right_move__14dMenu_Letter_cFv */ +#ifdef NONMATCHING +// Matches with literals +void dMenu_Letter_c::slide_right_move() { + cLib_addCalc2(&field_0x358, 0.0f, 0.5f, 50.0f); + if (fabsf(field_0x358) < 0.1f) { + field_0x358 = 0.0f; + mProcess = 0; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -607,9 +700,21 @@ asm void dMenu_Letter_c::slide_right_move() { #include "asm/d/menu/d_menu_letter/slide_right_move__14dMenu_Letter_cFv.s" } #pragma pop +#endif /* 801DE24C-801DE2D0 1D8B8C 0084+00 1/0 0/0 0/0 .text slide_left_init__14dMenu_Letter_cFv */ +#ifdef NONMATCHING +// Matches with literals +void dMenu_Letter_c::slide_left_init() { + field_0x358 = field_0x1ec->getWidth() * mDoGph_gInf_c::getInvScale(); + field_0x35c = -field_0x1ec->getWidth() * mDoGph_gInf_c::getInvScale(); + changePageLight(); + copyDMYMenu(); + setAButtonString(0); + setBButtonString(0); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -618,9 +723,20 @@ asm void dMenu_Letter_c::slide_left_init() { #include "asm/d/menu/d_menu_letter/slide_left_init__14dMenu_Letter_cFv.s" } #pragma pop +#endif /* 801DE2D0-801DE334 1D8C10 0064+00 1/0 0/0 0/0 .text slide_left_move__14dMenu_Letter_cFv */ +#ifdef NONMATCHING +// Matches with literals +void dMenu_Letter_c::slide_left_move() { + cLib_addCalc2(&field_0x358, 0.0f, 0.5f, 50.0f); + if (fabsf(field_0x358) < 0.1f) { + field_0x358 = 0.0f; + mProcess = 0; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -629,6 +745,7 @@ asm void dMenu_Letter_c::slide_left_move() { #include "asm/d/menu/d_menu_letter/slide_left_move__14dMenu_Letter_cFv.s" } #pragma pop +#endif /* ############################################################################################## */ /* 80396DC0-80396DC0 023420 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ @@ -650,6 +767,31 @@ asm void dMenu_Letter_c::read_open_init() { /* 801DE564-801DE70C 1D8EA4 01A8+00 1/0 0/0 0/0 .text read_open_move__14dMenu_Letter_cFv */ +#ifdef NONMATCHING +// Matches with literals +void dMenu_Letter_c::read_open_move() { + s16 openLetterFrame = + g_drawHIO.mLetterSelectScreen.mOpenFrame[dMeter_drawLetterHIO_c::LETTER_FRAME]; + field_0x36a++; + if (field_0x36a >= openLetterFrame) { + mProcess = 4; + for (int i = 0; i < 2; i++) { + mpTextParent[i]->scale(g_drawHIO.mLetterSelectScreen.mLetterWindowScale, + g_drawHIO.mLetterSelectScreen.mLetterWindowScale); + mpTextParent[i]->setAlphaRate(1.0f); + } + mpBlackTex->setAlpha(g_drawHIO.mLetterSelectScreen.mWindowBGAlpha); + } else { + f32 div = (f32)field_0x36a / (f32)openLetterFrame; + for (int i = 0; i < 2; i++) { + mpTextParent[i]->scale(g_drawHIO.mLetterSelectScreen.mLetterWindowScale * div, + g_drawHIO.mLetterSelectScreen.mLetterWindowScale * div); + mpTextParent[i]->setAlphaRate(div); + } + mpBlackTex->setAlpha(g_drawHIO.mLetterSelectScreen.mWindowBGAlpha * div); + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -658,20 +800,73 @@ asm void dMenu_Letter_c::read_open_move() { #include "asm/d/menu/d_menu_letter/read_open_move__14dMenu_Letter_cFv.s" } #pragma pop +#endif /* 801DE70C-801DE824 1D904C 0118+00 1/0 0/0 0/0 .text read_move_init__14dMenu_Letter_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Letter_c::read_move_init() { - nofralloc -#include "asm/d/menu/d_menu_letter/read_move_init__14dMenu_Letter_cFv.s" +void dMenu_Letter_c::read_move_init() { + mpArrow->arwAnimeInit(); + mpArrow->dotAnimeInit(); + if (field_0x3e2 > 1) { + if (field_0x3e3 == field_0x3e2) { + setAButtonString(0); + setBButtonString(0x3f9); + } else { + setAButtonString(0x408); + setBButtonString(0x3f9); + } + CPaneMgr paneMgr; + J2DPane* pane = mpLetterScreen[0]->search('set_ya_n'); + Vec pos = paneMgr.getGlobalVtxCenter(pane, false, 0); + mpArrow->setPos(pos.x, pos.y); + } else { + setAButtonString(0); + setBButtonString(0x3f9); + } } -#pragma pop /* 801DE824-801DEA48 1D9164 0224+00 1/0 0/0 0/0 .text read_move_move__14dMenu_Letter_cFv */ +#ifdef NONMATCHING +// Matches with literals +void dMenu_Letter_c::read_move_move() { + if (mDoCPd_c::getTrigA(PAD_1) != 0) { + if (field_0x3e3 == field_0x3e2) { + Z2GetAudioMgr()->seStart(Z2SE_SY_LETTER_CLOSE, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); + dMeter2Info_set2DVibration(); + mProcess = 7; + } else { + mProcess = 5; + Z2GetAudioMgr()->seStart(Z2SE_SY_LETTER_NEXT_PAGE, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, + 0); + dMeter2Info_set2DVibration(); + field_0x3e4 = 1; + } + } else if (mDoCPd_c::getTrigB(PAD_1) != 0) { + if (field_0x3e3 <= 1) { + mProcess = 7; + Z2GetAudioMgr()->seStart(Z2SE_SY_LETTER_CLOSE, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); + dMeter2Info_set2DVibration(); + } else { + mProcess = 5; + Z2GetAudioMgr()->seStart(Z2SE_SY_LETTER_NEXT_PAGE, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, + 0); + dMeter2Info_set2DVibration(); + field_0x3e4 = 0; + } + } else if (field_0x3e2 > 1) { + if (field_0x3e3 == field_0x3e2) { + mpArrow->dotAnimeMove(); + } else { + mpArrow->arwAnimeMove(); + } + CPaneMgr paneMgr; + J2DPane* pane = mpLetterScreen[0]->search('set_ya_n'); + Vec pos = paneMgr.getGlobalVtxCenter(pane, false, 0); + mpArrow->setPos(pos.x, pos.y); + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -680,20 +875,49 @@ asm void dMenu_Letter_c::read_move_move() { #include "asm/d/menu/d_menu_letter/read_move_move__14dMenu_Letter_cFv.s" } #pragma pop +#endif /* 801DEA48-801DEA94 1D9388 004C+00 1/0 0/0 0/0 .text read_next_fadeout_init__14dMenu_Letter_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Letter_c::read_next_fadeout_init() { - nofralloc -#include "asm/d/menu/d_menu_letter/read_next_fadeout_init__14dMenu_Letter_cFv.s" +void dMenu_Letter_c::read_next_fadeout_init() { + field_0x36a = g_drawHIO.mLetterSelectScreen.mCloseFrame[dMeter_drawLetterHIO_c::LETTER_FRAME]; + setAButtonString(0); + setBButtonString(0); } -#pragma pop /* 801DEA94-801DEBD8 1D93D4 0144+00 1/0 0/0 0/0 .text read_next_fadeout_move__14dMenu_Letter_cFv */ +#ifdef NONMATCHING +// Matches with literals +void dMenu_Letter_c::read_next_fadeout_move() { + s16 closeWindowFrame = + g_drawHIO.mLetterSelectScreen.mCloseFrame[dMeter_drawLetterHIO_c::WINDOW_FRAME]; + field_0x36a--; + if (field_0x36a <= 0) { + mProcess = 6; + for (int i = 0; i < 2; i++) { + field_0x2ec[i]->setAlphaRate(0.0f); + + if (field_0x2f4[i] != NULL) { + field_0x2f4[i]->setAlphaRate(0.0f); + } + } + if (field_0x3e4 != 0) { + field_0x3e3++; + } else { + field_0x3e3--; + } + } else { + f32 div = (f32)field_0x36a / (f32)closeWindowFrame; + for (int i = 0; i < 2; i++) { + field_0x2ec[i]->setAlphaRate(div); + if (field_0x2f4[i]) { + field_0x2f4[i]->setAlphaRate(div); + } + } + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -702,6 +926,7 @@ asm void dMenu_Letter_c::read_next_fadeout_move() { #include "asm/d/menu/d_menu_letter/read_next_fadeout_move__14dMenu_Letter_cFv.s" } #pragma pop +#endif /* 801DEBD8-801DED04 1D9518 012C+00 1/0 0/0 0/0 .text read_next_fadein_init__14dMenu_Letter_cFv */ #pragma push @@ -714,6 +939,31 @@ asm void dMenu_Letter_c::read_next_fadein_init() { #pragma pop /* 801DED04-801DEE20 1D9644 011C+00 1/0 0/0 0/0 .text read_next_fadein_move__14dMenu_Letter_cFv */ +#ifdef NONMATCHING +// Matches with literals +void dMenu_Letter_c::read_next_fadein_move() { + s16 openLetterFrame = + g_drawHIO.mLetterSelectScreen.mOpenFrame[dMeter_drawLetterHIO_c::LETTER_FRAME]; + field_0x36a++; + if (field_0x36a >= openLetterFrame) { + mProcess = 4; + for (int i = 0; i < 2; i++) { + field_0x2ec[i]->setAlphaRate(1.0f); + if (field_0x2f4[i] != NULL) { + field_0x2f4[i]->setAlphaRate(1.0f); + } + } + } else { + f32 div = (f32)field_0x36a / (f32)openLetterFrame; + for (int i = 0; i < 2; i++) { + field_0x2ec[i]->setAlphaRate(div); + if (field_0x2f4[i] != NULL) { + field_0x2f4[i]->setAlphaRate(div); + } + } + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -722,20 +972,42 @@ asm void dMenu_Letter_c::read_next_fadein_move() { #include "asm/d/menu/d_menu_letter/read_next_fadein_move__14dMenu_Letter_cFv.s" } #pragma pop +#endif /* 801DEE20-801DEE6C 1D9760 004C+00 1/0 0/0 0/0 .text read_close_init__14dMenu_Letter_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Letter_c::read_close_init() { - nofralloc -#include "asm/d/menu/d_menu_letter/read_close_init__14dMenu_Letter_cFv.s" +void dMenu_Letter_c::read_close_init() { + field_0x36a = g_drawHIO.mLetterSelectScreen.mCloseFrame[dMeter_drawLetterHIO_c::LETTER_FRAME]; + setAButtonString(0); + setBButtonString(0); } -#pragma pop /* 801DEE6C-801DF010 1D97AC 01A4+00 1/0 0/0 0/0 .text read_close_move__14dMenu_Letter_cFv */ +#ifdef NONMATCHING +// Matches with literals +void dMenu_Letter_c::read_close_move() { + s16 closeLetterFrame = + g_drawHIO.mLetterSelectScreen.mCloseFrame[dMeter_drawLetterHIO_c::LETTER_FRAME]; + field_0x36a--; + if (field_0x36a <= 0) { + mProcess = 0; + for (int i = 0; i < 2; i++) { + mpTextParent[i]->scale(0.0f, 0.0f); + mpTextParent[i]->setAlphaRate(0.0f); + } + mpBlackTex->setAlpha(g_drawHIO.mLetterSelectScreen.mWindowBGAlpha); + } else { + f32 div = (f32)field_0x36a / (f32)closeLetterFrame; + for (int i = 0; i < 2; i++) { + mpTextParent[i]->scale(g_drawHIO.mLetterSelectScreen.mLetterWindowScale * div, + g_drawHIO.mLetterSelectScreen.mLetterWindowScale * div); + mpTextParent[i]->setAlphaRate(div); + } + mpBlackTex->setAlpha(g_drawHIO.mLetterSelectScreen.mWindowBGAlpha * div); + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -744,146 +1016,107 @@ asm void dMenu_Letter_c::read_close_move() { #include "asm/d/menu/d_menu_letter/read_close_move__14dMenu_Letter_cFv.s" } #pragma pop +#endif -/* ############################################################################################## */ /* 803969C8-803969F8 023028 0030+00 2/2 0/0 0/0 .rodata tag_sub0$4610 */ -SECTION_RODATA static u8 const tag_sub0[48] = { - 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x30, 0x73, 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x31, 0x73, - 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x32, 0x73, 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x33, 0x73, - 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x34, 0x73, 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x35, 0x73, +static const u64 tag_sub0[6] = { + 'menu_t0s', 'menu_t1s', 'menu_t2s', 'menu_t3s', 'menu_t4s', 'menu_t5s', }; -COMPILER_STRIP_GATE(0x803969C8, &tag_sub0); /* 803969F8-80396A28 023058 0030+00 0/1 0/0 0/0 .rodata tag_sub1$4611 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const tag_sub1[48] = { - 0x00, 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x30, 0x00, 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x31, - 0x00, 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x32, 0x00, 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x33, - 0x00, 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x34, 0x00, 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x35, +static const u64 tag_sub1[6] = { + 'menu_t0', 'menu_t1', 'menu_t2', 'menu_t3', 'menu_t4', 'menu_t5', }; -COMPILER_STRIP_GATE(0x803969F8, &tag_sub1); #pragma pop /* 80396A28-80396A58 023088 0030+00 0/1 0/0 0/0 .rodata tag_name0$4612 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const tag_name0[48] = { - 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x36, 0x73, 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x66, 0x37, 0x73, - 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x66, 0x38, 0x73, 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x39, 0x73, - 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x31, 0x30, 0x73, 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x31, 0x31, 0x73, +static const u64 tag_name0[6] = { + 'menu_t6s', 'menu_f7s', 'menu_f8s', 'menu_t9s', 'menu_10s', 'menu_11s', }; -COMPILER_STRIP_GATE(0x80396A28, &tag_name0); #pragma pop /* 80396A58-80396A88 0230B8 0030+00 0/1 0/0 0/0 .rodata tag_name1$4613 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const tag_name1[48] = { - 0x00, 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x66, 0x36, 0x00, 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x66, 0x37, - 0x00, 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x38, 0x00, 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x39, - 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x31, 0x30, 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x31, 0x31, +static const u64 tag_name1[6] = { + 'menu_f6', 'menu_f7', 'menu_t8', 'menu_t9', 'menu_t10', 'menu_t11', }; -COMPILER_STRIP_GATE(0x80396A58, &tag_name1); #pragma pop /* 80396A88-80396AB8 0230E8 0030+00 0/1 0/0 0/0 .rodata ftag_sub0$4614 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const ftag_sub0[48] = { - 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x30, 0x73, 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x31, 0x73, - 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x32, 0x73, 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x33, 0x73, - 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x34, 0x73, 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x35, 0x73, +static const u64 ftag_sub0[6] = { + 'fenu_t0s', 'fenu_t1s', 'fenu_t2s', 'fenu_t3s', 'fenu_t4s', 'fenu_t5s', }; -COMPILER_STRIP_GATE(0x80396A88, &ftag_sub0); #pragma pop /* 80396AB8-80396AE8 023118 0030+00 0/1 0/0 0/0 .rodata ftag_sub1$4615 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const ftag_sub1[48] = { - 0x00, 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x30, 0x00, 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x31, - 0x00, 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x32, 0x00, 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x33, - 0x00, 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x34, 0x00, 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x35, +static const u64 ftag_sub1[6] = { + 'fenu_t0', 'fenu_t1', 'fenu_t2', 'fenu_t3', 'fenu_t4', 'fenu_t5', }; -COMPILER_STRIP_GATE(0x80396AB8, &ftag_sub1); #pragma pop /* 80396AE8-80396B18 023148 0030+00 0/1 0/0 0/0 .rodata ftag_name0$4616 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const ftag_name0[48] = { - 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x36, 0x73, 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x37, 0x73, - 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x66, 0x38, 0x73, 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x39, 0x73, - 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x31, 0x30, 0x73, 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x31, 0x31, 0x73, +static const u64 ftag_name0[6] = { + 'fenu_t6s', 'fenu_t7s', 'fenu_f8s', 'fenu_t9s', 'fenu_10s', 'fenu_11s', }; -COMPILER_STRIP_GATE(0x80396AE8, &ftag_name0); #pragma pop /* 80396B18-80396B48 023178 0030+00 0/1 0/0 0/0 .rodata ftag_name1$4617 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const ftag_name1[48] = { - 0x00, 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x36, 0x00, 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x37, - 0x00, 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x38, 0x00, 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x39, - 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x31, 0x30, 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x31, 0x31, +static const u64 ftag_name1[6] = { + 'fenu_t6', 'fenu_t7', 'fenu_t8', 'fenu_t9', 'fenu_t10', 'fenu_t11', }; -COMPILER_STRIP_GATE(0x80396B18, &ftag_name1); #pragma pop /* 80396B48-80396B78 0231A8 0030+00 0/1 0/0 0/0 .rodata tag_letter$4628 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const tag_letter[48] = { - 0x6C, 0x65, 0x74, 0x5F, 0x30, 0x30, 0x5F, 0x6E, 0x6C, 0x65, 0x74, 0x5F, 0x30, 0x31, 0x5F, 0x6E, - 0x6C, 0x65, 0x74, 0x5F, 0x30, 0x32, 0x5F, 0x6E, 0x6C, 0x65, 0x74, 0x5F, 0x30, 0x33, 0x5F, 0x6E, - 0x6C, 0x65, 0x74, 0x5F, 0x30, 0x34, 0x5F, 0x6E, 0x6C, 0x65, 0x74, 0x5F, 0x30, 0x35, 0x5F, 0x6E, +static const u64 tag_letter[6] = { + 'let_00_n', 'let_01_n', 'let_02_n', 'let_03_n', 'let_04_n', 'let_05_n', }; -COMPILER_STRIP_GATE(0x80396B48, &tag_letter); #pragma pop /* 80396B78-80396BA8 0231D8 0030+00 0/1 0/0 0/0 .rodata tag_frame$4635 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const tag_frame[48] = { - 0x66, 0x6C, 0x61, 0x6D, 0x65, 0x5F, 0x30, 0x30, 0x66, 0x6C, 0x61, 0x6D, 0x65, 0x5F, 0x30, 0x31, - 0x66, 0x6C, 0x61, 0x6D, 0x65, 0x5F, 0x30, 0x32, 0x66, 0x6C, 0x61, 0x6D, 0x65, 0x5F, 0x30, 0x33, - 0x66, 0x6C, 0x61, 0x6D, 0x65, 0x5F, 0x30, 0x34, 0x66, 0x6C, 0x61, 0x6D, 0x65, 0x5F, 0x30, 0x35, +static const u64 tag_frame[6] = { + 'flame_00', 'flame_01', 'flame_02', 'flame_03', 'flame_04', 'flame_05', }; -COMPILER_STRIP_GATE(0x80396B78, &tag_frame); #pragma pop /* 80396BA8-80396BD8 023208 0030+00 0/1 0/0 0/0 .rodata tag_menu0$4636 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const tag_menu0[48] = { - 0x00, 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x30, 0x00, 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x31, - 0x00, 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x32, 0x00, 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x33, - 0x00, 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x34, 0x00, 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x35, +static const u64 tag_menu0[6] = { + 'fenu_t0', 'fenu_t1', 'fenu_t2', 'fenu_t3', 'fenu_t4', 'fenu_t5', }; -COMPILER_STRIP_GATE(0x80396BA8, &tag_menu0); #pragma pop /* 80396BD8-80396C08 023238 0030+00 0/1 0/0 0/0 .rodata tag_menu1$4637 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const tag_menu1[48] = { - 0x00, 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x36, 0x00, 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x37, - 0x00, 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x38, 0x00, 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x39, - 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x31, 0x30, 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x31, 0x31, +static const u64 tag_menu1[6] = { + 'fenu_t6', 'fenu_t7', 'fenu_t8', 'fenu_t9', 'fenu_t10', 'fenu_t11', }; -COMPILER_STRIP_GATE(0x80396BD8, &tag_menu1); #pragma pop /* 80396C08-80396C38 023268 0030+00 0/1 0/0 0/0 .rodata tag_midoku$4638 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const tag_midoku[48] = { - 0x6D, 0x69, 0x64, 0x6F, 0x6B, 0x75, 0x5F, 0x30, 0x6D, 0x69, 0x64, 0x6F, 0x6B, 0x75, 0x5F, 0x31, - 0x6D, 0x69, 0x64, 0x6F, 0x6B, 0x75, 0x5F, 0x32, 0x6D, 0x69, 0x64, 0x6F, 0x6B, 0x75, 0x5F, 0x33, - 0x6D, 0x69, 0x64, 0x6F, 0x6B, 0x75, 0x5F, 0x34, 0x6D, 0x69, 0x64, 0x6F, 0x6B, 0x75, 0x5F, 0x35, +static const u64 tag_midoku[6] = { + 'midoku_0', 'midoku_1', 'midoku_2', 'midoku_3', 'midoku_4', 'midoku_5', }; -COMPILER_STRIP_GATE(0x80396C08, &tag_midoku); #pragma pop /* 80396DC0-80396DC0 023420 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ @@ -944,44 +1177,30 @@ asm JUtility::TColor J2DPicture::getBlack() const { } #pragma pop -/* ############################################################################################## */ -/* 80396C38-80396C80 023298 0048+00 0/1 0/0 0/0 .rodata tag_pip$4827 */ +//* 80396C38-80396C80 023298 0048+00 0/1 0/0 0/0 .rodata tag_pip$4827 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const tag_pip[72] = { - 0x00, 0x70, 0x69, 0x5F, 0x30, 0x30, 0x5F, 0x6E, 0x00, 0x70, 0x69, 0x5F, 0x30, 0x31, 0x5F, - 0x6E, 0x00, 0x70, 0x69, 0x5F, 0x30, 0x32, 0x5F, 0x6E, 0x00, 0x70, 0x69, 0x5F, 0x30, 0x33, - 0x5F, 0x6E, 0x00, 0x70, 0x69, 0x5F, 0x30, 0x34, 0x5F, 0x6E, 0x00, 0x70, 0x69, 0x5F, 0x30, - 0x35, 0x5F, 0x6E, 0x00, 0x70, 0x69, 0x5F, 0x30, 0x36, 0x5F, 0x6E, 0x00, 0x70, 0x69, 0x5F, - 0x30, 0x37, 0x5F, 0x6E, 0x00, 0x70, 0x69, 0x5F, 0x30, 0x38, 0x5F, 0x6E, +static const u64 tag_pip[9] = { + 'pi_00_n', 'pi_01_n', 'pi_02_n', 'pi_03_n', 'pi_04_n', + 'pi_05_n', 'pi_06_n', 'pi_07_n', 'pi_08_n', }; -COMPILER_STRIP_GATE(0x80396C38, &tag_pip); #pragma pop /* 80396C80-80396CC8 0232E0 0048+00 0/1 0/0 0/0 .rodata tag_pil$4828 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const tag_pil[72] = { - 0x00, 0x70, 0x69, 0x5F, 0x6C, 0x5F, 0x30, 0x30, 0x00, 0x70, 0x69, 0x5F, 0x6C, 0x5F, 0x30, - 0x31, 0x00, 0x70, 0x69, 0x5F, 0x6C, 0x5F, 0x30, 0x32, 0x00, 0x70, 0x69, 0x5F, 0x6C, 0x5F, - 0x30, 0x33, 0x00, 0x70, 0x69, 0x5F, 0x6C, 0x5F, 0x30, 0x34, 0x00, 0x70, 0x69, 0x5F, 0x6C, - 0x5F, 0x30, 0x35, 0x00, 0x70, 0x69, 0x5F, 0x6C, 0x5F, 0x30, 0x36, 0x00, 0x70, 0x69, 0x5F, - 0x6C, 0x5F, 0x30, 0x37, 0x00, 0x70, 0x69, 0x5F, 0x6C, 0x5F, 0x30, 0x38, +static const u64 tag_pil[9] = { + 'pi_l_00', 'pi_l_01', 'pi_l_02', 'pi_l_03', 'pi_l_04', + 'pi_l_05', 'pi_l_06', 'pi_l_07', 'pi_l_08', }; -COMPILER_STRIP_GATE(0x80396C80, &tag_pil); #pragma pop /* 80396CC8-80396D10 023328 0048+00 0/1 0/0 0/0 .rodata tag_pii$4829 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const tag_pii[72] = { - 0x00, 0x00, 0x00, 0x70, 0x69, 0x5F, 0x30, 0x30, 0x00, 0x00, 0x00, 0x70, 0x69, 0x5F, 0x30, - 0x31, 0x00, 0x00, 0x00, 0x70, 0x69, 0x5F, 0x30, 0x32, 0x00, 0x00, 0x00, 0x70, 0x69, 0x5F, - 0x30, 0x33, 0x00, 0x00, 0x00, 0x70, 0x69, 0x5F, 0x30, 0x34, 0x00, 0x00, 0x00, 0x70, 0x69, - 0x5F, 0x30, 0x35, 0x00, 0x00, 0x00, 0x70, 0x69, 0x5F, 0x30, 0x36, 0x00, 0x00, 0x00, 0x70, - 0x69, 0x5F, 0x30, 0x37, 0x00, 0x00, 0x00, 0x70, 0x69, 0x5F, 0x30, 0x38, +static const u64 tag_pii[9] = { + 'pi_00', 'pi_01', 'pi_02', 'pi_03', 'pi_04', 'pi_05', 'pi_06', 'pi_07', 'pi_08', }; -COMPILER_STRIP_GATE(0x80396CC8, &tag_pii); #pragma pop /* 80396DC0-80396DC0 023420 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ @@ -1010,6 +1229,16 @@ SECTION_DEAD static char const* const stringBase_80396E19 = "zelda_letter_select /* 801E0330-801E03D8 1DAC70 00A8+00 1/1 0/0 0/0 .text screenSetShadow__14dMenu_Letter_cFv */ +#ifdef NONMATCHING +// Matches with literals +void dMenu_Letter_c::screenSetShadow() { + mpSdwScreen = new J2DScreen(); + mpSdwScreen->setPriority("zelda_letter_select_shadow.blo", 0x20000, mpArchive); + dPaneClass_showNullPane(mpSdwScreen); + mpParent[2] = new CPaneMgr(mpSdwScreen, 'n_all', 2, NULL); + mpParent[2]->setAlphaRate(0.0f); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1018,10 +1247,12 @@ asm void dMenu_Letter_c::screenSetShadow() { #include "asm/d/menu/d_menu_letter/screenSetShadow__14dMenu_Letter_cFv.s" } #pragma pop +#endif /* ############################################################################################## */ /* 80396D10-80396D70 023370 0060+00 1/1 0/0 0/0 .rodata line_tag$4914 */ SECTION_RODATA static u8 const line_tag4914[96] = { + // in-function static 0x00, 0x00, 0x6C, 0x69, 0x6E, 0x65, 0x30, 0x39, 0x00, 0x00, 0x6C, 0x69, 0x6E, 0x65, 0x31, 0x30, 0x00, 0x00, 0x6C, 0x69, 0x6E, 0x65, 0x31, 0x31, 0x00, 0x00, 0x6C, 0x69, 0x6E, 0x65, 0x31, 0x32, 0x00, 0x00, 0x6C, 0x69, 0x6E, 0x65, 0x31, 0x33, 0x00, 0x00, 0x6C, 0x69, 0x6E, 0x65, 0x31, 0x34, @@ -1050,22 +1281,15 @@ asm void dMenu_Letter_c::screenSetLetter() { } #pragma pop -/* ############################################################################################## */ /* 80396D70-80396D98 0233D0 0028+00 1/1 0/0 0/0 .rodata text_a_tag$5024 */ -SECTION_RODATA static u8 const text_a_tag[40] = { - 0x61, 0x74, 0x65, 0x78, 0x74, 0x31, 0x5F, 0x31, 0x61, 0x74, 0x65, 0x78, 0x74, 0x31, - 0x5F, 0x32, 0x61, 0x74, 0x65, 0x78, 0x74, 0x31, 0x5F, 0x33, 0x61, 0x74, 0x65, 0x78, - 0x74, 0x31, 0x5F, 0x34, 0x61, 0x74, 0x65, 0x78, 0x74, 0x31, 0x5F, 0x35, +static const u64 text_a_tag[5] = { + 'atext1_1', 'atext1_2', 'atext1_3', 'atext1_4', 'atext1_5', }; -COMPILER_STRIP_GATE(0x80396D70, &text_a_tag); /* 80396D98-80396DC0 0233F8 0028+00 1/1 0/0 0/0 .rodata text_b_tag$5025 */ -SECTION_RODATA static u8 const text_b_tag[40] = { - 0x62, 0x74, 0x65, 0x78, 0x74, 0x31, 0x5F, 0x31, 0x62, 0x74, 0x65, 0x78, 0x74, 0x31, - 0x5F, 0x32, 0x62, 0x74, 0x65, 0x78, 0x74, 0x31, 0x5F, 0x33, 0x62, 0x74, 0x65, 0x78, - 0x74, 0x31, 0x5F, 0x34, 0x62, 0x74, 0x65, 0x78, 0x74, 0x31, 0x5F, 0x35, +static const u64 text_b_tag[5] = { + 'btext1_1', 'btext1_2', 'btext1_3', 'btext1_4', 'btext1_5', }; -COMPILER_STRIP_GATE(0x80396D98, &text_b_tag); /* 80396DC0-80396DC0 023420 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ #pragma push @@ -1075,6 +1299,26 @@ SECTION_DEAD static char const* const stringBase_80396E82 = "zelda_collect_soubi /* 801E09A8-801E0B24 1DB2E8 017C+00 1/1 0/0 0/0 .text screenSetDoIcon__14dMenu_Letter_cFv */ +#ifdef NONMATCHING +// Matches with literals +void dMenu_Letter_c::screenSetDoIcon() { + mpIconScreen = new J2DScreen(); + mpIconScreen->setPriority("zelda_collect_soubi_do_icon_parts.blo", 0x20000, mpArchive); + for (int i = 0; i < 2; i++) { + mpButtonAB[i] = NULL; + mpButtonText[i] = NULL; + } + dPaneClass_showNullPane(mpIconScreen); + for (int i = 0; i < 5; i++) { + mpAButtonString[i] = (J2DTextBox*)mpIconScreen->search(text_a_tag[i]); + mpBButtonString[i] = (J2DTextBox*)mpIconScreen->search(text_b_tag[i]); + mpAButtonString[i]->setFont(mDoExt_getMesgFont()); + mpBButtonString[i]->setFont(mDoExt_getMesgFont()); + mpAButtonString[i]->setString(0x20, ""); + mpBButtonString[i]->setString(0x20, ""); + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1083,16 +1327,13 @@ asm void dMenu_Letter_c::screenSetDoIcon() { #include "asm/d/menu/d_menu_letter/screenSetDoIcon__14dMenu_Letter_cFv.s" } #pragma pop +#endif /* 801E0B24-801E0BB0 1DB464 008C+00 3/3 0/0 0/0 .text setCursorPos__14dMenu_Letter_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Letter_c::setCursorPos() { - nofralloc -#include "asm/d/menu/d_menu_letter/setCursorPos__14dMenu_Letter_cFv.s" +void dMenu_Letter_c::setCursorPos() { + Vec pos = mpLetterParent[mIndex]->getGlobalVtxCenter(mpLetterParent[mIndex]->mPane, false, 0); + mpDrawCursor->setPos(pos.x, pos.y, mpLetterParent[mIndex]->getPanePtr(), false); } -#pragma pop /* 801E0BB0-801E0E34 1DB4F0 0284+00 3/3 0/0 0/0 .text changeActiveColor__14dMenu_Letter_cFv */ #pragma push @@ -1106,14 +1347,15 @@ asm void dMenu_Letter_c::changeActiveColor() { /* 801E0E34-801E0E84 1DB774 0050+00 2/2 0/0 0/0 .text changePageLight__14dMenu_Letter_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Letter_c::changePageLight() { - nofralloc -#include "asm/d/menu/d_menu_letter/changePageLight__14dMenu_Letter_cFv.s" +void dMenu_Letter_c::changePageLight() { + for (int i = 0; i < 9; i++) { + if (i == field_0x36f) { + mpPageLight[i]->show(); + } else { + mpPageLight[i]->hide(); + } + } } -#pragma pop /* 801E0E84-801E1038 1DB7C4 01B4+00 2/2 0/0 0/0 .text setPageText__14dMenu_Letter_cFv */ #pragma push @@ -1147,30 +1389,60 @@ asm void dMenu_Letter_c::copyDMYMenu() { #pragma pop /* 801E1518-801E15C8 1DBE58 00B0+00 7/7 0/0 0/0 .text setAButtonString__14dMenu_Letter_cFUs */ +#ifdef NONMATCHING +// Matches with literals +void dMenu_Letter_c::setAButtonString(u16 i_stringID) { + if (i_stringID == 0) { + for (int i = 0; i < 5; i++) { + strcpy(mpAButtonString[i]->getStringPtr(), ""); + } + } else { + for (int i = 0; i < 5; i++) { + dMeter2Info_getStringKanji(i_stringID, mpAButtonString[i]->getStringPtr(), NULL); + } + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMenu_Letter_c::setAButtonString(u16 param_0) { +asm void dMenu_Letter_c::setAButtonString(u16 i_stringID) { nofralloc #include "asm/d/menu/d_menu_letter/setAButtonString__14dMenu_Letter_cFUs.s" } #pragma pop +#endif /* 801E15C8-801E1678 1DBF08 00B0+00 7/7 0/0 0/0 .text setBButtonString__14dMenu_Letter_cFUs */ +#ifdef NONMATCHING +// Matches with literals +void dMenu_Letter_c::setBButtonString(u16 i_stringID) { + if (i_stringID == 0) { + for (int i = 0; i < 5; i++) { + strcpy(mpBButtonString[i]->getStringPtr(), ""); + } + } else { + for (int i = 0; i < 5; i++) { + dMeter2Info_getStringKanji(i_stringID, mpBButtonString[i]->getStringPtr(), NULL); + } + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMenu_Letter_c::setBButtonString(u16 param_0) { +asm void dMenu_Letter_c::setBButtonString(u16 i_stringID) { nofralloc #include "asm/d/menu/d_menu_letter/setBButtonString__14dMenu_Letter_cFUs.s" } #pragma pop +#endif /* 801E1678-801E1748 1DBFB8 00D0+00 1/1 0/0 0/0 .text getLetterNum__14dMenu_Letter_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMenu_Letter_c::getLetterNum() { +asm u8 dMenu_Letter_c::getLetterNum() { nofralloc #include "asm/d/menu/d_menu_letter/getLetterNum__14dMenu_Letter_cFv.s" } @@ -1180,7 +1452,7 @@ asm void dMenu_Letter_c::getLetterNum() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMenu_Letter_c::setHIO(bool param_0) { +asm void dMenu_Letter_c::setHIO(bool i_useHIO) { nofralloc #include "asm/d/menu/d_menu_letter/setHIO__14dMenu_Letter_cFb.s" } @@ -1209,20 +1481,3 @@ extern "C" asm void draw__14dMenu_Letter_cFv() { #include "asm/d/menu/d_menu_letter/draw__14dMenu_Letter_cFv.s" } #pragma pop - -/* 801E1D7C-801E1F10 1DC6BC 0194+00 0/0 1/0 0/0 .text __sinit_d_menu_letter_cpp */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __sinit_d_menu_letter_cpp() { - nofralloc -#include "asm/d/menu/d_menu_letter/__sinit_d_menu_letter_cpp.s" -} -#pragma pop - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x801E1D7C, __sinit_d_menu_letter_cpp); -#pragma pop - -/* 80396DC0-80396DC0 023420 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/src/d/menu/d_menu_skill.cpp b/src/d/menu/d_menu_skill.cpp index 898e30b94a8..7aac5dd8aab 100644 --- a/src/d/menu/d_menu_skill.cpp +++ b/src/d/menu/d_menu_skill.cpp @@ -241,10 +241,10 @@ int dMenu_Skill_c::_open() { } } - s16 openFrame = g_drawHIO.mSkillListScreen.mOpenFrame[0]; - s16 closeFrame = g_drawHIO.mSkillListScreen.mCloseFrame[0]; - mFrame = g_drawHIO.mSkillListScreen.mOpenFrame[0]; - if (mFrame >= openFrame) { + s16 openWindowFrame = g_drawHIO.mSkillListScreen.mOpenFrame[dMeter_drawSkillHIO_c::WINDOW]; + s16 closeFrame = g_drawHIO.mSkillListScreen.mCloseFrame[dMeter_drawSkillHIO_c::WINDOW]; + mFrame = g_drawHIO.mSkillListScreen.mOpenFrame[dMeter_drawSkillHIO_c::WINDOW]; + if (mFrame >= openWindowFrame) { mFrame = closeFrame; mStatus = 2; mpParent->scale(1.0f, 1.0f); @@ -255,7 +255,7 @@ int dMenu_Skill_c::_open() { mpDrawCursor->onPlayAnime(0); return 1; } else { - f32 div = (f32)mFrame / (f32)openFrame; + f32 div = (f32)mFrame / (f32)openWindowFrame; mpParent->scale(div, div); mpParent->setAlphaRate(div); setCursorPos(); @@ -353,14 +353,14 @@ void dMenu_Skill_c::read_open_init() { /* 801F7FF8-801F8114 1F2938 011C+00 1/0 0/0 0/0 .text read_open_move__13dMenu_Skill_cFv */ void dMenu_Skill_c::read_open_move() { - s16 openFrame = g_drawHIO.mSkillListScreen.mOpenFrame[1]; + s16 openSkillDescFrame = g_drawHIO.mSkillListScreen.mOpenFrame[dMeter_drawSkillHIO_c::SKILL_DESC]; mProcFrame++; - if (mProcFrame >= openFrame) { + if (mProcFrame >= openSkillDescFrame) { mProcess = PROC_OPEN_MOVE; mpTextParent->setAlphaRate(1.0f); mpBlackTex->setAlpha(g_drawHIO.mSkillListScreen.mWindowBGalpha); } else { - f32 alphaRate = (f32)mProcFrame / (f32)openFrame; + f32 alphaRate = (f32)mProcFrame / (f32)openSkillDescFrame; mpTextParent->setAlphaRate(alphaRate); mpBlackTex->setAlpha(g_drawHIO.mSkillListScreen.mWindowBGalpha * alphaRate); } @@ -393,7 +393,7 @@ void dMenu_Skill_c::read_move_move() { /* 801F8218-801F826C 1F2B58 0054+00 1/0 0/0 0/0 .text read_close_init__13dMenu_Skill_cFv */ void dMenu_Skill_c::read_close_init() { - mProcFrame = g_drawHIO.mSkillListScreen.mCloseFrame[1]; + mProcFrame = g_drawHIO.mSkillListScreen.mCloseFrame[dMeter_drawSkillHIO_c::SKILL_DESC]; mStringID = 0; setAButtonString(0); setBButtonString(0); @@ -402,14 +402,14 @@ void dMenu_Skill_c::read_close_init() { /* 801F826C-801F8388 1F2BAC 011C+00 1/0 0/0 0/0 .text read_close_move__13dMenu_Skill_cFv */ void dMenu_Skill_c::read_close_move() { - s16 closeFrame = g_drawHIO.mSkillListScreen.mCloseFrame[1]; + s16 closeSkillDescFrame = g_drawHIO.mSkillListScreen.mCloseFrame[dMeter_drawSkillHIO_c::SKILL_DESC]; mProcFrame--; if (mProcFrame <= 0) { mProcess = PROC_CLOSE_MOVE; mpTextParent->setAlphaRate(0.0f); mpBlackTex->setAlpha(g_drawHIO.mSkillListScreen.mWindowBGalpha); } else { - f32 alphaRate = (f32)mProcFrame / (f32)closeFrame; + f32 alphaRate = (f32)mProcFrame / (f32)closeSkillDescFrame; mpTextParent->setAlphaRate(alphaRate); mpBlackTex->setAlpha(g_drawHIO.mSkillListScreen.mWindowBGalpha * alphaRate); }