Merged to resolve conflicts

This commit is contained in:
Yotona 2023-07-24 21:06:31 -06:00
commit b070730d18
17 changed files with 277 additions and 769 deletions

View File

@ -21,8 +21,8 @@ Total | 37.234870% | 1497092 | 4020672
Section | Percentage | Decompiled (bytes) | Total (bytes)
---|---|---|---
main.dol | 37.234870% | 1497092 | 4020672
RELs | 33.938592% | 3903048 | 11500324
Total | 34.792484% | 5400140 | 15520996
RELs | 33.954487% | 3904876 | 11500324
Total | 34.804261% | 5401968 | 15520996
## RELs
@ -772,7 +772,7 @@ d_a_tag_telop | 100.000000% | 1040 | 1040
d_a_tag_theB_hint | 100.000000% | 1136 | 1136
d_a_tag_wara_howl | 100.000000% | 1420 | 1420
d_a_tag_watchge | 100.000000% | 1240 | 1240
d_a_tag_waterfall | 46.361502% | 1580 | 3408
d_a_tag_waterfall | 100.000000% | 3408 | 3408
d_a_tag_wljump | 45.248380% | 1676 | 3704
d_a_tag_yami | 42.650334% | 1532 | 3592
d_a_talk | 100.000000% | 1840 | 1840
@ -785,4 +785,4 @@ d_a_vrbox2 | 34.977578% | 2184 | 6244
d_a_warp_bug | 100.000000% | 2024 | 2024
d_a_ykgr | 44.400631% | 2252 | 5072
f_pc_profile_lst | 100.000000% | 28156 | 28156
Total | 33.938592% | 3903048 | 11500324
Total | 33.954487% | 3904876 | 11500324

View File

@ -1,22 +0,0 @@
lbl_80D6462C:
/* 80D6462C 3C 80 80 D6 */ lis r4, lit_3758@ha /* 0x80D64D74@ha */
/* 80D64630 38 A4 4D 74 */ addi r5, r4, lit_3758@l /* 0x80D64D74@l */
/* 80D64634 3C 80 80 D6 */ lis r4, __vt__20daTagWaterFall_HIO_c@ha /* 0x80D64DE8@ha */
/* 80D64638 38 04 4D E8 */ addi r0, r4, __vt__20daTagWaterFall_HIO_c@l /* 0x80D64DE8@l */
/* 80D6463C 90 03 00 00 */ stw r0, 0(r3)
/* 80D64640 38 00 FF FF */ li r0, -1
/* 80D64644 98 03 00 04 */ stb r0, 4(r3)
/* 80D64648 C0 25 00 00 */ lfs f1, 0(r5)
/* 80D6464C D0 23 00 08 */ stfs f1, 8(r3)
/* 80D64650 C0 05 00 04 */ lfs f0, 4(r5)
/* 80D64654 D0 03 00 0C */ stfs f0, 0xc(r3)
/* 80D64658 C0 05 00 08 */ lfs f0, 8(r5)
/* 80D6465C D0 03 00 10 */ stfs f0, 0x10(r3)
/* 80D64660 38 00 00 00 */ li r0, 0
/* 80D64664 98 03 00 05 */ stb r0, 5(r3)
/* 80D64668 98 03 00 14 */ stb r0, 0x14(r3)
/* 80D6466C 98 03 00 15 */ stb r0, 0x15(r3)
/* 80D64670 D0 23 00 18 */ stfs f1, 0x18(r3)
/* 80D64674 D0 23 00 1C */ stfs f1, 0x1c(r3)
/* 80D64678 D0 23 00 20 */ stfs f1, 0x20(r3)
/* 80D6467C 4E 80 00 20 */ blr

View File

@ -1,20 +0,0 @@
lbl_80D64CDC:
/* 80D64CDC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80D64CE0 7C 08 02 A6 */ mflr r0
/* 80D64CE4 90 01 00 14 */ stw r0, 0x14(r1)
/* 80D64CE8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80D64CEC 7C 7F 1B 79 */ or. r31, r3, r3
/* 80D64CF0 41 82 00 1C */ beq lbl_80D64D0C
/* 80D64CF4 3C A0 80 D6 */ lis r5, __vt__20daTagWaterFall_HIO_c@ha /* 0x80D64DE8@ha */
/* 80D64CF8 38 05 4D E8 */ addi r0, r5, __vt__20daTagWaterFall_HIO_c@l /* 0x80D64DE8@l */
/* 80D64CFC 90 1F 00 00 */ stw r0, 0(r31)
/* 80D64D00 7C 80 07 35 */ extsh. r0, r4
/* 80D64D04 40 81 00 08 */ ble lbl_80D64D0C
/* 80D64D08 4B 56 A0 35 */ bl __dl__FPv
lbl_80D64D0C:
/* 80D64D0C 7F E3 FB 78 */ mr r3, r31
/* 80D64D10 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80D64D14 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80D64D18 7C 08 03 A6 */ mtlr r0
/* 80D64D1C 38 21 00 10 */ addi r1, r1, 0x10
/* 80D64D20 4E 80 00 20 */ blr

View File

@ -1,16 +0,0 @@
lbl_80D64D24:
/* 80D64D24 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80D64D28 7C 08 02 A6 */ mflr r0
/* 80D64D2C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80D64D30 3C 60 80 D6 */ lis r3, l_HIO@ha /* 0x80D64E10@ha */
/* 80D64D34 38 63 4E 10 */ addi r3, r3, l_HIO@l /* 0x80D64E10@l */
/* 80D64D38 4B FF F8 F5 */ bl __ct__20daTagWaterFall_HIO_cFv
/* 80D64D3C 3C 80 80 D6 */ lis r4, __dt__20daTagWaterFall_HIO_cFv@ha /* 0x80D64CDC@ha */
/* 80D64D40 38 84 4C DC */ addi r4, r4, __dt__20daTagWaterFall_HIO_cFv@l /* 0x80D64CDC@l */
/* 80D64D44 3C A0 80 D6 */ lis r5, lit_3753@ha /* 0x80D64E04@ha */
/* 80D64D48 38 A5 4E 04 */ addi r5, r5, lit_3753@l /* 0x80D64E04@l */
/* 80D64D4C 4B FF F8 6D */ bl __register_global_object
/* 80D64D50 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80D64D54 7C 08 03 A6 */ mtlr r0
/* 80D64D58 38 21 00 10 */ addi r1, r1, 0x10
/* 80D64D5C 4E 80 00 20 */ blr

View File

@ -1,10 +0,0 @@
lbl_80D64AE0:
/* 80D64AE0 88 03 05 83 */ lbz r0, 0x583(r3)
/* 80D64AE4 28 00 00 00 */ cmplwi r0, 0
/* 80D64AE8 41 82 00 10 */ beq lbl_80D64AF8
/* 80D64AEC 38 00 00 00 */ li r0, 0
/* 80D64AF0 3C 60 80 D6 */ lis r3, data_80D64E00@ha /* 0x80D64E00@ha */
/* 80D64AF4 98 03 4E 00 */ stb r0, data_80D64E00@l(r3) /* 0x80D64E00@l */
lbl_80D64AF8:
/* 80D64AF8 38 60 00 01 */ li r3, 1
/* 80D64AFC 4E 80 00 20 */ blr

View File

