diff --git a/Progress.md b/Progress.md index c69e82882d..b3eae954f2 100644 --- a/Progress.md +++ b/Progress.md @@ -21,8 +21,8 @@ Total | 32.316787% | 1299352 | 4020672 Section | Percentage | Decompiled (bytes) | Total (bytes) ---|---|---|--- main.dol | 32.316787% | 1299352 | 4020672 -RELs | 33.179309% | 3815728 | 11500324 -Total | 32.955875% | 5115080 | 15520996 +RELs | 33.188039% | 3816732 | 11500324 +Total | 32.962343% | 5116084 | 15520996 ## RELs @@ -730,7 +730,7 @@ d_a_tag_gstart | 100.000000% | 1208 | 1208 d_a_tag_guard | 100.000000% | 1176 | 1176 d_a_tag_hinit | 100.000000% | 1440 | 1440 d_a_tag_hjump | 40.841584% | 1320 | 3232 -d_a_tag_howl | 46.934461% | 888 | 1892 +d_a_tag_howl | 100.000000% | 1892 | 1892 d_a_tag_hstop | 100.000000% | 3424 | 3424 d_a_tag_instruction | 100.000000% | 712 | 712 d_a_tag_kago_fall | 34.469328% | 1416 | 4108 @@ -785,4 +785,4 @@ d_a_vrbox2 | 34.977578% | 2184 | 6244 d_a_warp_bug | 54.940711% | 1112 | 2024 d_a_ykgr | 44.400631% | 2252 | 5072 f_pc_profile_lst | 100.000000% | 28156 | 28156 -Total | 33.179309% | 3815728 | 11500324 +Total | 33.188039% | 3816732 | 11500324 diff --git a/asm/m_Do/m_Do_MemCard/checkspace__15mDoMemCd_Ctrl_cFv.s b/asm/m_Do/m_Do_MemCard/checkspace__15mDoMemCd_Ctrl_cFv.s deleted file mode 100644 index ebe2cb3284..0000000000 --- a/asm/m_Do/m_Do_MemCard/checkspace__15mDoMemCd_Ctrl_cFv.s +++ /dev/null @@ -1,39 +0,0 @@ -lbl_800172D4: -/* 800172D4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 800172D8 7C 08 02 A6 */ mflr r0 -/* 800172DC 90 01 00 24 */ stw r0, 0x24(r1) -/* 800172E0 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 800172E4 7C 7F 1B 78 */ mr r31, r3 -/* 800172E8 88 63 1F BC */ lbz r3, 0x1fbc(r3) -/* 800172EC 38 81 00 0C */ addi r4, r1, 0xc -/* 800172F0 38 A1 00 08 */ addi r5, r1, 8 -/* 800172F4 48 33 C9 DD */ bl CARDFreeBlocks -/* 800172F8 7C 64 1B 79 */ or. r4, r3, r3 -/* 800172FC 41 82 00 14 */ beq lbl_80017310 -/* 80017300 7F E3 FB 78 */ mr r3, r31 -/* 80017304 48 00 00 5D */ bl setCardState__15mDoMemCd_Ctrl_cFl -/* 80017308 38 60 00 03 */ li r3, 3 -/* 8001730C 48 00 00 40 */ b lbl_8001734C -lbl_80017310: -/* 80017310 80 81 00 0C */ lwz r4, 0xc(r1) -/* 80017314 3C 60 00 01 */ lis r3, 0x0001 /* 0x00008000@ha */ -/* 80017318 38 03 80 00 */ addi r0, r3, 0x8000 /* 0x00008000@l */ -/* 8001731C 7C 04 00 00 */ cmpw r4, r0 -/* 80017320 40 80 00 0C */ bge lbl_8001732C -/* 80017324 38 60 00 01 */ li r3, 1 -/* 80017328 48 00 00 24 */ b lbl_8001734C -lbl_8001732C: -/* 8001732C 80 81 00 08 */ lwz r4, 8(r1) -/* 80017330 38 60 00 01 */ li r3, 1 -/* 80017334 7C 03 20 10 */ subfc r0, r3, r4 -/* 80017338 54 63 0F FE */ srwi r3, r3, 0x1f -/* 8001733C 54 80 0F FE */ srwi r0, r4, 0x1f -/* 80017340 7C 60 19 10 */ subfe r3, r0, r3 -/* 80017344 38 00 00 02 */ li r0, 2 -/* 80017348 7C 03 18 38 */ and r3, r0, r3 -lbl_8001734C: -/* 8001734C 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 80017350 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80017354 7C 08 03 A6 */ mtlr r0 -/* 80017358 38 21 00 20 */ addi r1, r1, 0x20 -/* 8001735C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl/__dt__12daTag_Howl_cFv.s b/asm/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl/__dt__12daTag_Howl_cFv.s deleted file mode 100644 index 73506e15b6..0000000000 --- a/asm/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl/__dt__12daTag_Howl_cFv.s +++ /dev/null @@ -1,26 +0,0 @@ -lbl_8048DCFC: -/* 8048DCFC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8048DD00 7C 08 02 A6 */ mflr r0 -/* 8048DD04 90 01 00 14 */ stw r0, 0x14(r1) -/* 8048DD08 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8048DD0C 93 C1 00 08 */ stw r30, 8(r1) -/* 8048DD10 7C 7E 1B 79 */ or. r30, r3, r3 -/* 8048DD14 7C 9F 23 78 */ mr r31, r4 -/* 8048DD18 41 82 00 28 */ beq lbl_8048DD40 -/* 8048DD1C 3C 80 80 49 */ lis r4, __vt__12daTag_Howl_c@ha /* 0x8048DDD8@ha */ -/* 8048DD20 38 04 DD D8 */ addi r0, r4, __vt__12daTag_Howl_c@l /* 0x8048DDD8@l */ -/* 8048DD24 90 1E 05 6C */ stw r0, 0x56c(r30) -/* 8048DD28 38 80 00 00 */ li r4, 0 -/* 8048DD2C 4B B8 AF 61 */ bl __dt__10fopAc_ac_cFv -/* 8048DD30 7F E0 07 35 */ extsh. r0, r31 -/* 8048DD34 40 81 00 0C */ ble lbl_8048DD40 -/* 8048DD38 7F C3 F3 78 */ mr r3, r30 -/* 8048DD3C 4B E4 10 01 */ bl __dl__FPv -lbl_8048DD40: -/* 8048DD40 7F C3 F3 78 */ mr r3, r30 -/* 8048DD44 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8048DD48 83 C1 00 08 */ lwz r30, 8(r1) -/* 8048DD4C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8048DD50 7C 08 03 A6 */ mtlr r0 -/* 8048DD54 38 21 00 10 */ addi r1, r1, 0x10 -/* 8048DD58 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl/create__12daTag_Howl_cFv.s b/asm/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl/create__12daTag_Howl_cFv.s deleted file mode 100644 index 2c399b5cd0..0000000000 --- a/asm/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl/create__12daTag_Howl_cFv.s +++ /dev/null @@ -1,28 +0,0 @@ -lbl_8048D958: -/* 8048D958 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8048D95C 7C 08 02 A6 */ mflr r0 -/* 8048D960 90 01 00 14 */ stw r0, 0x14(r1) -/* 8048D964 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8048D968 7C 7F 1B 78 */ mr r31, r3 -/* 8048D96C 80 03 04 A0 */ lwz r0, 0x4a0(r3) -/* 8048D970 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c -/* 8048D974 40 82 00 28 */ bne lbl_8048D99C -/* 8048D978 28 1F 00 00 */ cmplwi r31, 0 -/* 8048D97C 41 82 00 14 */ beq lbl_8048D990 -/* 8048D980 4B B8 B1 E5 */ bl __ct__10fopAc_ac_cFv -/* 8048D984 3C 60 80 49 */ lis r3, __vt__12daTag_Howl_c@ha /* 0x8048DDD8@ha */ -/* 8048D988 38 03 DD D8 */ addi r0, r3, __vt__12daTag_Howl_c@l /* 0x8048DDD8@l */ -/* 8048D98C 90 1F 05 6C */ stw r0, 0x56c(r31) -lbl_8048D990: -/* 8048D990 80 1F 04 A0 */ lwz r0, 0x4a0(r31) -/* 8048D994 60 00 00 08 */ ori r0, r0, 8 -/* 8048D998 90 1F 04 A0 */ stw r0, 0x4a0(r31) -lbl_8048D99C: -/* 8048D99C 7F E3 FB 78 */ mr r3, r31 -/* 8048D9A0 48 00 02 7D */ bl getParam__12daTag_Howl_cFv -/* 8048D9A4 38 60 00 04 */ li r3, 4 -/* 8048D9A8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8048D9AC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8048D9B0 7C 08 03 A6 */ mtlr r0 -/* 8048D9B4 38 21 00 10 */ addi r1, r1, 0x10 -/* 8048D9B8 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl/daTag_Howl_Create__FPv.s b/asm/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl/daTag_Howl_Create__FPv.s deleted file mode 100644 index 3135a810d9..0000000000 --- a/asm/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl/daTag_Howl_Create__FPv.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_8048DC74: -/* 8048DC74 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8048DC78 7C 08 02 A6 */ mflr r0 -/* 8048DC7C 90 01 00 14 */ stw r0, 0x14(r1) -/* 8048DC80 4B FF FC D9 */ bl create__12daTag_Howl_cFv -/* 8048DC84 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8048DC88 7C 08 03 A6 */ mtlr r0 -/* 8048DC8C 38 21 00 10 */ addi r1, r1, 0x10 -/* 8048DC90 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl/daTag_Howl_Delete__FPv.s b/asm/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl/daTag_Howl_Delete__FPv.s deleted file mode 100644 index f7911bcc58..0000000000 --- a/asm/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl/daTag_Howl_Delete__FPv.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_8048DC94: -/* 8048DC94 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8048DC98 7C 08 02 A6 */ mflr r0 -/* 8048DC9C 90 01 00 14 */ stw r0, 0x14(r1) -/* 8048DCA0 4B FF FD 1D */ bl destroy__12daTag_Howl_cFv -/* 8048DCA4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8048DCA8 7C 08 03 A6 */ mtlr r0 -/* 8048DCAC 38 21 00 10 */ addi r1, r1, 0x10 -/* 8048DCB0 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl/daTag_Howl_Draw__FPv.s b/asm/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl/daTag_Howl_Draw__FPv.s deleted file mode 100644 index c5db6634da..0000000000 --- a/asm/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl/daTag_Howl_Draw__FPv.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_8048DCD4: -/* 8048DCD4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8048DCD8 7C 08 02 A6 */ mflr r0 -/* 8048DCDC 90 01 00 14 */ stw r0, 0x14(r1) -/* 8048DCE0 4B FF FD 45 */ bl draw__12daTag_Howl_cFv -/* 8048DCE4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8048DCE8 7C 08 03 A6 */ mtlr r0 -/* 8048DCEC 38 21 00 10 */ addi r1, r1, 0x10 -/* 8048DCF0 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl/daTag_Howl_Execute__FPv.s b/asm/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl/daTag_Howl_Execute__FPv.s deleted file mode 100644 index 076529c827..0000000000 --- a/asm/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl/daTag_Howl_Execute__FPv.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_8048DCB4: -/* 8048DCB4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8048DCB8 7C 08 02 A6 */ mflr r0 -/* 8048DCBC 90 01 00 14 */ stw r0, 0x14(r1) -/* 8048DCC0 4B FF FD 05 */ bl execute__12daTag_Howl_cFv -/* 8048DCC4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8048DCC8 7C 08 03 A6 */ mtlr r0 -/* 8048DCCC 38 21 00 10 */ addi r1, r1, 0x10 -/* 8048DCD0 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl/execute__12daTag_Howl_cFv.s b/asm/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl/execute__12daTag_Howl_cFv.s deleted file mode 100644 index d655935de6..0000000000 --- a/asm/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl/execute__12daTag_Howl_cFv.s +++ /dev/null @@ -1,26 +0,0 @@ -lbl_8048D9C4: -/* 8048D9C4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8048D9C8 7C 08 02 A6 */ mflr r0 -/* 8048D9CC 90 01 00 14 */ stw r0, 0x14(r1) -/* 8048D9D0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8048D9D4 7C 7F 1B 78 */ mr r31, r3 -/* 8048D9D8 3C 80 80 45 */ lis r4, mStayNo__20dStage_roomControl_c+0x0@ha /* 0x80450D64@ha */ -/* 8048D9DC 88 04 0D 64 */ lbz r0, mStayNo__20dStage_roomControl_c+0x0@l(r4) /* 0x80450D64@l */ -/* 8048D9E0 98 03 04 E2 */ stb r0, 0x4e2(r3) -/* 8048D9E4 38 00 00 00 */ li r0, 0 -/* 8048D9E8 90 03 05 5C */ stw r0, 0x55c(r3) -/* 8048D9EC 48 00 00 41 */ bl isAreaCheck__12daTag_Howl_cFv -/* 8048D9F0 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 8048D9F4 41 82 00 18 */ beq lbl_8048DA0C -/* 8048D9F8 80 1F 05 5C */ lwz r0, 0x55c(r31) -/* 8048D9FC 60 00 00 80 */ ori r0, r0, 0x80 -/* 8048DA00 90 1F 05 5C */ stw r0, 0x55c(r31) -/* 8048DA04 38 00 00 41 */ li r0, 0x41 -/* 8048DA08 98 1F 05 4B */ stb r0, 0x54b(r31) -lbl_8048DA0C: -/* 8048DA0C 38 60 00 01 */ li r3, 1 -/* 8048DA10 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8048DA14 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8048DA18 7C 08 03 A6 */ mtlr r0 -/* 8048DA1C 38 21 00 10 */ addi r1, r1, 0x10 -/* 8048DA20 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl/getParam__12daTag_Howl_cFv.s b/asm/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl/getParam__12daTag_Howl_cFv.s deleted file mode 100644 index 6ef510616c..0000000000 --- a/asm/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl/getParam__12daTag_Howl_cFv.s +++ /dev/null @@ -1,20 +0,0 @@ -lbl_8048DC1C: -/* 8048DC1C 80 03 00 B0 */ lwz r0, 0xb0(r3) -/* 8048DC20 54 00 07 3E */ clrlwi r0, r0, 0x1c -/* 8048DC24 98 03 05 68 */ stb r0, 0x568(r3) -/* 8048DC28 80 03 00 B0 */ lwz r0, 0xb0(r3) -/* 8048DC2C 54 00 17 BE */ srwi r0, r0, 0x1e -/* 8048DC30 98 03 05 69 */ stb r0, 0x569(r3) -/* 8048DC34 C0 03 04 EC */ lfs f0, 0x4ec(r3) -/* 8048DC38 3C 80 80 49 */ lis r4, lit_3752@ha /* 0x8048DD84@ha */ -/* 8048DC3C C0 24 DD 84 */ lfs f1, lit_3752@l(r4) /* 0x8048DD84@l */ -/* 8048DC40 EC 00 00 72 */ fmuls f0, f0, f1 -/* 8048DC44 D0 03 04 EC */ stfs f0, 0x4ec(r3) -/* 8048DC48 C0 03 04 F0 */ lfs f0, 0x4f0(r3) -/* 8048DC4C EC 00 00 72 */ fmuls f0, f0, f1 -/* 8048DC50 D0 03 04 F0 */ stfs f0, 0x4f0(r3) -/* 8048DC54 C0 03 04 F4 */ lfs f0, 0x4f4(r3) -/* 8048DC58 EC 00 00 72 */ fmuls f0, f0, f1 -/* 8048DC5C D0 03 04 F4 */ stfs f0, 0x4f4(r3) -/* 8048DC60 38 60 00 01 */ li r3, 1 -/* 8048DC64 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl/getSwitchBit__12daTag_Howl_cFv.s b/asm/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl/getSwitchBit__12daTag_Howl_cFv.s deleted file mode 100644 index 5519d6fd5b..0000000000 --- a/asm/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl/getSwitchBit__12daTag_Howl_cFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_8048DC68: -/* 8048DC68 80 03 00 B0 */ lwz r0, 0xb0(r3) -/* 8048DC6C 54 03 E6 3E */ rlwinm r3, r0, 0x1c, 0x18, 0x1f -/* 8048DC70 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl/isAreaCheck__12daTag_Howl_cFv.s b/asm/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl/isAreaCheck__12daTag_Howl_cFv.s deleted file mode 100644 index 1aa9ae5760..0000000000 --- a/asm/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl/isAreaCheck__12daTag_Howl_cFv.s +++ /dev/null @@ -1,137 +0,0 @@ -lbl_8048DA2C: -/* 8048DA2C 94 21 FF C0 */ stwu r1, -0x40(r1) -/* 8048DA30 7C 08 02 A6 */ mflr r0 -/* 8048DA34 90 01 00 44 */ stw r0, 0x44(r1) -/* 8048DA38 93 E1 00 3C */ stw r31, 0x3c(r1) -/* 8048DA3C 93 C1 00 38 */ stw r30, 0x38(r1) -/* 8048DA40 7C 7F 1B 78 */ mr r31, r3 -/* 8048DA44 3C 80 80 49 */ lis r4, lit_3739@ha /* 0x8048DD64@ha */ -/* 8048DA48 3B C4 DD 64 */ addi r30, r4, lit_3739@l /* 0x8048DD64@l */ -/* 8048DA4C 48 00 02 1D */ bl getSwitchBit__12daTag_Howl_cFv -/* 8048DA50 54 60 06 3E */ clrlwi r0, r3, 0x18 -/* 8048DA54 28 00 00 FF */ cmplwi r0, 0xff -/* 8048DA58 41 82 00 30 */ beq lbl_8048DA88 -/* 8048DA5C 7F E3 FB 78 */ mr r3, r31 -/* 8048DA60 48 00 02 09 */ bl getSwitchBit__12daTag_Howl_cFv -/* 8048DA64 54 64 06 3E */ clrlwi r4, r3, 0x18 -/* 8048DA68 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8048DA6C 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8048DA70 38 63 09 58 */ addi r3, r3, 0x958 -/* 8048DA74 4B BA 6D ED */ bl isSwitch__12dSv_memBit_cCFi -/* 8048DA78 2C 03 00 00 */ cmpwi r3, 0 -/* 8048DA7C 41 82 00 0C */ beq lbl_8048DA88 -/* 8048DA80 38 60 00 00 */ li r3, 0 -/* 8048DA84 48 00 01 80 */ b lbl_8048DC04 -lbl_8048DA88: -/* 8048DA88 38 61 00 18 */ addi r3, r1, 0x18 -/* 8048DA8C 3C 80 80 40 */ lis r4, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8048DA90 38 84 61 C0 */ addi r4, r4, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8048DA94 80 84 5D AC */ lwz r4, 0x5dac(r4) -/* 8048DA98 38 84 04 D0 */ addi r4, r4, 0x4d0 -/* 8048DA9C 38 BF 04 D0 */ addi r5, r31, 0x4d0 -/* 8048DAA0 4B DD 90 95 */ bl __mi__4cXyzCFRC3Vec -/* 8048DAA4 C0 41 00 18 */ lfs f2, 0x18(r1) -/* 8048DAA8 D0 41 00 24 */ stfs f2, 0x24(r1) -/* 8048DAAC C0 01 00 1C */ lfs f0, 0x1c(r1) -/* 8048DAB0 D0 01 00 28 */ stfs f0, 0x28(r1) -/* 8048DAB4 C0 21 00 20 */ lfs f1, 0x20(r1) -/* 8048DAB8 D0 21 00 2C */ stfs f1, 0x2c(r1) -/* 8048DABC 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8048DAC0 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8048DAC4 80 63 5D B4 */ lwz r3, 0x5db4(r3) -/* 8048DAC8 80 03 05 74 */ lwz r0, 0x574(r3) -/* 8048DACC 54 00 01 8D */ rlwinm. r0, r0, 0, 6, 6 -/* 8048DAD0 41 82 01 30 */ beq lbl_8048DC00 -/* 8048DAD4 D0 41 00 0C */ stfs f2, 0xc(r1) -/* 8048DAD8 C0 1E 00 00 */ lfs f0, 0(r30) -/* 8048DADC D0 01 00 10 */ stfs f0, 0x10(r1) -/* 8048DAE0 D0 21 00 14 */ stfs f1, 0x14(r1) -/* 8048DAE4 38 61 00 0C */ addi r3, r1, 0xc -/* 8048DAE8 4B EB 96 51 */ bl PSVECSquareMag -/* 8048DAEC C0 1E 00 00 */ lfs f0, 0(r30) -/* 8048DAF0 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 8048DAF4 40 81 00 58 */ ble lbl_8048DB4C -/* 8048DAF8 FC 00 08 34 */ frsqrte f0, f1 -/* 8048DAFC C8 9E 00 08 */ lfd f4, 8(r30) -/* 8048DB00 FC 44 00 32 */ fmul f2, f4, f0 -/* 8048DB04 C8 7E 00 10 */ lfd f3, 0x10(r30) -/* 8048DB08 FC 00 00 32 */ fmul f0, f0, f0 -/* 8048DB0C FC 01 00 32 */ fmul f0, f1, f0 -/* 8048DB10 FC 03 00 28 */ fsub f0, f3, f0 -/* 8048DB14 FC 02 00 32 */ fmul f0, f2, f0 -/* 8048DB18 FC 44 00 32 */ fmul f2, f4, f0 -/* 8048DB1C FC 00 00 32 */ fmul f0, f0, f0 -/* 8048DB20 FC 01 00 32 */ fmul f0, f1, f0 -/* 8048DB24 FC 03 00 28 */ fsub f0, f3, f0 -/* 8048DB28 FC 02 00 32 */ fmul f0, f2, f0 -/* 8048DB2C FC 44 00 32 */ fmul f2, f4, f0 -/* 8048DB30 FC 00 00 32 */ fmul f0, f0, f0 -/* 8048DB34 FC 01 00 32 */ fmul f0, f1, f0 -/* 8048DB38 FC 03 00 28 */ fsub f0, f3, f0 -/* 8048DB3C FC 02 00 32 */ fmul f0, f2, f0 -/* 8048DB40 FC 21 00 32 */ fmul f1, f1, f0 -/* 8048DB44 FC 20 08 18 */ frsp f1, f1 -/* 8048DB48 48 00 00 88 */ b lbl_8048DBD0 -lbl_8048DB4C: -/* 8048DB4C C8 1E 00 18 */ lfd f0, 0x18(r30) -/* 8048DB50 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 8048DB54 40 80 00 10 */ bge lbl_8048DB64 -/* 8048DB58 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */ -/* 8048DB5C C0 23 0A E0 */ lfs f1, __float_nan@l(r3) /* 0x80450AE0@l */ -/* 8048DB60 48 00 00 70 */ b lbl_8048DBD0 -lbl_8048DB64: -/* 8048DB64 D0 21 00 08 */ stfs f1, 8(r1) -/* 8048DB68 80 81 00 08 */ lwz r4, 8(r1) -/* 8048DB6C 54 83 00 50 */ rlwinm r3, r4, 0, 1, 8 -/* 8048DB70 3C 00 7F 80 */ lis r0, 0x7f80 -/* 8048DB74 7C 03 00 00 */ cmpw r3, r0 -/* 8048DB78 41 82 00 14 */ beq lbl_8048DB8C -/* 8048DB7C 40 80 00 40 */ bge lbl_8048DBBC -/* 8048DB80 2C 03 00 00 */ cmpwi r3, 0 -/* 8048DB84 41 82 00 20 */ beq lbl_8048DBA4 -/* 8048DB88 48 00 00 34 */ b lbl_8048DBBC -lbl_8048DB8C: -/* 8048DB8C 54 80 02 7F */ clrlwi. r0, r4, 9 -/* 8048DB90 41 82 00 0C */ beq lbl_8048DB9C -/* 8048DB94 38 00 00 01 */ li r0, 1 -/* 8048DB98 48 00 00 28 */ b lbl_8048DBC0 -lbl_8048DB9C: -/* 8048DB9C 38 00 00 02 */ li r0, 2 -/* 8048DBA0 48 00 00 20 */ b lbl_8048DBC0 -lbl_8048DBA4: -/* 8048DBA4 54 80 02 7F */ clrlwi. r0, r4, 9 -/* 8048DBA8 41 82 00 0C */ beq lbl_8048DBB4 -/* 8048DBAC 38 00 00 05 */ li r0, 5 -/* 8048DBB0 48 00 00 10 */ b lbl_8048DBC0 -lbl_8048DBB4: -/* 8048DBB4 38 00 00 03 */ li r0, 3 -/* 8048DBB8 48 00 00 08 */ b lbl_8048DBC0 -lbl_8048DBBC: -/* 8048DBBC 38 00 00 04 */ li r0, 4 -lbl_8048DBC0: -/* 8048DBC0 2C 00 00 01 */ cmpwi r0, 1 -/* 8048DBC4 40 82 00 0C */ bne lbl_8048DBD0 -/* 8048DBC8 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */ -/* 8048DBCC C0 23 0A E0 */ lfs f1, __float_nan@l(r3) /* 0x80450AE0@l */ -lbl_8048DBD0: -/* 8048DBD0 C0 1F 04 EC */ lfs f0, 0x4ec(r31) -/* 8048DBD4 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 8048DBD8 40 80 00 28 */ bge lbl_8048DC00 -/* 8048DBDC C0 3F 04 F0 */ lfs f1, 0x4f0(r31) -/* 8048DBE0 FC 00 08 50 */ fneg f0, f1 -/* 8048DBE4 C0 41 00 28 */ lfs f2, 0x28(r1) -/* 8048DBE8 FC 00 10 40 */ fcmpo cr0, f0, f2 -/* 8048DBEC 40 80 00 14 */ bge lbl_8048DC00 -/* 8048DBF0 FC 02 08 40 */ fcmpo cr0, f2, f1 -/* 8048DBF4 40 80 00 0C */ bge lbl_8048DC00 -/* 8048DBF8 38 60 00 01 */ li r3, 1 -/* 8048DBFC 48 00 00 08 */ b lbl_8048DC04 -lbl_8048DC00: -/* 8048DC00 38 60 00 00 */ li r3, 0 -lbl_8048DC04: -/* 8048DC04 83 E1 00 3C */ lwz r31, 0x3c(r1) -/* 8048DC08 83 C1 00 38 */ lwz r30, 0x38(r1) -/* 8048DC0C 80 01 00 44 */ lwz r0, 0x44(r1) -/* 8048DC10 7C 08 03 A6 */ mtlr r0 -/* 8048DC14 38 21 00 40 */ addi r1, r1, 0x40 -/* 8048DC18 4E 80 00 20 */ blr diff --git a/include/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl.h b/include/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl.h index 4cc761de39..9cca8d66cd 100644 --- a/include/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl.h +++ b/include/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl.h @@ -1,6 +1,24 @@ #ifndef D_A_TAG_HOWL_H #define D_A_TAG_HOWL_H -#include "dolphin/types.h" +#include "d/com/d_com_inf_game.h" +#include "d/d_procname.h" +#include "f_op/f_op_actor_mng.h" + +class daTag_Howl_c : public fopAc_ac_c { +public: + u8 field_0x568; + u8 field_0x569; + + /* 8048D958 */ int create(); + /* 8048D9BC */ int destroy(); + /* 8048D9C4 */ int execute(); + /* 8048DA24 */ int draw(); + /* 8048DA2C */ u8 isAreaCheck(); + /* 8048DC1C */ int getParam(); + /* 8048DC68 */ u8 getSwitchBit(); + /* 8048DCFC */ virtual ~daTag_Howl_c() {} + +}; // Size: 0x570 #endif /* D_A_TAG_HOWL_H */ diff --git a/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl.cpp b/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl.cpp index 5cf59b7b55..8d6ef8b237 100644 --- a/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl.cpp +++ b/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl.cpp @@ -1,268 +1,125 @@ -// -// Generated By: dol2asm -// Translation Unit: d_a_tag_howl -// +/** + * d_a_tag_howl.cpp + * + */ #include "rel/d/a/tag/d_a_tag_howl/d_a_tag_howl.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Types: -// - -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); - /* 80018C8C */ ~fopAc_ac_c(); -}; - -struct daTag_Howl_c { - /* 8048D958 */ void create(); - /* 8048D9BC */ bool destroy(); - /* 8048D9C4 */ void execute(); - /* 8048DA24 */ bool draw(); - /* 8048DA2C */ void isAreaCheck(); - /* 8048DC1C */ void getParam(); - /* 8048DC68 */ void getSwitchBit(); - /* 8048DCFC */ ~daTag_Howl_c(); -}; - -struct dSv_memBit_c { - /* 80034860 */ void isSwitch(int) const; -}; - -struct Vec {}; - -struct cXyz { - /* 80266B34 */ void operator-(Vec const&) const; -}; - -// -// Forward References: -// - -extern "C" void create__12daTag_Howl_cFv(); -extern "C" bool destroy__12daTag_Howl_cFv(); -extern "C" void execute__12daTag_Howl_cFv(); -extern "C" bool draw__12daTag_Howl_cFv(); -extern "C" void isAreaCheck__12daTag_Howl_cFv(); -extern "C" void getParam__12daTag_Howl_cFv(); -extern "C" void getSwitchBit__12daTag_Howl_cFv(); -extern "C" static void daTag_Howl_Create__FPv(); -extern "C" static void daTag_Howl_Delete__FPv(); -extern "C" static void daTag_Howl_Execute__FPv(); -extern "C" static void daTag_Howl_Draw__FPv(); -extern "C" static bool daTag_Howl_IsDelete__FPv(); -extern "C" void __dt__12daTag_Howl_cFv(); - -// -// External References: -// - -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void __dt__10fopAc_ac_cFv(); -extern "C" void isSwitch__12dSv_memBit_cCFi(); -extern "C" void __mi__4cXyzCFRC3Vec(); -extern "C" void __dl__FPv(); -extern "C" void PSVECSquareMag(); -extern "C" extern void* g_fopAc_Method[8]; -extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; -extern "C" extern u32 __float_nan; -extern "C" extern u8 mStayNo__20dStage_roomControl_c[4]; - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 8048DD88-8048DDA8 -00001 0020+00 1/0 0/0 0/0 .data daTag_Howl_MethodTable */ -SECTION_DATA static void* daTag_Howl_MethodTable[8] = { - (void*)daTag_Howl_Create__FPv, - (void*)daTag_Howl_Delete__FPv, - (void*)daTag_Howl_Execute__FPv, - (void*)daTag_Howl_IsDelete__FPv, - (void*)daTag_Howl_Draw__FPv, - (void*)NULL, - (void*)NULL, - (void*)NULL, -}; - -/* 8048DDA8-8048DDD8 -00001 0030+00 0/0 0/0 1/0 .data g_profile_TAG_HOWL */ -SECTION_DATA extern void* g_profile_TAG_HOWL[12] = { - (void*)0xFFFFFFFD, (void*)0x0007FFFD, - (void*)0x02D40000, (void*)&g_fpcLf_Method, - (void*)0x00000570, (void*)NULL, - (void*)NULL, (void*)&g_fopAc_Method, - (void*)0x011B0000, (void*)&daTag_Howl_MethodTable, - (void*)0x00040000, (void*)0x000E0000, -}; - -/* 8048DDD8-8048DDE4 000050 000C+00 2/2 0/0 0/0 .data __vt__12daTag_Howl_c */ -SECTION_DATA extern void* __vt__12daTag_Howl_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__12daTag_Howl_cFv, -}; /* 8048D958-8048D9BC 000078 0064+00 1/1 0/0 0/0 .text create__12daTag_Howl_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTag_Howl_c::create() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl/create__12daTag_Howl_cFv.s" +int daTag_Howl_c::create() { + if (!fopAcM_CheckCondition(this, 8)) { + new (this) daTag_Howl_c(); + fopAcM_OnCondition(this, 8); + } + getParam(); + return cPhs_COMPLEATE_e; } -#pragma pop /* 8048D9BC-8048D9C4 0000DC 0008+00 1/1 0/0 0/0 .text destroy__12daTag_Howl_cFv */ -bool daTag_Howl_c::destroy() { - return true; +int daTag_Howl_c::destroy() { + return 1; } /* 8048D9C4-8048DA24 0000E4 0060+00 1/1 0/0 0/0 .text execute__12daTag_Howl_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTag_Howl_c::execute() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl/execute__12daTag_Howl_cFv.s" +int daTag_Howl_c::execute() { + this->current.roomNo = dStage_roomControl_c::mStayNo; + this->mAttentionInfo.mFlags = 0; + if (isAreaCheck() != NULL) { + this->mAttentionInfo.mFlags |= 0x80; + this->mAttentionInfo.field_0x4[3] = 0x41; + } + return 1; } -#pragma pop /* 8048DA24-8048DA2C 000144 0008+00 1/1 0/0 0/0 .text draw__12daTag_Howl_cFv */ -bool daTag_Howl_c::draw() { - return true; +int daTag_Howl_c::draw() { + return 1; } -/* ############################################################################################## */ -/* 8048DD64-8048DD6C 000000 0004+04 1/1 0/0 0/0 .rodata @3739 */ -SECTION_RODATA static u8 const lit_3739[4 + 4 /* padding */] = { - 0x00, - 0x00, - 0x00, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x8048DD64, &lit_3739); - -/* 8048DD6C-8048DD74 000008 0008+00 0/1 0/0 0/0 .rodata @3740 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3740[8] = { - 0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x8048DD6C, &lit_3740); -#pragma pop - -/* 8048DD74-8048DD7C 000010 0008+00 0/1 0/0 0/0 .rodata @3741 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3741[8] = { - 0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x8048DD74, &lit_3741); -#pragma pop - -/* 8048DD7C-8048DD84 000018 0008+00 0/1 0/0 0/0 .rodata @3742 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3742[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x8048DD7C, &lit_3742); -#pragma pop - /* 8048DA2C-8048DC1C 00014C 01F0+00 1/1 0/0 0/0 .text isAreaCheck__12daTag_Howl_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTag_Howl_c::isAreaCheck() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl/isAreaCheck__12daTag_Howl_cFv.s" +u8 daTag_Howl_c::isAreaCheck() { + if (getSwitchBit() != 0xFF) { + if (dComIfGs_isSaveSwitch(getSwitchBit())) { + return 0; + } + } + + cXyz pos = daPy_getPlayerActorClass()->current.pos - current.pos; + if (dComIfGp_getLinkPlayer()->i_checkNoResetFlg1(daPy_py_c::FLG1_IS_WOLF)) { + if ((pos.absXZ() < mScale.x) && (-mScale.y < pos.y) && (pos.y < mScale.y)) { + return 1; + } + } + return 0; } -#pragma pop - -/* ############################################################################################## */ -/* 8048DD84-8048DD88 000020 0004+00 1/1 0/0 0/0 .rodata @3752 */ -SECTION_RODATA static f32 const lit_3752 = 100.0f; -COMPILER_STRIP_GATE(0x8048DD84, &lit_3752); - /* 8048DC1C-8048DC68 00033C 004C+00 1/1 0/0 0/0 .text getParam__12daTag_Howl_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTag_Howl_c::getParam() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl/getParam__12daTag_Howl_cFv.s" +int daTag_Howl_c::getParam() { + field_0x568 = mBase.mParameters & 0xf; + field_0x569 = mBase.mParameters >> 0x1e; + mScale.x *= 100.0f; + mScale.y *= 100.0f; + mScale.z *= 100.0f; + return 1; } -#pragma pop /* 8048DC68-8048DC74 000388 000C+00 1/1 0/0 0/0 .text getSwitchBit__12daTag_Howl_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTag_Howl_c::getSwitchBit() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl/getSwitchBit__12daTag_Howl_cFv.s" +u8 daTag_Howl_c::getSwitchBit() { + return this->mBase.mParameters >> 4 & 0xff; } -#pragma pop /* 8048DC74-8048DC94 000394 0020+00 1/0 0/0 0/0 .text daTag_Howl_Create__FPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTag_Howl_Create(void* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl/daTag_Howl_Create__FPv.s" +static int daTag_Howl_Create(void* i_this) { + return static_cast(i_this)->create(); } -#pragma pop /* 8048DC94-8048DCB4 0003B4 0020+00 1/0 0/0 0/0 .text daTag_Howl_Delete__FPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTag_Howl_Delete(void* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl/daTag_Howl_Delete__FPv.s" +static int daTag_Howl_Delete(void* i_this) { + return static_cast(i_this)->destroy(); } -#pragma pop /* 8048DCB4-8048DCD4 0003D4 0020+00 1/0 0/0 0/0 .text daTag_Howl_Execute__FPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTag_Howl_Execute(void* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl/daTag_Howl_Execute__FPv.s" +static int daTag_Howl_Execute(void* i_this) { + return static_cast(i_this)->execute(); } -#pragma pop /* 8048DCD4-8048DCF4 0003F4 0020+00 1/0 0/0 0/0 .text daTag_Howl_Draw__FPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTag_Howl_Draw(void* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl/daTag_Howl_Draw__FPv.s" +static int daTag_Howl_Draw(void* i_this) { + return static_cast(i_this)->draw(); } -#pragma pop /* 8048DCF4-8048DCFC 000414 0008+00 1/0 0/0 0/0 .text daTag_Howl_IsDelete__FPv */ -static bool daTag_Howl_IsDelete(void* param_0) { - return true; +static int daTag_Howl_IsDelete(void* i_this) { + return 1; } -/* 8048DCFC-8048DD5C 00041C 0060+00 1/0 0/0 0/0 .text __dt__12daTag_Howl_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm daTag_Howl_c::~daTag_Howl_c() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl/__dt__12daTag_Howl_cFv.s" -} -#pragma pop +/* ############################################################################################## */ +/* 8048DD88-8048DDA8 -00001 0020+00 1/0 0/0 0/0 .data daTag_Howl_MethodTable */ +static actor_method_class daTag_Howl_MethodTable = { + (process_method_func)daTag_Howl_Create, (process_method_func)daTag_Howl_Delete, + (process_method_func)daTag_Howl_Execute, (process_method_func)daTag_Howl_IsDelete, + (process_method_func)daTag_Howl_Draw, + +}; + +/* 8048DDA8-8048DDD8 -00001 0030+00 0/0 0/0 1/0 .data g_profile_TAG_HOWL */ +extern actor_process_profile_definition g_profile_TAG_HOWL = { + -3, // mLayerID + 7, // mListID + -3, // mListPrio + PROC_TAG_HOWL, // mProcName + 0, // unkA + &g_fpcLf_Method.mBase, // mSubMtd + sizeof(daTag_Howl_c), // mSize + 0, // mSizeOther + 0, // mParameters + &g_fopAc_Method.base, // mSubMtd + 0x011B, // mPriority + 0, // unk22[0] + 0, // unk22[1] + &daTag_Howl_MethodTable, // mSubMtd + 0x00040000, // mStatus + 0x00, // mActorType + 0x0E, // mCullType + 0, // field_0x2e[0] + 0, // field_0x2e[1] +};