diff --git a/Progress.md b/Progress.md index 1120046116d..3babc615100 100644 --- a/Progress.md +++ b/Progress.md @@ -21,8 +21,8 @@ Total | 32.271322% | 1297524 | 4020672 Section | Percentage | Decompiled (bytes) | Total (bytes) ---|---|---|--- main.dol | 32.271322% | 1297524 | 4020672 -RELs | 33.163587% | 3813920 | 11500324 -Total | 32.932448% | 5111444 | 15520996 +RELs | 33.171100% | 3814784 | 11500324 +Total | 32.938015% | 5112308 | 15520996 ## RELs @@ -762,7 +762,7 @@ d_a_tag_setrestart | 100.000000% | 1840 | 1840 d_a_tag_shop_camera | 62.541806% | 748 | 1196 d_a_tag_shop_item | 41.944848% | 1156 | 2756 d_a_tag_smk_emt | 50.127226% | 788 | 1572 -d_a_tag_spinner | 45.850622% | 884 | 1928 +d_a_tag_spinner | 90.663900% | 1748 | 1928 d_a_tag_sppath | 33.333333% | 2040 | 6120 d_a_tag_spring | 45.780591% | 868 | 1896 d_a_tag_ss_drink | 36.483740% | 1436 | 3936 @@ -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.163587% | 3813920 | 11500324 +Total | 33.171100% | 3814784 | 11500324 diff --git a/asm/rel/d/a/tag/d_a_tag_spinner/d_a_tag_spinner/CheckCreateHeap__FP10fopAc_ac_c.s b/asm/rel/d/a/tag/d_a_tag_spinner/d_a_tag_spinner/CheckCreateHeap__FP10fopAc_ac_c.s deleted file mode 100644 index 61033e34a88..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_spinner/d_a_tag_spinner/CheckCreateHeap__FP10fopAc_ac_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80D616F8: -/* 80D616F8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D616FC 7C 08 02 A6 */ mflr r0 -/* 80D61700 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D61704 48 00 02 69 */ bl CreateHeap__14daTagSpinner_cFv -/* 80D61708 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D6170C 7C 08 03 A6 */ mtlr r0 -/* 80D61710 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D61714 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_spinner/d_a_tag_spinner/Create__14daTagSpinner_cFv.s b/asm/rel/d/a/tag/d_a_tag_spinner/d_a_tag_spinner/Create__14daTagSpinner_cFv.s deleted file mode 100644 index 27fccb9ebc8..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_spinner/d_a_tag_spinner/Create__14daTagSpinner_cFv.s +++ /dev/null @@ -1,21 +0,0 @@ -lbl_80D6191C: -/* 80D6191C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D61920 7C 08 02 A6 */ mflr r0 -/* 80D61924 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D61928 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80D6192C 7C 7F 1B 78 */ mr r31, r3 -/* 80D61930 4B FF FF 75 */ bl initBaseMtx__14daTagSpinner_cFv -/* 80D61934 3C 60 80 D6 */ lis r3, lit_3715@ha /* 0x80D61B44@ha */ -/* 80D61938 C0 23 1B 44 */ lfs f1, lit_3715@l(r3) /* 0x80D61B44@l */ -/* 80D6193C C0 1F 04 EC */ lfs f0, 0x4ec(r31) -/* 80D61940 EC 01 00 32 */ fmuls f0, f1, f0 -/* 80D61944 D0 1F 05 68 */ stfs f0, 0x568(r31) -/* 80D61948 C0 1F 04 F0 */ lfs f0, 0x4f0(r31) -/* 80D6194C EC 01 00 32 */ fmuls f0, f1, f0 -/* 80D61950 D0 1F 05 6C */ stfs f0, 0x56c(r31) -/* 80D61954 38 60 00 01 */ li r3, 1 -/* 80D61958 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80D6195C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D61960 7C 08 03 A6 */ mtlr r0 -/* 80D61964 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D61968 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_spinner/d_a_tag_spinner/daTagSpinner_Create__FP10fopAc_ac_c.s b/asm/rel/d/a/tag/d_a_tag_spinner/d_a_tag_spinner/daTagSpinner_Create__FP10fopAc_ac_c.s deleted file mode 100644 index bb74c3cd488..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_spinner/d_a_tag_spinner/daTagSpinner_Create__FP10fopAc_ac_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80D61AFC: -/* 80D61AFC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D61B00 7C 08 02 A6 */ mflr r0 -/* 80D61B04 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D61B08 4B FF FE 6D */ bl create__14daTagSpinner_cFv -/* 80D61B0C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D61B10 7C 08 03 A6 */ mtlr r0 -/* 80D61B14 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D61B18 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_spinner/d_a_tag_spinner/daTagSpinner_Delete__FP14daTagSpinner_c.s b/asm/rel/d/a/tag/d_a_tag_spinner/d_a_tag_spinner/daTagSpinner_Delete__FP14daTagSpinner_c.s deleted file mode 100644 index 6e11da091fd..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_spinner/d_a_tag_spinner/daTagSpinner_Delete__FP14daTagSpinner_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80D61ADC: -/* 80D61ADC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D61AE0 7C 08 02 A6 */ mflr r0 -/* 80D61AE4 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D61AE8 4B FF FF CD */ bl _delete__14daTagSpinner_cFv -/* 80D61AEC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D61AF0 7C 08 03 A6 */ mtlr r0 -/* 80D61AF4 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D61AF8 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_spinner/d_a_tag_spinner/daTagSpinner_Execute__FP14daTagSpinner_c.s b/asm/rel/d/a/tag/d_a_tag_spinner/d_a_tag_spinner/daTagSpinner_Execute__FP14daTagSpinner_c.s deleted file mode 100644 index 76f9a6c5b10..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_spinner/d_a_tag_spinner/daTagSpinner_Execute__FP14daTagSpinner_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80D61ABC: -/* 80D61ABC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D61AC0 7C 08 02 A6 */ mflr r0 -/* 80D61AC4 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D61AC8 4B FF FF 39 */ bl execute__14daTagSpinner_cFv -/* 80D61ACC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D61AD0 7C 08 03 A6 */ mtlr r0 -/* 80D61AD4 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D61AD8 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_spinner/d_a_tag_spinner/func_80D61974.s b/asm/rel/d/a/tag/d_a_tag_spinner/d_a_tag_spinner/func_80D61974.s deleted file mode 100644 index 7aa01d1e459..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_spinner/d_a_tag_spinner/func_80D61974.s +++ /dev/null @@ -1,41 +0,0 @@ -lbl_80D61974: -/* 80D61974 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D61978 7C 08 02 A6 */ mflr r0 -/* 80D6197C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D61980 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80D61984 7C 7F 1B 78 */ mr r31, r3 -/* 80D61988 80 03 04 A0 */ lwz r0, 0x4a0(r3) -/* 80D6198C 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c -/* 80D61990 40 82 00 1C */ bne lbl_80D619AC -/* 80D61994 28 1F 00 00 */ cmplwi r31, 0 -/* 80D61998 41 82 00 08 */ beq lbl_80D619A0 -/* 80D6199C 4B 2B 71 C9 */ bl __ct__10fopAc_ac_cFv -lbl_80D619A0: -/* 80D619A0 80 1F 04 A0 */ lwz r0, 0x4a0(r31) -/* 80D619A4 60 00 00 08 */ ori r0, r0, 8 -/* 80D619A8 90 1F 04 A0 */ stw r0, 0x4a0(r31) -lbl_80D619AC: -/* 80D619AC 7F E3 FB 78 */ mr r3, r31 -/* 80D619B0 3C 80 80 D6 */ lis r4, CheckCreateHeap__FP10fopAc_ac_c@ha /* 0x80D616F8@ha */ -/* 80D619B4 38 84 16 F8 */ addi r4, r4, CheckCreateHeap__FP10fopAc_ac_c@l /* 0x80D616F8@l */ -/* 80D619B8 38 A0 00 00 */ li r5, 0 -/* 80D619BC 4B 2B 8A F5 */ bl fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl -/* 80D619C0 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 80D619C4 40 82 00 0C */ bne lbl_80D619D0 -/* 80D619C8 38 60 00 05 */ li r3, 5 -/* 80D619CC 48 00 00 20 */ b lbl_80D619EC -lbl_80D619D0: -/* 80D619D0 7F E3 FB 78 */ mr r3, r31 -/* 80D619D4 4B FF FF 49 */ bl Create__14daTagSpinner_cFv -/* 80D619D8 2C 03 00 00 */ cmpwi r3, 0 -/* 80D619DC 40 82 00 0C */ bne lbl_80D619E8 -/* 80D619E0 38 60 00 05 */ li r3, 5 -/* 80D619E4 48 00 00 08 */ b lbl_80D619EC -lbl_80D619E8: -/* 80D619E8 38 60 00 04 */ li r3, 4 -lbl_80D619EC: -/* 80D619EC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80D619F0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D619F4 7C 08 03 A6 */ mtlr r0 -/* 80D619F8 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D619FC 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_spinner/d_a_tag_spinner/initBaseMtx__14daTagSpinner_cFv.s b/asm/rel/d/a/tag/d_a_tag_spinner/d_a_tag_spinner/initBaseMtx__14daTagSpinner_cFv.s deleted file mode 100644 index 5f97a4a01b5..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_spinner/d_a_tag_spinner/initBaseMtx__14daTagSpinner_cFv.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80D618A4: -/* 80D618A4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D618A8 7C 08 02 A6 */ mflr r0 -/* 80D618AC 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D618B0 48 00 00 15 */ bl setBaseMtx__14daTagSpinner_cFv -/* 80D618B4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D618B8 7C 08 03 A6 */ mtlr r0 -/* 80D618BC 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D618C0 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_spinner/d_a_tag_spinner/search_spinner_sub__FPvPv.s b/asm/rel/d/a/tag/d_a_tag_spinner/d_a_tag_spinner/search_spinner_sub__FPvPv.s deleted file mode 100644 index f110a10f027..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_spinner/d_a_tag_spinner/search_spinner_sub__FPvPv.s +++ /dev/null @@ -1,111 +0,0 @@ -lbl_80D61718: -/* 80D61718 94 21 FF C0 */ stwu r1, -0x40(r1) -/* 80D6171C 7C 08 02 A6 */ mflr r0 -/* 80D61720 90 01 00 44 */ stw r0, 0x44(r1) -/* 80D61724 39 61 00 40 */ addi r11, r1, 0x40 -/* 80D61728 4B 60 0A B5 */ bl _savegpr_29 -/* 80D6172C 7C 9D 23 78 */ mr r29, r4 -/* 80D61730 3C 80 80 D6 */ lis r4, lit_3689@ha /* 0x80D61B24@ha */ -/* 80D61734 3B E4 1B 24 */ addi r31, r4, lit_3689@l /* 0x80D61B24@l */ -/* 80D61738 7C 7E 1B 79 */ or. r30, r3, r3 -/* 80D6173C 41 82 01 4C */ beq lbl_80D61888 -/* 80D61740 4B 2B 75 A1 */ bl fopAc_IsActor__FPv -/* 80D61744 2C 03 00 00 */ cmpwi r3, 0 -/* 80D61748 41 82 01 40 */ beq lbl_80D61888 -/* 80D6174C A8 1E 00 0E */ lha r0, 0xe(r30) -/* 80D61750 2C 00 00 F2 */ cmpwi r0, 0xf2 -/* 80D61754 40 82 01 34 */ bne lbl_80D61888 -/* 80D61758 C0 5E 04 D8 */ lfs f2, 0x4d8(r30) -/* 80D6175C C0 1E 04 D0 */ lfs f0, 0x4d0(r30) -/* 80D61760 D0 01 00 0C */ stfs f0, 0xc(r1) -/* 80D61764 C0 3F 00 00 */ lfs f1, 0(r31) -/* 80D61768 D0 21 00 10 */ stfs f1, 0x10(r1) -/* 80D6176C D0 41 00 14 */ stfs f2, 0x14(r1) -/* 80D61770 C0 5D 04 D8 */ lfs f2, 0x4d8(r29) -/* 80D61774 C0 1D 04 D0 */ lfs f0, 0x4d0(r29) -/* 80D61778 D0 01 00 18 */ stfs f0, 0x18(r1) -/* 80D6177C D0 21 00 1C */ stfs f1, 0x1c(r1) -/* 80D61780 D0 41 00 20 */ stfs f2, 0x20(r1) -/* 80D61784 38 61 00 0C */ addi r3, r1, 0xc -/* 80D61788 38 81 00 18 */ addi r4, r1, 0x18 -/* 80D6178C 4B 5E 5C 11 */ bl PSVECSquareDistance -/* 80D61790 C0 1F 00 00 */ lfs f0, 0(r31) -/* 80D61794 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 80D61798 40 81 00 58 */ ble lbl_80D617F0 -/* 80D6179C FC 00 08 34 */ frsqrte f0, f1 -/* 80D617A0 C8 9F 00 08 */ lfd f4, 8(r31) -/* 80D617A4 FC 44 00 32 */ fmul f2, f4, f0 -/* 80D617A8 C8 7F 00 10 */ lfd f3, 0x10(r31) -/* 80D617AC FC 00 00 32 */ fmul f0, f0, f0 -/* 80D617B0 FC 01 00 32 */ fmul f0, f1, f0 -/* 80D617B4 FC 03 00 28 */ fsub f0, f3, f0 -/* 80D617B8 FC 02 00 32 */ fmul f0, f2, f0 -/* 80D617BC FC 44 00 32 */ fmul f2, f4, f0 -/* 80D617C0 FC 00 00 32 */ fmul f0, f0, f0 -/* 80D617C4 FC 01 00 32 */ fmul f0, f1, f0 -/* 80D617C8 FC 03 00 28 */ fsub f0, f3, f0 -/* 80D617CC FC 02 00 32 */ fmul f0, f2, f0 -/* 80D617D0 FC 44 00 32 */ fmul f2, f4, f0 -/* 80D617D4 FC 00 00 32 */ fmul f0, f0, f0 -/* 80D617D8 FC 01 00 32 */ fmul f0, f1, f0 -/* 80D617DC FC 03 00 28 */ fsub f0, f3, f0 -/* 80D617E0 FC 02 00 32 */ fmul f0, f2, f0 -/* 80D617E4 FC 21 00 32 */ fmul f1, f1, f0 -/* 80D617E8 FC 20 08 18 */ frsp f1, f1 -/* 80D617EC 48 00 00 88 */ b lbl_80D61874 -lbl_80D617F0: -/* 80D617F0 C8 1F 00 18 */ lfd f0, 0x18(r31) -/* 80D617F4 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 80D617F8 40 80 00 10 */ bge lbl_80D61808 -/* 80D617FC 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */ -/* 80D61800 C0 23 0A E0 */ lfs f1, __float_nan@l(r3) /* 0x80450AE0@l */ -/* 80D61804 48 00 00 70 */ b lbl_80D61874 -lbl_80D61808: -/* 80D61808 D0 21 00 08 */ stfs f1, 8(r1) -/* 80D6180C 80 81 00 08 */ lwz r4, 8(r1) -/* 80D61810 54 83 00 50 */ rlwinm r3, r4, 0, 1, 8 -/* 80D61814 3C 00 7F 80 */ lis r0, 0x7f80 -/* 80D61818 7C 03 00 00 */ cmpw r3, r0 -/* 80D6181C 41 82 00 14 */ beq lbl_80D61830 -/* 80D61820 40 80 00 40 */ bge lbl_80D61860 -/* 80D61824 2C 03 00 00 */ cmpwi r3, 0 -/* 80D61828 41 82 00 20 */ beq lbl_80D61848 -/* 80D6182C 48 00 00 34 */ b lbl_80D61860 -lbl_80D61830: -/* 80D61830 54 80 02 7F */ clrlwi. r0, r4, 9 -/* 80D61834 41 82 00 0C */ beq lbl_80D61840 -/* 80D61838 38 00 00 01 */ li r0, 1 -/* 80D6183C 48 00 00 28 */ b lbl_80D61864 -lbl_80D61840: -/* 80D61840 38 00 00 02 */ li r0, 2 -/* 80D61844 48 00 00 20 */ b lbl_80D61864 -lbl_80D61848: -/* 80D61848 54 80 02 7F */ clrlwi. r0, r4, 9 -/* 80D6184C 41 82 00 0C */ beq lbl_80D61858 -/* 80D61850 38 00 00 05 */ li r0, 5 -/* 80D61854 48 00 00 10 */ b lbl_80D61864 -lbl_80D61858: -/* 80D61858 38 00 00 03 */ li r0, 3 -/* 80D6185C 48 00 00 08 */ b lbl_80D61864 -lbl_80D61860: -/* 80D61860 38 00 00 04 */ li r0, 4 -lbl_80D61864: -/* 80D61864 2C 00 00 01 */ cmpwi r0, 1 -/* 80D61868 40 82 00 0C */ bne lbl_80D61874 -/* 80D6186C 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */ -/* 80D61870 C0 23 0A E0 */ lfs f1, __float_nan@l(r3) /* 0x80450AE0@l */ -lbl_80D61874: -/* 80D61874 C0 1D 05 68 */ lfs f0, 0x568(r29) -/* 80D61878 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 80D6187C 40 80 00 0C */ bge lbl_80D61888 -/* 80D61880 7F C3 F3 78 */ mr r3, r30 -/* 80D61884 48 00 00 08 */ b lbl_80D6188C -lbl_80D61888: -/* 80D61888 38 60 00 00 */ li r3, 0 -lbl_80D6188C: -/* 80D6188C 39 61 00 40 */ addi r11, r1, 0x40 -/* 80D61890 4B 60 09 99 */ bl _restgpr_29 -/* 80D61894 80 01 00 44 */ lwz r0, 0x44(r1) -/* 80D61898 7C 08 03 A6 */ mtlr r0 -/* 80D6189C 38 21 00 40 */ addi r1, r1, 0x40 -/* 80D618A0 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_spinner/d_a_tag_spinner/setBaseMtx__14daTagSpinner_cFv.s b/asm/rel/d/a/tag/d_a_tag_spinner/d_a_tag_spinner/setBaseMtx__14daTagSpinner_cFv.s deleted file mode 100644 index 1b6a9864152..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_spinner/d_a_tag_spinner/setBaseMtx__14daTagSpinner_cFv.s +++ /dev/null @@ -1,23 +0,0 @@ -lbl_80D618C4: -/* 80D618C4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D618C8 7C 08 02 A6 */ mflr r0 -/* 80D618CC 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D618D0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80D618D4 7C 7F 1B 78 */ mr r31, r3 -/* 80D618D8 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 80D618DC 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 80D618E0 C0 3F 04 D0 */ lfs f1, 0x4d0(r31) -/* 80D618E4 C0 5F 04 D4 */ lfs f2, 0x4d4(r31) -/* 80D618E8 C0 7F 04 D8 */ lfs f3, 0x4d8(r31) -/* 80D618EC 4B 5E 4F FD */ bl PSMTXTrans -/* 80D618F0 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 80D618F4 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 80D618F8 A8 9F 04 E4 */ lha r4, 0x4e4(r31) -/* 80D618FC A8 BF 04 E6 */ lha r5, 0x4e6(r31) -/* 80D61900 A8 DF 04 E8 */ lha r6, 0x4e8(r31) -/* 80D61904 4B 2A A9 9D */ bl mDoMtx_ZXYrotM__FPA4_fsss -/* 80D61908 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80D6190C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D61910 7C 08 03 A6 */ mtlr r0 -/* 80D61914 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D61918 4E 80 00 20 */ blr diff --git a/include/rel/d/a/tag/d_a_tag_spinner/d_a_tag_spinner.h b/include/rel/d/a/tag/d_a_tag_spinner/d_a_tag_spinner.h index 35136f5ed22..925badf78e8 100644 --- a/include/rel/d/a/tag/d_a_tag_spinner/d_a_tag_spinner.h +++ b/include/rel/d/a/tag/d_a_tag_spinner/d_a_tag_spinner.h @@ -1,6 +1,29 @@ #ifndef D_A_TAG_SPINNER_H #define D_A_TAG_SPINNER_H -#include "dolphin/types.h" +#include "dol2asm.h" +#include "f_op/f_op_actor_mng.h" +#include "rel/d/a/d_a_spinner/d_a_spinner.h" -#endif /* D_A_TAG_SPINNER_H */ +class daTagSpinner_c : public fopAc_ac_c { +public: + /* 0x568 */ f32 mRadius; + /* 0x56c */ f32 field_0x56c; + + /* 80D618A4 */ void initBaseMtx(); + /* 80D618C4 */ void setBaseMtx(); + /* 80D6191C */ int Create(); + /* 80D6196C */ int CreateHeap(); + /* 80D61974 */ int create(); + /* 80D61A00 */ int execute(); + /* 80D61AB4 */ int _delete(); + f32 GetR() { return mRadius; } +}; + +namespace daTagSpinner_prm { +u32 getSwNo(daTagSpinner_c* pActor) { + return fopAcM_GetParam(pActor); +} +} // namespace daTagSpinner_prm + +#endif /* D_A_TAG_SPINNER_H */ \ No newline at end of file diff --git a/rel/d/a/tag/d_a_tag_spinner/d_a_tag_spinner.cpp b/rel/d/a/tag/d_a_tag_spinner/d_a_tag_spinner.cpp index 78d69ec9e55..95a59fe3a5e 100644 --- a/rel/d/a/tag/d_a_tag_spinner/d_a_tag_spinner.cpp +++ b/rel/d/a/tag/d_a_tag_spinner/d_a_tag_spinner.cpp @@ -4,35 +4,6 @@ // #include "rel/d/a/tag/d_a_tag_spinner/d_a_tag_spinner.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Types: -// - -struct mDoMtx_stack_c { - static u8 now[48]; -}; - -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); -}; - -struct daTagSpinner_c { - /* 80D618A4 */ void initBaseMtx(); - /* 80D618C4 */ void setBaseMtx(); - /* 80D6191C */ void Create(); - /* 80D6196C */ bool CreateHeap(); - /* 80D61974 */ void create(); - /* 80D61A00 */ void execute(); - /* 80D61AB4 */ bool _delete(); -}; - -struct dSv_info_c { - /* 80035200 */ void onSwitch(int, int); - /* 800352B0 */ void offSwitch(int, int); -}; // // Forward References: @@ -63,177 +34,110 @@ extern "C" void fopAcIt_Judge__FPFPvPv_PvPv(); extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl(); extern "C" void onSwitch__10dSv_info_cFii(); extern "C" void offSwitch__10dSv_info_cFii(); -extern "C" void PSMTXTrans(); -extern "C" void PSVECSquareDistance(); extern "C" void _savegpr_29(); extern "C" void _restgpr_29(); -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 u32 __float_nan; // // Declarations: // /* 80D616F8-80D61718 000078 0020+00 1/1 0/0 0/0 .text CheckCreateHeap__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void CheckCreateHeap(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_spinner/d_a_tag_spinner/CheckCreateHeap__FP10fopAc_ac_c.s" +static int CheckCreateHeap(fopAc_ac_c* param_0) { + daTagSpinner_c* tag = (daTagSpinner_c*)param_0; + return tag->CreateHeap(); } -#pragma pop - -/* ############################################################################################## */ -/* 80D61B24-80D61B2C 000000 0004+04 1/1 0/0 0/0 .rodata @3689 */ -SECTION_RODATA static u8 const lit_3689[4 + 4 /* padding */] = { - 0x00, - 0x00, - 0x00, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80D61B24, &lit_3689); - -/* 80D61B2C-80D61B34 000008 0008+00 0/1 0/0 0/0 .rodata @3690 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3690[8] = { - 0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80D61B2C, &lit_3690); -#pragma pop - -/* 80D61B34-80D61B3C 000010 0008+00 0/1 0/0 0/0 .rodata @3691 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3691[8] = { - 0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80D61B34, &lit_3691); -#pragma pop - -/* 80D61B3C-80D61B44 000018 0008+00 0/1 0/0 0/0 .rodata @3692 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3692[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80D61B3C, &lit_3692); -#pragma pop /* 80D61718-80D618A4 000098 018C+00 1/1 0/0 0/0 .text search_spinner_sub__FPvPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void search_spinner_sub(void* param_0, void* param_1) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_spinner/d_a_tag_spinner/search_spinner_sub__FPvPv.s" +static void* search_spinner_sub(void* tag_0, void* tag_1) { + fopAc_ac_c* actor = (fopAc_ac_c*)tag_0; + daTagSpinner_c* actor2 = (daTagSpinner_c*)tag_1; + + if ((actor != NULL) && (fopAcM_IsActor(actor) != NULL) && (fopAcM_GetProfName(actor) == 0xF2)) { + if ((actor->current.pos.absXZ(actor2->current.pos)) < (actor2->GetR())) { + return actor; + } + } + return 0; } -#pragma pop /* 80D618A4-80D618C4 000224 0020+00 1/1 0/0 0/0 .text initBaseMtx__14daTagSpinner_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTagSpinner_c::initBaseMtx() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_spinner/d_a_tag_spinner/initBaseMtx__14daTagSpinner_cFv.s" +void daTagSpinner_c::initBaseMtx() { + setBaseMtx(); } -#pragma pop /* 80D618C4-80D6191C 000244 0058+00 1/1 0/0 0/0 .text setBaseMtx__14daTagSpinner_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTagSpinner_c::setBaseMtx() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_spinner/d_a_tag_spinner/setBaseMtx__14daTagSpinner_cFv.s" +void daTagSpinner_c::setBaseMtx() { + PSMTXTrans(mDoMtx_stack_c::now, current.pos.x, current.pos.y, current.pos.z); + mDoMtx_ZXYrotM(mDoMtx_stack_c::now, shape_angle.x, shape_angle.y, shape_angle.z); } -#pragma pop - -/* ############################################################################################## */ -/* 80D61B44-80D61B48 000020 0004+00 1/1 0/0 0/0 .rodata @3715 */ -SECTION_RODATA static f32 const lit_3715 = 100.0f; -COMPILER_STRIP_GATE(0x80D61B44, &lit_3715); /* 80D6191C-80D6196C 00029C 0050+00 1/1 0/0 0/0 .text Create__14daTagSpinner_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTagSpinner_c::Create() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_spinner/d_a_tag_spinner/Create__14daTagSpinner_cFv.s" +int daTagSpinner_c::Create() { + initBaseMtx(); + mRadius = mScale.x * 100.0f; + field_0x56c = mScale.y * 100.0f; + return 1; } -#pragma pop /* 80D6196C-80D61974 0002EC 0008+00 1/1 0/0 0/0 .text CreateHeap__14daTagSpinner_cFv */ -bool daTagSpinner_c::CreateHeap() { - return true; +int daTagSpinner_c::CreateHeap() { + return 1; } /* 80D61974-80D61A00 0002F4 008C+00 1/1 0/0 0/0 .text create__14daTagSpinner_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTagSpinner_c::create() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_spinner/d_a_tag_spinner/func_80D61974.s" +int daTagSpinner_c::create() { + int iVar1; + int iVar2; + if (!fopAcM_CheckCondition(this, 8)) { + new (this) daTagSpinner_c(); + fopAcM_OnCondition(this, 8); + } + + if (!fopAcM_entrySolidHeap(this, CheckCreateHeap, 0)) { + iVar2 = 5; + } else { + iVar1 = Create(); + if (iVar1 == NULL) { + iVar2 = 5; + } else { + iVar2 = 4; + } + } + return iVar2; } -#pragma pop /* 80D61A00-80D61AB4 000380 00B4+00 1/1 0/0 0/0 .text execute__14daTagSpinner_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daTagSpinner_c::execute() { +asm int daTagSpinner_c::execute() { nofralloc #include "asm/rel/d/a/tag/d_a_tag_spinner/d_a_tag_spinner/execute__14daTagSpinner_cFv.s" } #pragma pop /* 80D61AB4-80D61ABC 000434 0008+00 1/1 0/0 0/0 .text _delete__14daTagSpinner_cFv */ -bool daTagSpinner_c::_delete() { - return true; +int daTagSpinner_c::_delete() { + return 1; } /* 80D61ABC-80D61ADC 00043C 0020+00 1/0 0/0 0/0 .text daTagSpinner_Execute__FP14daTagSpinner_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagSpinner_Execute(daTagSpinner_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_spinner/d_a_tag_spinner/daTagSpinner_Execute__FP14daTagSpinner_c.s" +static int daTagSpinner_Execute(daTagSpinner_c* tag) { + return tag->execute(); } -#pragma pop /* 80D61ADC-80D61AFC 00045C 0020+00 1/0 0/0 0/0 .text daTagSpinner_Delete__FP14daTagSpinner_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagSpinner_Delete(daTagSpinner_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_spinner/d_a_tag_spinner/daTagSpinner_Delete__FP14daTagSpinner_c.s" +static int daTagSpinner_Delete(daTagSpinner_c* i_this) { + return i_this->_delete(); } -#pragma pop /* 80D61AFC-80D61B1C 00047C 0020+00 1/0 0/0 0/0 .text daTagSpinner_Create__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagSpinner_Create(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_spinner/d_a_tag_spinner/daTagSpinner_Create__FP10fopAc_ac_c.s" +static int daTagSpinner_Create(fopAc_ac_c* tag) { + return static_cast(tag)->create(); } -#pragma pop /* ############################################################################################## */ /* 80D61B48-80D61B68 -00001 0020+00 1/0 0/0 0/0 .data l_daTagSpinner_Method */ @@ -256,4 +160,4 @@ SECTION_DATA extern void* g_profile_Tag_Spinner[12] = { (void*)NULL, (void*)&g_fopAc_Method, (void*)0x025D0000, (void*)&l_daTagSpinner_Method, (void*)0x00040100, (void*)0x000E0000, -}; +}; \ No newline at end of file