@ -1,19 +0,0 @@
lbl_80D6486C:
/* 80D6486C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80D64870 7C 08 02 A6 */ mflr r0
/* 80D64874 90 01 00 24 */ stw r0, 0x24(r1)
/* 80D64878 3C 80 80 40 */ lis r4, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 80D6487C 38 84 61 C0 */ addi r4, r4, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 80D64880 80 84 5D 74 */ lwz r4, 0x5d74(r4)
/* 80D64884 C0 04 00 D8 */ lfs f0, 0xd8(r4)
/* 80D64888 D0 01 00 08 */ stfs f0, 8(r1)
/* 80D6488C C0 04 00 DC */ lfs f0, 0xdc(r4)
/* 80D64890 D0 01 00 0C */ stfs f0, 0xc(r1)
/* 80D64894 C0 04 00 E0 */ lfs f0, 0xe0(r4)
/* 80D64898 D0 01 00 10 */ stfs f0, 0x10(r1)
/* 80D6489C 38 81 00 08 */ addi r4, r1, 8
/* 80D648A0 4B FF FE C9 */ bl checkHitWaterFall__16daTagWaterFall_cF4cXyz
/* 80D648A4 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80D648A8 7C 08 03 A6 */ mtlr r0
/* 80D648AC 38 21 00 20 */ addi r1, r1, 0x20
/* 80D648B0 4E 80 00 20 */ blr

View File

@ -1,69 +0,0 @@
lbl_80D64768:
/* 80D64768 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80D6476C 7C 08 02 A6 */ mflr r0
/* 80D64770 90 01 00 34 */ stw r0, 0x34(r1)
/* 80D64774 DB E1 00 20 */ stfd f31, 0x20(r1)
/* 80D64778 F3 E1 00 28 */ psq_st f31, 40(r1), 0, 0 /* qr0 */
/* 80D6477C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80D64780 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80D64784 7C 7E 1B 78 */ mr r30, r3
/* 80D64788 7C 9F 23 78 */ mr r31, r4
/* 80D6478C C3 E3 05 68 */ lfs f31, 0x568(r3)
/* 80D64790 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */
/* 80D64794 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */
/* 80D64798 A8 1E 04 E6 */ lha r0, 0x4e6(r30)
/* 80D6479C 7C 00 00 D0 */ neg r0, r0
/* 80D647A0 7C 04 07 34 */ extsh r4, r0
/* 80D647A4 4B 2A 7C 39 */ bl mDoMtx_YrotS__FPA4_fs
/* 80D647A8 C0 1E 04 D0 */ lfs f0, 0x4d0(r30)
/* 80D647AC FC 20 00 50 */ fneg f1, f0
/* 80D647B0 C0 1E 04 D4 */ lfs f0, 0x4d4(r30)
/* 80D647B4 FC 40 00 50 */ fneg f2, f0
/* 80D647B8 C0 1E 04 D8 */ lfs f0, 0x4d8(r30)
/* 80D647BC FC 60 00 50 */ fneg f3, f0
/* 80D647C0 4B 2A 85 DD */ bl transM__14mDoMtx_stack_cFfff
/* 80D647C4 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */
/* 80D647C8 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */
/* 80D647CC 7F E4 FB 78 */ mr r4, r31
/* 80D647D0 38 A1 00 08 */ addi r5, r1, 8
/* 80D647D4 4B 5E 25 99 */ bl PSMTXMultVec
/* 80D647D8 C0 21 00 08 */ lfs f1, 8(r1)
/* 80D647DC FC 00 0A 10 */ fabs f0, f1
/* 80D647E0 FC 00 00 18 */ frsp f0, f0
/* 80D647E4 FC 00 F8 40 */ fcmpo cr0, f0, f31
/* 80D647E8 40 80 00 60 */ bge lbl_80D64848
/* 80D647EC 7F C3 F3 78 */ mr r3, r30
/* 80D647F0 4B FF FF 35 */ bl getEllipseY__16daTagWaterFall_cFf
/* 80D647F4 FC 00 0A 10 */ fabs f0, f1
/* 80D647F8 FC 20 00 18 */ frsp f1, f0
/* 80D647FC C0 01 00 10 */ lfs f0, 0x10(r1)
/* 80D64800 FC 00 02 10 */ fabs f0, f0
/* 80D64804 FC 00 00 18 */ frsp f0, f0
/* 80D64808 FC 00 08 40 */ fcmpo cr0, f0, f1
/* 80D6480C 40 80 00 3C */ bge lbl_80D64848
/* 80D64810 C0 5E 04 D4 */ lfs f2, 0x4d4(r30)
/* 80D64814 C0 7F 00 04 */ lfs f3, 4(r31)
/* 80D64818 FC 02 18 40 */ fcmpo cr0, f2, f3
/* 80D6481C 40 80 00 2C */ bge lbl_80D64848
/* 80D64820 C0 3E 05 70 */ lfs f1, 0x570(r30)
/* 80D64824 3C 60 80 D6 */ lis r3, lit_3758@ha /* 0x80D64D74@ha */
/* 80D64828 C0 03 4D 74 */ lfs f0, lit_3758@l(r3) /* 0x80D64D74@l */
/* 80D6482C FC 01 00 00 */ fcmpu cr0, f1, f0
/* 80D64830 41 82 00 10 */ beq lbl_80D64840
/* 80D64834 EC 02 08 2A */ fadds f0, f2, f1
/* 80D64838 FC 00 18 40 */ fcmpo cr0, f0, f3
/* 80D6483C 40 81 00 0C */ ble lbl_80D64848
lbl_80D64840:
/* 80D64840 38 60 00 01 */ li r3, 1
/* 80D64844 48 00 00 08 */ b lbl_80D6484C
lbl_80D64848:
/* 80D64848 38 60 00 00 */ li r3, 0
lbl_80D6484C:
/* 80D6484C E3 E1 00 28 */ psq_l f31, 40(r1), 0, 0 /* qr0 */
/* 80D64850 CB E1 00 20 */ lfd f31, 0x20(r1)
/* 80D64854 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80D64858 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80D6485C 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80D64860 7C 08 03 A6 */ mtlr r0
/* 80D64864 38 21 00 30 */ addi r1, r1, 0x30
/* 80D64868 4E 80 00 20 */ blr

View File

