d_a_boomerang first pass (#271)

* daBoomerang_sight_c::copyNumData

* daBoomerang_sight_c::setSight

* daBoomerang_c::windModelCallBack

* daBoomeang_windModelCallBack

* daBoomerang_Draw

* daBoomerang_c::lockLineCallback

* daBoomerang_lockLineCallback

* daBoomerang_moveLineCallback

* daBoomerang_c::setAimActorBase

* daBoomerang_c::resetLockActor

* daBoomerang_Execute

* daBoomerang_Delete

* daBoomerang_createHeap

* remove asm

* revert progress script
This commit is contained in:
Pheenoh 2023-02-05 20:34:09 -07:00 committed by GitHub
parent 24b833b205
commit 82bf380d1b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
17 changed files with 135 additions and 413 deletions

View File

@ -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.141397% | 3811368 | 11500324
Total | 33.141397% | 3811368 | 11500324

View File

@ -1,42 +0,0 @@
lbl_8049EDE8:
/* 8049EDE8 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8049EDEC 38 E4 00 01 */ addi r7, r4, 1
/* 8049EDF0 7C A3 22 14 */ add r5, r3, r4
/* 8049EDF4 89 05 00 62 */ lbz r8, 0x62(r5)
/* 8049EDF8 7C C3 3A 14 */ add r6, r3, r7
/* 8049EDFC 88 06 00 62 */ lbz r0, 0x62(r6)
/* 8049EE00 98 05 00 62 */ stb r0, 0x62(r5)
/* 8049EE04 99 06 00 62 */ stb r8, 0x62(r6)
/* 8049EE08 54 80 10 3A */ slwi r0, r4, 2
/* 8049EE0C 7C A3 02 14 */ add r5, r3, r0
/* 8049EE10 C0 25 00 98 */ lfs f1, 0x98(r5)
/* 8049EE14 54 E0 10 3A */ slwi r0, r7, 2
/* 8049EE18 7C C3 02 14 */ add r6, r3, r0
/* 8049EE1C C0 06 00 98 */ lfs f0, 0x98(r6)
/* 8049EE20 D0 05 00 98 */ stfs f0, 0x98(r5)
/* 8049EE24 D0 26 00 98 */ stfs f1, 0x98(r6)
/* 8049EE28 C0 25 00 B0 */ lfs f1, 0xb0(r5)
/* 8049EE2C C0 06 00 B0 */ lfs f0, 0xb0(r6)
/* 8049EE30 D0 05 00 B0 */ stfs f0, 0xb0(r5)
/* 8049EE34 D0 26 00 B0 */ stfs f1, 0xb0(r6)
/* 8049EE38 1C 04 00 0C */ mulli r0, r4, 0xc
/* 8049EE3C 7C 83 02 14 */ add r4, r3, r0
/* 8049EE40 C0 64 00 C8 */ lfs f3, 0xc8(r4)
/* 8049EE44 D0 61 00 08 */ stfs f3, 8(r1)
/* 8049EE48 C0 44 00 CC */ lfs f2, 0xcc(r4)
/* 8049EE4C D0 41 00 0C */ stfs f2, 0xc(r1)
/* 8049EE50 C0 24 00 D0 */ lfs f1, 0xd0(r4)
/* 8049EE54 D0 21 00 10 */ stfs f1, 0x10(r1)
/* 8049EE58 1C 07 00 0C */ mulli r0, r7, 0xc
/* 8049EE5C 7C 63 02 14 */ add r3, r3, r0
/* 8049EE60 C0 03 00 C8 */ lfs f0, 0xc8(r3)
/* 8049EE64 D0 04 00 C8 */ stfs f0, 0xc8(r4)
/* 8049EE68 C0 03 00 CC */ lfs f0, 0xcc(r3)
/* 8049EE6C D0 04 00 CC */ stfs f0, 0xcc(r4)
/* 8049EE70 C0 03 00 D0 */ lfs f0, 0xd0(r3)
/* 8049EE74 D0 04 00 D0 */ stfs f0, 0xd0(r4)
/* 8049EE78 D0 63 00 C8 */ stfs f3, 0xc8(r3)
/* 8049EE7C D0 43 00 CC */ stfs f2, 0xcc(r3)
/* 8049EE80 D0 23 00 D0 */ stfs f1, 0xd0(r3)
/* 8049EE84 38 21 00 20 */ addi r1, r1, 0x20
/* 8049EE88 4E 80 00 20 */ blr

View File

@ -1,17 +0,0 @@
lbl_8049F360:
/* 8049F360 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8049F364 7C 08 02 A6 */ mflr r0
/* 8049F368 90 01 00 14 */ stw r0, 0x14(r1)
/* 8049F36C 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */
/* 8049F370 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */
/* 8049F374 80 63 00 38 */ lwz r3, 0x38(r3)
/* 8049F378 80 63 00 14 */ lwz r3, 0x14(r3)
/* 8049F37C 2C 04 00 00 */ cmpwi r4, 0
/* 8049F380 40 82 00 08 */ bne lbl_8049F388
/* 8049F384 4B FF FE FD */ bl windModelCallBack__13daBoomerang_cFv
lbl_8049F388:
/* 8049F388 38 60 00 01 */ li r3, 1
/* 8049F38C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8049F390 7C 08 03 A6 */ mtlr r0
/* 8049F394 38 21 00 10 */ addi r1, r1, 0x10
/* 8049F398 4E 80 00 20 */ blr

View File

@ -1,11 +0,0 @@
lbl_804A1EBC:
/* 804A1EBC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 804A1EC0 7C 08 02 A6 */ mflr r0
/* 804A1EC4 90 01 00 14 */ stw r0, 0x14(r1)
/* 804A1EC8 38 80 FF FF */ li r4, -1
/* 804A1ECC 4B FF FD 29 */ bl __dt__13daBoomerang_cFv
/* 804A1ED0 38 60 00 01 */ li r3, 1
/* 804A1ED4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 804A1ED8 7C 08 03 A6 */ mtlr r0
/* 804A1EDC 38 21 00 10 */ addi r1, r1, 0x10
/* 804A1EE0 4E 80 00 20 */ blr

View File

@ -1,9 +0,0 @@
lbl_8049F5D4:
/* 8049F5D4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8049F5D8 7C 08 02 A6 */ mflr r0
/* 8049F5DC 90 01 00 14 */ stw r0, 0x14(r1)
/* 8049F5E0 4B FF FD BD */ bl draw__13daBoomerang_cFv
/* 8049F5E4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8049F5E8 7C 08 03 A6 */ mtlr r0
/* 8049F5EC 38 21 00 10 */ addi r1, r1, 0x10
/* 8049F5F0 4E 80 00 20 */ blr

View File

@ -1,9 +0,0 @@
lbl_804A1BD4:
/* 804A1BD4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 804A1BD8 7C 08 02 A6 */ mflr r0
/* 804A1BDC 90 01 00 14 */ stw r0, 0x14(r1)
/* 804A1BE0 4B FF FC 35 */ bl execute__13daBoomerang_cFv
/* 804A1BE4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 804A1BE8 7C 08 03 A6 */ mtlr r0
/* 804A1BEC 38 21 00 10 */ addi r1, r1, 0x10
/* 804A1BF0 4E 80 00 20 */ blr

View File

@ -1,9 +0,0 @@
lbl_804A2064:
/* 804A2064 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 804A2068 7C 08 02 A6 */ mflr r0
/* 804A206C 90 01 00 14 */ stw r0, 0x14(r1)
/* 804A2070 4B FF FE 75 */ bl createHeap__13daBoomerang_cFv
/* 804A2074 80 01 00 14 */ lwz r0, 0x14(r1)
/* 804A2078 7C 08 03 A6 */ mtlr r0
/* 804A207C 38 21 00 10 */ addi r1, r1, 0x10
/* 804A2080 4E 80 00 20 */ blr

View File

@ -1,10 +0,0 @@
lbl_8049F63C:
/* 8049F63C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8049F640 7C 08 02 A6 */ mflr r0
/* 8049F644 90 01 00 14 */ stw r0, 0x14(r1)
/* 8049F648 7C A4 2B 78 */ mr r4, r5
/* 8049F64C 4B FF FF A9 */ bl lockLineCallback__13daBoomerang_cFP10fopAc_ac_c
/* 8049F650 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8049F654 7C 08 03 A6 */ mtlr r0
/* 8049F658 38 21 00 10 */ addi r1, r1, 0x10
/* 8049F65C 4E 80 00 20 */ blr

View File

@ -1,10 +0,0 @@
lbl_8049F6EC:
/* 8049F6EC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8049F6F0 7C 08 02 A6 */ mflr r0
/* 8049F6F4 90 01 00 14 */ stw r0, 0x14(r1)
/* 8049F6F8 7C A4 2B 78 */ mr r4, r5
/* 8049F6FC 4B FF FF 65 */ bl moveLineCallback__13daBoomerang_cFP10fopAc_ac_c
/* 8049F700 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8049F704 7C 08 03 A6 */ mtlr r0
/* 8049F708 38 21 00 10 */ addi r1, r1, 0x10
/* 8049F70C 4E 80 00 20 */ blr

View File

@ -1,20 +0,0 @@
lbl_8049F5F4:
/* 8049F5F4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8049F5F8 7C 08 02 A6 */ mflr r0
/* 8049F5FC 90 01 00 14 */ stw r0, 0x14(r1)
/* 8049F600 28 04 00 00 */ cmplwi r4, 0
/* 8049F604 41 82 00 28 */ beq lbl_8049F62C
/* 8049F608 A8 04 00 08 */ lha r0, 8(r4)
/* 8049F60C 2C 00 01 7B */ cmpwi r0, 0x17b
/* 8049F610 41 82 00 1C */ beq lbl_8049F62C
/* 8049F614 2C 00 02 08 */ cmpwi r0, 0x208
/* 8049F618 41 82 00 14 */ beq lbl_8049F62C
/* 8049F61C 2C 00 00 2C */ cmpwi r0, 0x2c
/* 8049F620 41 82 00 0C */ beq lbl_8049F62C
/* 8049F624 38 A0 00 01 */ li r5, 1
/* 8049F628 48 00 02 89 */ bl setLockActor__13daBoomerang_cFP10fopAc_ac_ci
lbl_8049F62C:
/* 8049F62C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8049F630 7C 08 03 A6 */ mtlr r0
/* 8049F634 38 21 00 10 */ addi r1, r1, 0x10
/* 8049F638 4E 80 00 20 */ blr

View File

@ -1,38 +0,0 @@
lbl_8049F660:
/* 8049F660 28 04 00 00 */ cmplwi r4, 0
/* 8049F664 4D 82 00 20 */ beqlr
/* 8049F668 38 E0 00 00 */ li r7, 0
/* 8049F66C 38 A0 00 00 */ li r5, 0
/* 8049F670 38 00 00 05 */ li r0, 5
/* 8049F674 7C 09 03 A6 */ mtctr r0
lbl_8049F678:
/* 8049F678 7C C3 2A 14 */ add r6, r3, r5
/* 8049F67C 80 06 06 C0 */ lwz r0, 0x6c0(r6)
/* 8049F680 7C 00 20 40 */ cmplw r0, r4
/* 8049F684 40 82 00 58 */ bne lbl_8049F6DC
/* 8049F688 38 00 FF FF */ li r0, -1
/* 8049F68C 90 06 06 AC */ stw r0, 0x6ac(r6)
/* 8049F690 38 00 00 00 */ li r0, 0
/* 8049F694 90 06 06 C0 */ stw r0, 0x6c0(r6)
/* 8049F698 88 03 09 51 */ lbz r0, 0x951(r3)
/* 8049F69C 7C 07 00 00 */ cmpw r7, r0
/* 8049F6A0 40 82 00 3C */ bne lbl_8049F6DC
/* 8049F6A4 38 00 00 0A */ li r0, 0xa
/* 8049F6A8 98 03 09 57 */ stb r0, 0x957(r3)
/* 8049F6AC C0 04 05 38 */ lfs f0, 0x538(r4)
/* 8049F6B0 D0 03 09 AC */ stfs f0, 0x9ac(r3)
/* 8049F6B4 C0 04 05 3C */ lfs f0, 0x53c(r4)
/* 8049F6B8 D0 03 09 B0 */ stfs f0, 0x9b0(r3)
/* 8049F6BC C0 04 05 40 */ lfs f0, 0x540(r4)
/* 8049F6C0 D0 03 09 B4 */ stfs f0, 0x9b4(r3)
/* 8049F6C4 C0 03 04 D0 */ lfs f0, 0x4d0(r3)
/* 8049F6C8 D0 03 09 C4 */ stfs f0, 0x9c4(r3)
/* 8049F6CC C0 03 04 D4 */ lfs f0, 0x4d4(r3)
/* 8049F6D0 D0 03 09 C8 */ stfs f0, 0x9c8(r3)
/* 8049F6D4 C0 03 04 D8 */ lfs f0, 0x4d8(r3)
/* 8049F6D8 D0 03 09 CC */ stfs f0, 0x9cc(r3)
lbl_8049F6DC:
/* 8049F6DC 38 E7 00 01 */ addi r7, r7, 1
/* 8049F6E0 38 A5 00 04 */ addi r5, r5, 4
/* 8049F6E4 42 00 FF 94 */ bdnz lbl_8049F678
/* 8049F6E8 4E 80 00 20 */ blr

View File

@ -1,21 +0,0 @@
lbl_8049F9A4:
/* 8049F9A4 39 20 00 00 */ li r9, 0
/* 8049F9A8 38 80 00 00 */ li r4, 0
/* 8049F9AC 38 E0 FF FF */ li r7, -1
/* 8049F9B0 7C 86 23 78 */ mr r6, r4
/* 8049F9B4 7C 85 23 78 */ mr r5, r4
/* 8049F9B8 38 00 00 05 */ li r0, 5
/* 8049F9BC 7C 09 03 A6 */ mtctr r0
lbl_8049F9C0:
/* 8049F9C0 7D 03 22 14 */ add r8, r3, r4
/* 8049F9C4 90 E8 06 AC */ stw r7, 0x6ac(r8)
/* 8049F9C8 90 C8 06 C0 */ stw r6, 0x6c0(r8)
/* 8049F9CC 38 09 07 18 */ addi r0, r9, 0x718
/* 8049F9D0 7C A3 01 AE */ stbx r5, r3, r0
/* 8049F9D4 39 29 00 01 */ addi r9, r9, 1
/* 8049F9D8 38 84 00 04 */ addi r4, r4, 4
/* 8049F9DC 42 00 FF E4 */ bdnz lbl_8049F9C0
/* 8049F9E0 38 00 00 00 */ li r0, 0
/* 8049F9E4 98 03 09 50 */ stb r0, 0x950(r3)
/* 8049F9E8 98 03 09 51 */ stb r0, 0x951(r3)
/* 8049F9EC 4E 80 00 20 */ blr

View File

@ -1,17 +0,0 @@
lbl_8049F874:
/* 8049F874 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8049F878 7C 08 02 A6 */ mflr r0
/* 8049F87C 90 01 00 14 */ stw r0, 0x14(r1)
/* 8049F880 88 03 09 50 */ lbz r0, 0x950(r3)
/* 8049F884 28 00 00 00 */ cmplwi r0, 0
/* 8049F888 40 82 00 18 */ bne lbl_8049F8A0
/* 8049F88C 80 03 09 64 */ lwz r0, 0x964(r3)
/* 8049F890 60 00 00 04 */ ori r0, r0, 4
/* 8049F894 90 03 09 64 */ stw r0, 0x964(r3)
/* 8049F898 38 A0 00 00 */ li r5, 0
/* 8049F89C 48 00 00 15 */ bl setLockActor__13daBoomerang_cFP10fopAc_ac_ci
lbl_8049F8A0:
/* 8049F8A0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8049F8A4 7C 08 03 A6 */ mtlr r0
/* 8049F8A8 38 21 00 10 */ addi r1, r1, 0x10
/* 8049F8AC 4E 80 00 20 */ blr

View File

@ -1,41 +0,0 @@
lbl_8049EEC8:
/* 8049EEC8 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8049EECC 7C 08 02 A6 */ mflr r0
/* 8049EED0 90 01 00 24 */ stw r0, 0x24(r1)
/* 8049EED4 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8049EED8 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8049EEDC 7C 7E 1B 78 */ mr r30, r3
/* 8049EEE0 7C BF 2B 78 */ mr r31, r5
/* 8049EEE4 7C 7E FA 14 */ add r3, r30, r31
/* 8049EEE8 88 03 00 62 */ lbz r0, 0x62(r3)
/* 8049EEEC 28 00 00 00 */ cmplwi r0, 0
/* 8049EEF0 41 82 00 58 */ beq lbl_8049EF48
/* 8049EEF4 28 04 00 00 */ cmplwi r4, 0
/* 8049EEF8 41 82 00 24 */ beq lbl_8049EF1C
/* 8049EEFC C0 04 00 00 */ lfs f0, 0(r4)
/* 8049EF00 1C 1F 00 0C */ mulli r0, r31, 0xc
/* 8049EF04 7C 7E 02 14 */ add r3, r30, r0
/* 8049EF08 D0 03 00 C8 */ stfs f0, 0xc8(r3)
/* 8049EF0C C0 04 00 04 */ lfs f0, 4(r4)
/* 8049EF10 D0 03 00 CC */ stfs f0, 0xcc(r3)
/* 8049EF14 C0 04 00 08 */ lfs f0, 8(r4)
/* 8049EF18 D0 03 00 D0 */ stfs f0, 0xd0(r3)
lbl_8049EF1C:
/* 8049EF1C 1C 7F 00 0C */ mulli r3, r31, 0xc
/* 8049EF20 38 63 00 C8 */ addi r3, r3, 0xc8
/* 8049EF24 7C 7E 1A 14 */ add r3, r30, r3
/* 8049EF28 38 81 00 08 */ addi r4, r1, 8
/* 8049EF2C 4B B7 63 E5 */ bl mDoLib_project__FP3VecP3Vec
/* 8049EF30 C0 01 00 08 */ lfs f0, 8(r1)
/* 8049EF34 57 E0 10 3A */ slwi r0, r31, 2
/* 8049EF38 7C 7E 02 14 */ add r3, r30, r0
/* 8049EF3C D0 03 00 68 */ stfs f0, 0x68(r3)
/* 8049EF40 C0 01 00 0C */ lfs f0, 0xc(r1)
/* 8049EF44 D0 03 00 80 */ stfs f0, 0x80(r3)
lbl_8049EF48:
/* 8049EF48 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8049EF4C 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8049EF50 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8049EF54 7C 08 03 A6 */ mtlr r0
/* 8049EF58 38 21 00 20 */ addi r1, r1, 0x20
/* 8049EF5C 4E 80 00 20 */ blr

View File

@ -1,57 +0,0 @@
lbl_8049F280:
/* 8049F280 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8049F284 7C 08 02 A6 */ mflr r0
/* 8049F288 90 01 00 14 */ stw r0, 0x14(r1)
/* 8049F28C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8049F290 7C 7F 1B 78 */ mr r31, r3
/* 8049F294 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */
/* 8049F298 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */
/* 8049F29C A8 9F 04 E6 */ lha r4, 0x4e6(r31)
/* 8049F2A0 4B B6 D1 3D */ bl mDoMtx_YrotS__FPA4_fs
/* 8049F2A4 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */
/* 8049F2A8 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */
/* 8049F2AC A8 1F 04 E8 */ lha r0, 0x4e8(r31)
/* 8049F2B0 7C 00 00 D0 */ neg r0, r0
/* 8049F2B4 7C 04 07 34 */ extsh r4, r0
/* 8049F2B8 4B B6 D2 15 */ bl mDoMtx_ZrotM__FPA4_fs
/* 8049F2BC 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */
/* 8049F2C0 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */
/* 8049F2C4 A8 1F 04 E4 */ lha r0, 0x4e4(r31)
/* 8049F2C8 7C 00 00 D0 */ neg r0, r0
/* 8049F2CC 7C 04 07 34 */ extsh r4, r0
/* 8049F2D0 4B B6 D0 CD */ bl mDoMtx_XrotM__FPA4_fs
/* 8049F2D4 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */
/* 8049F2D8 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */
/* 8049F2DC A8 1F 04 E6 */ lha r0, 0x4e6(r31)
/* 8049F2E0 7C 00 00 D0 */ neg r0, r0
/* 8049F2E4 7C 04 07 34 */ extsh r4, r0
/* 8049F2E8 4B B6 D1 4D */ bl mDoMtx_YrotM__FPA4_fs
/* 8049F2EC 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */
/* 8049F2F0 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */
/* 8049F2F4 3C 80 80 43 */ lis r4, mCurrentMtx__6J3DSys@ha /* 0x80434BE4@ha */
/* 8049F2F8 38 84 4B E4 */ addi r4, r4, mCurrentMtx__6J3DSys@l /* 0x80434BE4@l */
/* 8049F2FC 7C 65 1B 78 */ mr r5, r3
/* 8049F300 4B EA 71 E5 */ bl PSMTXConcat
/* 8049F304 3C 60 80 43 */ lis r3, mCurrentMtx__6J3DSys@ha /* 0x80434BE4@ha */
/* 8049F308 38 83 4B E4 */ addi r4, r3, mCurrentMtx__6J3DSys@l /* 0x80434BE4@l */
/* 8049F30C C0 04 00 0C */ lfs f0, 0xc(r4)
/* 8049F310 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */
/* 8049F314 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */
/* 8049F318 D0 03 00 0C */ stfs f0, 0xc(r3)
/* 8049F31C C0 04 00 1C */ lfs f0, 0x1c(r4)
/* 8049F320 D0 03 00 1C */ stfs f0, 0x1c(r3)
/* 8049F324 C0 04 00 2C */ lfs f0, 0x2c(r4)
/* 8049F328 D0 03 00 2C */ stfs f0, 0x2c(r3)
/* 8049F32C 4B EA 71 85 */ bl PSMTXCopy
/* 8049F330 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */
/* 8049F334 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */
/* 8049F338 80 9F 05 6C */ lwz r4, 0x56c(r31)
/* 8049F33C 80 84 00 84 */ lwz r4, 0x84(r4)
/* 8049F340 80 84 00 0C */ lwz r4, 0xc(r4)
/* 8049F344 38 84 00 C0 */ addi r4, r4, 0xc0
/* 8049F348 4B EA 71 69 */ bl PSMTXCopy
/* 8049F34C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8049F350 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8049F354 7C 08 03 A6 */ mtlr r0
/* 8049F358 38 21 00 10 */ addi r1, r1, 0x10
/* 8049F35C 4E 80 00 20 */ blr

View File

@ -62,6 +62,7 @@ class daAlink_c;
class daBoomerang_c : public fopAc_ac_c {
public:
enum daBoomerang_FLG0 {
/* 0x004 */ FLG0_UNK = 0x004,
/* 0x800 */ FLG0_LOCK_DIST_CANCEL = 0x800,
/* 0x080 */ WIND_CATCH = 0x80,
};
@ -113,7 +114,7 @@ private:
/* 0x598 */ daBoomerang_sight_c mSight;
/* 0x6A8 */ u32 field_0x6a8;
/* 0x6AC */ u32 field_0x6ac[5];
/* 0x6C0 */ fopAc_ac_c* field_0x6c0[5];
/* 0x6C0 */ fopAc_ac_c* mLockActors[5]; // Actors corresponding to the five target points
/* 0x6D4 */ fopAc_ac_c* field_0x6d4;
/* 0x6D8 */ u8 field_0x6d8[4];
/* 0x6DC */ cXyz field_0x6dc[5];

View File

@ -7,6 +7,7 @@
#include "dol2asm.h"
#include "dolphin/types.h"
#include "d/com/d_com_inf_game.h"
#include "m_Do/m_Do_lib.h"
//
// Types:
@ -469,14 +470,25 @@ asm void daBoomerang_sight_c::initFrame(int param_0) {
#pragma pop
/* 8049EDE8-8049EE8C 000DA8 00A4+00 1/1 0/0 0/0 .text copyNumData__19daBoomerang_sight_cFi */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daBoomerang_sight_c::copyNumData(int param_0) {
nofralloc
#include "asm/rel/d/a/d_a_boomerang/d_a_boomerang/copyNumData__19daBoomerang_sight_cFi.s"
void daBoomerang_sight_c::copyNumData(int i_idx) {
int idx2 = i_idx + 1;
u8 alpha = mAlpha[i_idx];
mAlpha[i_idx] = mAlpha[idx2];
mAlpha[idx2] = alpha;
f32 some_float1 = field_0x98[i_idx];
field_0x98[i_idx] = field_0x98[idx2];
field_0x98[idx2] = some_float1;
f32 some_float2 = field_0xb0[i_idx];
field_0xb0[i_idx] = field_0xb0[idx2];
field_0xb0[idx2] = some_float2;
cXyz pos = field_0xc8[i_idx];
field_0xc8[i_idx] = field_0xc8[idx2];
field_0xc8[idx2] = pos;
}
#pragma pop
/* 8049EE8C-8049EEC8 000E4C 003C+00 3/3 0/0 0/0 .text __dt__4cXyzFv */
#pragma push
@ -490,14 +502,18 @@ extern "C" asm void __dt__4cXyzFv() {
#pragma pop
/* 8049EEC8-8049EF60 000E88 0098+00 1/1 0/0 0/0 .text setSight__19daBoomerang_sight_cFPC4cXyzi */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daBoomerang_sight_c::setSight(cXyz const* param_0, int param_1) {
nofralloc
#include "asm/rel/d/a/d_a_boomerang/d_a_boomerang/setSight__19daBoomerang_sight_cFPC4cXyzi.s"
void daBoomerang_sight_c::setSight(cXyz const* i_posP, int i_idx) {
Vec pos;
if (mAlpha[i_idx]) {
if (i_posP) {
field_0xc8[i_idx] = *i_posP;
}
mDoLib_project(&field_0xc8[i_idx],&pos);
field_0x68[i_idx] = pos.x;
field_0x80[i_idx] = pos.y;
}
}
#pragma pop
/* ############################################################################################## */
/* 804A28CC-804A28D0 00007C 0004+00 0/1 0/0 0/0 .rodata @4643 */
@ -594,25 +610,35 @@ asm void daBoomerang_sight_c::draw() {
#pragma pop
/* 8049F280-8049F360 001240 00E0+00 1/1 0/0 0/0 .text windModelCallBack__13daBoomerang_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daBoomerang_c::windModelCallBack() {
nofralloc
#include "asm/rel/d/a/d_a_boomerang/d_a_boomerang/windModelCallBack__13daBoomerang_cFv.s"
void daBoomerang_c::windModelCallBack() {
mDoMtx_YrotS((MtxP)mDoMtx_stack_c::get(),shape_angle.y);
mDoMtx_ZrotM((MtxP)mDoMtx_stack_c::get(),-shape_angle.z);
mDoMtx_XrotM((MtxP)mDoMtx_stack_c::get(),-shape_angle.x);
mDoMtx_YrotM((MtxP)mDoMtx_stack_c::get(),-shape_angle.y);
PSMTXConcat(mDoMtx_stack_c::get(), J3DSys::mCurrentMtx, mDoMtx_stack_c::get());
mDoMtx_stack_c::get()[0][3] = J3DSys::mCurrentMtx[0][3];
mDoMtx_stack_c::get()[1][3] = J3DSys::mCurrentMtx[1][3];
mDoMtx_stack_c::get()[2][3] = J3DSys::mCurrentMtx[2][3];
PSMTXCopy(mDoMtx_stack_c::get(),J3DSys::mCurrentMtx);
field_0x56c->setAnmMtx(4,mDoMtx_stack_c::get());
return;
}
#pragma pop
/* 8049F360-8049F39C 001320 003C+00 1/1 0/0 0/0 .text daBoomeang_windModelCallBack__FP8J3DJointi
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daBoomeang_windModelCallBack(J3DJoint* param_0, int param_1) {
nofralloc
#include "asm/rel/d/a/d_a_boomerang/d_a_boomerang/daBoomeang_windModelCallBack__FP8J3DJointi.s"
static int daBoomeang_windModelCallBack(J3DJoint* param_0, int param_1) {
daBoomerang_c* boomerang = (daBoomerang_c*)j3dSys.getModel()->getUserArea();
if (param_1 == 0) {
boomerang->windModelCallBack();
}
return 1;
}
#pragma pop
/* 8049F39C-8049F5D4 00135C 0238+00 1/1 0/0 0/0 .text draw__13daBoomerang_cFv */
#pragma push
@ -626,60 +652,56 @@ asm void daBoomerang_c::draw() {
/* 8049F5D4-8049F5F4 001594 0020+00 1/0 0/0 0/0 .text daBoomerang_Draw__FP13daBoomerang_c
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daBoomerang_Draw(daBoomerang_c* param_0) {
nofralloc
#include "asm/rel/d/a/d_a_boomerang/d_a_boomerang/daBoomerang_Draw__FP13daBoomerang_c.s"
static void daBoomerang_Draw(daBoomerang_c* i_this) {
i_this->draw();
}
#pragma pop
/* 8049F5F4-8049F63C 0015B4 0048+00 1/1 0/0 0/0 .text
* lockLineCallback__13daBoomerang_cFP10fopAc_ac_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daBoomerang_c::lockLineCallback(fopAc_ac_c* param_0) {
nofralloc
#include "asm/rel/d/a/d_a_boomerang/d_a_boomerang/lockLineCallback__13daBoomerang_cFP10fopAc_ac_c.s"
void daBoomerang_c::lockLineCallback(fopAc_ac_c* i_actorP) {
if (i_actorP &&
fopAcM_GetName(i_actorP) != PROC_Obj_glowSphere &&
fopAcM_GetName(i_actorP) != PROC_E_VT &&
fopAcM_GetName(i_actorP) != PROC_OBJ_BRG) {
setLockActor(i_actorP,1);
}
}
#pragma pop
/* 8049F63C-8049F660 0015FC 0024+00 1/1 0/0 0/0 .text
* daBoomerang_lockLineCallback__FP10fopAc_ac_cP12dCcD_GObjInfP10fopAc_ac_cP12dCcD_GObjInf */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daBoomerang_lockLineCallback(fopAc_ac_c* param_0, dCcD_GObjInf* param_1,
fopAc_ac_c* param_2, dCcD_GObjInf* param_3) {
nofralloc
#include "asm/rel/d/a/d_a_boomerang/d_a_boomerang/func_8049F63C.s"
static void daBoomerang_lockLineCallback(fopAc_ac_c* i_actorP1, dCcD_GObjInf* param_1,
fopAc_ac_c* i_actorP2, dCcD_GObjInf* param_3) {
daBoomerang_c* boomerang = (daBoomerang_c*)i_actorP1;
boomerang->lockLineCallback(i_actorP2);
}
#pragma pop
/* 8049F660-8049F6EC 001620 008C+00 1/1 0/0 0/0 .text
* moveLineCallback__13daBoomerang_cFP10fopAc_ac_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daBoomerang_c::moveLineCallback(fopAc_ac_c* param_0) {
nofralloc
#include "asm/rel/d/a/d_a_boomerang/d_a_boomerang/moveLineCallback__13daBoomerang_cFP10fopAc_ac_c.s"
void daBoomerang_c::moveLineCallback(fopAc_ac_c* i_actorP) {
if (i_actorP) {
for (int i = 0; i < 5; i++) {
if (mLockActors[i] == i_actorP) {
field_0x6ac[i] = -1;
mLockActors[i] = 0;
if (i == field_0x951) {
field_0x957 = 10;
field_0x9ac = i_actorP->mEyePos;
field_0x9c4 = current.pos;
}
}
}
}
}
#pragma pop
/* 8049F6EC-8049F710 0016AC 0024+00 1/1 0/0 0/0 .text
* daBoomerang_moveLineCallback__FP10fopAc_ac_cP12dCcD_GObjInfP10fopAc_ac_cP12dCcD_GObjInf */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daBoomerang_moveLineCallback(fopAc_ac_c* param_0, dCcD_GObjInf* param_1,
fopAc_ac_c* param_2, dCcD_GObjInf* param_3) {
nofralloc
#include "asm/rel/d/a/d_a_boomerang/d_a_boomerang/func_8049F6EC.s"
static void daBoomerang_moveLineCallback(fopAc_ac_c* i_actorP1, dCcD_GObjInf* param_1,
fopAc_ac_c* i_actorP2, dCcD_GObjInf* param_3) {
daBoomerang_c* boomerang = (daBoomerang_c*)i_actorP1;
boomerang->moveLineCallback(i_actorP2);
}
#pragma pop
/* 8049F710-8049F818 0016D0 0108+00 3/3 0/0 0/0 .text pushLockList__13daBoomerang_cFi */
#pragma push
@ -693,6 +715,27 @@ asm void daBoomerang_c::pushLockList(int param_0) {
/* 8049F818-8049F874 0017D8 005C+00 1/0 0/0 0/0 .text
* cancelLockActorBase__13daBoomerang_cFP10fopAc_ac_c */
#ifdef NONMATCHING
// no clue. pushLockList appears to be in the loop, but doing so causes a ton of problems
void daBoomerang_c::cancelLockActorBase(fopAc_ac_c* i_actorP) {
int i = 0;
int lock_count = mLockCnt;
if (lock_count <= 0) {
return;
}
while (true) {
if (mLockActors[i] == i_actorP) {
break;
} else {
i++;
}
}
pushLockList(i);
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@ -701,17 +744,16 @@ asm void daBoomerang_c::cancelLockActorBase(fopAc_ac_c* param_0) {
#include "asm/rel/d/a/d_a_boomerang/d_a_boomerang/cancelLockActorBase__13daBoomerang_cFP10fopAc_ac_c.s"
}
#pragma pop
#endif
/* 8049F874-8049F8B0 001834 003C+00 1/0 0/0 0/0 .text
* setAimActorBase__13daBoomerang_cFP10fopAc_ac_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daBoomerang_c::setAimActorBase(fopAc_ac_c* param_0) {
nofralloc
#include "asm/rel/d/a/d_a_boomerang/d_a_boomerang/setAimActorBase__13daBoomerang_cFP10fopAc_ac_c.s"
void daBoomerang_c::setAimActorBase(fopAc_ac_c* i_actorP) {
if (mLockCnt == 0) {
onStateFlg0(FLG0_UNK);
setLockActor(i_actorP,0);
}
}
#pragma pop
/* 8049F8B0-8049F9A4 001870 00F4+00 2/2 0/0 0/0 .text setLockActor__13daBoomerang_cFP10fopAc_ac_ci
*/
@ -726,14 +768,16 @@ asm void daBoomerang_c::setLockActor(fopAc_ac_c* param_0, int param_1) {
/* 8049F9A4-8049F9F0 001964 004C+00 3/3 0/0 0/0 .text resetLockActor__13daBoomerang_cFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daBoomerang_c::resetLockActor() {
nofralloc
#include "asm/rel/d/a/d_a_boomerang/d_a_boomerang/resetLockActor__13daBoomerang_cFv.s"
void daBoomerang_c::resetLockActor() {
for (int i = 0; i < 5; i++) {
field_0x6ac[i] = -1;
mLockActors[i] = 0;
field_0x718[i] = 0;
}
mLockCnt = 0;
field_0x951 = 0;
}
#pragma pop
/* ############################################################################################## */
/* 804A2900-804A2904 0000B0 0004+00 1/1 0/0 0/0 .rodata @4886 */
@ -1379,14 +1423,9 @@ asm void daBoomerang_c::execute() {
#pragma pop
/* 804A1BD4-804A1BF4 003B94 0020+00 1/0 0/0 0/0 .text daBoomerang_Execute__FP13daBoomerang_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daBoomerang_Execute(daBoomerang_c* param_0) {
nofralloc
#include "asm/rel/d/a/d_a_boomerang/d_a_boomerang/daBoomerang_Execute__FP13daBoomerang_c.s"
static void daBoomerang_Execute(daBoomerang_c* i_this) {
i_this->execute();
}
#pragma pop
/* ############################################################################################## */
/* 804A2CC0-804A2CD0 0001E4 0010+00 3/3 0/0 0/0 .data __vt__19daBoomerang_sight_c */
@ -1408,14 +1447,10 @@ asm daBoomerang_c::~daBoomerang_c() {
#pragma pop
/* 804A1EBC-804A1EE4 003E7C 0028+00 1/0 0/0 0/0 .text daBoomerang_Delete__FP13daBoomerang_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daBoomerang_Delete(daBoomerang_c* param_0) {
nofralloc
#include "asm/rel/d/a/d_a_boomerang/d_a_boomerang/daBoomerang_Delete__FP13daBoomerang_c.s"
static int daBoomerang_Delete(daBoomerang_c* i_this) {
i_this->~daBoomerang_c();
return 1;
}
#pragma pop
/* 804A1EE4-804A2064 003EA4 0180+00 1/1 0/0 0/0 .text createHeap__13daBoomerang_cFv */
#pragma push
@ -1428,14 +1463,11 @@ asm void daBoomerang_c::createHeap() {
#pragma pop
/* 804A2064-804A2084 004024 0020+00 1/1 0/0 0/0 .text daBoomerang_createHeap__FP10fopAc_ac_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daBoomerang_createHeap(fopAc_ac_c* param_0) {
nofralloc
#include "asm/rel/d/a/d_a_boomerang/d_a_boomerang/daBoomerang_createHeap__FP10fopAc_ac_c.s"
static void daBoomerang_createHeap(fopAc_ac_c* i_this) {
daBoomerang_c* boomerang = (daBoomerang_c*)i_this;
boomerang->createHeap();
}
#pragma pop
/* ############################################################################################## */
/* 804A298C-804A2990 00013C 0004+00 1/1 0/0 0/0 .rodata @6077 */