d_a_tag_howl fully matching (#280)

This commit is contained in:
Trueffel 2023-02-14 22:12:40 +01:00 committed by GitHub
parent 1d0951701e
commit 95b6448656
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 110 additions and 551 deletions

View File

@ -21,8 +21,8 @@ Total | 32.316787% | 1299352 | 4020672
Section | Percentage | Decompiled (bytes) | Total (bytes) Section | Percentage | Decompiled (bytes) | Total (bytes)
---|---|---|--- ---|---|---|---
main.dol | 32.316787% | 1299352 | 4020672 main.dol | 32.316787% | 1299352 | 4020672
RELs | 33.179309% | 3815728 | 11500324 RELs | 33.188039% | 3816732 | 11500324
Total | 32.955875% | 5115080 | 15520996 Total | 32.962343% | 5116084 | 15520996
## RELs ## RELs
@ -730,7 +730,7 @@ d_a_tag_gstart | 100.000000% | 1208 | 1208
d_a_tag_guard | 100.000000% | 1176 | 1176 d_a_tag_guard | 100.000000% | 1176 | 1176
d_a_tag_hinit | 100.000000% | 1440 | 1440 d_a_tag_hinit | 100.000000% | 1440 | 1440
d_a_tag_hjump | 40.841584% | 1320 | 3232 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_hstop | 100.000000% | 3424 | 3424
d_a_tag_instruction | 100.000000% | 712 | 712 d_a_tag_instruction | 100.000000% | 712 | 712
d_a_tag_kago_fall | 34.469328% | 1416 | 4108 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_warp_bug | 54.940711% | 1112 | 2024
d_a_ykgr | 44.400631% | 2252 | 5072 d_a_ykgr | 44.400631% | 2252 | 5072
f_pc_profile_lst | 100.000000% | 28156 | 28156 f_pc_profile_lst | 100.000000% | 28156 | 28156
Total | 33.179309% | 3815728 | 11500324 Total | 33.188039% | 3816732 | 11500324

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -1,6 +1,24 @@
#ifndef D_A_TAG_HOWL_H #ifndef D_A_TAG_HOWL_H
#define 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 */ #endif /* D_A_TAG_HOWL_H */

View File

@ -1,268 +1,125 @@
// /**
// Generated By: dol2asm * d_a_tag_howl.cpp
// Translation Unit: d_a_tag_howl *
// */
#include "rel/d/a/tag/d_a_tag_howl/d_a_tag_howl.h" #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 */ /* 8048D958-8048D9BC 000078 0064+00 1/1 0/0 0/0 .text create__12daTag_Howl_cFv */
#pragma push int daTag_Howl_c::create() {
#pragma optimization_level 0 if (!fopAcM_CheckCondition(this, 8)) {
#pragma optimizewithasm off new (this) daTag_Howl_c();
asm void daTag_Howl_c::create() { fopAcM_OnCondition(this, 8);
nofralloc }
#include "asm/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl/create__12daTag_Howl_cFv.s" getParam();
return cPhs_COMPLEATE_e;
} }
#pragma pop
/* 8048D9BC-8048D9C4 0000DC 0008+00 1/1 0/0 0/0 .text destroy__12daTag_Howl_cFv */ /* 8048D9BC-8048D9C4 0000DC 0008+00 1/1 0/0 0/0 .text destroy__12daTag_Howl_cFv */
bool daTag_Howl_c::destroy() { int daTag_Howl_c::destroy() {
return true; return 1;
} }
/* 8048D9C4-8048DA24 0000E4 0060+00 1/1 0/0 0/0 .text execute__12daTag_Howl_cFv */ /* 8048D9C4-8048DA24 0000E4 0060+00 1/1 0/0 0/0 .text execute__12daTag_Howl_cFv */
#pragma push int daTag_Howl_c::execute() {
#pragma optimization_level 0 this->current.roomNo = dStage_roomControl_c::mStayNo;
#pragma optimizewithasm off this->mAttentionInfo.mFlags = 0;
asm void daTag_Howl_c::execute() { if (isAreaCheck() != NULL) {
nofralloc this->mAttentionInfo.mFlags |= 0x80;
#include "asm/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl/execute__12daTag_Howl_cFv.s" 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 */ /* 8048DA24-8048DA2C 000144 0008+00 1/1 0/0 0/0 .text draw__12daTag_Howl_cFv */
bool daTag_Howl_c::draw() { int daTag_Howl_c::draw() {
return true; 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 */ /* 8048DA2C-8048DC1C 00014C 01F0+00 1/1 0/0 0/0 .text isAreaCheck__12daTag_Howl_cFv */
#pragma push u8 daTag_Howl_c::isAreaCheck() {
#pragma optimization_level 0 if (getSwitchBit() != 0xFF) {
#pragma optimizewithasm off if (dComIfGs_isSaveSwitch(getSwitchBit())) {
asm void daTag_Howl_c::isAreaCheck() { return 0;
nofralloc }
#include "asm/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl/isAreaCheck__12daTag_Howl_cFv.s" }
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 */ /* 8048DC1C-8048DC68 00033C 004C+00 1/1 0/0 0/0 .text getParam__12daTag_Howl_cFv */
#pragma push int daTag_Howl_c::getParam() {
#pragma optimization_level 0 field_0x568 = mBase.mParameters & 0xf;
#pragma optimizewithasm off field_0x569 = mBase.mParameters >> 0x1e;
asm void daTag_Howl_c::getParam() { mScale.x *= 100.0f;
nofralloc mScale.y *= 100.0f;
#include "asm/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl/getParam__12daTag_Howl_cFv.s" mScale.z *= 100.0f;
return 1;
} }
#pragma pop
/* 8048DC68-8048DC74 000388 000C+00 1/1 0/0 0/0 .text getSwitchBit__12daTag_Howl_cFv */ /* 8048DC68-8048DC74 000388 000C+00 1/1 0/0 0/0 .text getSwitchBit__12daTag_Howl_cFv */
#pragma push u8 daTag_Howl_c::getSwitchBit() {
#pragma optimization_level 0 return this->mBase.mParameters >> 4 & 0xff;
#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"
} }
#pragma pop
/* 8048DC74-8048DC94 000394 0020+00 1/0 0/0 0/0 .text daTag_Howl_Create__FPv */ /* 8048DC74-8048DC94 000394 0020+00 1/0 0/0 0/0 .text daTag_Howl_Create__FPv */
#pragma push static int daTag_Howl_Create(void* i_this) {
#pragma optimization_level 0 return static_cast<daTag_Howl_c*>(i_this)->create();
#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"
} }
#pragma pop
/* 8048DC94-8048DCB4 0003B4 0020+00 1/0 0/0 0/0 .text daTag_Howl_Delete__FPv */ /* 8048DC94-8048DCB4 0003B4 0020+00 1/0 0/0 0/0 .text daTag_Howl_Delete__FPv */
#pragma push static int daTag_Howl_Delete(void* i_this) {
#pragma optimization_level 0 return static_cast<daTag_Howl_c*>(i_this)->destroy();
#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"
} }
#pragma pop
/* 8048DCB4-8048DCD4 0003D4 0020+00 1/0 0/0 0/0 .text daTag_Howl_Execute__FPv */ /* 8048DCB4-8048DCD4 0003D4 0020+00 1/0 0/0 0/0 .text daTag_Howl_Execute__FPv */
#pragma push static int daTag_Howl_Execute(void* i_this) {
#pragma optimization_level 0 return static_cast<daTag_Howl_c*>(i_this)->execute();
#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"
} }
#pragma pop
/* 8048DCD4-8048DCF4 0003F4 0020+00 1/0 0/0 0/0 .text daTag_Howl_Draw__FPv */ /* 8048DCD4-8048DCF4 0003F4 0020+00 1/0 0/0 0/0 .text daTag_Howl_Draw__FPv */
#pragma push static int daTag_Howl_Draw(void* i_this) {
#pragma optimization_level 0 return static_cast<daTag_Howl_c*>(i_this)->draw();
#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"
} }
#pragma pop
/* 8048DCF4-8048DCFC 000414 0008+00 1/0 0/0 0/0 .text daTag_Howl_IsDelete__FPv */ /* 8048DCF4-8048DCFC 000414 0008+00 1/0 0/0 0/0 .text daTag_Howl_IsDelete__FPv */
static bool daTag_Howl_IsDelete(void* param_0) { static int daTag_Howl_IsDelete(void* i_this) {
return true; return 1;
} }
/* 8048DCFC-8048DD5C 00041C 0060+00 1/0 0/0 0/0 .text __dt__12daTag_Howl_cFv */ /* ############################################################################################## */
#pragma push /* 8048DD88-8048DDA8 -00001 0020+00 1/0 0/0 0/0 .data daTag_Howl_MethodTable */
#pragma optimization_level 0 static actor_method_class daTag_Howl_MethodTable = {
#pragma optimizewithasm off (process_method_func)daTag_Howl_Create, (process_method_func)daTag_Howl_Delete,
asm daTag_Howl_c::~daTag_Howl_c() { (process_method_func)daTag_Howl_Execute, (process_method_func)daTag_Howl_IsDelete,
nofralloc (process_method_func)daTag_Howl_Draw,
#include "asm/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl/__dt__12daTag_Howl_cFv.s"
} };
#pragma pop
/* 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]
};