@ -1,113 +0,0 @@
lbl_80D64B20:
/* 80D64B20 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80D64B24 7C 08 02 A6 */ mflr r0
/* 80D64B28 90 01 00 24 */ stw r0, 0x24(r1)
/* 80D64B2C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80D64B30 7C 7F 1B 78 */ mr r31, r3
/* 80D64B34 80 03 04 A0 */ lwz r0, 0x4a0(r3)
/* 80D64B38 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c
/* 80D64B3C 40 82 00 1C */ bne lbl_80D64B58
/* 80D64B40 28 1F 00 00 */ cmplwi r31, 0
/* 80D64B44 41 82 00 08 */ beq lbl_80D64B4C
/* 80D64B48 4B 2B 40 1D */ bl __ct__10fopAc_ac_cFv
lbl_80D64B4C:
/* 80D64B4C 80 1F 04 A0 */ lwz r0, 0x4a0(r31)
/* 80D64B50 60 00 00 08 */ ori r0, r0, 8
/* 80D64B54 90 1F 04 A0 */ stw r0, 0x4a0(r31)
lbl_80D64B58:
/* 80D64B58 3C 60 80 D6 */ lis r3, data_80D64E00@ha /* 0x80D64E00@ha */
/* 80D64B5C 8C 03 4E 00 */ lbzu r0, data_80D64E00@l(r3) /* 0x80D64E00@l */
/* 80D64B60 28 00 00 00 */ cmplwi r0, 0
/* 80D64B64 40 82 00 20 */ bne lbl_80D64B84
/* 80D64B68 38 00 00 01 */ li r0, 1
/* 80D64B6C 98 03 00 00 */ stb r0, 0(r3)
/* 80D64B70 98 1F 05 83 */ stb r0, 0x583(r31)
/* 80D64B74 38 00 FF FF */ li r0, -1
/* 80D64B78 3C 60 80 D6 */ lis r3, l_HIO@ha /* 0x80D64E10@ha */
/* 80D64B7C 38 63 4E 10 */ addi r3, r3, l_HIO@l /* 0x80D64E10@l */
/* 80D64B80 98 03 00 04 */ stb r0, 4(r3)
lbl_80D64B84:
/* 80D64B84 80 1F 00 B0 */ lwz r0, 0xb0(r31)
/* 80D64B88 54 00 04 3E */ clrlwi r0, r0, 0x10
/* 80D64B8C 3C 60 80 D6 */ lis r3, lit_3959@ha /* 0x80D64D84@ha */
/* 80D64B90 C8 23 4D 84 */ lfd f1, lit_3959@l(r3) /* 0x80D64D84@l */
/* 80D64B94 90 01 00 0C */ stw r0, 0xc(r1)
/* 80D64B98 3C 00 43 30 */ lis r0, 0x4330
/* 80D64B9C 90 01 00 08 */ stw r0, 8(r1)
/* 80D64BA0 C8 01 00 08 */ lfd f0, 8(r1)
/* 80D64BA4 EC 00 08 28 */ fsubs f0, f0, f1
/* 80D64BA8 D0 1F 05 68 */ stfs f0, 0x568(r31)
/* 80D64BAC C0 3F 05 68 */ lfs f1, 0x568(r31)
/* 80D64BB0 3C 60 80 D6 */ lis r3, lit_3758@ha /* 0x80D64D74@ha */
/* 80D64BB4 C0 03 4D 74 */ lfs f0, lit_3758@l(r3) /* 0x80D64D74@l */
/* 80D64BB8 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80D64BBC 40 80 00 08 */ bge lbl_80D64BC4
/* 80D64BC0 D0 1F 05 6C */ stfs f0, 0x56c(r31)
lbl_80D64BC4:
/* 80D64BC4 80 1F 00 B0 */ lwz r0, 0xb0(r31)
/* 80D64BC8 54 00 84 3E */ srwi r0, r0, 0x10
/* 80D64BCC 3C 60 80 D6 */ lis r3, lit_3959@ha /* 0x80D64D84@ha */
/* 80D64BD0 C8 23 4D 84 */ lfd f1, lit_3959@l(r3) /* 0x80D64D84@l */
/* 80D64BD4 90 01 00 0C */ stw r0, 0xc(r1)
/* 80D64BD8 3C 00 43 30 */ lis r0, 0x4330
/* 80D64BDC 90 01 00 08 */ stw r0, 8(r1)
/* 80D64BE0 C8 01 00 08 */ lfd f0, 8(r1)
/* 80D64BE4 EC 00 08 28 */ fsubs f0, f0, f1
/* 80D64BE8 D0 1F 05 70 */ stfs f0, 0x570(r31)
/* 80D64BEC C0 3F 05 70 */ lfs f1, 0x570(r31)
/* 80D64BF0 3C 60 80 D6 */ lis r3, lit_3758@ha /* 0x80D64D74@ha */
/* 80D64BF4 C0 03 4D 74 */ lfs f0, lit_3758@l(r3) /* 0x80D64D74@l */
/* 80D64BF8 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80D64BFC 40 80 00 08 */ bge lbl_80D64C04
/* 80D64C00 D0 1F 05 70 */ stfs f0, 0x570(r31)
lbl_80D64C04:
/* 80D64C04 A8 1F 04 DC */ lha r0, 0x4dc(r31)
/* 80D64C08 54 00 04 3E */ clrlwi r0, r0, 0x10
/* 80D64C0C 3C 60 80 D6 */ lis r3, lit_3960@ha /* 0x80D64D8C@ha */
/* 80D64C10 C8 23 4D 8C */ lfd f1, lit_3960@l(r3) /* 0x80D64D8C@l */
/* 80D64C14 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 80D64C18 90 01 00 0C */ stw r0, 0xc(r1)
/* 80D64C1C 3C 00 43 30 */ lis r0, 0x4330
/* 80D64C20 90 01 00 08 */ stw r0, 8(r1)
/* 80D64C24 C8 01 00 08 */ lfd f0, 8(r1)
/* 80D64C28 EC 00 08 28 */ fsubs f0, f0, f1
/* 80D64C2C D0 1F 05 6C */ stfs f0, 0x56c(r31)
/* 80D64C30 C0 3F 05 6C */ lfs f1, 0x56c(r31)
/* 80D64C34 3C 60 80 D6 */ lis r3, lit_3758@ha /* 0x80D64D74@ha */
/* 80D64C38 C0 03 4D 74 */ lfs f0, lit_3758@l(r3) /* 0x80D64D74@l */
/* 80D64C3C FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80D64C40 4C 40 13 82 */ cror 2, 0, 2
/* 80D64C44 40 82 00 0C */ bne lbl_80D64C50
/* 80D64C48 C0 1F 05 68 */ lfs f0, 0x568(r31)
/* 80D64C4C D0 1F 05 6C */ stfs f0, 0x56c(r31)
lbl_80D64C50:
/* 80D64C50 38 00 00 00 */ li r0, 0
/* 80D64C54 B0 1F 04 E4 */ sth r0, 0x4e4(r31)
/* 80D64C58 B0 1F 04 DC */ sth r0, 0x4dc(r31)
/* 80D64C5C 3C 60 80 D6 */ lis r3, m_master_id@ha /* 0x80D64D94@ha */
/* 80D64C60 38 63 4D 94 */ addi r3, r3, m_master_id@l /* 0x80D64D94@l */
/* 80D64C64 80 63 00 00 */ lwz r3, 0(r3)
/* 80D64C68 3C 03 00 01 */ addis r0, r3, 1
/* 80D64C6C 28 00 FF FF */ cmplwi r0, 0xffff
/* 80D64C70 40 82 00 34 */ bne lbl_80D64CA4
/* 80D64C74 28 1F 00 00 */ cmplwi r31, 0
/* 80D64C78 41 82 00 0C */ beq lbl_80D64C84
/* 80D64C7C 80 1F 00 04 */ lwz r0, 4(r31)
/* 80D64C80 48 00 00 08 */ b lbl_80D64C88
lbl_80D64C84:
/* 80D64C84 38 00 FF FF */ li r0, -1
lbl_80D64C88:
/* 80D64C88 3C 60 80 D6 */ lis r3, m_master_id@ha /* 0x80D64D94@ha */
/* 80D64C8C 90 03 4D 94 */ stw r0, m_master_id@l(r3) /* 0x80D64D94@l */
/* 80D64C90 3C 60 80 D6 */ lis r3, lit_3758@ha /* 0x80D64D74@ha */
/* 80D64C94 C0 03 4D 74 */ lfs f0, lit_3758@l(r3) /* 0x80D64D74@l */
/* 80D64C98 D0 1F 05 7C */ stfs f0, 0x57c(r31)
/* 80D64C9C 38 00 00 1E */ li r0, 0x1e
/* 80D64CA0 98 1F 05 81 */ stb r0, 0x581(r31)
lbl_80D64CA4:
/* 80D64CA4 38 60 00 04 */ li r3, 4
/* 80D64CA8 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80D64CAC 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80D64CB0 7C 08 03 A6 */ mtlr r0
/* 80D64CB4 38 21 00 20 */ addi r1, r1, 0x20
/* 80D64CB8 4E 80 00 20 */ blr

View File

@ -1,9 +0,0 @@
lbl_80D64CBC:
/* 80D64CBC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80D64CC0 7C 08 02 A6 */ mflr r0
/* 80D64CC4 90 01 00 14 */ stw r0, 0x14(r1)
/* 80D64CC8 4B FF FE 59 */ bl create__16daTagWaterFall_cFv
/* 80D64CCC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80D64CD0 7C 08 03 A6 */ mtlr r0
/* 80D64CD4 38 21 00 10 */ addi r1, r1, 0x10
/* 80D64CD8 4E 80 00 20 */ blr

View File

@ -1,9 +0,0 @@
lbl_80D64B00:
/* 80D64B00 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80D64B04 7C 08 02 A6 */ mflr r0
/* 80D64B08 90 01 00 14 */ stw r0, 0x14(r1)
/* 80D64B0C 4B FF FF D5 */ bl _delete__16daTagWaterFall_cFv
/* 80D64B10 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80D64B14 7C 08 03 A6 */ mtlr r0
/* 80D64B18 38 21 00 10 */ addi r1, r1, 0x10
/* 80D64B1C 4E 80 00 20 */ blr

