d_a_b_ob matched (#2155)

* all b_ob functions matching, not linked

* oops forgot a couple funcs

* fix some small errors

* some morpheel doc

* remove asm
This commit is contained in:
TakaRikka 2024-05-18 18:13:21 -07:00 committed by GitHub
parent 35484fb2c7
commit fa325034fd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
27 changed files with 8107 additions and 1106 deletions

View File

@ -21,8 +21,8 @@ Total | 54.954197% | 2209528 | 4020672
Section | Percentage | Decompiled (bytes) | Total (bytes)
---|---|---|---
main.dol | 54.954197% | 2209528 | 4020672
RELs | 38.647050% | 4444536 | 11500324
Total | 42.871372% | 6654064 | 15520996
RELs | 38.671154% | 4447308 | 11500324
Total | 42.889232% | 6656836 | 15520996
## RELs
@ -46,7 +46,7 @@ d_a_b_gnd | 25.489573% | 19264 | 75576
d_a_b_go | 100.000000% | 6268 | 6268
d_a_b_gos | 100.000000% | 7816 | 7816
d_a_b_mgn | 26.103833% | 15064 | 57708
d_a_b_ob | 26.856326% | 15784 | 58772
d_a_b_ob | 31.572858% | 18556 | 58772
d_a_b_oh | 35.387431% | 4640 | 13112
d_a_b_oh2 | 100.000000% | 5532 | 5532
d_a_b_tn | 24.850960% | 21176 | 85212
@ -785,4 +785,4 @@ d_a_vrbox2 | 44.907111% | 2804 | 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 | 38.647050% | 4444536 | 11500324
Total | 38.671154% | 4447308 | 11500324

View File

@ -1,105 +0,0 @@
lbl_806109AC:
/* 806109AC 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 806109B0 7C 08 02 A6 */ mflr r0
/* 806109B4 90 01 00 24 */ stw r0, 0x24(r1)
/* 806109B8 39 61 00 20 */ addi r11, r1, 0x20
/* 806109BC 4B D5 18 21 */ bl _savegpr_29
/* 806109C0 2C 04 00 00 */ cmpwi r4, 0
/* 806109C4 40 82 01 5C */ bne lbl_80610B20
/* 806109C8 A0 83 00 14 */ lhz r4, 0x14(r3)
/* 806109CC 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */
/* 806109D0 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */
/* 806109D4 83 E3 00 38 */ lwz r31, 0x38(r3)
/* 806109D8 83 BF 00 14 */ lwz r29, 0x14(r31)
/* 806109DC 28 1D 00 00 */ cmplwi r29, 0
/* 806109E0 41 82 01 40 */ beq lbl_80610B20
/* 806109E4 2C 04 00 02 */ cmpwi r4, 2
/* 806109E8 41 82 00 0C */ beq lbl_806109F4
/* 806109EC 2C 04 00 01 */ cmpwi r4, 1
/* 806109F0 40 82 01 30 */ bne lbl_80610B20
lbl_806109F4:
/* 806109F4 80 7F 00 84 */ lwz r3, 0x84(r31)
/* 806109F8 80 03 00 0C */ lwz r0, 0xc(r3)
/* 806109FC 1F C4 00 30 */ mulli r30, r4, 0x30
/* 80610A00 7C 60 F2 14 */ add r3, r0, r30
/* 80610A04 3C 80 80 45 */ lis r4, calc_mtx@ha /* 0x80450768@ha */
/* 80610A08 38 84 07 68 */ addi r4, r4, calc_mtx@l /* 0x80450768@l */
/* 80610A0C 80 84 00 00 */ lwz r4, 0(r4)
/* 80610A10 4B D3 5A A1 */ bl PSMTXCopy
/* 80610A14 3C 60 80 62 */ lis r3, fin@ha /* 0x8061B538@ha */
/* 80610A18 80 03 B5 38 */ lwz r0, fin@l(r3) /* 0x8061B538@l */
/* 80610A1C 2C 00 00 00 */ cmpwi r0, 0
/* 80610A20 40 82 00 50 */ bne lbl_80610A70
/* 80610A24 3C 60 80 45 */ lis r3, calc_mtx@ha /* 0x80450768@ha */
/* 80610A28 38 63 07 68 */ addi r3, r3, calc_mtx@l /* 0x80450768@l */
/* 80610A2C 80 63 00 00 */ lwz r3, 0(r3)
/* 80610A30 3C 80 80 62 */ lis r4, pno@ha /* 0x8061B534@ha */
/* 80610A34 80 04 B5 34 */ lwz r0, pno@l(r4) /* 0x8061B534@l */
/* 80610A38 1C 00 01 78 */ mulli r0, r0, 0x178
/* 80610A3C 7C 9D 02 14 */ add r4, r29, r0
/* 80610A40 A8 84 05 EE */ lha r4, 0x5ee(r4)
/* 80610A44 4B 9F B9 F1 */ bl mDoMtx_YrotM__FPA4_fs
/* 80610A48 3C 60 80 45 */ lis r3, calc_mtx@ha /* 0x80450768@ha */
/* 80610A4C 38 63 07 68 */ addi r3, r3, calc_mtx@l /* 0x80450768@l */
/* 80610A50 80 63 00 00 */ lwz r3, 0(r3)
/* 80610A54 3C 80 80 62 */ lis r4, pno@ha /* 0x8061B534@ha */
/* 80610A58 80 04 B5 34 */ lwz r0, pno@l(r4) /* 0x8061B534@l */
/* 80610A5C 1C 00 01 78 */ mulli r0, r0, 0x178
/* 80610A60 7C 9D 02 14 */ add r4, r29, r0
/* 80610A64 A8 84 05 EE */ lha r4, 0x5ee(r4)
/* 80610A68 4B 9F B9 35 */ bl mDoMtx_XrotM__FPA4_fs
/* 80610A6C 48 00 00 5C */ b lbl_80610AC8
lbl_80610A70:
/* 80610A70 3C 60 80 45 */ lis r3, calc_mtx@ha /* 0x80450768@ha */
/* 80610A74 38 63 07 68 */ addi r3, r3, calc_mtx@l /* 0x80450768@l */
/* 80610A78 80 63 00 00 */ lwz r3, 0(r3)
/* 80610A7C 3C 80 80 62 */ lis r4, pno@ha /* 0x8061B534@ha */
/* 80610A80 80 04 B5 34 */ lwz r0, pno@l(r4) /* 0x8061B534@l */
/* 80610A84 1C 00 01 78 */ mulli r0, r0, 0x178
/* 80610A88 7C 9D 02 14 */ add r4, r29, r0
/* 80610A8C A8 04 05 EE */ lha r0, 0x5ee(r4)
/* 80610A90 7C 00 00 D0 */ neg r0, r0
/* 80610A94 7C 04 07 34 */ extsh r4, r0
/* 80610A98 4B 9F B9 9D */ bl mDoMtx_YrotM__FPA4_fs
/* 80610A9C 3C 60 80 45 */ lis r3, calc_mtx@ha /* 0x80450768@ha */
/* 80610AA0 38 63 07 68 */ addi r3, r3, calc_mtx@l /* 0x80450768@l */
/* 80610AA4 80 63 00 00 */ lwz r3, 0(r3)
/* 80610AA8 3C 80 80 62 */ lis r4, pno@ha /* 0x8061B534@ha */
/* 80610AAC 80 04 B5 34 */ lwz r0, pno@l(r4) /* 0x8061B534@l */
/* 80610AB0 1C 00 01 78 */ mulli r0, r0, 0x178
/* 80610AB4 7C 9D 02 14 */ add r4, r29, r0
/* 80610AB8 A8 04 05 EE */ lha r0, 0x5ee(r4)
/* 80610ABC 7C 00 00 D0 */ neg r0, r0
/* 80610AC0 7C 04 07 34 */ extsh r4, r0
/* 80610AC4 4B 9F B8 D9 */ bl mDoMtx_XrotM__FPA4_fs
lbl_80610AC8:
/* 80610AC8 3C 60 80 45 */ lis r3, calc_mtx@ha /* 0x80450768@ha */
/* 80610ACC 38 63 07 68 */ addi r3, r3, calc_mtx@l /* 0x80450768@l */
/* 80610AD0 80 63 00 00 */ lwz r3, 0(r3)
/* 80610AD4 3C 80 80 62 */ lis r4, pno@ha /* 0x8061B534@ha */
/* 80610AD8 80 04 B5 34 */ lwz r0, pno@l(r4) /* 0x8061B534@l */
/* 80610ADC 1C 00 01 78 */ mulli r0, r0, 0x178
/* 80610AE0 7C 9D 02 14 */ add r4, r29, r0
/* 80610AE4 A8 84 05 EC */ lha r4, 0x5ec(r4)
/* 80610AE8 4B 9F B9 E5 */ bl mDoMtx_ZrotM__FPA4_fs
/* 80610AEC 3C 60 80 45 */ lis r3, calc_mtx@ha /* 0x80450768@ha */
/* 80610AF0 38 63 07 68 */ addi r3, r3, calc_mtx@l /* 0x80450768@l */
/* 80610AF4 80 63 00 00 */ lwz r3, 0(r3)
/* 80610AF8 80 9F 00 84 */ lwz r4, 0x84(r31)
/* 80610AFC 80 04 00 0C */ lwz r0, 0xc(r4)
/* 80610B00 7C 80 F2 14 */ add r4, r0, r30
/* 80610B04 4B D3 59 AD */ bl PSMTXCopy
/* 80610B08 3C 60 80 45 */ lis r3, calc_mtx@ha /* 0x80450768@ha */
/* 80610B0C 38 63 07 68 */ addi r3, r3, calc_mtx@l /* 0x80450768@l */
/* 80610B10 80 63 00 00 */ lwz r3, 0(r3)
/* 80610B14 3C 80 80 43 */ lis r4, mCurrentMtx__6J3DSys@ha /* 0x80434BE4@ha */
/* 80610B18 38 84 4B E4 */ addi r4, r4, mCurrentMtx__6J3DSys@l /* 0x80434BE4@l */
/* 80610B1C 4B D3 59 95 */ bl PSMTXCopy
lbl_80610B20:
/* 80610B20 38 60 00 01 */ li r3, 1
/* 80610B24 39 61 00 20 */ addi r11, r1, 0x20
/* 80610B28 4B D5 17 01 */ bl _restgpr_29
/* 80610B2C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80610B30 7C 08 03 A6 */ mtlr r0
/* 80610B34 38 21 00 20 */ addi r1, r1, 0x20
/* 80610B38 4E 80 00 20 */ blr

View File

@ -1,61 +0,0 @@
lbl_80610B3C:
/* 80610B3C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80610B40 7C 08 02 A6 */ mflr r0
/* 80610B44 90 01 00 24 */ stw r0, 0x24(r1)
/* 80610B48 39 61 00 20 */ addi r11, r1, 0x20
/* 80610B4C 4B D5 16 91 */ bl _savegpr_29
/* 80610B50 2C 04 00 00 */ cmpwi r4, 0
/* 80610B54 40 82 00 B4 */ bne lbl_80610C08
/* 80610B58 A0 83 00 14 */ lhz r4, 0x14(r3)
/* 80610B5C 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */
/* 80610B60 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */
/* 80610B64 83 E3 00 38 */ lwz r31, 0x38(r3)
/* 80610B68 83 BF 00 14 */ lwz r29, 0x14(r31)
/* 80610B6C 28 1D 00 00 */ cmplwi r29, 0
/* 80610B70 41 82 00 98 */ beq lbl_80610C08
/* 80610B74 38 04 FF FE */ addi r0, r4, -2
/* 80610B78 28 00 00 01 */ cmplwi r0, 1
/* 80610B7C 40 81 00 14 */ ble lbl_80610B90
/* 80610B80 2C 04 00 05 */ cmpwi r4, 5
/* 80610B84 41 82 00 0C */ beq lbl_80610B90
/* 80610B88 2C 04 00 06 */ cmpwi r4, 6
/* 80610B8C 40 82 00 7C */ bne lbl_80610C08
lbl_80610B90:
/* 80610B90 80 7F 00 84 */ lwz r3, 0x84(r31)
/* 80610B94 80 03 00 0C */ lwz r0, 0xc(r3)
/* 80610B98 1F C4 00 30 */ mulli r30, r4, 0x30
/* 80610B9C 7C 60 F2 14 */ add r3, r0, r30
/* 80610BA0 3C 80 80 45 */ lis r4, calc_mtx@ha /* 0x80450768@ha */
/* 80610BA4 38 84 07 68 */ addi r4, r4, calc_mtx@l /* 0x80450768@l */
/* 80610BA8 80 84 00 00 */ lwz r4, 0(r4)
/* 80610BAC 4B D3 59 05 */ bl PSMTXCopy
/* 80610BB0 3C 60 80 45 */ lis r3, calc_mtx@ha /* 0x80450768@ha */
/* 80610BB4 38 63 07 68 */ addi r3, r3, calc_mtx@l /* 0x80450768@l */
/* 80610BB8 80 63 00 00 */ lwz r3, 0(r3)
/* 80610BBC 3C 80 80 62 */ lis r4, pno@ha /* 0x8061B534@ha */
/* 80610BC0 80 04 B5 34 */ lwz r0, pno@l(r4) /* 0x8061B534@l */
/* 80610BC4 1C 00 01 78 */ mulli r0, r0, 0x178
/* 80610BC8 7C 9D 02 14 */ add r4, r29, r0
/* 80610BCC A8 84 05 F4 */ lha r4, 0x5f4(r4)
/* 80610BD0 4B 9F B8 65 */ bl mDoMtx_YrotM__FPA4_fs
/* 80610BD4 3C 60 80 45 */ lis r3, calc_mtx@ha /* 0x80450768@ha */
/* 80610BD8 38 63 07 68 */ addi r3, r3, calc_mtx@l /* 0x80450768@l */
/* 80610BDC 80 63 00 00 */ lwz r3, 0(r3)
/* 80610BE0 80 9F 00 84 */ lwz r4, 0x84(r31)
/* 80610BE4 80 04 00 0C */ lwz r0, 0xc(r4)
/* 80610BE8 7C 80 F2 14 */ add r4, r0, r30
/* 80610BEC 4B D3 58 C5 */ bl PSMTXCopy
/* 80610BF0 3C 60 80 45 */ lis r3, calc_mtx@ha /* 0x80450768@ha */
/* 80610BF4 38 63 07 68 */ addi r3, r3, calc_mtx@l /* 0x80450768@l */
/* 80610BF8 80 63 00 00 */ lwz r3, 0(r3)
/* 80610BFC 3C 80 80 43 */ lis r4, mCurrentMtx__6J3DSys@ha /* 0x80434BE4@ha */
/* 80610C00 38 84 4B E4 */ addi r4, r4, mCurrentMtx__6J3DSys@l /* 0x80434BE4@l */
/* 80610C04 4B D3 58 AD */ bl PSMTXCopy
lbl_80610C08:
/* 80610C08 38 60 00 01 */ li r3, 1
/* 80610C0C 39 61 00 20 */ addi r11, r1, 0x20
/* 80610C10 4B D5 16 19 */ bl _restgpr_29
/* 80610C14 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80610C18 7C 08 03 A6 */ mtlr r0
/* 80610C1C 38 21 00 20 */ addi r1, r1, 0x20
/* 80610C20 4E 80 00 20 */ blr

View File

@ -1,66 +0,0 @@
lbl_80610C24:
/* 80610C24 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80610C28 7C 08 02 A6 */ mflr r0
/* 80610C2C 90 01 00 24 */ stw r0, 0x24(r1)
/* 80610C30 39 61 00 20 */ addi r11, r1, 0x20
/* 80610C34 4B D5 15 A9 */ bl _savegpr_29
/* 80610C38 2C 04 00 00 */ cmpwi r4, 0
/* 80610C3C 40 82 00 CC */ bne lbl_80610D08
/* 80610C40 A0 83 00 14 */ lhz r4, 0x14(r3)
/* 80610C44 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */
/* 80610C48 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */
/* 80610C4C 83 E3 00 38 */ lwz r31, 0x38(r3)
/* 80610C50 83 BF 00 14 */ lwz r29, 0x14(r31)
/* 80610C54 28 1D 00 00 */ cmplwi r29, 0
/* 80610C58 41 82 00 B0 */ beq lbl_80610D08
/* 80610C5C 2C 04 00 01 */ cmpwi r4, 1
/* 80610C60 40 82 00 A8 */ bne lbl_80610D08
/* 80610C64 80 7F 00 84 */ lwz r3, 0x84(r31)
/* 80610C68 80 03 00 0C */ lwz r0, 0xc(r3)
/* 80610C6C 1F C4 00 30 */ mulli r30, r4, 0x30
/* 80610C70 7C 60 F2 14 */ add r3, r0, r30
/* 80610C74 3C 80 80 45 */ lis r4, calc_mtx@ha /* 0x80450768@ha */
/* 80610C78 38 84 07 68 */ addi r4, r4, calc_mtx@l /* 0x80450768@l */
/* 80610C7C 80 84 00 00 */ lwz r4, 0(r4)
/* 80610C80 4B D3 58 31 */ bl PSMTXCopy
/* 80610C84 3C 60 80 45 */ lis r3, calc_mtx@ha /* 0x80450768@ha */
/* 80610C88 38 63 07 68 */ addi r3, r3, calc_mtx@l /* 0x80450768@l */
/* 80610C8C 80 63 00 00 */ lwz r3, 0(r3)
/* 80610C90 3C 80 80 62 */ lis r4, pno@ha /* 0x8061B534@ha */
/* 80610C94 80 04 B5 34 */ lwz r0, pno@l(r4) /* 0x8061B534@l */
/* 80610C98 1C 00 01 78 */ mulli r0, r0, 0x178
/* 80610C9C 7C 9D 02 14 */ add r4, r29, r0
/* 80610CA0 A8 84 05 FA */ lha r4, 0x5fa(r4)
/* 80610CA4 4B 9F B7 91 */ bl mDoMtx_YrotM__FPA4_fs
/* 80610CA8 3C 60 80 45 */ lis r3, calc_mtx@ha /* 0x80450768@ha */
/* 80610CAC 38 63 07 68 */ addi r3, r3, calc_mtx@l /* 0x80450768@l */
/* 80610CB0 80 63 00 00 */ lwz r3, 0(r3)
/* 80610CB4 3C 80 80 62 */ lis r4, pno@ha /* 0x8061B534@ha */
/* 80610CB8 80 04 B5 34 */ lwz r0, pno@l(r4) /* 0x8061B534@l */
/* 80610CBC 1C 00 01 78 */ mulli r0, r0, 0x178
/* 80610CC0 7C 9D 02 14 */ add r4, r29, r0
/* 80610CC4 A8 04 05 FA */ lha r0, 0x5fa(r4)
/* 80610CC8 7C 00 00 D0 */ neg r0, r0
/* 80610CCC 7C 04 07 34 */ extsh r4, r0
/* 80610CD0 4B 9F B6 CD */ bl mDoMtx_XrotM__FPA4_fs
/* 80610CD4 3C 60 80 45 */ lis r3, calc_mtx@ha /* 0x80450768@ha */
/* 80610CD8 38 63 07 68 */ addi r3, r3, calc_mtx@l /* 0x80450768@l */
/* 80610CDC 80 63 00 00 */ lwz r3, 0(r3)
/* 80610CE0 80 9F 00 84 */ lwz r4, 0x84(r31)
/* 80610CE4 80 04 00 0C */ lwz r0, 0xc(r4)
/* 80610CE8 7C 80 F2 14 */ add r4, r0, r30
/* 80610CEC 4B D3 57 C5 */ bl PSMTXCopy
/* 80610CF0 3C 60 80 45 */ lis r3, calc_mtx@ha /* 0x80450768@ha */
/* 80610CF4 38 63 07 68 */ addi r3, r3, calc_mtx@l /* 0x80450768@l */
/* 80610CF8 80 63 00 00 */ lwz r3, 0(r3)
/* 80610CFC 3C 80 80 43 */ lis r4, mCurrentMtx__6J3DSys@ha /* 0x80434BE4@ha */
/* 80610D00 38 84 4B E4 */ addi r4, r4, mCurrentMtx__6J3DSys@l /* 0x80434BE4@l */
/* 80610D04 4B D3 57 AD */ bl PSMTXCopy
lbl_80610D08:
/* 80610D08 38 60 00 01 */ li r3, 1
/* 80610D0C 39 61 00 20 */ addi r11, r1, 0x20
/* 80610D10 4B D5 15 19 */ bl _restgpr_29
/* 80610D14 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80610D18 7C 08 03 A6 */ mtlr r0
/* 80610D1C 38 21 00 20 */ addi r1, r1, 0x20
/* 80610D20 4E 80 00 20 */ blr

View File

@ -1,85 +0,0 @@
lbl_8061066C:
/* 8061066C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80610670 7C 08 02 A6 */ mflr r0
/* 80610674 90 01 00 24 */ stw r0, 0x24(r1)
/* 80610678 39 61 00 20 */ addi r11, r1, 0x20
/* 8061067C 4B D5 1B 61 */ bl _savegpr_29
/* 80610680 2C 04 00 00 */ cmpwi r4, 0
/* 80610684 40 82 01 14 */ bne lbl_80610798
/* 80610688 A0 83 00 14 */ lhz r4, 0x14(r3)
/* 8061068C 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */
/* 80610690 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */
/* 80610694 83 E3 00 38 */ lwz r31, 0x38(r3)
/* 80610698 83 DF 00 14 */ lwz r30, 0x14(r31)
/* 8061069C 28 1E 00 00 */ cmplwi r30, 0
/* 806106A0 41 82 00 F8 */ beq lbl_80610798
/* 806106A4 2C 04 00 02 */ cmpwi r4, 2
/* 806106A8 41 80 00 78 */ blt lbl_80610720
/* 806106AC 2C 04 00 04 */ cmpwi r4, 4
/* 806106B0 41 81 00 70 */ bgt lbl_80610720
/* 806106B4 80 7F 00 84 */ lwz r3, 0x84(r31)
/* 806106B8 80 03 00 0C */ lwz r0, 0xc(r3)
/* 806106BC 1F A4 00 30 */ mulli r29, r4, 0x30
/* 806106C0 7C 60 EA 14 */ add r3, r0, r29
/* 806106C4 3C 80 80 45 */ lis r4, calc_mtx@ha /* 0x80450768@ha */
/* 806106C8 38 84 07 68 */ addi r4, r4, calc_mtx@l /* 0x80450768@l */
/* 806106CC 80 84 00 00 */ lwz r4, 0(r4)
/* 806106D0 4B D3 5D E1 */ bl PSMTXCopy
/* 806106D4 3C 60 80 45 */ lis r3, calc_mtx@ha /* 0x80450768@ha */
/* 806106D8 38 63 07 68 */ addi r3, r3, calc_mtx@l /* 0x80450768@l */
/* 806106DC 80 63 00 00 */ lwz r3, 0(r3)
/* 806106E0 A8 9E 47 AE */ lha r4, 0x47ae(r30)
/* 806106E4 4B 9F BD 51 */ bl mDoMtx_YrotM__FPA4_fs
/* 806106E8 3C 60 80 45 */ lis r3, calc_mtx@ha /* 0x80450768@ha */
/* 806106EC 38 63 07 68 */ addi r3, r3, calc_mtx@l /* 0x80450768@l */
/* 806106F0 80 63 00 00 */ lwz r3, 0(r3)
/* 806106F4 80 9F 00 84 */ lwz r4, 0x84(r31)
/* 806106F8 80 04 00 0C */ lwz r0, 0xc(r4)
/* 806106FC 7C 80 EA 14 */ add r4, r0, r29
/* 80610700 4B D3 5D B1 */ bl PSMTXCopy
/* 80610704 3C 60 80 45 */ lis r3, calc_mtx@ha /* 0x80450768@ha */
/* 80610708 38 63 07 68 */ addi r3, r3, calc_mtx@l /* 0x80450768@l */
/* 8061070C 80 63 00 00 */ lwz r3, 0(r3)
/* 80610710 3C 80 80 43 */ lis r4, mCurrentMtx__6J3DSys@ha /* 0x80434BE4@ha */
/* 80610714 38 84 4B E4 */ addi r4, r4, mCurrentMtx__6J3DSys@l /* 0x80434BE4@l */
/* 80610718 4B D3 5D 99 */ bl PSMTXCopy
/* 8061071C 48 00 00 7C */ b lbl_80610798
lbl_80610720:
/* 80610720 2C 04 00 05 */ cmpwi r4, 5
/* 80610724 41 80 00 74 */ blt lbl_80610798
/* 80610728 2C 04 00 07 */ cmpwi r4, 7
/* 8061072C 41 81 00 6C */ bgt lbl_80610798
/* 80610730 80 7F 00 84 */ lwz r3, 0x84(r31)
/* 80610734 80 03 00 0C */ lwz r0, 0xc(r3)
/* 80610738 1F A4 00 30 */ mulli r29, r4, 0x30
/* 8061073C 7C 60 EA 14 */ add r3, r0, r29
/* 80610740 3C 80 80 45 */ lis r4, calc_mtx@ha /* 0x80450768@ha */
/* 80610744 38 84 07 68 */ addi r4, r4, calc_mtx@l /* 0x80450768@l */
/* 80610748 80 84 00 00 */ lwz r4, 0(r4)
/* 8061074C 4B D3 5D 65 */ bl PSMTXCopy
/* 80610750 3C 60 80 45 */ lis r3, calc_mtx@ha /* 0x80450768@ha */
/* 80610754 38 63 07 68 */ addi r3, r3, calc_mtx@l /* 0x80450768@l */
/* 80610758 80 63 00 00 */ lwz r3, 0(r3)
/* 8061075C A8 9E 47 AE */ lha r4, 0x47ae(r30)
/* 80610760 4B 9F BC D5 */ bl mDoMtx_YrotM__FPA4_fs
/* 80610764 3C 60 80 45 */ lis r3, calc_mtx@ha /* 0x80450768@ha */
/* 80610768 38 63 07 68 */ addi r3, r3, calc_mtx@l /* 0x80450768@l */
/* 8061076C 80 63 00 00 */ lwz r3, 0(r3)
/* 80610770 80 9F 00 84 */ lwz r4, 0x84(r31)
/* 80610774 80 04 00 0C */ lwz r0, 0xc(r4)
/* 80610778 7C 80 EA 14 */ add r4, r0, r29
/* 8061077C 4B D3 5D 35 */ bl PSMTXCopy
/* 80610780 3C 60 80 45 */ lis r3, calc_mtx@ha /* 0x80450768@ha */
/* 80610784 38 63 07 68 */ addi r3, r3, calc_mtx@l /* 0x80450768@l */
/* 80610788 80 63 00 00 */ lwz r3, 0(r3)
/* 8061078C 3C 80 80 43 */ lis r4, mCurrentMtx__6J3DSys@ha /* 0x80434BE4@ha */
/* 80610790 38 84 4B E4 */ addi r4, r4, mCurrentMtx__6J3DSys@l /* 0x80434BE4@l */
/* 80610794 4B D3 5D 1D */ bl PSMTXCopy
lbl_80610798:
/* 80610798 38 60 00 01 */ li r3, 1
/* 8061079C 39 61 00 20 */ addi r11, r1, 0x20
/* 806107A0 4B D5 1A 89 */ bl _restgpr_29
/* 806107A4 80 01 00 24 */ lwz r0, 0x24(r1)
/* 806107A8 7C 08 03 A6 */ mtlr r0
/* 806107AC 38 21 00 20 */ addi r1, r1, 0x20
/* 806107B0 4E 80 00 20 */ blr

View File

@ -1,133 +0,0 @@
lbl_806107B4:
/* 806107B4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 806107B8 7C 08 02 A6 */ mflr r0
/* 806107BC 90 01 00 24 */ stw r0, 0x24(r1)
/* 806107C0 39 61 00 20 */ addi r11, r1, 0x20
/* 806107C4 4B D5 1A 15 */ bl _savegpr_28
/* 806107C8 2C 04 00 00 */ cmpwi r4, 0
/* 806107CC 40 82 01 C4 */ bne lbl_80610990
/* 806107D0 A0 83 00 14 */ lhz r4, 0x14(r3)
/* 806107D4 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */
/* 806107D8 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */
/* 806107DC 83 E3 00 38 */ lwz r31, 0x38(r3)
/* 806107E0 83 DF 00 14 */ lwz r30, 0x14(r31)
/* 806107E4 28 1E 00 00 */ cmplwi r30, 0
/* 806107E8 41 82 01 A8 */ beq lbl_80610990
/* 806107EC 2C 04 00 03 */ cmpwi r4, 3
/* 806107F0 40 82 00 70 */ bne lbl_80610860
/* 806107F4 80 7F 00 84 */ lwz r3, 0x84(r31)
/* 806107F8 80 03 00 0C */ lwz r0, 0xc(r3)
/* 806107FC 1F A4 00 30 */ mulli r29, r4, 0x30
/* 80610800 7C 60 EA 14 */ add r3, r0, r29
/* 80610804 3C 80 80 45 */ lis r4, calc_mtx@ha /* 0x80450768@ha */
/* 80610808 38 84 07 68 */ addi r4, r4, calc_mtx@l /* 0x80450768@l */
/* 8061080C 80 84 00 00 */ lwz r4, 0(r4)
/* 80610810 4B D3 5C A1 */ bl PSMTXCopy
/* 80610814 3C 60 80 45 */ lis r3, calc_mtx@ha /* 0x80450768@ha */
/* 80610818 38 63 07 68 */ addi r3, r3, calc_mtx@l /* 0x80450768@l */
/* 8061081C 80 63 00 00 */ lwz r3, 0(r3)
/* 80610820 A8 9E 47 AA */ lha r4, 0x47aa(r30)
/* 80610824 4B 9F BC 11 */ bl mDoMtx_YrotM__FPA4_fs
/* 80610828 3C 60 80 45 */ lis r3, calc_mtx@ha /* 0x80450768@ha */
/* 8061082C 38 63 07 68 */ addi r3, r3, calc_mtx@l /* 0x80450768@l */
/* 80610830 80 63 00 00 */ lwz r3, 0(r3)
/* 80610834 80 9F 00 84 */ lwz r4, 0x84(r31)
/* 80610838 80 04 00 0C */ lwz r0, 0xc(r4)
/* 8061083C 7C 80 EA 14 */ add r4, r0, r29
/* 80610840 4B D3 5C 71 */ bl PSMTXCopy
/* 80610844 3C 60 80 45 */ lis r3, calc_mtx@ha /* 0x80450768@ha */
/* 80610848 38 63 07 68 */ addi r3, r3, calc_mtx@l /* 0x80450768@l */
/* 8061084C 80 63 00 00 */ lwz r3, 0(r3)
/* 80610850 3C 80 80 43 */ lis r4, mCurrentMtx__6J3DSys@ha /* 0x80434BE4@ha */
/* 80610854 38 84 4B E4 */ addi r4, r4, mCurrentMtx__6J3DSys@l /* 0x80434BE4@l */
/* 80610858 4B D3 5C 59 */ bl PSMTXCopy
/* 8061085C 48 00 01 34 */ b lbl_80610990
lbl_80610860:
/* 80610860 2C 04 00 06 */ cmpwi r4, 6
/* 80610864 40 82 00 78 */ bne lbl_806108DC
/* 80610868 80 7F 00 84 */ lwz r3, 0x84(r31)
/* 8061086C 80 03 00 0C */ lwz r0, 0xc(r3)
/* 80610870 1F A4 00 30 */ mulli r29, r4, 0x30
/* 80610874 7C 60 EA 14 */ add r3, r0, r29
/* 80610878 3C 80 80 45 */ lis r4, calc_mtx@ha /* 0x80450768@ha */
/* 8061087C 38 84 07 68 */ addi r4, r4, calc_mtx@l /* 0x80450768@l */
/* 80610880 80 84 00 00 */ lwz r4, 0(r4)
/* 80610884 4B D3 5C 2D */ bl PSMTXCopy
/* 80610888 3C 60 80 45 */ lis r3, calc_mtx@ha /* 0x80450768@ha */
/* 8061088C 38 63 07 68 */ addi r3, r3, calc_mtx@l /* 0x80450768@l */
/* 80610890 80 63 00 00 */ lwz r3, 0(r3)
/* 80610894 A8 1E 47 AA */ lha r0, 0x47aa(r30)
/* 80610898 7C 00 00 D0 */ neg r0, r0
/* 8061089C 7C 04 07 34 */ extsh r4, r0
/* 806108A0 4B 9F BB 95 */ bl mDoMtx_YrotM__FPA4_fs
/* 806108A4 3C 60 80 45 */ lis r3, calc_mtx@ha /* 0x80450768@ha */
/* 806108A8 38 63 07 68 */ addi r3, r3, calc_mtx@l /* 0x80450768@l */
/* 806108AC 80 63 00 00 */ lwz r3, 0(r3)
/* 806108B0 80 9F 00 84 */ lwz r4, 0x84(r31)
/* 806108B4 80 04 00 0C */ lwz r0, 0xc(r4)
/* 806108B8 7C 80 EA 14 */ add r4, r0, r29
/* 806108BC 4B D3 5B F5 */ bl PSMTXCopy
/* 806108C0 3C 60 80 45 */ lis r3, calc_mtx@ha /* 0x80450768@ha */
/* 806108C4 38 63 07 68 */ addi r3, r3, calc_mtx@l /* 0x80450768@l */
/* 806108C8 80 63 00 00 */ lwz r3, 0(r3)
/* 806108CC 3C 80 80 43 */ lis r4, mCurrentMtx__6J3DSys@ha /* 0x80434BE4@ha */
/* 806108D0 38 84 4B E4 */ addi r4, r4, mCurrentMtx__6J3DSys@l /* 0x80434BE4@l */
/* 806108D4 4B D3 5B DD */ bl PSMTXCopy
/* 806108D8 48 00 00 B8 */ b lbl_80610990
lbl_806108DC:
/* 806108DC 2C 04 00 02 */ cmpwi r4, 2
/* 806108E0 41 82 00 14 */ beq lbl_806108F4
/* 806108E4 2C 04 00 04 */ cmpwi r4, 4
/* 806108E8 41 82 00 0C */ beq lbl_806108F4
/* 806108EC 2C 04 00 05 */ cmpwi r4, 5
/* 806108F0 40 82 00 A0 */ bne lbl_80610990
lbl_806108F4:
/* 806108F4 7C 9C 23 78 */ mr r28, r4
/* 806108F8 2C 04 00 02 */ cmpwi r4, 2
/* 806108FC 40 82 00 0C */ bne lbl_80610908
/* 80610900 3B 80 00 00 */ li r28, 0
/* 80610904 48 00 00 10 */ b lbl_80610914
lbl_80610908:
/* 80610908 2C 04 00 04 */ cmpwi r4, 4
/* 8061090C 41 80 00 08 */ blt lbl_80610914
/* 80610910 3B 84 FF FD */ addi r28, r4, -3
lbl_80610914:
/* 80610914 80 7F 00 84 */ lwz r3, 0x84(r31)
/* 80610918 80 03 00 0C */ lwz r0, 0xc(r3)
/* 8061091C 1F A4 00 30 */ mulli r29, r4, 0x30
/* 80610920 7C 60 EA 14 */ add r3, r0, r29
/* 80610924 3C 80 80 45 */ lis r4, calc_mtx@ha /* 0x80450768@ha */
/* 80610928 38 84 07 68 */ addi r4, r4, calc_mtx@l /* 0x80450768@l */
/* 8061092C 80 84 00 00 */ lwz r4, 0(r4)
/* 80610930 4B D3 5B 81 */ bl PSMTXCopy
/* 80610934 3C 60 80 45 */ lis r3, calc_mtx@ha /* 0x80450768@ha */
/* 80610938 38 63 07 68 */ addi r3, r3, calc_mtx@l /* 0x80450768@l */
/* 8061093C 80 63 00 00 */ lwz r3, 0(r3)
/* 80610940 57 80 08 3C */ slwi r0, r28, 1
/* 80610944 7C 9E 02 14 */ add r4, r30, r0
/* 80610948 A8 84 47 A4 */ lha r4, 0x47a4(r4)
/* 8061094C A8 1E 47 AC */ lha r0, 0x47ac(r30)
/* 80610950 7C 04 02 14 */ add r0, r4, r0
/* 80610954 7C 04 07 34 */ extsh r4, r0
/* 80610958 4B 9F BA DD */ bl mDoMtx_YrotM__FPA4_fs
/* 8061095C 3C 60 80 45 */ lis r3, calc_mtx@ha /* 0x80450768@ha */
/* 80610960 38 63 07 68 */ addi r3, r3, calc_mtx@l /* 0x80450768@l */
/* 80610964 80 63 00 00 */ lwz r3, 0(r3)
/* 80610968 80 9F 00 84 */ lwz r4, 0x84(r31)
/* 8061096C 80 04 00 0C */ lwz r0, 0xc(r4)
/* 80610970 7C 80 EA 14 */ add r4, r0, r29
/* 80610974 4B D3 5B 3D */ bl PSMTXCopy
/* 80610978 3C 60 80 45 */ lis r3, calc_mtx@ha /* 0x80450768@ha */
/* 8061097C 38 63 07 68 */ addi r3, r3, calc_mtx@l /* 0x80450768@l */
/* 80610980 80 63 00 00 */ lwz r3, 0(r3)
/* 80610984 3C 80 80 43 */ lis r4, mCurrentMtx__6J3DSys@ha /* 0x80434BE4@ha */
/* 80610988 38 84 4B E4 */ addi r4, r4, mCurrentMtx__6J3DSys@l /* 0x80434BE4@l */
/* 8061098C 4B D3 5B 25 */ bl PSMTXCopy
lbl_80610990:
/* 80610990 38 60 00 01 */ li r3, 1
/* 80610994 39 61 00 20 */ addi r11, r1, 0x20
/* 80610998 4B D5 18 8D */ bl _restgpr_28
/* 8061099C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 806109A0 7C 08 03 A6 */ mtlr r0
/* 806109A4 38 21 00 20 */ addi r1, r1, 0x20
/* 806109A8 4E 80 00 20 */ blr

View File

@ -1,58 +0,0 @@
lbl_806158E0:
/* 806158E0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 806158E4 7C 08 02 A6 */ mflr r0
/* 806158E8 90 01 00 24 */ stw r0, 0x24(r1)
/* 806158EC DB E1 00 10 */ stfd f31, 0x10(r1)
/* 806158F0 F3 E1 00 18 */ psq_st f31, 24(r1), 0, 0 /* qr0 */
/* 806158F4 93 E1 00 0C */ stw r31, 0xc(r1)
/* 806158F8 7C 7F 1B 78 */ mr r31, r3
/* 806158FC FF E0 08 90 */ fmr f31, f1
/* 80615900 38 7F 5C 90 */ addi r3, r31, 0x5c90
/* 80615904 C0 3F 5C A8 */ lfs f1, 0x5ca8(r31)
/* 80615908 FC 40 F8 90 */ fmr f2, f31
/* 8061590C C0 7F 5C C0 */ lfs f3, 0x5cc0(r31)
/* 80615910 C0 1F 5C D0 */ lfs f0, 0x5cd0(r31)
/* 80615914 EC 63 00 32 */ fmuls f3, f3, f0
/* 80615918 4B C5 A1 25 */ bl cLib_addCalc2__FPffff
/* 8061591C 38 7F 5C 94 */ addi r3, r31, 0x5c94
/* 80615920 C0 3F 5C AC */ lfs f1, 0x5cac(r31)
/* 80615924 FC 40 F8 90 */ fmr f2, f31
/* 80615928 C0 7F 5C C4 */ lfs f3, 0x5cc4(r31)
/* 8061592C C0 1F 5C D0 */ lfs f0, 0x5cd0(r31)
/* 80615930 EC 63 00 32 */ fmuls f3, f3, f0
/* 80615934 4B C5 A1 09 */ bl cLib_addCalc2__FPffff
/* 80615938 38 7F 5C 98 */ addi r3, r31, 0x5c98
/* 8061593C C0 3F 5C B0 */ lfs f1, 0x5cb0(r31)
/* 80615940 FC 40 F8 90 */ fmr f2, f31
/* 80615944 C0 7F 5C C8 */ lfs f3, 0x5cc8(r31)
/* 80615948 C0 1F 5C D0 */ lfs f0, 0x5cd0(r31)
/* 8061594C EC 63 00 32 */ fmuls f3, f3, f0
/* 80615950 4B C5 A0 ED */ bl cLib_addCalc2__FPffff
/* 80615954 38 7F 5C 84 */ addi r3, r31, 0x5c84
/* 80615958 C0 3F 5C 9C */ lfs f1, 0x5c9c(r31)
/* 8061595C FC 40 F8 90 */ fmr f2, f31
/* 80615960 C0 7F 5C B4 */ lfs f3, 0x5cb4(r31)
/* 80615964 C0 1F 5C D0 */ lfs f0, 0x5cd0(r31)
/* 80615968 EC 63 00 32 */ fmuls f3, f3, f0
/* 8061596C 4B C5 A0 D1 */ bl cLib_addCalc2__FPffff
/* 80615970 38 7F 5C 88 */ addi r3, r31, 0x5c88
/* 80615974 C0 3F 5C A0 */ lfs f1, 0x5ca0(r31)
/* 80615978 FC 40 F8 90 */ fmr f2, f31
/* 8061597C C0 7F 5C B8 */ lfs f3, 0x5cb8(r31)
/* 80615980 C0 1F 5C D0 */ lfs f0, 0x5cd0(r31)
/* 80615984 EC 63 00 32 */ fmuls f3, f3, f0
/* 80615988 4B C5 A0 B5 */ bl cLib_addCalc2__FPffff
/* 8061598C 38 7F 5C 8C */ addi r3, r31, 0x5c8c
/* 80615990 C0 3F 5C A4 */ lfs f1, 0x5ca4(r31)
/* 80615994 FC 40 F8 90 */ fmr f2, f31
/* 80615998 C0 7F 5C BC */ lfs f3, 0x5cbc(r31)
/* 8061599C C0 1F 5C D0 */ lfs f0, 0x5cd0(r31)
/* 806159A0 EC 63 00 32 */ fmuls f3, f3, f0
/* 806159A4 4B C5 A0 99 */ bl cLib_addCalc2__FPffff
/* 806159A8 E3 E1 00 18 */ psq_l f31, 24(r1), 0, 0 /* qr0 */
/* 806159AC CB E1 00 10 */ lfd f31, 0x10(r1)
/* 806159B0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 806159B4 80 01 00 24 */ lwz r0, 0x24(r1)
/* 806159B8 7C 08 03 A6 */ mtlr r0
/* 806159BC 38 21 00 20 */ addi r1, r1, 0x20
/* 806159C0 4E 80 00 20 */ blr

View File

@ -1,34 +0,0 @@
lbl_806193BC:
/* 806193BC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 806193C0 7C 08 02 A6 */ mflr r0
/* 806193C4 90 01 00 14 */ stw r0, 0x14(r1)
/* 806193C8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 806193CC 7C 7F 1B 78 */ mr r31, r3
/* 806193D0 38 7F 05 AC */ addi r3, r31, 0x5ac
/* 806193D4 3C 80 80 62 */ lis r4, d_a_b_ob__stringBase0@ha /* 0x8061B09C@ha */
/* 806193D8 38 84 B0 9C */ addi r4, r4, d_a_b_ob__stringBase0@l /* 0x8061B09C@l */
/* 806193DC 4B A1 3C 2D */ bl dComIfG_resDelete__FP30request_of_phase_process_classPCc
/* 806193E0 88 1F 5D E0 */ lbz r0, 0x5de0(r31)
/* 806193E4 28 00 00 00 */ cmplwi r0, 0
/* 806193E8 41 82 00 10 */ beq lbl_806193F8
/* 806193EC 38 00 00 00 */ li r0, 0
/* 806193F0 3C 60 80 62 */ lis r3, struct_8061B4FC+0x1@ha /* 0x8061B4FD@ha */
/* 806193F4 98 03 B4 FD */ stb r0, struct_8061B4FC+0x1@l(r3) /* 0x8061B4FD@l */
lbl_806193F8:
/* 806193F8 80 1F 00 F0 */ lwz r0, 0xf0(r31)
/* 806193FC 28 00 00 00 */ cmplwi r0, 0
/* 80619400 41 82 00 20 */ beq lbl_80619420
/* 80619404 38 7F 59 3C */ addi r3, r31, 0x593c
/* 80619408 4B CA 72 ED */ bl stopAnime__10Z2CreatureFv
/* 8061940C 38 7F 59 E0 */ addi r3, r31, 0x59e0
/* 80619410 81 9F 59 E0 */ lwz r12, 0x59e0(r31)
/* 80619414 81 8C 00 08 */ lwz r12, 8(r12)
/* 80619418 7D 89 03 A6 */ mtctr r12
/* 8061941C 4E 80 04 21 */ bctrl
lbl_80619420:
/* 80619420 38 60 00 01 */ li r3, 1
/* 80619424 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80619428 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8061942C 7C 08 03 A6 */ mtlr r0
/* 80619430 38 21 00 10 */ addi r1, r1, 0x10
/* 80619434 4E 80 00 20 */ blr

View File

@ -1,50 +0,0 @@
lbl_80610E2C:
/* 80610E2C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80610E30 7C 08 02 A6 */ mflr r0
/* 80610E34 90 01 00 24 */ stw r0, 0x24(r1)
/* 80610E38 39 61 00 20 */ addi r11, r1, 0x20
/* 80610E3C 4B D5 13 9D */ bl _savegpr_28
/* 80610E40 7C 7C 1B 78 */ mr r28, r3
/* 80610E44 7C 9D 23 78 */ mr r29, r4
/* 80610E48 7F A0 07 35 */ extsh. r0, r29
/* 80610E4C 41 82 00 80 */ beq lbl_80610ECC
/* 80610E50 3B C0 00 00 */ li r30, 0
/* 80610E54 48 00 00 68 */ b lbl_80610EBC
lbl_80610E58:
/* 80610E58 80 7C 00 60 */ lwz r3, 0x60(r28)
/* 80610E5C 57 C0 13 BA */ rlwinm r0, r30, 2, 0xe, 0x1d
/* 80610E60 7F E3 00 2E */ lwzx r31, r3, r0
/* 80610E64 80 7F 00 2C */ lwz r3, 0x2c(r31)
/* 80610E68 38 80 00 00 */ li r4, 0
/* 80610E6C 81 83 00 00 */ lwz r12, 0(r3)
/* 80610E70 81 8C 00 68 */ lwz r12, 0x68(r12)
/* 80610E74 7D 89 03 A6 */ mtctr r12
/* 80610E78 4E 80 04 21 */ bctrl
/* 80610E7C B3 A3 00 00 */ sth r29, 0(r3)
/* 80610E80 80 7F 00 2C */ lwz r3, 0x2c(r31)
/* 80610E84 38 80 00 00 */ li r4, 0
/* 80610E88 81 83 00 00 */ lwz r12, 0(r3)
/* 80610E8C 81 8C 00 68 */ lwz r12, 0x68(r12)
/* 80610E90 7D 89 03 A6 */ mtctr r12
/* 80610E94 4E 80 04 21 */ bctrl
/* 80610E98 B3 A3 00 02 */ sth r29, 2(r3)
/* 80610E9C 80 7F 00 2C */ lwz r3, 0x2c(r31)
/* 80610EA0 38 80 00 00 */ li r4, 0
/* 80610EA4 81 83 00 00 */ lwz r12, 0(r3)
/* 80610EA8 81 8C 00 68 */ lwz r12, 0x68(r12)
/* 80610EAC 7D 89 03 A6 */ mtctr r12
/* 80610EB0 4E 80 04 21 */ bctrl
/* 80610EB4 B3 A3 00 04 */ sth r29, 4(r3)
/* 80610EB8 3B DE 00 01 */ addi r30, r30, 1
lbl_80610EBC:
/* 80610EBC 57 C3 04 3E */ clrlwi r3, r30, 0x10
/* 80610EC0 A0 1C 00 5C */ lhz r0, 0x5c(r28)
/* 80610EC4 7C 03 00 40 */ cmplw r3, r0
/* 80610EC8 41 80 FF 90 */ blt lbl_80610E58
lbl_80610ECC:
/* 80610ECC 39 61 00 20 */ addi r11, r1, 0x20
/* 80610ED0 4B D5 13 55 */ bl _restgpr_28
/* 80610ED4 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80610ED8 7C 08 03 A6 */ mtlr r0
/* 80610EDC 38 21 00 20 */ addi r1, r1, 0x20
/* 80610EE0 4E 80 00 20 */ blr

View File

@ -1,53 +0,0 @@
lbl_806131A8:
/* 806131A8 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 806131AC 7C 08 02 A6 */ mflr r0
/* 806131B0 90 01 00 24 */ stw r0, 0x24(r1)
/* 806131B4 DB E1 00 18 */ stfd f31, 0x18(r1)
/* 806131B8 39 61 00 18 */ addi r11, r1, 0x18
/* 806131BC 4B D4 F0 21 */ bl _savegpr_29
/* 806131C0 7C 7F 1B 78 */ mr r31, r3
/* 806131C4 FF E0 08 90 */ fmr f31, f1
/* 806131C8 7C 9D 23 78 */ mr r29, r4
/* 806131CC 3C 80 80 40 */ lis r4, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 806131D0 38 84 61 C0 */ addi r4, r4, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 806131D4 80 84 5D AC */ lwz r4, 0x5dac(r4)
/* 806131D8 7C 9E 23 78 */ mr r30, r4
/* 806131DC 4B A0 76 05 */ bl fopAcM_searchActorDistance__FPC10fopAc_ac_cPC10fopAc_ac_c
/* 806131E0 FC 01 F8 40 */ fcmpo cr0, f1, f31
/* 806131E4 40 80 00 6C */ bge lbl_80613250
/* 806131E8 A8 7F 47 6C */ lha r3, 0x476c(r31)
/* 806131EC A8 1F 04 DE */ lha r0, 0x4de(r31)
/* 806131F0 7C 03 00 50 */ subf r0, r3, r0
/* 806131F4 7C 04 07 34 */ extsh r4, r0
/* 806131F8 A8 7F 47 6E */ lha r3, 0x476e(r31)
/* 806131FC A8 1F 04 DC */ lha r0, 0x4dc(r31)
/* 80613200 7C 03 00 50 */ subf r0, r3, r0
/* 80613204 7C 05 07 34 */ extsh r5, r0
/* 80613208 7F A3 07 34 */ extsh r3, r29
/* 8061320C 7C 04 18 00 */ cmpw r4, r3
/* 80613210 40 80 00 40 */ bge lbl_80613250
/* 80613214 7C 03 00 D0 */ neg r0, r3
/* 80613218 7C 00 07 34 */ extsh r0, r0
/* 8061321C 7C 04 00 00 */ cmpw r4, r0
/* 80613220 40 81 00 30 */ ble lbl_80613250
/* 80613224 7C 05 18 00 */ cmpw r5, r3
/* 80613228 40 80 00 28 */ bge lbl_80613250
/* 8061322C 7C 05 00 00 */ cmpw r5, r0
/* 80613230 40 81 00 20 */ ble lbl_80613250
/* 80613234 7F E3 FB 78 */ mr r3, r31
/* 80613238 7F C4 F3 78 */ mr r4, r30
/* 8061323C 4B A0 9B C1 */ bl fopAcM_otherBgCheck__FPC10fopAc_ac_cPC10fopAc_ac_c
/* 80613240 2C 03 00 00 */ cmpwi r3, 0
/* 80613244 40 82 00 0C */ bne lbl_80613250
/* 80613248 38 60 00 01 */ li r3, 1
/* 8061324C 48 00 00 08 */ b lbl_80613254
lbl_80613250:
/* 80613250 38 60 00 00 */ li r3, 0
lbl_80613254:
/* 80613254 CB E1 00 18 */ lfd f31, 0x18(r1)
/* 80613258 39 61 00 18 */ addi r11, r1, 0x18
/* 8061325C 4B D4 EF CD */ bl _restgpr_29
/* 80613260 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80613264 7C 08 03 A6 */ mtlr r0
/* 80613268 38 21 00 20 */ addi r1, r1, 0x20
/* 8061326C 4E 80 00 20 */ blr

View File

@ -1,24 +0,0 @@
lbl_80611C20:
/* 80611C20 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80611C24 7C 08 02 A6 */ mflr r0
/* 80611C28 90 01 00 14 */ stw r0, 0x14(r1)
/* 80611C2C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80611C30 7C 7F 1B 78 */ mr r31, r3
/* 80611C34 4B A0 70 AD */ bl fopAc_IsActor__FPv
/* 80611C38 2C 03 00 00 */ cmpwi r3, 0
/* 80611C3C 41 82 00 24 */ beq lbl_80611C60
/* 80611C40 A8 1F 00 08 */ lha r0, 8(r31)
/* 80611C44 2C 00 02 02 */ cmpwi r0, 0x202
/* 80611C48 40 82 00 18 */ bne lbl_80611C60
/* 80611C4C 3C 60 80 62 */ lis r3, bf_ct@ha /* 0x8061B53C@ha */
/* 80611C50 38 83 B5 3C */ addi r4, r3, bf_ct@l /* 0x8061B53C@l */
/* 80611C54 80 64 00 00 */ lwz r3, 0(r4)
/* 80611C58 38 03 00 01 */ addi r0, r3, 1
/* 80611C5C 90 04 00 00 */ stw r0, 0(r4)
lbl_80611C60:
/* 80611C60 38 60 00 00 */ li r3, 0
/* 80611C64 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80611C68 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80611C6C 7C 08 03 A6 */ mtlr r0
/* 80611C70 38 21 00 10 */ addi r1, r1, 0x10
/* 80611C74 4E 80 00 20 */ blr

View File

@ -1,21 +0,0 @@
lbl_80611C78:
/* 80611C78 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80611C7C 7C 08 02 A6 */ mflr r0
/* 80611C80 90 01 00 14 */ stw r0, 0x14(r1)
/* 80611C84 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80611C88 7C 7F 1B 78 */ mr r31, r3
/* 80611C8C 4B A0 70 55 */ bl fopAc_IsActor__FPv
/* 80611C90 2C 03 00 00 */ cmpwi r3, 0
/* 80611C94 41 82 00 18 */ beq lbl_80611CAC
/* 80611C98 A8 1F 00 08 */ lha r0, 8(r31)
/* 80611C9C 2C 00 02 02 */ cmpwi r0, 0x202
/* 80611CA0 40 82 00 0C */ bne lbl_80611CAC
/* 80611CA4 7F E3 FB 78 */ mr r3, r31
/* 80611CA8 4B A0 7F D5 */ bl fopAcM_delete__FP10fopAc_ac_c
lbl_80611CAC:
/* 80611CAC 38 60 00 00 */ li r3, 0
/* 80611CB0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80611CB4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80611CB8 7C 08 03 A6 */ mtlr r0
/* 80611CBC 38 21 00 10 */ addi r1, r1, 0x10
/* 80611CC0 4E 80 00 20 */ blr

View File

@ -1,21 +0,0 @@
lbl_806159C4:
/* 806159C4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 806159C8 7C 08 02 A6 */ mflr r0
/* 806159CC 90 01 00 14 */ stw r0, 0x14(r1)
/* 806159D0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 806159D4 7C 7F 1B 78 */ mr r31, r3
/* 806159D8 4B A0 33 09 */ bl fopAc_IsActor__FPv
/* 806159DC 2C 03 00 00 */ cmpwi r3, 0
/* 806159E0 41 82 00 18 */ beq lbl_806159F8
/* 806159E4 A8 1F 00 08 */ lha r0, 8(r31)
/* 806159E8 2C 00 00 6D */ cmpwi r0, 0x6d
/* 806159EC 40 82 00 0C */ bne lbl_806159F8
/* 806159F0 7F E3 FB 78 */ mr r3, r31
/* 806159F4 4B A0 42 89 */ bl fopAcM_delete__FP10fopAc_ac_c
lbl_806159F8:
/* 806159F8 38 60 00 00 */ li r3, 0
/* 806159FC 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80615A00 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80615A04 7C 08 03 A6 */ mtlr r0
/* 80615A08 38 21 00 10 */ addi r1, r1, 0x10
/* 80615A0C 4E 80 00 20 */ blr

View File

@ -1,21 +0,0 @@
lbl_80611CC4:
/* 80611CC4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80611CC8 7C 08 02 A6 */ mflr r0
/* 80611CCC 90 01 00 14 */ stw r0, 0x14(r1)
/* 80611CD0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80611CD4 7C 7F 1B 78 */ mr r31, r3
/* 80611CD8 4B A0 70 09 */ bl fopAc_IsActor__FPv
/* 80611CDC 2C 03 00 00 */ cmpwi r3, 0
/* 80611CE0 41 82 00 18 */ beq lbl_80611CF8
/* 80611CE4 A8 1F 00 08 */ lha r0, 8(r31)
/* 80611CE8 2C 00 00 6A */ cmpwi r0, 0x6a
/* 80611CEC 40 82 00 0C */ bne lbl_80611CF8
/* 80611CF0 7F E3 FB 78 */ mr r3, r31
/* 80611CF4 4B A0 7F 89 */ bl fopAcM_delete__FP10fopAc_ac_c
lbl_80611CF8:
/* 80611CF8 38 60 00 00 */ li r3, 0
/* 80611CFC 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80611D00 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80611D04 7C 08 03 A6 */ mtlr r0
/* 80611D08 38 21 00 10 */ addi r1, r1, 0x10
/* 80611D0C 4E 80 00 20 */ blr

View File

@ -83,6 +83,7 @@ enum {
JPAEmtrStts_FirstEmit = 0x10,
JPAEmtrStts_RateStepEmit = 0x20,
JPAEmtrStts_Immortal = 0x40,
JPAEmtrStts_Delete = 0x100,
};
/**
@ -169,6 +170,7 @@ public:
void playCreateParticle() { clearStatus(JPAEmtrStts_StopEmit); }
void becomeImmortalEmitter() { setStatus(JPAEmtrStts_Immortal); }
void becomeContinuousParticle() { mMaxFrame = 0; }
void becomeDeleteEmitter() { setStatus(JPAEmtrStts_Delete); }
void becomeInvalidEmitter() {
stopCreateParticle();
mMaxFrame = 1;

View File

@ -656,6 +656,10 @@ inline s16 fopAcM_searchPlayerAngleY(const fopAc_ac_c* actor) {
return fopAcM_searchActorAngleY(actor, dComIfGp_getPlayer(0));
}
inline s16 fopAcM_searchPlayerAngleX(const fopAc_ac_c* actor) {
return fopAcM_searchActorAngleX(actor, dComIfGp_getPlayer(0));
}
inline f32 fopAcM_searchPlayerDistanceY(const fopAc_ac_c* actor) {
return fopAcM_searchActorDistanceY(actor, dComIfGp_getPlayer(0));
}

View File

@ -8,29 +8,56 @@
#include "d/cc/d_cc_d.h"
#include "d/cc/d_cc_uty.h"
struct ob_part_s {
/* 8061A658 */ ~ob_part_s();
/* 8061A72C */ ob_part_s();
enum b_ob_action {
// Phase 1
OB_ACTION_CORE_START,
OB_ACTION_CORE_HAND_MOVE,
OB_ACTION_BOMBFISH_SET,
OB_ACTION_CORE_HOOK,
OB_ACTION_CORE_CHANCE,
OB_ACTION_CORE_END,
/* 0x00 */ mDoExt_McaMorf* field_0x0;
/* 0x04 */ mDoExt_McaMorf* field_0x4;
/* 0x08 */ mDoExt_McaMorf* field_0x8;
/* 0x0C */ mDoExt_McaMorf* field_0xc;
/* 0x10 */ mDoExt_McaMorf* field_0x10;
/* 0x14 */ cXyz field_0x14;
/* 0x20 */ csXyz field_0x20;
// Phase 2
OB_ACTION_FISH_NORMAL = 100,
OB_ACTION_FISH_VACUME,
OB_ACTION_FISH_END,
};
enum b_oh_anm {
OB_ANM_APPEAR = 0x12,
OB_ANM_APPEAR_2,
OB_ANM_DEAD,
OB_ANM_EAT,
OB_ANM_EAT_2,
OB_ANM_LAST_DAMAGE,
OB_ANM_OPEN_MOUTH,
OB_ANM_OPEN_MOUTH_WAIT,
OB_ANM_SWALLOW,
OB_ANM_SWIM_WAIT,
OB_ANM_TENTACLE_END,
OB_ANM_THROWUP,
OB_ANM_WAIT,
};
struct ob_part_s {
/* 0x00 */ mDoExt_McaMorf* mpMorf;
/* 0x04 */ mDoExt_McaMorf* mpFinMorf;
/* 0x08 */ mDoExt_McaMorf* mpFinUnkMorf;
/* 0x0C */ mDoExt_McaMorf* mpFinBMorf;
/* 0x10 */ mDoExt_McaMorf* mpFinCMorf;
/* 0x14 */ cXyz mPos;
/* 0x20 */ csXyz mAngle;
/* 0x26 */ s16 field_0x26;
/* 0x28 */ f32 field_0x28;
/* 0x2C */ csXyz field_0x2c;
/* 0x32 */ csXyz field_0x32;
/* 0x38 */ csXyz field_0x38;
/* 0x28 */ f32 mSize;
/* 0x2C */ csXyz mFinARot;
/* 0x32 */ csXyz mFinBRot;
/* 0x38 */ csXyz mFinCRot;
/* 0x3E */ s8 field_0x3e;
/* 0x3F */ s8 mHide;
/* 0x40 */ dCcD_Sph mSph;
}; // Size: 0x178
struct ob_ke_s {
/* 8061A3A0 */ ~ob_ke_s();
/* 8061A41C */ ob_ke_s();
/* 0x000 */ cXyz field_0x0[20];
/* 0x0F0 */ cXyz field_0xf0[20];
/* 0x1E0 */ cXyz field_0x1e0;
@ -40,102 +67,95 @@ struct ob_ke_s {
* @ingroup actors-enemies
* @brief Morpheel (body)
*
* Lakebed Temple dungeon boss. This is the body part of the boss.
* Lakebed Temple dungeon boss. This is the core/body part of the boss.
*
*/
class b_ob_class : public fopEn_enemy_c {
public:
/* 8061A0C0 */ b_ob_class();
/* 0x05AC */ request_of_phase_process_class mPhase;
/* 0x05B4 */ mDoExt_McaMorfSO* field_0x5b4;
/* 0x05B8 */ u8 field_0x5b8[0x5BC - 0x5B8];
/* 0x05BC */ f32 field_0x5bc;
/* 0x05C0 */ ob_part_s mParts[20];
/* 0x05B4 */ mDoExt_McaMorfSO* mpCoreMorf;
/* 0x05B8 */ s8 mHideCore;
/* 0x05BC */ f32 mBossLightScale;
/* 0x05C0 */ ob_part_s mBodyParts[20];
/* 0x2320 */ int field_0x2320;
/* 0x2324 */ cXyz field_0x2324[512];
/* 0x3B24 */ csXyz field_0x3b24[512];
/* 0x4724 */ J3DModel* field_0x4724;
/* 0x4728 */ mDoExt_btkAnm* field_0x4728;
/* 0x472C */ mDoExt_brkAnm* field_0x472c;
/* 0x4730 */ f32 field_0x4730;
/* 0x4734 */ int mAnmResID;
/* 0x4738 */ int field_0x4738;
/* 0x4738 */ u8 field_0x473c;
/* 0x4724 */ J3DModel* mpSuiModel;
/* 0x4728 */ mDoExt_btkAnm* mpSuiBtk;
/* 0x472C */ mDoExt_brkAnm* mpSuiBrk;
/* 0x4730 */ f32 mSuiBrkFrame;
/* 0x4734 */ int mAnmID;
/* 0x4738 */ int mCoreAnm;
/* 0x4738 */ u8 mCoreAnmMode;
/* 0x4740 */ f32 field_0x4740;
/* 0x4744 */ s8 field_0x4744;
/* 0x4745 */ u8 field_0x4745;
/* 0x4748 */ u32 field_0x4748;
/* 0x474C */ u8 field_0x474c;
/* 0x474D */ u8 field_0x474d;
/* 0x474E */ u8 field_0x474e[0x4750 - 0x474e];
/* 0x4745 */ s8 mDrawShadow;
/* 0x4748 */ u32 mShadowKey;
/* 0x474C */ s8 mCoreBattleMode;
/* 0x474D */ s8 mFishBattleMode;
/* 0x474E */ u8 mAttnOffTimer;
/* 0x4750 */ s16 field_0x4750;
/* 0x4752 */ s16 field_0x4752;
/* 0x4754 */ s16 field_0x4754;
/* 0x4752 */ s16 mAction;
/* 0x4754 */ s16 mMode;
/* 0x4756 */ s16 field_0x4756;
/* 0x4758 */ cXyz field_0x4758;
/* 0x4764 */ csXyz field_0x4764;
/* 0x4758 */ cXyz mTargetMovePos;
/* 0x4764 */ csXyz mMoveAngle;
/* 0x476A */ s16 field_0x476a;
/* 0x476C */ s16 mYAngleToPlayer;
/* 0x476E */ s16 mXAngleToPlayer;
/* 0x4770 */ f32 mDistToPlayer;
/* 0x4774 */ u8 field_0x4774[0x4778 - 0x4774];
/* 0x4778 */ s16 field_0x4778;
/* 0x477A */ s16 field_0x477a;
/* 0x477C */ s16 field_0x477c;
/* 0x477E */ s16 field_0x477e;
/* 0x4780 */ s16 field_0x4780;
/* 0x4782 */ u8 field_0x4782[0x4784 - 0x4782];
/* 0x05AC */ s16 field_0x4784;
/* 0x4778 */ s16 mTimers[6];
/* 0x05AC */ s16 mHitIFrameTimer;
/* 0x4786 */ u8 field_0x4786[0x4788 - 0x4786];
/* 0x4788 */ int field_0x4788;
/* 0x4788 */ int mCoreHandNo;
/* 0x478C */ int field_0x478c;
/* 0x4790 */ int field_0x4790;
/* 0x4794 */ s16 field_0x4794;
/* 0x4798 */ f32 field_0x4798;
/* 0x479C */ f32 field_0x479c;
/* 0x47A0 */ f32 field_0x47a0;
/* 0x47A4 */ u8 field_0x47a4[0x47aa - 0x47a4];
/* 0x47A4 */ s16 field_0x47a4[3];
/* 0x47AA */ s16 field_0x47aa;
/* 0x47AC */ s16 field_0x47ac;
/* 0x47AE */ s16 field_0x47ae;
/* 0x47B0 */ s16 field_0x47b0;
/* 0x47B4 */ int field_0x47b4;
/* 0x47B8 */ s16 field_0x47b8;
/* 0x47B8 */ s16 mHangTimer;
/* 0x47BA */ s16 field_0x47ba;
/* 0x47BC */ s16 field_0x47bc;
/* 0x47C0 */ f32 field_0x47c0;
/* 0x47C4 */ s16 field_0x47c4;
/* 0x47C8 */ int field_0x47c8;
/* 0x47CC */ dCcD_Stts field_0x47cc;
/* 0x47C8 */ int mDemoMovePosIdx;
/* 0x47CC */ dCcD_Stts mCoreCcStts;
/* 0x4808 */ dCcD_Sph mCcSph;
/* 0x4940 */ dCcD_Sph mCoreSph;
/* 0x4A78 */ dCcU_AtInfo mAtInfo;
/* 0x4A9C */ u8 field_0x4a9c[0x4aa0 - 0x4a9c];
/* 0x4AA0 */ dCcD_Stts field_0x4aa0;
/* 0x4AA0 */ dCcD_Stts mBodyCcStts;
/* 0x4ADC */ dCcD_Sph mBodySph;
/* 0x4C14 */ dCcD_Sph field_0x4c14;
/* 0x4D4C */ dBgS_AcchCir field_0x4d4c;
/* 0x4D8C */ dBgS_ObjAcch field_0x4d8c;
/* 0x4C14 */ dCcD_Sph mFishHeadSph;
/* 0x4D4C */ dBgS_AcchCir mAcchCir;
/* 0x4D8C */ dBgS_ObjAcch mAcch;
/* 0x4F64 */ u32 mTentacleActorIDs[8];
/* 0x4F84 */ ob_ke_s field_0x4f84[5];
/* 0x5920 */ mDoExt_3DlineMat0_c field_0x5920;
/* 0x593C */ Z2CreatureEnemy field_0x593c;
/* 0x59E0 */ Z2CreatureOI field_0x59e0;
/* 0x593C */ Z2CreatureEnemy mSound;
/* 0x59E0 */ Z2CreatureOI mOISound;
/* 0x5BE4 */ cXyz field_0x5be4[13];
/* 0x5C80 */ s16 mDemoAction;
/* 0x5C82 */ s16 field_0x5c82;
/* 0x5C84 */ cXyz field_0x5c84;
/* 0x5C90 */ cXyz field_0x5c90;
/* 0x5C9C */ cXyz field_0x5c9c;
/* 0x5CA8 */ cXyz field_0x5ca8;
/* 0x5C82 */ s16 mDemoActionTimer;
/* 0x5C84 */ cXyz mDemoCamEye;
/* 0x5C90 */ cXyz mDemoCamCenter;
/* 0x5C9C */ cXyz mDemoCamEyeTarget;
/* 0x5CA8 */ cXyz mDemoCamCenterTarget;
/* 0x5CB4 */ f32 field_0x5cb4;
/* 0x5CB8 */ f32 field_0x5cb8;
/* 0x5CBC */ f32 field_0x5cbc;
/* 0x5CC0 */ f32 field_0x5cc0;
/* 0x5CC4 */ f32 field_0x5cc4;
/* 0x5CC8 */ f32 field_0x5cc8;
/* 0x5CCC */ f32 field_0x5ccc;
/* 0x5CCC */ f32 mDemoCamFovy;
/* 0x5CD0 */ f32 field_0x5cd0;
/* 0x5CD4 */ f32 field_0x5cd4;
/* 0x5CD8 */ f32 field_0x5cd8;
@ -149,28 +169,23 @@ public:
/* 0x5D00 */ f32 field_0x5d00;
/* 0x5D04 */ f32 field_0x5d04;
/* 0x5D08 */ s16 field_0x5d08;
/* 0x5D0A */ s16 field_0x5d0a;
/* 0x5D0C */ s16 field_0x5d0c;
/* 0x5D0A */ s16 mBlureRate;
/* 0x5D0C */ s16 mBlureRateTarget;
/* 0x5D0E */ u8 field_0x5d0e[0x5d10 - 0x5d0e];
/* 0x5D10 */ u8 field_0x5d10;
/* 0x5D11 */ s8 field_0x5d11;
/* 0x5D12 */ s8 field_0x5d12;
/* 0x5D11 */ s8 mHangHitCount;
/* 0x5D12 */ s8 mHangFinishCount;
/* 0x5D12 */ s8 field_0x5d13;
/* 0x5D14 */ f32 field_0x5d14;
/* 0x5D18 */ u8 field_0x5d18;
/* 0x5D19 */ u8 field_0x5d19[0x5d24 - 0x5d19];
/* 0x5D24 */ u32 field_0x5d24[3];
/* 0x5D30 */ u8 field_0x5d30[0x5d38 - 0x5D30];
/* 0x5D24 */ u32 field_0x5d24[5];
/* 0x5D38 */ u32 field_0x5d38;
/* 0x5D3C */ s16 field_0x5d3c;
/* 0x5D40 */ u32 field_0x5d40;
/* 0x5D44 */ u8 field_0x5d44[0x5d88 - 0x5d44];
/* 0x5D88 */ u32 field_0x5d88;
/* 0x5D8C */ u32 field_0x5d8c;
/* 0x5D90 */ u8 field_0x5d90[0x5dd4 - 0x5d90];
/* 0x5DD4 */ u32 field_0x5dd4;
/* 0x5D3C */ s16 mZoneSwTimer;
/* 0x5D40 */ JPABaseEmitter* field_0x5d40[2][19];
/* 0x5DD8 */ int field_0x5dd8;
/* 0x5DDC */ f32 field_0x5ddc;
/* 0x5DE0 */ u8 field_0x5de0;
/* 0x5DDC */ f32 mColsetBlend;
/* 0x5DE0 */ u8 mHIOInit;
};
#endif /* D_A_B_OB_H */

View File

@ -16,6 +16,15 @@ public:
/* 0xC */ f32 mLength;
};
enum b_oh_action {
OH_ACTION_START,
OH_ACTION_WAIT,
OH_ACTION_ATTACK,
OH_ACTION_CAUGHT,
OH_ACTION_END = 10,
OH_ACTION_NON = 11,
};
/**
* @ingroup actors-enemies
* @brief Morpheel (head)
@ -79,7 +88,10 @@ public:
/* 0x0CB0 */ dCcD_Stts mCcStts;
/* 0x0CEC */ dCcD_Sph mColliders[15];
/* 0x1F34 */ dCcU_AtInfo mAtInfo;
/* 0x1F58 */ u8 field_0x1F58[0x1F80 - 0x1F58];
/* 0x1F58 */ u8 field_0x1F58[0x1F68 - 0x1F58];
/* 0x1F68 */ cXyz field_0x1f68;
/* 0x1F74 */ csXyz field_0x1f74;
/* 0x1F7C */ f32 field_0x1f7c;
/* 0x1F80 */ u32 field_0x1f80;
/* 0x1F84 */ u8 field_0x1F84[0x1F86 - 0x1F84];
/* 0x1F86 */ u8 field_0x1f86;

View File

@ -1,7 +1,8 @@
#ifndef D_A_B_OH2_H
#define D_A_B_OH2_H
#include "rel/d/a/b/d_a_b_ob/d_a_b_ob.h"
#include "f_op/f_op_actor_mng.h"
#include "Z2AudioLib/Z2Creature.h"
/**
* @ingroup actors-enemies

View File

@ -3,6 +3,12 @@
#include "f_op/f_op_actor_mng.h"
enum obj_lv3waterB_action {
LV3WATERB_ACT_WAIT,
LV3WATERB_ACT_REMOVE,
LV3WATERB_ACT_END,
};
class obj_lv3WaterB_class : public fopAc_ac_c {
public:
/* 0x568 */ request_of_phase_process_class mBWaterPhase;

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -9,13 +9,6 @@
#include "dol2asm.h"
#include "rel/d/a/b/d_a_b_ob/d_a_b_ob.h"
#define ACTION_START 0
#define ACTION_WAIT 1
#define ACTION_ATTACK 2
#define ACTION_CAUGHT 3
#define ACTION_END 10
#define ACTION_NON 11
//
// Forward References:
//
@ -288,7 +281,7 @@ static asm int nodeCallBack(J3DJoint* param_0, int param_1) {
/* 8061B8B0-8061B960 000270 00B0+00 1/0 0/0 0/0 .text daB_OH_Draw__FP10b_oh_class */
static int daB_OH_Draw(b_oh_class* i_this) {
if (i_this->mAction == ACTION_NON) {
if (i_this->mAction == OH_ACTION_NON) {
return 1;
}
@ -555,7 +548,7 @@ static void wait(b_oh_class* i_this) {
i_this->mDistToPlayer < 1300.0f && i_this->mTimers[0] == 0 &&
boss->field_0x4744 == 0 && boss->field_0x4794 == 0)
{
i_this->mAction = ACTION_ATTACK;
i_this->mAction = OH_ACTION_ATTACK;
i_this->mActionPhase = 0;
i_this->field_0xc98 = 0;
boss->field_0x4794 = 3;
@ -705,7 +698,7 @@ static void attack(b_oh_class* i_this) {
case 1:
case 2:
if (i_this->mTimers[0] == 0) {
i_this->mAction = ACTION_WAIT;
i_this->mAction = OH_ACTION_WAIT;
i_this->mActionPhase = 0;
i_this->field_0xc98 = 0;
i_this->field_0xca2 = 0;
@ -769,8 +762,8 @@ static void attack(b_oh_class* i_this) {
boss->field_0x5ce8 = i_this->field_0x5c8;
i_this->mTimers[1] = 20;
if (boss->field_0x4752 != 1) {
boss->field_0x4752 = 1;
if (boss->mAction != OB_ACTION_CORE_HAND_MOVE) {
boss->mAction = OB_ACTION_CORE_HAND_MOVE;
boss->field_0x4754 = 0;
boss->field_0x4738 = 30;
boss->field_0x473c = 2;
@ -790,7 +783,7 @@ static void attack(b_oh_class* i_this) {
cLib_addCalcAngleS2(&i_this->field_0xc94, 22500, 1, 2000);
cLib_addCalc2(&i_this->field_0xc8c, 4000.0f, 1.0f, 400.0f);
if (i_this->mTimers[1] == 1) {
i_this->mAction = ACTION_CAUGHT;
i_this->mAction = OH_ACTION_CAUGHT;
i_this->mActionPhase = 0;
i_this->field_0xc98 = 0;
}
@ -848,7 +841,7 @@ static void caught(b_oh_class* i_this) {
boss->field_0x5c82 = 0;
}
i_this->mAction = ACTION_WAIT;
i_this->mAction = OH_ACTION_WAIT;
i_this->mActionPhase = 0;
i_this->field_0xc98 = 0;
}
@ -941,35 +934,35 @@ static void action(b_oh_class* i_this) {
cLib_addCalcAngleS2(&a_this->field_0xc98, 0x800, 1, 0x10);
switch (a_this->mAction) {
case ACTION_START:
case OH_ACTION_START:
start(a_this);
var_r28 = 1;
break;
case ACTION_WAIT:
case OH_ACTION_WAIT:
wait(a_this);
var_r28 = 1;
break;
case ACTION_ATTACK:
case OH_ACTION_ATTACK:
attack(a_this);
var_r28 = 2;
boss->field_0x4794 = 180;
break;
case ACTION_CAUGHT:
case OH_ACTION_CAUGHT:
caught(a_this);
var_r27 = false;
var_r28 = 3;
boss->field_0x4794 = 180;
break;
case ACTION_END:
case OH_ACTION_END:
end(a_this);
var_r28 = 1;
break;
case ACTION_NON:
case OH_ACTION_NON:
non(a_this);
return;
}
if (boss->field_0x4752 == 2) {
if (boss->mAction == OB_ACTION_BOMBFISH_SET) {
cLib_addCalc2(&a_this->field_0x60c, 500.0f, 1.0f, 80.0f);
}
@ -1072,7 +1065,7 @@ static void action(b_oh_class* i_this) {
cLib_addCalc2(&a_this->mTentacleLength, l_HIO.mLength, 0.1f, 0.5f);
}
MTXCopy(boss->mParts[0].field_0x0->getModel()->getAnmMtx(a_this->field_0x5c8 + 8),
MTXCopy(boss->mBodyParts[0].field_0x0->getModel()->getAnmMtx(a_this->field_0x5c8 + 8),
mDoMtx_stack_c::get());
mDoMtx_stack_c::multVecZero(&a_this->current.pos);
@ -1207,7 +1200,7 @@ static void damage_check(b_oh_class* i_this) {
}
}
if (i_this->mAction == ACTION_ATTACK && boss->field_0x5d10) {
if (i_this->mAction == OH_ACTION_ATTACK && boss->field_0x5d10) {
boss->field_0x5d10 = 0;
bvar = true;
}
@ -1216,8 +1209,8 @@ static void damage_check(b_oh_class* i_this) {
i_this->field_0x60c = 2000.0f;
i_this->field_0x610 = 0.5f;
if (i_this->mAction != ACTION_WAIT) {
i_this->mAction = ACTION_WAIT;
if (i_this->mAction != OH_ACTION_WAIT) {
i_this->mAction = OH_ACTION_WAIT;
i_this->mActionPhase = 0;
i_this->field_0xc98 = 0;
i_this->field_0xca2 = 0;
@ -1270,8 +1263,8 @@ static int daB_OH_Execute(b_oh_class* i_this) {
return 1;
}
if (boss->field_0x4752 == 5 && i_this->mAction != ACTION_END) {
i_this->mAction = ACTION_END;
if (boss->mAction == OB_ACTION_CORE_END && i_this->mAction != OH_ACTION_END) {
i_this->mAction = OH_ACTION_END;
i_this->mActionPhase = 0;
}
@ -1306,7 +1299,7 @@ static int daB_OH_Execute(b_oh_class* i_this) {
i_this->mpMorf->modelCalc();
int tmp = 1;
if (i_this->mDistToPlayer > 150.0f && i_this->mAction == ACTION_WAIT) {
if (i_this->mDistToPlayer > 150.0f && i_this->mAction == OH_ACTION_WAIT) {
tmp = i_this->field_0x5cc & 1;
}
@ -1314,13 +1307,13 @@ static int daB_OH_Execute(b_oh_class* i_this) {
MTXCopy(model_p->getAnmMtx(tmp + i * 2), mDoMtx_stack_c::get());
mDoMtx_stack_c::multVecZero(&collider_center);
if (i_this->mAction >= ACTION_END) {
if (i_this->mAction >= OH_ACTION_END) {
collider_center.z -= 20000.0f;
}
i_this->mColliders[i].SetC(collider_center);
if (i_this->mAction == ACTION_ATTACK) {
if (i_this->mAction == OH_ACTION_ATTACK) {
i_this->mColliders[i].SetR(l_HIO.mModelSize * 70.0f);
} else {
i_this->mColliders[i].SetR(l_HIO.mModelSize * 50.0f);
@ -1493,14 +1486,14 @@ static int daB_OH_Create(fopAc_ac_c* i_this) {
this_->current.angle.x = -0x3448;
if (cDmr_SkipInfo) {
this_->mAction = ACTION_WAIT;
this_->mAction = OH_ACTION_WAIT;
this_->mActionPhase = 1;
this_->mTimers[0] = cM_rndF(100.0f) + 200.0f;
this_->mTentacleLength = l_HIO.mLength;
this_->field_0x608 = 1.0f;
Cinit = 1;
} else {
this_->mAction = ACTION_START;
this_->mAction = OH_ACTION_START;
Cinit = 0;
}

View File

@ -13,13 +13,6 @@
#include "rel/d/a/b/d_a_b_ob/d_a_b_ob.h"
#include "rel/d/a/b/d_a_b_oh/d_a_b_oh.h"
#define ACTION_START 0
#define ACTION_WAIT 1
#define ACTION_ATTACK 2
#define ACTION_CAUGHT 3
#define ACTION_END 10
#define ACTION_NON 11
//
// Forward References:
//
@ -183,7 +176,7 @@ static int nodeCallBack(J3DJoint* param_0, int param_1) {
/* 8061B8B0-8061B960 000270 00B0+00 1/0 0/0 0/0 .text daB_OH_Draw__FP10b_oh_class */
static int daB_OH_Draw(b_oh_class* i_this) {
if (i_this->mAction == ACTION_NON) {
if (i_this->mAction == OH_ACTION_NON) {
return 1;
}
@ -360,7 +353,7 @@ static void wait(b_oh_class* i_this) {
i_this->mDistToPlayer < 1300.0f && i_this->mTimers[0] == 0 && boss->field_0x4744 == 0 &&
boss->field_0x4794 == 0)
{
i_this->mAction = ACTION_ATTACK;
i_this->mAction = OH_ACTION_ATTACK;
i_this->mActionPhase = 0;
i_this->field_0xc98 = 0;
boss->field_0x4794 = 3;
@ -394,7 +387,7 @@ static void attack(b_oh_class* i_this) {
case 1:
case 2:
if (i_this->mTimers[0] == 0) {
i_this->mAction = ACTION_WAIT;
i_this->mAction = OH_ACTION_WAIT;
i_this->mActionPhase = 0;
i_this->field_0xc98 = 0;
i_this->field_0xca2 = 0;
@ -458,14 +451,14 @@ static void attack(b_oh_class* i_this) {
boss->field_0x5ce8 = i_this->field_0x5c8;
i_this->mTimers[1] = 20;
if (boss->field_0x4752 != 1) {
boss->field_0x4752 = 1;
boss->field_0x4754 = 0;
if (boss->mAction != OB_ACTION_CORE_HAND_MOVE) {
boss->mAction = OB_ACTION_CORE_HAND_MOVE;
boss->mMode = 0;
boss->field_0x4738 = 30;
boss->field_0x473c = 2;
}
boss->field_0x59e0.startTentacleSound(
boss->mOISound.startTentacleSound(
Z2SE_EN_OI_TENT_SWING, i_this->field_0x5c8, 0,
dComIfGp_getReverb(fopAcM_GetRoomNo(i_this)));
break;
@ -479,7 +472,7 @@ static void attack(b_oh_class* i_this) {
cLib_addCalcAngleS2(&i_this->field_0xc94, 22500, 1, 2000);
cLib_addCalc2(&i_this->field_0xc8c, 4000.0f, 1.0f, 400.0f);
if (i_this->mTimers[1] == 1) {
i_this->mAction = ACTION_CAUGHT;
i_this->mAction = OH_ACTION_CAUGHT;
i_this->mActionPhase = 0;
i_this->field_0xc98 = 0;
}
@ -504,7 +497,7 @@ static void caught(b_oh_class* i_this) {
if (i_this->mTimers[0] == 1) {
boss->field_0x4738 = 21;
boss->field_0x473c = 0;
boss->field_0x59e0.startCreatureVoice(Z2SE_EN_OI_V_EAT, -1);
boss->mOISound.startCreatureVoice(Z2SE_EN_OI_V_EAT, -1);
}
if (!(i_this->field_0x5cc & 0xF)) {
@ -517,7 +510,7 @@ static void caught(b_oh_class* i_this) {
boss->field_0x5c82 = 0;
}
i_this->mAction = ACTION_WAIT;
i_this->mAction = OH_ACTION_WAIT;
i_this->mActionPhase = 0;
i_this->field_0xc98 = 0;
}
@ -578,35 +571,35 @@ static void action(b_oh_class* i_this) {
cLib_addCalcAngleS2(&a_this->field_0xc98, 0x800, 1, 0x10);
switch (a_this->mAction) {
case ACTION_START:
case OH_ACTION_START:
start(a_this);
var_r28 = 1;
break;
case ACTION_WAIT:
case OH_ACTION_WAIT:
wait(a_this);
var_r28 = 1;
break;
case ACTION_ATTACK:
case OH_ACTION_ATTACK:
attack(a_this);
var_r28 = 2;
boss->field_0x4794 = 180;
break;
case ACTION_CAUGHT:
case OH_ACTION_CAUGHT:
caught(a_this);
var_r27 = false;
var_r28 = 3;
boss->field_0x4794 = 180;
break;
case ACTION_END:
case OH_ACTION_END:
end(a_this);
var_r28 = 1;
break;
case ACTION_NON:
case OH_ACTION_NON:
non(a_this);
return;
}
if (boss->field_0x4752 == 2) {
if (boss->mAction == OB_ACTION_BOMBFISH_SET) {
cLib_addCalc2(&a_this->field_0x60c, 500.0f, 1.0f, 80.0f);
}
@ -711,7 +704,7 @@ static void action(b_oh_class* i_this) {
cLib_addCalc2(&a_this->mTentacleLength, l_HIO.mLength, 0.1f, 0.5f);
}
MTXCopy(boss->mParts[0].field_0x0->getModel()->getAnmMtx(a_this->field_0x5c8 + 8),
MTXCopy(boss->mBodyParts[0].mpMorf->getModel()->getAnmMtx(a_this->field_0x5c8 + 8),
mDoMtx_stack_c::get());
mDoMtx_stack_c::multVecZero(&a_this->current.pos);
@ -774,7 +767,7 @@ static void damage_check(b_oh_class* i_this) {
}
}
if (i_this->mAction == ACTION_ATTACK && boss->field_0x5d10) {
if (i_this->mAction == OH_ACTION_ATTACK && boss->field_0x5d10) {
boss->field_0x5d10 = 0;
bvar = true;
}
@ -783,8 +776,8 @@ static void damage_check(b_oh_class* i_this) {
i_this->field_0x60c = 2000.0f;
i_this->field_0x610 = 0.5f;
if (i_this->mAction != ACTION_WAIT) {
i_this->mAction = ACTION_WAIT;
if (i_this->mAction != OH_ACTION_WAIT) {
i_this->mAction = OH_ACTION_WAIT;
i_this->mActionPhase = 0;
i_this->field_0xc98 = 0;
i_this->field_0xca2 = 0;
@ -798,7 +791,7 @@ static void damage_check(b_oh_class* i_this) {
}
i_this->field_0x5f4 = 6;
boss->field_0x59e0.startCreatureVoice(Z2SE_EN_OI_V_TENT_DAMAGE, -1);
boss->mOISound.startCreatureVoice(Z2SE_EN_OI_V_TENT_DAMAGE, -1);
}
}
}
@ -817,8 +810,8 @@ static int daB_OH_Execute(b_oh_class* i_this) {
return 1;
}
if (boss->field_0x4752 == 5 && i_this->mAction != ACTION_END) {
i_this->mAction = ACTION_END;
if (boss->mAction == OB_ACTION_CORE_END && i_this->mAction != OH_ACTION_END) {
i_this->mAction = OH_ACTION_END;
i_this->mActionPhase = 0;
}
@ -853,7 +846,7 @@ static int daB_OH_Execute(b_oh_class* i_this) {
i_this->mpMorf->modelCalc();
int tmp = 1;
if (i_this->mDistToPlayer > 150.0f && i_this->mAction == ACTION_WAIT) {
if (i_this->mDistToPlayer > 150.0f && i_this->mAction == OH_ACTION_WAIT) {
tmp = i_this->field_0x5cc & 1;
}
@ -861,13 +854,13 @@ static int daB_OH_Execute(b_oh_class* i_this) {
MTXCopy(model_p->getAnmMtx(tmp + i * 2), mDoMtx_stack_c::get());
mDoMtx_stack_c::multVecZero(&collider_center);
if (i_this->mAction >= ACTION_END) {
if (i_this->mAction >= OH_ACTION_END) {
collider_center.z -= 20000.0f;
}
i_this->mColliders[i].SetC(collider_center);
if (i_this->mAction == ACTION_ATTACK) {
if (i_this->mAction == OH_ACTION_ATTACK) {
i_this->mColliders[i].SetR(l_HIO.mModelSize * 70.0f);
} else {
i_this->mColliders[i].SetR(l_HIO.mModelSize * 50.0f);
@ -997,14 +990,14 @@ static int daB_OH_Create(fopAc_ac_c* i_this) {
this_->current.angle.x = -0x3448;
if (cDmr_SkipInfo) {
this_->mAction = ACTION_WAIT;
this_->mAction = OH_ACTION_WAIT;
this_->mActionPhase = 1;
this_->mTimers[0] = cM_rndF(100.0f) + 200.0f;
this_->mTentacleLength = l_HIO.mLength;
this_->field_0x608 = 1.0f;
Cinit = 1;
} else {
this_->mAction = ACTION_START;
this_->mAction = OH_ACTION_START;
Cinit = 0;
}

View File

@ -4,6 +4,7 @@
*/
#include "rel/d/a/b/d_a_b_oh2/d_a_b_oh2.h"
#include "rel/d/a/b/d_a_b_ob/d_a_b_ob.h"
#include "SSystem/SComponent/c_math.h"
#include "c/c_damagereaction.h"
#include "d/com/d_com_inf_game.h"
@ -67,7 +68,7 @@ static void dmcalc(b_oh2_class* i_this) {
sp20.y = 0.0f;
if (i_this->field_0x5d2[3] != 0) {
sp20.z = 200.0f;
} else if (boss->field_0x4752 == 101) {
} else if (boss->mAction == OB_ACTION_FISH_VACUME) {
sp20.z = 100.0f;
} else {
sp20.z = boss->field_0x5d04 * 123.0f;
@ -140,10 +141,10 @@ static void action(b_oh2_class* i_this) {
break;
}
MTXCopy(boss->mParts[0].field_0x0->getModel()->getAnmMtx(i_this->field_0x5c8 + 8),
MTXCopy(boss->mBodyParts[0].mpMorf->getModel()->getAnmMtx(i_this->field_0x5c8 + 8),
mDoMtx_stack_c::get());
mDoMtx_stack_c::multVecZero(&i_this->current.pos);
MTXCopy(boss->mParts[0].field_0x0->getModel()->getAnmMtx(0), mDoMtx_stack_c::get());
MTXCopy(boss->mBodyParts[0].mpMorf->getModel()->getAnmMtx(0), mDoMtx_stack_c::get());
local_20.set(0.0f, 0.0f, i_this->field_0x5c8 * 20.0f + 650.0f);
mDoMtx_stack_c::multVec(&local_20, &vstack_2C);

View File

@ -45,14 +45,14 @@ static int daObj_Lv3waterB_Draw(obj_lv3WaterB_class* i_this) {
/* 80C5B71C-80C5B89C 00021C 0180+00 1/1 0/0 0/0 .text action__FP19obj_lv3WaterB_class */
static void action(obj_lv3WaterB_class* i_this) {
switch (i_this->mAction) {
case 0:
case LV3WATERB_ACT_WAIT:
break;
case 1:
case LV3WATERB_ACT_REMOVE:
dComIfG_Bgsp().Release(i_this->mpOctHibiBgW);
i_this->mpOctHibiModel = NULL;
i_this->mAction = 0;
i_this->mAction = LV3WATERB_ACT_WAIT;
break;
case 2:
case LV3WATERB_ACT_END:
dKy_custom_colset(4, 4, 0.0f);
if (i_this->field_0x586 == 0) {
@ -193,7 +193,7 @@ static int daObj_Lv3waterB_Create(fopAc_ac_c* i_this) {
if (dComIfGs_isStageBossEnemy()) {
a_this->current.pos.y = (a_this->home.pos.y - 14450.0f) + 160.0f;
a_this->mAction = 2;
a_this->mAction = LV3WATERB_ACT_END;
a_this->field_0x586 = 1;
a_this->mpOctHibiModel = NULL;
}

View File

@ -482,12 +482,12 @@ asm void daAlink_c::setDragonHangPos() {
/* 800FC6B4-800FC748 0F6FF4 0094+00 1/1 0/0 0/0 .text setOctaIealHangPos__9daAlink_cFv */
int daAlink_c::setOctaIealHangPos() {
b_ob_class* ob_p = (b_ob_class*)field_0x280c.getActor();
if (ob_p == NULL) {
b_ob_class* boss = (b_ob_class*)field_0x280c.getActor();
if (boss == NULL) {
return 0;
}
mDoMtx_stack_c::copy(ob_p->mParts[0].field_0x0->getModel()->getAnmMtx(0));
mDoMtx_stack_c::copy(boss->mBodyParts[0].mpMorf->getModel()->getAnmMtx(0));
mDoMtx_stack_c::transM(FLOAT_LABEL(lit_6108), lit_24400, lit_24401);
mDoMtx_stack_c::multVecZero(&current.pos);
mDoMtx_MtxToRot(mDoMtx_stack_c::get(), &shape_angle);