View File

@ -1,9 +0,0 @@
lbl_80D64688:
/* 80D64688 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80D6468C 7C 08 02 A6 */ mflr r0
/* 80D64690 90 01 00 14 */ stw r0, 0x14(r1)
/* 80D64694 4B FF FF ED */ bl draw__16daTagWaterFall_cFv
/* 80D64698 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80D6469C 7C 08 03 A6 */ mtlr r0
/* 80D646A0 38 21 00 10 */ addi r1, r1, 0x10
/* 80D646A4 4E 80 00 20 */ blr

View File

@ -1,9 +0,0 @@
lbl_80D64AB8:
/* 80D64AB8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80D64ABC 7C 08 02 A6 */ mflr r0
/* 80D64AC0 90 01 00 14 */ stw r0, 0x14(r1)
/* 80D64AC4 4B FF FD F1 */ bl execute__16daTagWaterFall_cFv
/* 80D64AC8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80D64ACC 7C 08 03 A6 */ mtlr r0
/* 80D64AD0 38 21 00 10 */ addi r1, r1, 0x10
/* 80D64AD4 4E 80 00 20 */ blr

View File

@ -1,144 +0,0 @@
lbl_80D648B4:
/* 80D648B4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80D648B8 7C 08 02 A6 */ mflr r0
/* 80D648BC 90 01 00 14 */ stw r0, 0x14(r1)
/* 80D648C0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80D648C4 93 C1 00 08 */ stw r30, 8(r1)
/* 80D648C8 7C 7F 1B 79 */ or. r31, r3, r3
/* 80D648CC 3C 60 80 D6 */ lis r3, m_master_id@ha /* 0x80D64D94@ha */
/* 80D648D0 38 63 4D 94 */ addi r3, r3, m_master_id@l /* 0x80D64D94@l */
/* 80D648D4 80 63 00 00 */ lwz r3, 0(r3)
/* 80D648D8 41 82 00 0C */ beq lbl_80D648E4
/* 80D648DC 80 1F 00 04 */ lwz r0, 4(r31)
/* 80D648E0 48 00 00 08 */ b lbl_80D648E8
lbl_80D648E4:
/* 80D648E4 38 00 FF FF */ li r0, -1
lbl_80D648E8:
/* 80D648E8 7C 03 00 40 */ cmplw r3, r0
/* 80D648EC 40 82 01 B0 */ bne lbl_80D64A9C
/* 80D648F0 88 1F 05 81 */ lbz r0, 0x581(r31)
/* 80D648F4 28 00 00 00 */ cmplwi r0, 0
/* 80D648F8 41 82 00 40 */ beq lbl_80D64938
/* 80D648FC 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */
/* 80D64900 38 83 CA 54 */ addi r4, r3, g_env_light@l /* 0x8042CA54@l */
/* 80D64904 C0 04 11 E4 */ lfs f0, 0x11e4(r4)
/* 80D64908 D0 1F 05 74 */ stfs f0, 0x574(r31)
/* 80D6490C C0 04 11 E8 */ lfs f0, 0x11e8(r4)
/* 80D64910 D0 1F 05 78 */ stfs f0, 0x578(r31)
/* 80D64914 88 7F 05 81 */ lbz r3, 0x581(r31)
/* 80D64918 38 03 FF FF */ addi r0, r3, -1
/* 80D6491C 98 1F 05 81 */ stb r0, 0x581(r31)
/* 80D64920 88 04 12 C8 */ lbz r0, 0x12c8(r4)
/* 80D64924 98 1F 05 82 */ stb r0, 0x582(r31)
/* 80D64928 3C 60 80 D6 */ lis r3, lit_3803@ha /* 0x80D64D80@ha */
/* 80D6492C C0 03 4D 80 */ lfs f0, lit_3803@l(r3) /* 0x80D64D80@l */
/* 80D64930 D0 1F 05 7C */ stfs f0, 0x57c(r31)
/* 80D64934 48 00 01 68 */ b lbl_80D64A9C
lbl_80D64938:
/* 80D64938 3B C0 00 00 */ li r30, 0
/* 80D6493C 3C 60 80 D6 */ lis r3, s_waterfall__FPvPv@ha /* 0x80D646A8@ha */
/* 80D64940 38 63 46 A8 */ addi r3, r3, s_waterfall__FPvPv@l /* 0x80D646A8@l */
/* 80D64944 7F E4 FB 78 */ mr r4, r31
/* 80D64948 4B 2B C9 F1 */ bl fpcEx_Search__FPFPvPv_PvPv
/* 80D6494C 28 03 00 00 */ cmplwi r3, 0
/* 80D64950 41 82 00 08 */ beq lbl_80D64958
/* 80D64954 3B C0 00 01 */ li r30, 1
lbl_80D64958:
/* 80D64958 57 C0 06 3F */ clrlwi. r0, r30, 0x18
/* 80D6495C 40 82 00 2C */ bne lbl_80D64988
/* 80D64960 88 1F 05 80 */ lbz r0, 0x580(r31)
/* 80D64964 28 00 00 00 */ cmplwi r0, 0
/* 80D64968 40 82 00 20 */ bne lbl_80D64988
/* 80D6496C 3C 60 80 D6 */ lis r3, lit_3803@ha /* 0x80D64D80@ha */
/* 80D64970 C0 23 4D 80 */ lfs f1, lit_3803@l(r3) /* 0x80D64D80@l */
/* 80D64974 C0 1F 05 7C */ lfs f0, 0x57c(r31)
/* 80D64978 FC 01 00 00 */ fcmpu cr0, f1, f0
/* 80D6497C 40 82 00 0C */ bne lbl_80D64988
/* 80D64980 38 60 00 01 */ li r3, 1
/* 80D64984 48 00 01 1C */ b lbl_80D64AA0
lbl_80D64988:
/* 80D64988 88 7F 05 80 */ lbz r3, 0x580(r31)
/* 80D6498C 28 03 00 00 */ cmplwi r3, 0
/* 80D64990 40 82 00 0C */ bne lbl_80D6499C
/* 80D64994 57 C0 06 3F */ clrlwi. r0, r30, 0x18
/* 80D64998 40 82 00 14 */ bne lbl_80D649AC
lbl_80D6499C:
/* 80D6499C 28 03 00 00 */ cmplwi r3, 0
/* 80D649A0 41 82 00 24 */ beq lbl_80D649C4
/* 80D649A4 57 C0 06 3F */ clrlwi. r0, r30, 0x18
/* 80D649A8 40 82 00 1C */ bne lbl_80D649C4
lbl_80D649AC:
/* 80D649AC 3C 60 80 D6 */ lis r3, lit_3803@ha /* 0x80D64D80@ha */
/* 80D649B0 C0 23 4D 80 */ lfs f1, lit_3803@l(r3) /* 0x80D64D80@l */
/* 80D649B4 C0 1F 05 7C */ lfs f0, 0x57c(r31)
/* 80D649B8 EC 01 00 28 */ fsubs f0, f1, f0
/* 80D649BC D0 1F 05 7C */ stfs f0, 0x57c(r31)
/* 80D649C0 9B DF 05 80 */ stb r30, 0x580(r31)
lbl_80D649C4:
/* 80D649C4 38 7F 05 7C */ addi r3, r31, 0x57c
/* 80D649C8 3C 80 80 D6 */ lis r4, lit_3803@ha /* 0x80D64D80@ha */
/* 80D649CC C0 24 4D 80 */ lfs f1, lit_3803@l(r4) /* 0x80D64D80@l */
/* 80D649D0 3C 80 80 D6 */ lis r4, l_HIO@ha /* 0x80D64E10@ha */
/* 80D649D4 38 84 4E 10 */ addi r4, r4, l_HIO@l /* 0x80D64E10@l */
/* 80D649D8 C0 04 00 10 */ lfs f0, 0x10(r4)
/* 80D649DC EC 41 00 24 */ fdivs f2, f1, f0
/* 80D649E0 4B 50 BD 61 */ bl cLib_chaseF__FPfff
/* 80D649E4 88 1F 05 80 */ lbz r0, 0x580(r31)
/* 80D649E8 28 00 00 00 */ cmplwi r0, 0
/* 80D649EC 40 82 00 18 */ bne lbl_80D64A04
/* 80D649F0 38 60 00 07 */ li r3, 7
/* 80D649F4 88 9F 05 82 */ lbz r4, 0x582(r31)
/* 80D649F8 C0 3F 05 7C */ lfs f1, 0x57c(r31)
/* 80D649FC 4B 44 3E 11 */ bl dKy_custom_colset__FUcUcf
/* 80D64A00 48 00 00 14 */ b lbl_80D64A14
lbl_80D64A04:
/* 80D64A04 88 7F 05 82 */ lbz r3, 0x582(r31)
/* 80D64A08 38 80 00 07 */ li r4, 7
/* 80D64A0C C0 3F 05 7C */ lfs f1, 0x57c(r31)
/* 80D64A10 4B 44 3D FD */ bl dKy_custom_colset__FUcUcf
lbl_80D64A14:
/* 80D64A14 3C 60 80 D6 */ lis r3, l_HIO@ha /* 0x80D64E10@ha */
/* 80D64A18 38 63 4E 10 */ addi r3, r3, l_HIO@l /* 0x80D64E10@l */
/* 80D64A1C 88 03 00 05 */ lbz r0, 5(r3)
/* 80D64A20 28 00 00 00 */ cmplwi r0, 0
/* 80D64A24 41 82 00 78 */ beq lbl_80D64A9C
/* 80D64A28 88 1F 05 80 */ lbz r0, 0x580(r31)
/* 80D64A2C 28 00 00 00 */ cmplwi r0, 0
/* 80D64A30 41 82 00 1C */ beq lbl_80D64A4C
/* 80D64A34 3C 60 80 D6 */ lis r3, lit_3803@ha /* 0x80D64D80@ha */
/* 80D64A38 C0 03 4D 80 */ lfs f0, lit_3803@l(r3) /* 0x80D64D80@l */
/* 80D64A3C C0 3F 05 7C */ lfs f1, 0x57c(r31)
/* 80D64A40 EC 40 08 28 */ fsubs f2, f0, f1
/* 80D64A44 FC 60 08 90 */ fmr f3, f1
/* 80D64A48 48 00 00 18 */ b lbl_80D64A60
lbl_80D64A4C:
/* 80D64A4C C0 3F 05 7C */ lfs f1, 0x57c(r31)
/* 80D64A50 FC 40 08 90 */ fmr f2, f1
/* 80D64A54 3C 60 80 D6 */ lis r3, lit_3803@ha /* 0x80D64D80@ha */
/* 80D64A58 C0 03 4D 80 */ lfs f0, lit_3803@l(r3) /* 0x80D64D80@l */
/* 80D64A5C EC 60 08 28 */ fsubs f3, f0, f1
lbl_80D64A60:
/* 80D64A60 C0 1F 05 74 */ lfs f0, 0x574(r31)
/* 80D64A64 EC 20 00 B2 */ fmuls f1, f0, f2
/* 80D64A68 3C 60 80 D6 */ lis r3, l_HIO@ha /* 0x80D64E10@ha */
/* 80D64A6C 38 63 4E 10 */ addi r3, r3, l_HIO@l /* 0x80D64E10@l */
/* 80D64A70 C0 03 00 08 */ lfs f0, 8(r3)
/* 80D64A74 EC 00 00 F2 */ fmuls f0, f0, f3
/* 80D64A78 EC 21 00 2A */ fadds f1, f1, f0
/* 80D64A7C C0 1F 05 78 */ lfs f0, 0x578(r31)
/* 80D64A80 EC 40 00 B2 */ fmuls f2, f0, f2
/* 80D64A84 C0 03 00 0C */ lfs f0, 0xc(r3)
/* 80D64A88 EC 00 00 F2 */ fmuls f0, f0, f3
/* 80D64A8C EC 42 00 2A */ fadds f2, f2, f0
/* 80D64A90 3C 60 80 D6 */ lis r3, lit_3803@ha /* 0x80D64D80@ha */
/* 80D64A94 C0 63 4D 80 */ lfs f3, lit_3803@l(r3) /* 0x80D64D80@l */
/* 80D64A98 4B 44 36 39 */ bl dKy_fog_startendz_set__Ffff
lbl_80D64A9C:
/* 80D64A9C 38 60 00 01 */ li r3, 1
lbl_80D64AA0:
/* 80D64AA0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80D64AA4 83 C1 00 08 */ lwz r30, 8(r1)
/* 80D64AA8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80D64AAC 7C 08 03 A6 */ mtlr r0
/* 80D64AB0 38 21 00 10 */ addi r1, r1, 0x10
/* 80D64AB4 4E 80 00 20 */ blr

View File

@ -1,18 +0,0 @@
lbl_80D64724:
/* 80D64724 C0 03 05 6C */ lfs f0, 0x56c(r3)
/* 80D64728 C0 83 05 68 */ lfs f4, 0x568(r3)
/* 80D6472C EC 60 00 32 */ fmuls f3, f0, f0
/* 80D64730 3C 60 80 D6 */ lis r3, lit_3803@ha /* 0x80D64D80@ha */
/* 80D64734 C0 43 4D 80 */ lfs f2, lit_3803@l(r3) /* 0x80D64D80@l */
/* 80D64738 EC 21 00 72 */ fmuls f1, f1, f1
/* 80D6473C EC 04 01 32 */ fmuls f0, f4, f4
/* 80D64740 EC 01 00 24 */ fdivs f0, f1, f0
/* 80D64744 EC 02 00 28 */ fsubs f0, f2, f0
/* 80D64748 EC 23 00 32 */ fmuls f1, f3, f0
/* 80D6474C 3C 60 80 D6 */ lis r3, lit_3758@ha /* 0x80D64D74@ha */
/* 80D64750 C0 03 4D 74 */ lfs f0, lit_3758@l(r3) /* 0x80D64D74@l */
/* 80D64754 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80D64758 4C 81 00 20 */ blelr
/* 80D6475C FC 00 08 34 */ frsqrte f0, f1
/* 80D64760 EC 20 00 72 */ fmuls f1, f0, f1
/* 80D64764 4E 80 00 20 */ blr

View File

@ -1,36 +0,0 @@
lbl_80D646A8:
/* 80D646A8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80D646AC 7C 08 02 A6 */ mflr r0
/* 80D646B0 90 01 00 14 */ stw r0, 0x14(r1)
/* 80D646B4 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80D646B8 7C 7F 1B 78 */ mr r31, r3
/* 80D646BC 4B 2B 46 25 */ bl fopAc_IsActor__FPv
/* 80D646C0 2C 03 00 00 */ cmpwi r3, 0
/* 80D646C4 41 82 00 48 */ beq lbl_80D6470C
/* 80D646C8 A8 1F 00 08 */ lha r0, 8(r31)
/* 80D646CC 2C 00 01 F8 */ cmpwi r0, 0x1f8
/* 80D646D0 40 82 00 3C */ bne lbl_80D6470C
/* 80D646D4 28 1F 00 00 */ cmplwi r31, 0
/* 80D646D8 41 82 00 0C */ beq lbl_80D646E4
/* 80D646DC 80 7F 00 04 */ lwz r3, 4(r31)
/* 80D646E0 48 00 00 08 */ b lbl_80D646E8
lbl_80D646E4:
/* 80D646E4 38 60 FF FF */ li r3, -1
lbl_80D646E8:
/* 80D646E8 4B 2B DA 51 */ bl fpcM_IsCreating__FUi
/* 80D646EC 2C 03 00 00 */ cmpwi r3, 0
/* 80D646F0 40 82 00 1C */ bne lbl_80D6470C
/* 80D646F4 7F E3 FB 78 */ mr r3, r31
/* 80D646F8 48 00 01 75 */ bl checkHitWaterFallCamera__16daTagWaterFall_cFv
/* 80D646FC 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80D64700 41 82 00 0C */ beq lbl_80D6470C
/* 80D64704 7F E3 FB 78 */ mr r3, r31
/* 80D64708 48 00 00 08 */ b lbl_80D64710
lbl_80D6470C:
/* 80D6470C 38 60 00 00 */ li r3, 0
lbl_80D64710:
/* 80D64710 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80D64714 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80D64718 7C 08 03 A6 */ mtlr r0
/* 80D6471C 38 21 00 10 */ addi r1, r1, 0x10
/* 80D64720 4E 80 00 20 */ blr

View File

@ -2,5 +2,52 @@
#define D_A_TAG_WATERFALL_H
#include "dolphin/types.h"
#include "f_op/f_op_actor_mng.h"
#endif /* D_A_TAG_WATERFALL_H */
class daTagWaterFall_c : public fopAc_ac_c {
public:
daTagWaterFall_c() {}
/* 80D64680 */ int draw();
/* 80D64724 */ f32 getEllipseY(f32);
/* 80D64768 */ bool checkHitWaterFall(cXyz);
/* 80D6486C */ bool checkHitWaterFallCamera();
/* 80D648B4 */ int execute();
/* 80D64AE0 */ int _delete();
/* 80D64B20 */ cPhs__Step create();
private:
/* 0x568 */ f32 mCylinderRadiusA;
/* 0x56C */ f32 mCylinderRadiusB;
/* 0x570 */ f32 mCylinderHeight;
/* 0x574 */ f32 mFogNear;
/* 0x578 */ f32 mFogFar;
/* 0x57C */ f32 mColorBlend;
/* 0x580 */ bool mPrevCameraInWaterfall;
/* 0x581 */ u8 mFrameCountdown;
/* 0x582 */ u8 mColpat;
/* 0x583 */ u8 mIsMasterWaterfallTag;
};
struct daTagWaterFall_HIO_c {
public:
/* 80D6462C */ daTagWaterFall_HIO_c();
/* 80D64CDC */ virtual ~daTagWaterFall_HIO_c();
/* 0x00 */ /* vtable */
/* 0x04 */ s8 field_0x04;
/* 0x05 */ bool mShouldModifyFog;
/* 0x06 */ u8 pad0[2];
/* 0x08 */ f32 mBaseFogNear;
/* 0x0C */ f32 mBaseFogFar;
/* 0x10 */ f32 mColorBlendStepDivisor;
/* 0x14 */ u8 field_0x14;
/* 0x15 */ u8 field_0x15;
/* 0x16 */ u8 pad1[2];
/* 0x18 */ f32 field_0x18;
/* 0x1C */ f32 field_0x1C;
/* 0x20 */ f32 field_0x20;
};
#endif /* D_A_TAG_WATERFALL_H */

View File

@ -1,332 +1,296 @@
//
// Generated By: dol2asm
// Translation Unit: d_a_tag_waterfall
//
/**
/* Translation Unit: d_a_tag_waterfall
/*
*/
#include "rel/d/a/tag/d_a_tag_waterfall/d_a_tag_waterfall.h"
#include "dol2asm.h"
#include "dolphin/types.h"
//
// Types:
//
struct mDoMtx_stack_c {
/* 8000CD9C */ void transM(f32, f32, f32);
static u8 now[48];
};
struct fopAc_ac_c {
/* 80018B64 */ fopAc_ac_c();
};
struct cXyz {};
struct daTagWaterFall_c {
/* 80D64680 */ bool draw();
/* 80D64724 */ void getEllipseY(f32);
/* 80D64768 */ void checkHitWaterFall(cXyz);
/* 80D6486C */ void checkHitWaterFallCamera();
/* 80D648B4 */ void execute();
/* 80D64AE0 */ void _delete();
/* 80D64B20 */ void create();
};
struct daTagWaterFall_HIO_c {
/* 80D6462C */ daTagWaterFall_HIO_c();
/* 80D64CDC */ ~daTagWaterFall_HIO_c();
};
#include "JSystem/JKernel/JKRHeap.h"
#include "JSystem/JMath/JMath.h"
#include "SSystem/SComponent/c_xyz.h"
#include "d/com/d_com_inf_game.h"
#include "d/d_procname.h"
//
// Forward References:
//
extern "C" void __ct__20daTagWaterFall_HIO_cFv();
extern "C" bool draw__16daTagWaterFall_cFv();
extern "C" static void daTagWaterFall_Draw__FP16daTagWaterFall_c();
extern "C" static void s_waterfall__FPvPv();
extern "C" void getEllipseY__16daTagWaterFall_cFf();
extern "C" void checkHitWaterFall__16daTagWaterFall_cF4cXyz();
extern "C" void checkHitWaterFallCamera__16daTagWaterFall_cFv();
extern "C" void execute__16daTagWaterFall_cFv();
extern "C" static void daTagWaterFall_Execute__FP16daTagWaterFall_c();
extern "C" static bool daTagWaterFall_IsDelete__FP16daTagWaterFall_c();
extern "C" void _delete__16daTagWaterFall_cFv();
extern "C" static void daTagWaterFall_Delete__FP16daTagWaterFall_c();
extern "C" void create__16daTagWaterFall_cFv();
extern "C" static void daTagWaterFall_Create__FP16daTagWaterFall_c();
extern "C" void __dt__20daTagWaterFall_HIO_cFv();
extern "C" void __sinit_d_a_tag_waterfall_cpp();
//
// External References:
//
extern "C" void mDoMtx_YrotS__FPA4_fs();
extern "C" void transM__14mDoMtx_stack_cFfff();
extern "C" void __ct__10fopAc_ac_cFv();
extern "C" void fopAc_IsActor__FPv();
extern "C" void fpcEx_Search__FPFPvPv_PvPv();
extern "C" void fpcM_IsCreating__FUi();
extern "C" void dKy_fog_startendz_set__Ffff();
extern "C" void dKy_custom_colset__FUcUcf();
extern "C" void cLib_chaseF__FPfff();
extern "C" void __dl__FPv();
extern "C" void PSMTXMultVec();
extern "C" extern void* g_fopAc_Method[8];
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
extern "C" u8 now__14mDoMtx_stack_c[48];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern u8 g_env_light[4880];
extern "C" void __register_global_object();
//
// Declarations:
//
/* ############################################################################################## */
/* 80D64D74-80D64D78 000000 0004+00 4/4 0/0 0/0 .rodata @3758 */
SECTION_RODATA static u8 const lit_3758[4] = {
0x00,
0x00,
0x00,
0x00,
};
COMPILER_STRIP_GATE(0x80D64D74, &lit_3758);
/* 80D64D78-80D64D7C 000004 0004+00 0/1 0/0 0/0 .rodata @3759 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3759 = 10000.0f;
COMPILER_STRIP_GATE(0x80D64D78, &lit_3759);
#pragma pop
/* 80D64D7C-80D64D80 000008 0004+00 0/1 0/0 0/0 .rodata @3760 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3760 = 3.0f;
COMPILER_STRIP_GATE(0x80D64D7C, &lit_3760);
#pragma pop
static int daTagWaterFall_Draw(daTagWaterFall_c*);
static void* s_waterfall(void*, void*);
static int daTagWaterFall_Execute(daTagWaterFall_c*);
static int daTagWaterFall_IsDelete(daTagWaterFall_c*);
static int daTagWaterFall_Delete(daTagWaterFall_c*);
static int daTagWaterFall_Create(daTagWaterFall_c*);
/* 80D64D94-80D64D98 000000 0004+00 2/2 0/0 0/0 .data m_master_id */
SECTION_DATA static u32 m_master_id = 0xFFFFFFFF;
static u32 m_master_id = static_cast<u32>(0xFFFFFFFF);
/* 80D64D98-80D64DB8 -00001 0020+00 1/0 0/0 0/0 .data l_daTagWaterFall_Method */
SECTION_DATA static void* l_daTagWaterFall_Method[8] = {
(void*)daTagWaterFall_Create__FP16daTagWaterFall_c,
(void*)daTagWaterFall_Delete__FP16daTagWaterFall_c,
(void*)daTagWaterFall_Execute__FP16daTagWaterFall_c,
(void*)daTagWaterFall_IsDelete__FP16daTagWaterFall_c,
(void*)daTagWaterFall_Draw__FP16daTagWaterFall_c,
(void*)NULL,
(void*)NULL,
(void*)NULL,
static actor_method_class l_daTagWaterFall_Method = {
(process_method_func)daTagWaterFall_Create, (process_method_func)daTagWaterFall_Delete,
(process_method_func)daTagWaterFall_Execute, (process_method_func)daTagWaterFall_IsDelete,
(process_method_func)daTagWaterFall_Draw
};
/* 80D64DB8-80D64DE8 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Tag_WaterFall */
SECTION_DATA extern void* g_profile_Tag_WaterFall[12] = {
(void*)0xFFFFFFFD, (void*)0x0007FFFD,
(void*)0x01F80000, (void*)&g_fpcLf_Method,
(void*)0x00000584, (void*)NULL,
(void*)NULL, (void*)&g_fopAc_Method,
(void*)0x00C60000, (void*)&l_daTagWaterFall_Method,
(void*)0x00044000, (void*)NULL,
};
/* 80D64DE8-80D64DF4 000054 000C+00 2/2 0/0 0/0 .data __vt__20daTagWaterFall_HIO_c */
SECTION_DATA extern void* __vt__20daTagWaterFall_HIO_c[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__20daTagWaterFall_HIO_cFv,
extern actor_process_profile_definition g_profile_Tag_WaterFall = {
-3,
7,
0xFFFD,
PROC_Tag_WaterFall,
&g_fpcLf_Method.mBase,
sizeof(daTagWaterFall_c),
0,
0,
&g_fopAc_Method.base,
0x00C6,
&l_daTagWaterFall_Method,
0x00044000,
0,
0
};
/* 80D6462C-80D64680 0000EC 0054+00 1/1 0/0 0/0 .text __ct__20daTagWaterFall_HIO_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm daTagWaterFall_HIO_c::daTagWaterFall_HIO_c() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_waterfall/d_a_tag_waterfall/__ct__20daTagWaterFall_HIO_cFv.s"
daTagWaterFall_HIO_c::daTagWaterFall_HIO_c() {
field_0x04 = -1;
mBaseFogNear = 0.0f;
mBaseFogFar = 10000.0f;
mColorBlendStepDivisor = 3.0f;
mShouldModifyFog = false;
field_0x14 = 0;
field_0x15 = 0;
field_0x18 = 0.0f;
field_0x1C = 0.0f;
field_0x20 = 0.0f;
}
#pragma pop
/* 80D64680-80D64688 000140 0008+00 1/1 0/0 0/0 .text draw__16daTagWaterFall_cFv */
bool daTagWaterFall_c::draw() {
return true;
int daTagWaterFall_c::draw() {
return 1;
}
/* 80D64688-80D646A8 000148 0020+00 1/0 0/0 0/0 .text daTagWaterFall_Draw__FP16daTagWaterFall_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTagWaterFall_Draw(daTagWaterFall_c* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_waterfall/d_a_tag_waterfall/daTagWaterFall_Draw__FP16daTagWaterFall_c.s"
static int daTagWaterFall_Draw(daTagWaterFall_c* i_this) {
i_this->draw();
}
#pragma pop
/* 80D646A8-80D64724 000168 007C+00 1/1 0/0 0/0 .text s_waterfall__FPvPv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void s_waterfall(void* param_0, void* param_1) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_waterfall/d_a_tag_waterfall/s_waterfall__FPvPv.s"
}
#pragma pop
void* s_waterfall(void* pProc, void* unused) {
if (fopAc_IsActor(pProc)) {
if (fopAcM_GetName(pProc) == PROC_Tag_WaterFall) {
daTagWaterFall_c* pProcWaterfallTag = static_cast<daTagWaterFall_c*>(pProc);
/* ############################################################################################## */
/* 80D64D80-80D64D84 00000C 0004+00 2/2 0/0 0/0 .rodata @3803 */
SECTION_RODATA static f32 const lit_3803 = 1.0f;
COMPILER_STRIP_GATE(0x80D64D80, &lit_3803);
s32 id = fpcM_GetID(pProc);
if (!fpcM_IsCreating(id)) {
if (pProcWaterfallTag->checkHitWaterFallCamera()) {
return pProc;
}
}
}
}
return NULL;
}
/* 80D64724-80D64768 0001E4 0044+00 1/1 0/0 0/0 .text getEllipseY__16daTagWaterFall_cFf
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTagWaterFall_c::getEllipseY(f32 param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_waterfall/d_a_tag_waterfall/getEllipseY__16daTagWaterFall_cFf.s"
f32 daTagWaterFall_c::getEllipseY(f32 x) {
// Ellipse is in standard form;
// x,y-plane of ellipse is the horizontal world plane
f32 ellipseRadiusB = mCylinderRadiusB;
f32 ellipseRadiusA = mCylinderRadiusA;
f32 ellipseRadiusBSquared = ellipseRadiusB * ellipseRadiusB;
f32 ellipseRadiusASquared = ellipseRadiusA * ellipseRadiusA;
f32 ellipseYSquared_OverBSquared = (1.0f - ((x * x) / (ellipseRadiusASquared)));
f32 ellipseYSquared = (ellipseRadiusBSquared)*ellipseYSquared_OverBSquared;
return JMAFastSqrt(ellipseYSquared);
}
#pragma pop
/* 80D64768-80D6486C 000228 0104+00 1/1 0/0 2/2 .text checkHitWaterFall__16daTagWaterFall_cF4cXyz
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTagWaterFall_c::checkHitWaterFall(cXyz param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_waterfall/d_a_tag_waterfall/checkHitWaterFall__16daTagWaterFall_cF4cXyz.s"
bool daTagWaterFall_c::checkHitWaterFall(cXyz objPos) {
Vec dst;
f32 ellipseRadiusA = mCylinderRadiusA;
mDoMtx_stack_c::YrotS(-fopAcM_GetShapeAngle_p(this).y);
const cXyz& waterfallTagPos = fopAcM_GetPosition(this);
mDoMtx_stack_c::transM(-waterfallTagPos.x, -waterfallTagPos.y, -waterfallTagPos.z);
mDoMtx_stack_c::multVec(&objPos, &dst);
if (fabsf(dst.x) < ellipseRadiusA) {
const f32 absEllipseY = fabsf(getEllipseY(dst.x));
if (fabsf(dst.z) < absEllipseY) {
if (waterfallTagPos.y < objPos.y) {
// Instruction reordering occurs when mCylinderHeight == 0.0f is used
if (!mCylinderHeight || (waterfallTagPos.y + mCylinderHeight) > objPos.y)
{
return true;
}
}
}
}
return false;
}
#pragma pop
/* 80D6486C-80D648B4 00032C 0048+00 1/1 0/0 0/0 .text
* checkHitWaterFallCamera__16daTagWaterFall_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTagWaterFall_c::checkHitWaterFallCamera() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_waterfall/d_a_tag_waterfall/checkHitWaterFallCamera__16daTagWaterFall_cFv.s"
bool daTagWaterFall_c::checkHitWaterFallCamera() {
const camera_class* camera = dComIfGp_getCamera(0);
return checkHitWaterFall(camera->mLookat.mEye);
}
#pragma pop
/* ############################################################################################## */
/* 80D64E00-80D64E04 000008 0004+00 2/2 0/0 0/0 .bss None */
static u8 data_80D64E00[4];
/* 80D64E04-80D64E10 00000C 000C+00 1/1 0/0 0/0 .bss @3753 */
static u8 lit_3753[12];
static bool masterWaterfallTagExists;
/* 80D64E10-80D64E34 000018 0024+00 3/3 0/0 0/0 .bss l_HIO */
static u8 l_HIO[36];
static daTagWaterFall_HIO_c l_HIO;
/* 80D648B4-80D64AB8 000374 0204+00 1/1 0/0 0/0 .text execute__16daTagWaterFall_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTagWaterFall_c::execute() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_waterfall/d_a_tag_waterfall/execute__16daTagWaterFall_cFv.s"
int daTagWaterFall_c::execute() {
u32 masterId = m_master_id;
u32 waterfallId = fpcM_GetID(this);
if (masterId == waterfallId) {
if (mFrameCountdown) {
const dScnKy_env_light_c* const envLight = i_dKy_getEnvlight();
mFogNear = envLight->mFogNear;
mFogFar = envLight->mFogFar;
mFrameCountdown--;
mColpat = envLight->mColpatWeather;
mColorBlend = 1.0f;
} else {
bool currCameraInWaterfall = false;
if (fpcEx_Search(s_waterfall, this)) {
currCameraInWaterfall = true;
}
if (!currCameraInWaterfall) {
if (!mPrevCameraInWaterfall && mColorBlend == 1.0f) {
return 1;
}
}
if ((!mPrevCameraInWaterfall && currCameraInWaterfall) || (mPrevCameraInWaterfall && !currCameraInWaterfall)) {
mColorBlend = 1.0f - mColorBlend;
mPrevCameraInWaterfall = currCameraInWaterfall;
}
cLib_chaseF(&mColorBlend, 1.0f, 1.0f / l_HIO.mColorBlendStepDivisor);
if (!mPrevCameraInWaterfall) {
dKy_custom_colset(7, mColpat, mColorBlend);
} else {
dKy_custom_colset(mColpat, 7, mColorBlend);
}
f32 instanceFogMultiplier;
f32 HIOFogMultiplier;
if (l_HIO.mShouldModifyFog) {
if (mPrevCameraInWaterfall) {
instanceFogMultiplier = 1.0f - mColorBlend;
HIOFogMultiplier = mColorBlend;
} else {
instanceFogMultiplier = mColorBlend;
HIOFogMultiplier = 1.0f - mColorBlend;
};
f32 fogParam0 = (mFogNear * instanceFogMultiplier) + (l_HIO.mBaseFogNear * HIOFogMultiplier);
f32 fogParam1 = (mFogFar * instanceFogMultiplier) + (l_HIO.mBaseFogFar * HIOFogMultiplier);
dKy_fog_startendz_set(fogParam0, fogParam1, 1.0f);
}
}
}
return 1;
}
#pragma pop
/* 80D64AB8-80D64AD8 000578 0020+00 1/0 0/0 0/0 .text daTagWaterFall_Execute__FP16daTagWaterFall_c
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTagWaterFall_Execute(daTagWaterFall_c* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_waterfall/d_a_tag_waterfall/daTagWaterFall_Execute__FP16daTagWaterFall_c.s"
static int daTagWaterFall_Execute(daTagWaterFall_c* i_this) {
i_this->execute();
}
#pragma pop
/* 80D64AD8-80D64AE0 000598 0008+00 1/0 0/0 0/0 .text
* daTagWaterFall_IsDelete__FP16daTagWaterFall_c */
static bool daTagWaterFall_IsDelete(daTagWaterFall_c* param_0) {
return true;
static int daTagWaterFall_IsDelete(daTagWaterFall_c* i_this) {
return 1;
}
/* 80D64AE0-80D64B00 0005A0 0020+00 1/1 0/0 0/0 .text _delete__16daTagWaterFall_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTagWaterFall_c::_delete() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_waterfall/d_a_tag_waterfall/_delete__16daTagWaterFall_cFv.s"
int daTagWaterFall_c::_delete() {
if (mIsMasterWaterfallTag) {
masterWaterfallTagExists = false;
}
return 1;
}
#pragma pop
/* 80D64B00-80D64B20 0005C0 0020+00 1/0 0/0 0/0 .text daTagWaterFall_Delete__FP16daTagWaterFall_c
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTagWaterFall_Delete(daTagWaterFall_c* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_waterfall/d_a_tag_waterfall/daTagWaterFall_Delete__FP16daTagWaterFall_c.s"
static int daTagWaterFall_Delete(daTagWaterFall_c* i_this) {
i_this->_delete();
}
#pragma pop
/* ############################################################################################## */
/* 80D64D84-80D64D8C 000010 0008+00 1/1 0/0 0/0 .rodata @3959 */
SECTION_RODATA static u8 const lit_3959[8] = {
0x43, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x80D64D84, &lit_3959);
/* 80D64D8C-80D64D94 000018 0008+00 1/1 0/0 0/0 .rodata @3960 */
SECTION_RODATA static u8 const lit_3960[8] = {
0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x80D64D8C, &lit_3960);
/* 80D64B20-80D64CBC 0005E0 019C+00 1/1 0/0 0/0 .text create__16daTagWaterFall_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTagWaterFall_c::create() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_waterfall/d_a_tag_waterfall/create__16daTagWaterFall_cFv.s"
cPhs__Step daTagWaterFall_c::create() {
if (!fopAcM_CheckCondition(this, 8)) {
new (this) daTagWaterFall_c();
fopAcM_OnCondition(this, 8);
}
if (masterWaterfallTagExists == false) {
masterWaterfallTagExists = true;
mIsMasterWaterfallTag = 1;
l_HIO.field_0x04 = -1;
}
mCylinderRadiusA = static_cast<f32>(fpcM_GetParam(this) & 0x0000FFFF);
if (mCylinderRadiusA < 0.0f) {
mCylinderRadiusB = 0.0f;
}
mCylinderHeight = static_cast<f32>((fpcM_GetParam(this) & 0xFFFF0000) >> 16);
if (mCylinderHeight < 0.0f) {
mCylinderHeight = 0.0f;
}
mCylinderRadiusB = static_cast<f32>((fopAcM_GetAngle_p(this).x & 0x0000FFFF));
if (mCylinderRadiusB <= 0.0f) {
mCylinderRadiusB = mCylinderRadiusA;
}
fopAcM_GetShapeAngle_p(this).x = 0;
fopAcM_GetAngle_p(this).x = 0;
if (m_master_id + (1 << 16) == 0xFFFF) {
u32 id = fopAcM_GetID(this);
m_master_id = id;
mColorBlend = 0.0f;
mFrameCountdown = 30;
}
return cPhs_COMPLEATE_e;
}
#pragma pop
/* 80D64CBC-80D64CDC 00077C 0020+00 1/0 0/0 0/0 .text daTagWaterFall_Create__FP16daTagWaterFall_c
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTagWaterFall_Create(daTagWaterFall_c* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_waterfall/d_a_tag_waterfall/daTagWaterFall_Create__FP16daTagWaterFall_c.s"
static int daTagWaterFall_Create(daTagWaterFall_c* i_this) {
i_this->create();
}
#pragma pop
/* 80D64CDC-80D64D24 00079C 0048+00 2/1 0/0 0/0 .text __dt__20daTagWaterFall_HIO_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm daTagWaterFall_HIO_c::~daTagWaterFall_HIO_c() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_waterfall/d_a_tag_waterfall/__dt__20daTagWaterFall_HIO_cFv.s"
}
#pragma pop
/* 80D64D24-80D64D60 0007E4 003C+00 0/0 1/0 0/0 .text __sinit_d_a_tag_waterfall_cpp */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void __sinit_d_a_tag_waterfall_cpp() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_waterfall/d_a_tag_waterfall/__sinit_d_a_tag_waterfall_cpp.s"
}
#pragma pop
#pragma push
#pragma force_active on
REGISTER_CTORS(0x80D64D24, __sinit_d_a_tag_waterfall_cpp);
#pragma pop
daTagWaterFall_HIO_c::~daTagWaterFall_HIO_c() {}