d_a_tag_push OK (#1967)

This commit is contained in:
Jacob Patzer 2023-10-24 17:10:48 -07:00 committed by GitHub
parent d61ae29942
commit 95d103b237
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
15 changed files with 266 additions and 756 deletions

View File

@ -21,8 +21,8 @@ Total | 41.251512% | 1658588 | 4020672
Section | Percentage | Decompiled (bytes) | Total (bytes)
---|---|---|---
main.dol | 41.251512% | 1658588 | 4020672
RELs | 34.631963% | 3982788 | 11500324
Total | 36.346740% | 5641376 | 15520996
RELs | 34.646328% | 3984440 | 11500324
Total | 36.357383% | 5643028 | 15520996
## RELs
@ -751,7 +751,7 @@ d_a_tag_myna2 | 100.000000% | 1752 | 1752
d_a_tag_myna_light | 100.000000% | 3124 | 3124
d_a_tag_pachi | 100.000000% | 2528 | 2528
d_a_tag_poFire | 100.000000% | 1688 | 1688
d_a_tag_push | 41.000000% | 1148 | 2800
d_a_tag_push | 100.000000% | 2800 | 2800
d_a_tag_qs | 34.804270% | 1956 | 5620
d_a_tag_ret_room | 100.000000% | 1684 | 1684
d_a_tag_river_back | 100.000000% | 2948 | 2948
@ -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 | 34.631963% | 3982788 | 11500324
Total | 34.646328% | 3984440 | 11500324

View File

@ -1,131 +0,0 @@
lbl_804904DC:
/* 804904DC 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 804904E0 7C 08 02 A6 */ mflr r0
/* 804904E4 90 01 00 24 */ stw r0, 0x24(r1)
/* 804904E8 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 804904EC 93 C1 00 18 */ stw r30, 0x18(r1)
/* 804904F0 7C 7E 1B 78 */ mr r30, r3
/* 804904F4 88 03 04 BA */ lbz r0, 0x4ba(r3)
/* 804904F8 7C 04 07 74 */ extsb r4, r0
/* 804904FC 3C 60 80 45 */ lis r3, mStayNo__20dStage_roomControl_c+0x0@ha /* 0x80450D64@ha */
/* 80490500 88 03 0D 64 */ lbz r0, mStayNo__20dStage_roomControl_c+0x0@l(r3) /* 0x80450D64@l */
/* 80490504 7C 00 07 74 */ extsb r0, r0
/* 80490508 7C 04 00 00 */ cmpw r4, r0
/* 8049050C 40 82 01 94 */ bne lbl_804906A0
/* 80490510 38 7E 05 68 */ addi r3, r30, 0x568
/* 80490514 4B CB 51 F5 */ bl getActorP__18daNpcT_ActorMngr_cFv
/* 80490518 7C 7F 1B 78 */ mr r31, r3
/* 8049051C 7F C3 F3 78 */ mr r3, r30
/* 80490520 48 00 01 A5 */ bl isDelete__12daTag_Push_cFv
/* 80490524 2C 03 00 00 */ cmpwi r3, 0
/* 80490528 41 82 00 44 */ beq lbl_8049056C
/* 8049052C 28 1F 00 00 */ cmplwi r31, 0
/* 80490530 41 82 00 2C */ beq lbl_8049055C
/* 80490534 A8 1F 00 08 */ lha r0, 8(r31)
/* 80490538 2C 00 02 58 */ cmpwi r0, 0x258
/* 8049053C 41 82 00 20 */ beq lbl_8049055C
/* 80490540 2C 00 02 3B */ cmpwi r0, 0x23b
/* 80490544 41 82 00 18 */ beq lbl_8049055C
/* 80490548 2C 00 02 39 */ cmpwi r0, 0x239
/* 8049054C 41 82 00 10 */ beq lbl_8049055C
/* 80490550 38 7F 0B A0 */ addi r3, r31, 0xba0
/* 80490554 38 80 00 00 */ li r4, 0
/* 80490558 4B CB 51 89 */ bl entry__18daNpcT_ActorMngr_cFP10fopAc_ac_c
lbl_8049055C:
/* 8049055C 7F C3 F3 78 */ mr r3, r30
/* 80490560 4B B8 97 1D */ bl fopAcM_delete__FP10fopAc_ac_c
/* 80490564 38 60 00 01 */ li r3, 1
/* 80490568 48 00 01 3C */ b lbl_804906A4
lbl_8049056C:
/* 8049056C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 80490570 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 80490574 88 03 4F AD */ lbz r0, 0x4fad(r3)
/* 80490578 28 00 00 00 */ cmplwi r0, 0
/* 8049057C 40 82 00 E4 */ bne lbl_80490660
/* 80490580 28 1F 00 00 */ cmplwi r31, 0
/* 80490584 40 82 00 28 */ bne lbl_804905AC
/* 80490588 3C 60 80 49 */ lis r3, srchActor__12daTag_Push_cFPvPv@ha /* 0x804902B8@ha */
/* 8049058C 38 63 02 B8 */ addi r3, r3, srchActor__12daTag_Push_cFPvPv@l /* 0x804902B8@l */
/* 80490590 7F C4 F3 78 */ mr r4, r30
/* 80490594 4B B9 0D A5 */ bl fpcEx_Search__FPFPvPv_PvPv
/* 80490598 7C 7F 1B 79 */ or. r31, r3, r3
/* 8049059C 41 82 00 10 */ beq lbl_804905AC
/* 804905A0 38 7E 05 68 */ addi r3, r30, 0x568
/* 804905A4 7F E4 FB 78 */ mr r4, r31
/* 804905A8 4B CB 51 39 */ bl entry__18daNpcT_ActorMngr_cFP10fopAc_ac_c
lbl_804905AC:
/* 804905AC 28 1F 00 00 */ cmplwi r31, 0
/* 804905B0 41 82 00 B0 */ beq lbl_80490660
/* 804905B4 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 804905B8 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 804905BC 80 63 5D AC */ lwz r3, 0x5dac(r3)
/* 804905C0 A0 03 00 FA */ lhz r0, 0xfa(r3)
/* 804905C4 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 804905C8 41 82 00 98 */ beq lbl_80490660
/* 804905CC C0 03 04 D0 */ lfs f0, 0x4d0(r3)
/* 804905D0 D0 01 00 08 */ stfs f0, 8(r1)
/* 804905D4 C0 03 04 D4 */ lfs f0, 0x4d4(r3)
/* 804905D8 D0 01 00 0C */ stfs f0, 0xc(r1)
/* 804905DC C0 03 04 D8 */ lfs f0, 0x4d8(r3)
/* 804905E0 D0 01 00 10 */ stfs f0, 0x10(r1)
/* 804905E4 7F C3 F3 78 */ mr r3, r30
/* 804905E8 38 81 00 08 */ addi r4, r1, 8
/* 804905EC 48 00 01 39 */ bl chkPointInArea__12daTag_Push_cF4cXyz
/* 804905F0 2C 03 00 00 */ cmpwi r3, 0
/* 804905F4 41 82 00 6C */ beq lbl_80490660
/* 804905F8 A8 1F 00 08 */ lha r0, 8(r31)
/* 804905FC 2C 00 02 3B */ cmpwi r0, 0x23b
/* 80490600 41 82 00 0C */ beq lbl_8049060C
/* 80490604 2C 00 02 39 */ cmpwi r0, 0x239
/* 80490608 40 82 00 4C */ bne lbl_80490654
lbl_8049060C:
/* 8049060C 38 7F 08 24 */ addi r3, r31, 0x824
/* 80490610 7F C4 F3 78 */ mr r4, r30
/* 80490614 4B CC 00 A9 */ bl entry__18daNpcF_ActorMngr_cFP10fopAc_ac_c
/* 80490618 A8 7E 04 B4 */ lha r3, 0x4b4(r30)
/* 8049061C 3C 03 00 00 */ addis r0, r3, 0
/* 80490620 28 00 FF FF */ cmplwi r0, 0xffff
/* 80490624 38 00 FF FF */ li r0, -1
/* 80490628 41 82 00 08 */ beq lbl_80490630
/* 8049062C 54 60 04 3E */ clrlwi r0, r3, 0x10
lbl_80490630:
/* 80490630 90 1F 09 B4 */ stw r0, 0x9b4(r31)
/* 80490634 80 1E 00 B0 */ lwz r0, 0xb0(r30)
/* 80490638 54 03 46 3E */ srwi r3, r0, 0x18
/* 8049063C 28 03 00 FF */ cmplwi r3, 0xff
/* 80490640 38 00 FF FF */ li r0, -1
/* 80490644 41 82 00 08 */ beq lbl_8049064C
/* 80490648 7C 60 1B 78 */ mr r0, r3
lbl_8049064C:
/* 8049064C 98 1F 09 EF */ stb r0, 0x9ef(r31)
/* 80490650 48 00 00 10 */ b lbl_80490660
lbl_80490654:
/* 80490654 38 7F 0B A0 */ addi r3, r31, 0xba0
/* 80490658 7F C4 F3 78 */ mr r4, r30
/* 8049065C 4B CB 50 85 */ bl entry__18daNpcT_ActorMngr_cFP10fopAc_ac_c
lbl_80490660:
/* 80490660 38 00 00 00 */ li r0, 0
/* 80490664 90 1E 05 5C */ stw r0, 0x55c(r30)
/* 80490668 C0 1E 04 D0 */ lfs f0, 0x4d0(r30)
/* 8049066C D0 1E 05 50 */ stfs f0, 0x550(r30)
/* 80490670 C0 1E 04 D4 */ lfs f0, 0x4d4(r30)
/* 80490674 D0 1E 05 54 */ stfs f0, 0x554(r30)
/* 80490678 C0 1E 04 D8 */ lfs f0, 0x4d8(r30)
/* 8049067C D0 1E 05 58 */ stfs f0, 0x558(r30)
/* 80490680 C0 1E 05 50 */ lfs f0, 0x550(r30)
/* 80490684 D0 1E 05 38 */ stfs f0, 0x538(r30)
/* 80490688 C0 1E 05 54 */ lfs f0, 0x554(r30)
/* 8049068C D0 1E 05 3C */ stfs f0, 0x53c(r30)
/* 80490690 C0 1E 05 58 */ lfs f0, 0x558(r30)
/* 80490694 D0 1E 05 40 */ stfs f0, 0x540(r30)
/* 80490698 38 60 00 01 */ li r3, 1
/* 8049069C 48 00 00 08 */ b lbl_804906A4
lbl_804906A0:
/* 804906A0 38 60 00 00 */ li r3, 0
lbl_804906A4:
/* 804906A4 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 804906A8 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 804906AC 80 01 00 24 */ lwz r0, 0x24(r1)
/* 804906B0 7C 08 03 A6 */ mtlr r0
/* 804906B4 38 21 00 20 */ addi r1, r1, 0x20
/* 804906B8 4E 80 00 20 */ blr

View File

@ -1,33 +0,0 @@
lbl_804908CC:
/* 804908CC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 804908D0 7C 08 02 A6 */ mflr r0
/* 804908D4 90 01 00 14 */ stw r0, 0x14(r1)
/* 804908D8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 804908DC 93 C1 00 08 */ stw r30, 8(r1)
/* 804908E0 7C 7E 1B 79 */ or. r30, r3, r3
/* 804908E4 7C 9F 23 78 */ mr r31, r4
/* 804908E8 41 82 00 40 */ beq lbl_80490928
/* 804908EC 3C 60 80 49 */ lis r3, __vt__12daTag_Push_c@ha /* 0x804909D4@ha */
/* 804908F0 38 03 09 D4 */ addi r0, r3, __vt__12daTag_Push_c@l /* 0x804909D4@l */
/* 804908F4 90 1E 05 70 */ stw r0, 0x570(r30)
/* 804908F8 34 1E 05 68 */ addic. r0, r30, 0x568
/* 804908FC 41 82 00 10 */ beq lbl_8049090C
/* 80490900 3C 60 80 49 */ lis r3, __vt__18daNpcT_ActorMngr_c@ha /* 0x804909C8@ha */
/* 80490904 38 03 09 C8 */ addi r0, r3, __vt__18daNpcT_ActorMngr_c@l /* 0x804909C8@l */
/* 80490908 90 1E 05 6C */ stw r0, 0x56c(r30)
lbl_8049090C:
/* 8049090C 7F C3 F3 78 */ mr r3, r30
/* 80490910 38 80 00 00 */ li r4, 0
/* 80490914 4B B8 83 79 */ bl __dt__10fopAc_ac_cFv
/* 80490918 7F E0 07 35 */ extsh. r0, r31
/* 8049091C 40 81 00 0C */ ble lbl_80490928
/* 80490920 7F C3 F3 78 */ mr r3, r30
/* 80490924 4B E3 E4 19 */ bl __dl__FPv
lbl_80490928:
/* 80490928 7F C3 F3 78 */ mr r3, r30
/* 8049092C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80490930 83 C1 00 08 */ lwz r30, 8(r1)
/* 80490934 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80490938 7C 08 03 A6 */ mtlr r0
/* 8049093C 38 21 00 10 */ addi r1, r1, 0x10
/* 80490940 4E 80 00 20 */ blr

View File

@ -1,20 +0,0 @@
lbl_80490884:
/* 80490884 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80490888 7C 08 02 A6 */ mflr r0
/* 8049088C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80490890 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80490894 7C 7F 1B 79 */ or. r31, r3, r3
/* 80490898 41 82 00 1C */ beq lbl_804908B4
/* 8049089C 3C A0 80 49 */ lis r5, __vt__18daNpcT_ActorMngr_c@ha /* 0x804909C8@ha */
/* 804908A0 38 05 09 C8 */ addi r0, r5, __vt__18daNpcT_ActorMngr_c@l /* 0x804909C8@l */
/* 804908A4 90 1F 00 04 */ stw r0, 4(r31)
/* 804908A8 7C 80 07 35 */ extsh. r0, r4
/* 804908AC 40 81 00 08 */ ble lbl_804908B4
/* 804908B0 4B E3 E4 8D */ bl __dl__FPv
lbl_804908B4:
/* 804908B4 7F E3 FB 78 */ mr r3, r31
/* 804908B8 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 804908BC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 804908C0 7C 08 03 A6 */ mtlr r0
/* 804908C4 38 21 00 10 */ addi r1, r1, 0x10
/* 804908C8 4E 80 00 20 */ blr

View File

@ -1,59 +0,0 @@
lbl_80490724:
/* 80490724 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 80490728 7C 08 02 A6 */ mflr r0
/* 8049072C 90 01 00 44 */ stw r0, 0x44(r1)
/* 80490730 93 E1 00 3C */ stw r31, 0x3c(r1)
/* 80490734 93 C1 00 38 */ stw r30, 0x38(r1)
/* 80490738 7C 7E 1B 78 */ mr r30, r3
/* 8049073C 7C 9F 23 78 */ mr r31, r4
/* 80490740 80 03 00 B0 */ lwz r0, 0xb0(r3)
/* 80490744 54 04 06 3E */ clrlwi r4, r0, 0x18
/* 80490748 28 04 00 FF */ cmplwi r4, 0xff
/* 8049074C 41 82 00 20 */ beq lbl_8049076C
/* 80490750 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 80490754 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 80490758 88 1E 04 E2 */ lbz r0, 0x4e2(r30)
/* 8049075C 7C 05 07 74 */ extsb r5, r0
/* 80490760 4B BA 4C 01 */ bl isSwitch__10dSv_info_cCFii
/* 80490764 2C 03 00 00 */ cmpwi r3, 0
/* 80490768 40 82 00 14 */ bne lbl_8049077C
lbl_8049076C:
/* 8049076C 80 1E 00 B0 */ lwz r0, 0xb0(r30)
/* 80490770 54 00 06 3E */ clrlwi r0, r0, 0x18
/* 80490774 28 00 00 FF */ cmplwi r0, 0xff
/* 80490778 40 82 00 68 */ bne lbl_804907E0
lbl_8049077C:
/* 8049077C C0 1F 00 00 */ lfs f0, 0(r31)
/* 80490780 D0 01 00 20 */ stfs f0, 0x20(r1)
/* 80490784 C0 1F 00 04 */ lfs f0, 4(r31)
/* 80490788 D0 01 00 24 */ stfs f0, 0x24(r1)
/* 8049078C C0 1F 00 08 */ lfs f0, 8(r31)
/* 80490790 D0 01 00 28 */ stfs f0, 0x28(r1)
/* 80490794 C0 1E 04 D0 */ lfs f0, 0x4d0(r30)
/* 80490798 D0 01 00 14 */ stfs f0, 0x14(r1)
/* 8049079C C0 1E 04 D4 */ lfs f0, 0x4d4(r30)
/* 804907A0 D0 01 00 18 */ stfs f0, 0x18(r1)
/* 804907A4 C0 1E 04 D8 */ lfs f0, 0x4d8(r30)
/* 804907A8 D0 01 00 1C */ stfs f0, 0x1c(r1)
/* 804907AC C0 1E 04 EC */ lfs f0, 0x4ec(r30)
/* 804907B0 D0 01 00 08 */ stfs f0, 8(r1)
/* 804907B4 C0 1E 04 F0 */ lfs f0, 0x4f0(r30)
/* 804907B8 D0 01 00 0C */ stfs f0, 0xc(r1)
/* 804907BC C0 1E 04 F4 */ lfs f0, 0x4f4(r30)
/* 804907C0 D0 01 00 10 */ stfs f0, 0x10(r1)
/* 804907C4 38 61 00 20 */ addi r3, r1, 0x20
/* 804907C8 38 81 00 14 */ addi r4, r1, 0x14
/* 804907CC 38 A1 00 08 */ addi r5, r1, 8
/* 804907D0 A8 DE 04 E6 */ lha r6, 0x4e6(r30)
/* 804907D4 38 E0 00 01 */ li r7, 1
/* 804907D8 4B CB BB AD */ bl daNpcT_chkPointInArea__F4cXyz4cXyz4cXyzsi
/* 804907DC 48 00 00 08 */ b lbl_804907E4
lbl_804907E0:
/* 804907E0 38 60 00 00 */ li r3, 0
lbl_804907E4:
/* 804907E4 83 E1 00 3C */ lwz r31, 0x3c(r1)
/* 804907E8 83 C1 00 38 */ lwz r30, 0x38(r1)
/* 804907EC 80 01 00 44 */ lwz r0, 0x44(r1)
/* 804907F0 7C 08 03 A6 */ mtlr r0
/* 804907F4 38 21 00 40 */ addi r1, r1, 0x40
/* 804907F8 4E 80 00 20 */ blr

View File

@ -1,52 +0,0 @@
lbl_80490418:
/* 80490418 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8049041C 7C 08 02 A6 */ mflr r0
/* 80490420 90 01 00 14 */ stw r0, 0x14(r1)
/* 80490424 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80490428 93 C1 00 08 */ stw r30, 8(r1)
/* 8049042C 7C 7F 1B 78 */ mr r31, r3
/* 80490430 80 03 04 A0 */ lwz r0, 0x4a0(r3)
/* 80490434 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c
/* 80490438 40 82 00 40 */ bne lbl_80490478
/* 8049043C 7F E0 FB 79 */ or. r0, r31, r31
/* 80490440 41 82 00 2C */ beq lbl_8049046C
/* 80490444 7C 1E 03 78 */ mr r30, r0
/* 80490448 4B B8 87 1D */ bl __ct__10fopAc_ac_cFv
/* 8049044C 3C 60 80 49 */ lis r3, __vt__12daTag_Push_c@ha /* 0x804909D4@ha */
/* 80490450 38 03 09 D4 */ addi r0, r3, __vt__12daTag_Push_c@l /* 0x804909D4@l */
/* 80490454 90 1E 05 70 */ stw r0, 0x570(r30)
/* 80490458 3C 60 80 49 */ lis r3, __vt__18daNpcT_ActorMngr_c@ha /* 0x804909C8@ha */
/* 8049045C 38 03 09 C8 */ addi r0, r3, __vt__18daNpcT_ActorMngr_c@l /* 0x804909C8@l */
/* 80490460 90 1E 05 6C */ stw r0, 0x56c(r30)
/* 80490464 38 7E 05 68 */ addi r3, r30, 0x568
/* 80490468 4B CB 52 6D */ bl initialize__18daNpcT_ActorMngr_cFv
lbl_8049046C:
/* 8049046C 80 1F 04 A0 */ lwz r0, 0x4a0(r31)
/* 80490470 60 00 00 08 */ ori r0, r0, 8
/* 80490474 90 1F 04 A0 */ stw r0, 0x4a0(r31)
lbl_80490478:
/* 80490478 C0 1F 04 EC */ lfs f0, 0x4ec(r31)
/* 8049047C 3C 60 80 49 */ lis r3, lit_3887@ha /* 0x8049094C@ha */
/* 80490480 C0 23 09 4C */ lfs f1, lit_3887@l(r3) /* 0x8049094C@l */
/* 80490484 EC 00 00 72 */ fmuls f0, f0, f1
/* 80490488 D0 1F 04 EC */ stfs f0, 0x4ec(r31)
/* 8049048C C0 1F 04 F0 */ lfs f0, 0x4f0(r31)
/* 80490490 EC 00 00 72 */ fmuls f0, f0, f1
/* 80490494 D0 1F 04 F0 */ stfs f0, 0x4f0(r31)
/* 80490498 C0 1F 04 EC */ lfs f0, 0x4ec(r31)
/* 8049049C D0 1F 04 F4 */ stfs f0, 0x4f4(r31)
/* 804904A0 7F E3 FB 78 */ mr r3, r31
/* 804904A4 48 00 02 21 */ bl isDelete__12daTag_Push_cFv
/* 804904A8 2C 03 00 00 */ cmpwi r3, 0
/* 804904AC 41 82 00 0C */ beq lbl_804904B8
/* 804904B0 38 60 00 05 */ li r3, 5
/* 804904B4 48 00 00 08 */ b lbl_804904BC
lbl_804904B8:
/* 804904B8 38 60 00 04 */ li r3, 4
lbl_804904BC:
/* 804904BC 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 804904C0 83 C1 00 08 */ lwz r30, 8(r1)
/* 804904C4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 804904C8 7C 08 03 A6 */ mtlr r0
/* 804904CC 38 21 00 10 */ addi r1, r1, 0x10
/* 804904D0 4E 80 00 20 */ blr

View File

@ -1,9 +0,0 @@
lbl_804907FC:
/* 804907FC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80490800 7C 08 02 A6 */ mflr r0
/* 80490804 90 01 00 14 */ stw r0, 0x14(r1)
/* 80490808 4B FF FC 11 */ bl create__12daTag_Push_cFv
/* 8049080C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80490810 7C 08 03 A6 */ mtlr r0
/* 80490814 38 21 00 10 */ addi r1, r1, 0x10
/* 80490818 4E 80 00 20 */ blr

View File

@ -1,9 +0,0 @@
lbl_8049081C:
/* 8049081C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80490820 7C 08 02 A6 */ mflr r0
/* 80490824 90 01 00 14 */ stw r0, 0x14(r1)
/* 80490828 4B FF FC AD */ bl Delete__12daTag_Push_cFv
/* 8049082C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80490830 7C 08 03 A6 */ mtlr r0
/* 80490834 38 21 00 10 */ addi r1, r1, 0x10
/* 80490838 4E 80 00 20 */ blr

View File

@ -1,9 +0,0 @@
lbl_8049085C:
/* 8049085C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80490860 7C 08 02 A6 */ mflr r0
/* 80490864 90 01 00 14 */ stw r0, 0x14(r1)
/* 80490868 4B FF FE 55 */ bl Draw__12daTag_Push_cFv
/* 8049086C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80490870 7C 08 03 A6 */ mtlr r0
/* 80490874 38 21 00 10 */ addi r1, r1, 0x10
/* 80490878 4E 80 00 20 */ blr

View File

@ -1,9 +0,0 @@
lbl_8049083C:
/* 8049083C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80490840 7C 08 02 A6 */ mflr r0
/* 80490844 90 01 00 14 */ stw r0, 0x14(r1)
/* 80490848 4B FF FC 95 */ bl Execute__12daTag_Push_cFv
/* 8049084C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80490850 7C 08 03 A6 */ mtlr r0
/* 80490854 38 21 00 10 */ addi r1, r1, 0x10
/* 80490858 4E 80 00 20 */ blr

View File

@ -1,26 +0,0 @@
lbl_804906C4:
/* 804906C4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 804906C8 7C 08 02 A6 */ mflr r0
/* 804906CC 90 01 00 14 */ stw r0, 0x14(r1)
/* 804906D0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 804906D4 7C 65 1B 78 */ mr r5, r3
/* 804906D8 3B E0 00 00 */ li r31, 0
/* 804906DC 80 03 00 B0 */ lwz r0, 0xb0(r3)
/* 804906E0 54 04 C6 3E */ rlwinm r4, r0, 0x18, 0x18, 0x1f
/* 804906E4 28 04 00 FF */ cmplwi r4, 0xff
/* 804906E8 41 82 00 24 */ beq lbl_8049070C
/* 804906EC 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 804906F0 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 804906F4 88 05 04 E2 */ lbz r0, 0x4e2(r5)
/* 804906F8 7C 05 07 74 */ extsb r5, r0
/* 804906FC 4B BA 4C 65 */ bl isSwitch__10dSv_info_cCFii
/* 80490700 2C 03 00 00 */ cmpwi r3, 0
/* 80490704 41 82 00 08 */ beq lbl_8049070C
/* 80490708 3B E0 00 01 */ li r31, 1
lbl_8049070C:
/* 8049070C 57 E3 06 3E */ clrlwi r3, r31, 0x18
/* 80490710 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80490714 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80490718 7C 08 03 A6 */ mtlr r0
/* 8049071C 38 21 00 10 */ addi r1, r1, 0x10
/* 80490720 4E 80 00 20 */ blr

View File

@ -1,103 +0,0 @@
lbl_804902B8:
/* 804902B8 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 804902BC 7C 08 02 A6 */ mflr r0
/* 804902C0 90 01 00 24 */ stw r0, 0x24(r1)
/* 804902C4 39 61 00 20 */ addi r11, r1, 0x20
/* 804902C8 4B ED 1F 15 */ bl _savegpr_29
/* 804902CC 7C 7F 1B 79 */ or. r31, r3, r3
/* 804902D0 7C 9D 23 78 */ mr r29, r4
/* 804902D4 3B C0 00 00 */ li r30, 0
/* 804902D8 41 82 01 18 */ beq lbl_804903F0
/* 804902DC 4B B8 8A 05 */ bl fopAc_IsActor__FPv
/* 804902E0 2C 03 00 00 */ cmpwi r3, 0
/* 804902E4 41 82 01 0C */ beq lbl_804903F0
/* 804902E8 28 1F 00 00 */ cmplwi r31, 0
/* 804902EC 41 82 00 0C */ beq lbl_804902F8
/* 804902F0 80 7F 00 04 */ lwz r3, 4(r31)
/* 804902F4 48 00 00 08 */ b lbl_804902FC
lbl_804902F8:
/* 804902F8 38 60 FF FF */ li r3, -1
lbl_804902FC:
/* 804902FC 4B B9 10 A1 */ bl fpcEx_IsExist__FUi
/* 80490300 2C 03 00 00 */ cmpwi r3, 0
/* 80490304 41 82 00 EC */ beq lbl_804903F0
/* 80490308 80 1D 00 B0 */ lwz r0, 0xb0(r29)
/* 8049030C 54 03 46 3E */ srwi r3, r0, 0x18
/* 80490310 28 03 00 FF */ cmplwi r3, 0xff
/* 80490314 38 00 FF FF */ li r0, -1
/* 80490318 41 82 00 08 */ beq lbl_80490320
/* 8049031C 7C 60 1B 78 */ mr r0, r3
lbl_80490320:
/* 80490320 28 00 00 09 */ cmplwi r0, 9
/* 80490324 41 81 00 CC */ bgt lbl_804903F0
/* 80490328 3C 60 80 49 */ lis r3, lit_3868@ha /* 0x80490950@ha */
/* 8049032C 38 63 09 50 */ addi r3, r3, lit_3868@l /* 0x80490950@l */
/* 80490330 54 00 10 3A */ slwi r0, r0, 2
/* 80490334 7C 03 00 2E */ lwzx r0, r3, r0
/* 80490338 7C 09 03 A6 */ mtctr r0
/* 8049033C 4E 80 04 20 */ bctr
lbl_80490340:
/* 80490340 A8 1F 00 08 */ lha r0, 8(r31)
/* 80490344 20 00 02 6E */ subfic r0, r0, 0x26e
/* 80490348 7C 00 00 34 */ cntlzw r0, r0
/* 8049034C 54 1E DE 3E */ rlwinm r30, r0, 0x1b, 0x18, 0x1f
/* 80490350 48 00 00 A0 */ b lbl_804903F0
lbl_80490354:
/* 80490354 A8 1F 00 08 */ lha r0, 8(r31)
/* 80490358 20 00 02 58 */ subfic r0, r0, 0x258
/* 8049035C 7C 00 00 34 */ cntlzw r0, r0
/* 80490360 54 1E DE 3E */ rlwinm r30, r0, 0x1b, 0x18, 0x1f
/* 80490364 48 00 00 8C */ b lbl_804903F0
lbl_80490368:
/* 80490368 A8 1F 00 08 */ lha r0, 8(r31)
/* 8049036C 20 00 02 50 */ subfic r0, r0, 0x250
/* 80490370 7C 00 00 34 */ cntlzw r0, r0
/* 80490374 54 1E DE 3E */ rlwinm r30, r0, 0x1b, 0x18, 0x1f
/* 80490378 48 00 00 78 */ b lbl_804903F0
lbl_8049037C:
/* 8049037C A8 1F 00 08 */ lha r0, 8(r31)
/* 80490380 20 00 02 6E */ subfic r0, r0, 0x26e
/* 80490384 7C 00 00 34 */ cntlzw r0, r0
/* 80490388 54 1E DE 3E */ rlwinm r30, r0, 0x1b, 0x18, 0x1f
/* 8049038C 48 00 00 64 */ b lbl_804903F0
lbl_80490390:
/* 80490390 A8 1F 00 08 */ lha r0, 8(r31)
/* 80490394 20 00 02 60 */ subfic r0, r0, 0x260
/* 80490398 7C 00 00 34 */ cntlzw r0, r0
/* 8049039C 54 1E DE 3E */ rlwinm r30, r0, 0x1b, 0x18, 0x1f
/* 804903A0 48 00 00 50 */ b lbl_804903F0
lbl_804903A4:
/* 804903A4 A8 1F 00 08 */ lha r0, 8(r31)
/* 804903A8 20 00 02 45 */ subfic r0, r0, 0x245
/* 804903AC 7C 00 00 34 */ cntlzw r0, r0
/* 804903B0 54 1E DE 3E */ rlwinm r30, r0, 0x1b, 0x18, 0x1f
/* 804903B4 48 00 00 3C */ b lbl_804903F0
lbl_804903B8:
/* 804903B8 A8 1F 00 08 */ lha r0, 8(r31)
/* 804903BC 20 00 02 46 */ subfic r0, r0, 0x246
/* 804903C0 7C 00 00 34 */ cntlzw r0, r0
/* 804903C4 54 1E DE 3E */ rlwinm r30, r0, 0x1b, 0x18, 0x1f
/* 804903C8 48 00 00 28 */ b lbl_804903F0
lbl_804903CC:
/* 804903CC A8 1F 00 08 */ lha r0, 8(r31)
/* 804903D0 20 00 02 3B */ subfic r0, r0, 0x23b
/* 804903D4 7C 00 00 34 */ cntlzw r0, r0
/* 804903D8 54 1E DE 3E */ rlwinm r30, r0, 0x1b, 0x18, 0x1f
/* 804903DC 48 00 00 14 */ b lbl_804903F0
lbl_804903E0:
/* 804903E0 A8 1F 00 08 */ lha r0, 8(r31)
/* 804903E4 20 00 02 39 */ subfic r0, r0, 0x239
/* 804903E8 7C 00 00 34 */ cntlzw r0, r0
/* 804903EC 54 1E DE 3E */ rlwinm r30, r0, 0x1b, 0x18, 0x1f
lbl_804903F0:
/* 804903F0 2C 1E 00 00 */ cmpwi r30, 0
/* 804903F4 40 82 00 08 */ bne lbl_804903FC
/* 804903F8 3B E0 00 00 */ li r31, 0
lbl_804903FC:
/* 804903FC 7F E3 FB 78 */ mr r3, r31
/* 80490400 39 61 00 20 */ addi r11, r1, 0x20
/* 80490404 4B ED 1E 25 */ bl _restgpr_29
/* 80490408 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8049040C 7C 08 03 A6 */ mtlr r0
/* 80490410 38 21 00 20 */ addi r1, r1, 0x20
/* 80490414 4E 80 00 20 */ blr

View File

@ -3,8 +3,8 @@
#include "JSystem/J3DGraphAnimator/J3DMaterialAnm.h"
#include "Z2AudioLib/Z2Creature.h"
#include "d/com/d_com_inf_game.h"
#include "d/a/d_a_player.h"
#include "d/com/d_com_inf_game.h"
#include "d/d_path.h"
#include "d/msg/d_msg_flow.h"
#include "d/particle/d_particle_copoly.h"
@ -40,6 +40,8 @@ public:
/* 801456FC */ void remove();
/* 80145708 */ fopAc_ac_c* getActorP();
daNpcT_ActorMngr_c() { initialize(); };
/* 8014D108 */ virtual ~daNpcT_ActorMngr_c();
};
@ -49,8 +51,8 @@ private:
/* 0x0F8 */ mutable f32 field_0xF8;
/* 0x0FC */ f32 mTranslationX;
/* 0x100 */ f32 mTranslationY;
/* 0x104 */u8 field_0x104;
/* 0x105 */u8 field_0x105;
/* 0x104 */ u8 field_0x104;
/* 0x105 */ u8 field_0x105;
public:
/* 80145764 */ void initialize();
@ -189,20 +191,18 @@ public:
/* 80146188 */ int chkPassed1(cXyz, int);
/* 801464D8 */ int chkPassed2(cXyz, cXyz*, int, int);
inline Vec getPntPos(int i_idx) {
return mpRoomPath->m_points[i_idx].m_position;
}
inline Vec getPntPos(int i_idx) { return mpRoomPath->m_points[i_idx].m_position; }
int chkClose() {
int roomPath = dPath_ChkClose(mpRoomPath);
int chkClose() {
int roomPath = dPath_ChkClose(mpRoomPath);
return roomPath;
}
bool chkReverse() { return mDirection == 1; }
u16 getNumPnts() {
u16 getNumPnts() {
dPath* path = mpRoomPath;
return path->m_num;
return path->m_num;
}
u16& getIdx() { return mIdx; }
@ -413,13 +413,9 @@ public:
/* 8014CCE8 */ virtual void changeBtk(int*, int*);
/* 8014A628 */ virtual void setMotionAnm(int, f32, int);
bool checkHide() {
return field_0xe25 || (!dComIfGs_wolfeye_effect_check() && field_0xa89);
}
s16 checkStep() {
return mStepNo == 1;
}
bool checkHide() { return field_0xe25 || (!dComIfGs_wolfeye_effect_check() && field_0xa89); }
s16 checkStep() { return mStepNo == 1; }
void setCommander(fopAc_ac_c* param_0) { field_0xba0.entry(param_0); }
static u8 const mCcDObjData[48];
static dCcD_SrcCyl mCcDCyl;
@ -482,11 +478,11 @@ protected:
/* 0x91A */ csXyz field_0x91a[3];
/* 0x92C */ int mCutIndex;
/* 0x930 */ u32 field_0x930;
/* 0x934 */ int field_0x934; // index in 0x93c to not decrement timer (if 0x938 is nonzero)
/* 0x938 */ int field_0x938; // controls whether to use field 0x934
/* 0x93C */ int field_0x93c[5]; // timers for removing actors from 0x82c
/* 0x934 */ int field_0x934; // index in 0x93c to not decrement timer (if 0x938 is nonzero)
/* 0x938 */ int field_0x938; // controls whether to use field 0x934
/* 0x93C */ int field_0x93c[5]; // timers for removing actors from 0x82c
/* 0x950 */ int field_0x950;
/* 0x954 */ int field_0x954; // a timer
/* 0x954 */ int field_0x954; // a timer
/* 0x958 */ int field_0x958;
/* 0x95C */ int field_0x95c;
/* 0x960 */ int field_0x960;
@ -536,7 +532,7 @@ protected:
/* 0x9F1 */ u8 field_0x9f1;
/* 0x9F2 */ bool mHide;
/* 0x9f3 */ u8 field_0x9f3;
/* 0x9F4 */ bool field_0x9f4; // controls whether setHitodamaPrtcl is called
/* 0x9F4 */ bool field_0x9f4; // controls whether setHitodamaPrtcl is called
/* 0x9F5 */ u8 field_0x9f5;
/* 0x9F6 */ u8 field_0x9f6;
/* 0x9F8 */ dMsgFlow_c mFlow;
@ -552,22 +548,25 @@ public:
};
enum AnmFlags {
ANM_PAUSE_MORF = 0x0001,
ANM_PAUSE_BTK = 0x0002,
ANM_PAUSE_BRK = 0x0004,
ANM_PLAY_MORF = 0x0008,
ANM_PLAY_BTK = 0x0010,
ANM_PLAY_BRK = 0x0020,
ANM_PAUSE_BCK = 0x0040,
ANM_PAUSE_BTP = 0x0080,
ANM_PLAY_BCK = 0x0100,
ANM_PLAY_BTP = 0x0200,
ANM_FLAG_400 = 0x0400,
ANM_FLAG_800 = 0x0800,
ANM_PAUSE_MORF = 0x0001,
ANM_PAUSE_BTK = 0x0002,
ANM_PAUSE_BRK = 0x0004,
ANM_PLAY_MORF = 0x0008,
ANM_PLAY_BTK = 0x0010,
ANM_PLAY_BRK = 0x0020,
ANM_PAUSE_BCK = 0x0040,
ANM_PAUSE_BTP = 0x0080,
ANM_PLAY_BCK = 0x0100,
ANM_PLAY_BTP = 0x0200,
ANM_FLAG_400 = 0x0400,
ANM_FLAG_800 = 0x0800,
ANM_PAUSE_EXPRESSION = 0x1000,
ANM_MOTION_FLAGS = ANM_PAUSE_MORF | ANM_PAUSE_BTK | ANM_PAUSE_BRK | ANM_PLAY_MORF | ANM_PLAY_BTK | ANM_PLAY_BRK,
ANM_EXPRESSION_FLAGS = ANM_PAUSE_BCK | ANM_PAUSE_BTP | ANM_PLAY_BCK | ANM_PLAY_BTP | ANM_FLAG_400 | ANM_FLAG_800 | ANM_PAUSE_EXPRESSION,
ANM_PAUSE_ALL = ANM_PAUSE_MORF | ANM_PAUSE_BTK | ANM_PAUSE_BRK | ANM_PAUSE_BCK | ANM_PAUSE_BTP | ANM_PAUSE_EXPRESSION,
ANM_MOTION_FLAGS = ANM_PAUSE_MORF | ANM_PAUSE_BTK | ANM_PAUSE_BRK | ANM_PLAY_MORF |
ANM_PLAY_BTK | ANM_PLAY_BRK,
ANM_EXPRESSION_FLAGS = ANM_PAUSE_BCK | ANM_PAUSE_BTP | ANM_PLAY_BCK | ANM_PLAY_BTP |
ANM_FLAG_400 | ANM_FLAG_800 | ANM_PAUSE_EXPRESSION,
ANM_PAUSE_ALL = ANM_PAUSE_MORF | ANM_PAUSE_BTK | ANM_PAUSE_BRK | ANM_PAUSE_BCK |
ANM_PAUSE_BTP | ANM_PAUSE_EXPRESSION,
};
/* 80152014 */ BOOL execute();
@ -581,11 +580,16 @@ public:
/* 80152B68 */ J3DAnmTexPattern* getTexPtrnAnmP(char*, int);
/* 80152BA4 */ J3DAnmTextureSRTKey* getTexSRTKeyAnmP(char*, int);
/* 80152BE0 */ J3DAnmTevRegKey* getTevRegKeyAnmP(char*, int);
/* 80152C1C */ BOOL setMcaMorfAnm(J3DAnmTransformKey* i_anm, f32 i_rate, f32 i_morf, int i_attr, int i_start, int i_end);
/* 80152C80 */ BOOL setBckAnm(J3DAnmTransform* i_bck, f32 i_rate, int i_attr, int i_start, int i_end, bool i_modify);
/* 80152CC4 */ BOOL setBtpAnm(J3DAnmTexPattern* i_btp, J3DModelData* i_modelData, f32 i_rate, int i_attr);
/* 80152D04 */ BOOL setBtkAnm(J3DAnmTextureSRTKey* i_btk, J3DModelData* i_modelData, f32 i_rate, int i_attr);
/* 80152D44 */ BOOL setBrkAnm(J3DAnmTevRegKey* i_brk, J3DModelData* i_modelData, f32 i_rate, int i_attr);
/* 80152C1C */ BOOL setMcaMorfAnm(J3DAnmTransformKey* i_anm, f32 i_rate, f32 i_morf, int i_attr,
int i_start, int i_end);
/* 80152C80 */ BOOL setBckAnm(J3DAnmTransform* i_bck, f32 i_rate, int i_attr, int i_start,
int i_end, bool i_modify);
/* 80152CC4 */ BOOL setBtpAnm(J3DAnmTexPattern* i_btp, J3DModelData* i_modelData, f32 i_rate,
int i_attr);
/* 80152D04 */ BOOL setBtkAnm(J3DAnmTextureSRTKey* i_btk, J3DModelData* i_modelData, f32 i_rate,
int i_attr);
/* 80152D44 */ BOOL setBrkAnm(J3DAnmTevRegKey* i_brk, J3DModelData* i_modelData, f32 i_rate,
int i_attr);
/* 80152D84 */ void setEnvTevColor();
/* 80152DE0 */ void setRoomNo();
/* 80152E24 */ BOOL chkEndAnm(f32);
@ -609,8 +613,8 @@ public:
/* 80154250 */ void setAngle(s16);
/* 80154278 */ u8 getDistTableIdx(int, int);
/* 801542A0 */ fopAc_ac_c* getEvtAreaTagP(int, int);
/* 8015436C */ fopAc_ac_c* getAttnActorP(int, void* (*)(void*, void*), f32, f32, f32, f32, s16, int,
int);
/* 8015436C */ fopAc_ac_c* getAttnActorP(int, void* (*)(void*, void*), f32, f32, f32, f32, s16,
int, int);
/* 80154730 */ BOOL chkActorInSight2(fopAc_ac_c*, f32, s16);
/* 80154834 */ BOOL chkPointInArea(cXyz, cXyz, f32, f32, f32, s16);
/* 801548F4 */ BOOL chkPointInArea(cXyz, cXyz, cXyz, s16);
@ -635,11 +639,22 @@ public:
/* 80155BD0 */ virtual BOOL drawDbgInfo();
/* 80155BCC */ virtual void drawOtherMdls();
BOOL chkActorInSpeakArea(fopAc_ac_c* i_actorCheck, fopAc_ac_c* i_actorArea) { return chkActorInAttnArea(i_actorCheck, i_actorArea, mAttentionInfo.field_0x0[3]); }
BOOL chkPlayerInSpeakArea(fopAc_ac_c* i_actor) { return chkActorInSpeakArea(daPy_getPlayerActorClass(), i_actor); }
BOOL chkActorInTalkArea(fopAc_ac_c* i_actorCheck, fopAc_ac_c* i_actorArea) { return chkActorInAttnArea(i_actorCheck, i_actorArea, mAttentionInfo.field_0x0[1]); }
BOOL chkPlayerInTalkArea(fopAc_ac_c* i_actor) { return chkActorInTalkArea(daPy_getPlayerActorClass(), i_actor); }
BOOL chkActorInSpeakArea(fopAc_ac_c* i_actorCheck, fopAc_ac_c* i_actorArea) {
return chkActorInAttnArea(i_actorCheck, i_actorArea, mAttentionInfo.field_0x0[3]);
}
BOOL chkPlayerInSpeakArea(fopAc_ac_c* i_actor) {
return chkActorInSpeakArea(daPy_getPlayerActorClass(), i_actor);
}
BOOL chkActorInTalkArea(fopAc_ac_c* i_actorCheck, fopAc_ac_c* i_actorArea) {
return chkActorInAttnArea(i_actorCheck, i_actorArea, mAttentionInfo.field_0x0[1]);
}
BOOL chkPlayerInTalkArea(fopAc_ac_c* i_actor) {
return chkActorInTalkArea(daPy_getPlayerActorClass(), i_actor);
}
BOOL checkHide() { return mHide || (field_0x9f4 && !dComIfGs_wolfeye_effect_check()); }
void setIntDemander(fopAc_ac_c* i_actor) { field_0x824.entry(i_actor); }
void setIntFlowNodeNo(int i_flowNodeNo) { mFlowNodeNo = i_flowNodeNo; }
void onInterrupt(u8 param_0) { field_0x9ef = param_0; }
static u8 const mCcDObjInfo[48];
static dCcD_SrcCyl mCcDCyl;
@ -654,8 +669,7 @@ STATIC_ASSERT(sizeof(daNpcF_c) == 0xB48);
BOOL daNpcF_chkEvtBit(u32 i_idx);
BOOL daNpcF_chkTmpBit(u32 i_idx);
void daNpcF_offTmpBit(u32 i_idx);
int daNpcF_getPlayerInfoFromPlayerList(int param_0, int i_roomNo, cXyz& param_2,
csXyz& param_3);
int daNpcF_getPlayerInfoFromPlayerList(int param_0, int i_roomNo, cXyz& param_2, csXyz& param_3);
s16 daNpcF_getGroundAngle(cBgS_PolyInfo*, s16);
struct daBaseNpc_matAnm_c {
@ -667,12 +681,13 @@ class daBaseNpc_acMngr_c {
private:
/* 0x00 */ u8 field_0x00[4];
/* 0x04 */ u32 mActorId;
public:
/* 8014D804 */ daBaseNpc_acMngr_c();
/* 8014D81C */ void entry(fopAc_ac_c*);
/* 8014D838 */ fopAc_ac_c* getActor();
/* 80150524 */ ~daBaseNpc_acMngr_c();
};
};
class daBaseNpc_path_c {
private:
@ -696,8 +711,6 @@ public:
/* 8014DB0C */ void setIdx(u16);
/* 8014DB14 */ Vec getPntPos(u16);
/* 801503FC */ ~daBaseNpc_path_c();
};
class daBaseNpc_lookat_c {
@ -791,7 +804,7 @@ public:
/* 8014F4A8 */ void drawOtherMdls();
/* 8014F4AC */ bool dbgDraw();
void setVtable(void* table) { vtable = table;}
void setVtable(void* table) { vtable = table; }
static u8 const mCcDObj[48];
static dCcD_SrcCyl mCcDCyl;
@ -802,7 +815,6 @@ class daBaseNpc_moveBgActor_c : public daBaseNpc_c {
private:
/* 0xA14 */ u32 field_0xa14;
public:
/* 8014F4B4 */ daBaseNpc_moveBgActor_c();
/* 8014F518 */ void MoveBGCreateHeap();
@ -846,14 +858,13 @@ public:
};
class daNpcF_SPCurve_c {
private:
private:
/* 0x00 */ u16 mNurbs;
/* 0x02 */ u16 field_0x02;
/* 0x04 */ u8 field_0x04;
/* 0x05 */ bool mIsClosed;
/* 0x08 */ dStage_dPnt_c mPoints[96];
public:
/* 80150870 */ void initialize(dPath*, int);
};
@ -885,12 +896,8 @@ public:
/* 80150EB4 */ void setNextIdxDst(cXyz);
u16& getIdx() { return mIdx; };
inline Vec getPntPos(int i_idx) {
return mpRoomPath->m_points[i_idx].m_position;
}
int chkClose() {
return dPath_ChkClose(mpRoomPath);
}
inline Vec getPntPos(int i_idx) { return mpRoomPath->m_points[i_idx].m_position; }
int chkClose() { return dPath_ChkClose(mpRoomPath); }
};
class daNpcF_Lookat_c {
@ -922,7 +929,6 @@ public:
class daNpcF_MoveBgActor_c {
private:
public:
/* 80155B54 */ ~daNpcF_MoveBgActor_c();
/* 80155E88 */ bool CreateHeap();

View File

@ -1,6 +1,44 @@
#ifndef D_A_TAG_PUSH_H
#define D_A_TAG_PUSH_H
#include "d/a/d_a_npc.h"
#include "dolphin/types.h"
#include "f_op/f_op_actor_mng.h"
class daTag_Push_c : public fopAc_ac_c {
public:
/* 804902B8 */ static void* srchActor(void*, void*);
/* 80490418 */ int create();
/* 804904D4 */ int Delete();
/* 804904DC */ int Execute();
/* 804906BC */ int Draw();
/* 804906C4 */ int isDelete();
/* 80490724 */ int chkPointInArea(cXyz);
u32 getId() {
u32 id = fopAcM_GetParam(this) >> 0x18;
if (id != 0xFF) {
return id;
}
return -1;
}
u8 getBitSW() { return fopAcM_GetParam(this) & 0xFF; }
u8 getBitSW2() { return (fopAcM_GetParam(this) >> 8) & 0xFF; }
u32 getFlowNodeNo() {
if (orig.angle.x == 0xFFFF) {
return 0xFFFFFFFF;
} else {
return orig.angle.x & 0xFFFF;
}
}
/* 0x568 */ daNpcT_ActorMngr_c mActorMngr;
/* 804908CC */ virtual ~daTag_Push_c();
};
STATIC_ASSERT(sizeof(daTag_Push_c) == 0x574);
#endif /* D_A_TAG_PUSH_H */

View File

@ -4,269 +4,195 @@
//
#include "rel/d/a/tag/d_a_tag_push/d_a_tag_push.h"
#include "dol2asm.h"
//
// Types:
//
struct fopAc_ac_c {
/* 80018B64 */ fopAc_ac_c();
/* 80018C8C */ ~fopAc_ac_c();
};
struct cXyz {};
struct daTag_Push_c {
/* 804902B8 */ void srchActor(void*, void*);
/* 80490418 */ void create();
/* 804904D4 */ bool Delete();
/* 804904DC */ void Execute();
/* 804906BC */ bool Draw();
/* 804906C4 */ void isDelete();
/* 80490724 */ void chkPointInArea(cXyz);
/* 804908CC */ ~daTag_Push_c();
};
struct daNpcT_ActorMngr_c {
/* 801456D4 */ void initialize();
/* 801456E0 */ void entry(fopAc_ac_c*);
/* 80145708 */ void getActorP();
/* 80490884 */ ~daNpcT_ActorMngr_c();
};
struct daNpcF_ActorMngr_c {
/* 801506BC */ void entry(fopAc_ac_c*);
};
struct dSv_info_c {
/* 80035360 */ void isSwitch(int, int) const;
};
//
// Forward References:
//
extern "C" void srchActor__12daTag_Push_cFPvPv();
extern "C" void create__12daTag_Push_cFv();
extern "C" bool Delete__12daTag_Push_cFv();
extern "C" void Execute__12daTag_Push_cFv();
extern "C" bool Draw__12daTag_Push_cFv();
extern "C" void isDelete__12daTag_Push_cFv();
extern "C" void chkPointInArea__12daTag_Push_cF4cXyz();
extern "C" static void daTag_Push_Create__FPv();
extern "C" static void daTag_Push_Delete__FPv();
extern "C" static void daTag_Push_Execute__FPv();
extern "C" static void daTag_Push_Draw__FPv();
extern "C" static bool daTag_Push_IsDelete__FPv();
extern "C" void __dt__18daNpcT_ActorMngr_cFv();
extern "C" void __dt__12daTag_Push_cFv();
//
// External References:
//
extern "C" void __ct__10fopAc_ac_cFv();
extern "C" void __dt__10fopAc_ac_cFv();
extern "C" void fopAc_IsActor__FPv();
extern "C" void fopAcM_delete__FP10fopAc_ac_c();
extern "C" void fpcEx_Search__FPFPvPv_PvPv();
extern "C" void fpcEx_IsExist__FUi();
extern "C" void isSwitch__10dSv_info_cCFii();
extern "C" void initialize__18daNpcT_ActorMngr_cFv();
extern "C" void entry__18daNpcT_ActorMngr_cFP10fopAc_ac_c();
extern "C" void getActorP__18daNpcT_ActorMngr_cFv();
extern "C" void daNpcT_chkPointInArea__F4cXyz4cXyz4cXyzsi();
extern "C" void entry__18daNpcF_ActorMngr_cFP10fopAc_ac_c();
extern "C" void __dl__FPv();
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" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern u8 mStayNo__20dStage_roomControl_c[4];
//
// Declarations:
//
/* ############################################################################################## */
/* 80490950-80490978 -00001 0028+00 1/1 0/0 0/0 .data @3868 */
SECTION_DATA static void* lit_3868[10] = {
(void*)(((char*)srchActor__12daTag_Push_cFPvPv) + 0x138),
(void*)(((char*)srchActor__12daTag_Push_cFPvPv) + 0x88),
(void*)(((char*)srchActor__12daTag_Push_cFPvPv) + 0x9C),
(void*)(((char*)srchActor__12daTag_Push_cFPvPv) + 0xB0),
(void*)(((char*)srchActor__12daTag_Push_cFPvPv) + 0xC4),
(void*)(((char*)srchActor__12daTag_Push_cFPvPv) + 0xD8),
(void*)(((char*)srchActor__12daTag_Push_cFPvPv) + 0xEC),
(void*)(((char*)srchActor__12daTag_Push_cFPvPv) + 0x100),
(void*)(((char*)srchActor__12daTag_Push_cFPvPv) + 0x114),
(void*)(((char*)srchActor__12daTag_Push_cFPvPv) + 0x128),
};
#include "JSystem/JKernel/JKRHeap.h"
#include "d/d_procname.h"
/* 804902B8-80490418 000078 0160+00 2/1 0/0 0/0 .text srchActor__12daTag_Push_cFPvPv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTag_Push_c::srchActor(void* param_0, void* param_1) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/srchActor__12daTag_Push_cFPvPv.s"
void* daTag_Push_c::srchActor(void* param_0, void* param_1) {
BOOL bVar1 = false;
if (param_0 != NULL && fopAcM_IsActor(param_0)) {
if (fopAcM_IsExecuting(fopAcM_GetID(param_0))) {
switch (((daTag_Push_c*)param_1)->getId()) {
case 1:
bVar1 = ((daTag_Push_c*)param_0)->mBase.mProcName == PROC_NPC_TARO;
break;
case 2:
bVar1 = ((daTag_Push_c*)param_0)->mBase.mProcName == PROC_NPC_JAGAR;
break;
case 3:
bVar1 = ((daTag_Push_c*)param_0)->mBase.mProcName == PROC_NPC_LEN;
break;
case 4:
bVar1 = ((daTag_Push_c*)param_0)->mBase.mProcName == PROC_NPC_TARO;
break;
case 5:
bVar1 = ((daTag_Push_c*)param_0)->mBase.mProcName == PROC_NPC_MARO;
break;
case 6:
bVar1 = ((daTag_Push_c*)param_0)->mBase.mProcName == PROC_NPC_BESU;
break;
case 7:
bVar1 = ((daTag_Push_c*)param_0)->mBase.mProcName == PROC_NPC_BOU;
break;
case 8:
bVar1 = ((daTag_Push_c*)param_0)->mBase.mProcName == PROC_NPC_GRS;
break;
case 9:
bVar1 = ((daTag_Push_c*)param_0)->mBase.mProcName == PROC_NPC_GRO;
break;
}
}
}
if (!bVar1) {
param_0 = NULL;
}
return param_0;
}
#pragma pop
/* ############################################################################################## */
/* 8049094C-80490950 000000 0004+00 1/1 0/0 0/0 .rodata @3887 */
SECTION_RODATA static f32 const lit_3887 = 100.0f;
COMPILER_STRIP_GATE(0x8049094C, &lit_3887);
/* 80490978-80490998 -00001 0020+00 1/0 0/0 0/0 .data daTag_Push_MethodTable */
SECTION_DATA static void* daTag_Push_MethodTable[8] = {
(void*)daTag_Push_Create__FPv,
(void*)daTag_Push_Delete__FPv,
(void*)daTag_Push_Execute__FPv,
(void*)daTag_Push_IsDelete__FPv,
(void*)daTag_Push_Draw__FPv,
(void*)NULL,
(void*)NULL,
(void*)NULL,
};
/* 80490998-804909C8 -00001 0030+00 0/0 0/0 1/0 .data g_profile_TAG_PUSH */
SECTION_DATA extern void* g_profile_TAG_PUSH[12] = {
(void*)0xFFFFFFFD, (void*)0x0008FFFD,
(void*)0x02EC0000, (void*)&g_fpcLf_Method,
(void*)0x00000574, (void*)NULL,
(void*)NULL, (void*)&g_fopAc_Method,
(void*)0x01230000, (void*)&daTag_Push_MethodTable,
(void*)0x00044000, (void*)0x000E0000,
};
/* 804909C8-804909D4 000078 000C+00 3/3 0/0 0/0 .data __vt__18daNpcT_ActorMngr_c */
SECTION_DATA extern void* __vt__18daNpcT_ActorMngr_c[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__18daNpcT_ActorMngr_cFv,
};
/* 804909D4-804909E0 000084 000C+00 2/2 0/0 0/0 .data __vt__12daTag_Push_c */
SECTION_DATA extern void* __vt__12daTag_Push_c[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__12daTag_Push_cFv,
};
/* 80490418-804904D4 0001D8 00BC+00 1/1 0/0 0/0 .text create__12daTag_Push_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTag_Push_c::create() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/create__12daTag_Push_cFv.s"
int daTag_Push_c::create() {
fopAcM_SetupActor(this, daTag_Push_c);
mScale.x *= 100.0f;
mScale.y *= 100.0f;
mScale.z = mScale.x;
if (isDelete()) {
return cPhs_ERROR_e;
} else {
return cPhs_COMPLEATE_e;
}
}
#pragma pop
/* 804904D4-804904DC 000294 0008+00 1/1 0/0 0/0 .text Delete__12daTag_Push_cFv */
bool daTag_Push_c::Delete() {
return true;
int daTag_Push_c::Delete() {
return 1;
}
/* 804904DC-804906BC 00029C 01E0+00 1/1 0/0 0/0 .text Execute__12daTag_Push_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTag_Push_c::Execute() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/Execute__12daTag_Push_cFv.s"
int daTag_Push_c::Execute() {
if (orig.roomNo == dComIfGp_roomControl_getStayNo()) {
fopAc_ac_c* actor = mActorMngr.getActorP();
if (isDelete()) {
if (actor != NULL && fopAcM_GetName(actor) != PROC_NPC_JAGAR &&
fopAcM_GetName(actor) != PROC_NPC_GRS && fopAcM_GetName(actor) != PROC_NPC_GRO)
{
static_cast<daNpcT_c*>(actor)->setCommander(NULL);
}
fopAcM_delete(this);
return 1;
} else {
if (!i_dComIfGp_event_runCheck()) {
if (actor == NULL) {
actor = (fopAc_ac_c*)(i_fpcM_Search(srchActor, this));
if (actor != NULL) {
mActorMngr.entry(actor);
}
}
if (actor != NULL &&
daPy_getPlayerActorClass()->mEvtInfo.chkCondition(dEvtCnd_CANTALK_e) != false)
{
if (chkPointInArea(cXyz(daPy_getPlayerActorClass()->current.pos))) {
if (fopAcM_GetName(actor) == PROC_NPC_GRS ||
fopAcM_GetName(actor) == PROC_NPC_GRO)
{
static_cast<daNpcF_c*>(actor)->setIntDemander(this);
static_cast<daNpcF_c*>(actor)->setIntFlowNodeNo(getFlowNodeNo());
static_cast<daNpcF_c*>(actor)->onInterrupt(getId());
} else {
static_cast<daNpcT_c*>(actor)->setCommander(this);
}
}
}
}
mAttentionInfo.mFlags = 0;
mAttentionInfo.mPosition = current.pos;
mEyePos = mAttentionInfo.mPosition;
return 1;
}
}
return 0;
}
#pragma pop
/* 804906BC-804906C4 00047C 0008+00 1/1 0/0 0/0 .text Draw__12daTag_Push_cFv */
bool daTag_Push_c::Draw() {
return true;
int daTag_Push_c::Draw() {
return 1;
}
/* 804906C4-80490724 000484 0060+00 2/2 0/0 0/0 .text isDelete__12daTag_Push_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTag_Push_c::isDelete() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/isDelete__12daTag_Push_cFv.s"
int daTag_Push_c::isDelete() {
bool retVal = false;
if (getBitSW2() != 0xFF) {
if (dComIfGs_isSwitch(getBitSW2(), fopAcM_GetRoomNo(this))) {
retVal = true;
}
}
return retVal;
}
#pragma pop
/* 80490724-804907FC 0004E4 00D8+00 1/1 0/0 0/0 .text chkPointInArea__12daTag_Push_cF4cXyz */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTag_Push_c::chkPointInArea(cXyz param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/chkPointInArea__12daTag_Push_cF4cXyz.s"
int daTag_Push_c::chkPointInArea(cXyz param_0) {
if ((getBitSW() != 0xFF && dComIfGs_isSwitch(getBitSW(), fopAcM_GetRoomNo(this))) ||
getBitSW() == 0xFF)
{
return daNpcT_chkPointInArea(param_0, current.pos, mScale, shape_angle.y, 1);
} else {
return 0;
}
}
#pragma pop
/* 804907FC-8049081C 0005BC 0020+00 1/0 0/0 0/0 .text daTag_Push_Create__FPv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTag_Push_Create(void* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/daTag_Push_Create__FPv.s"
static int daTag_Push_Create(void* i_this) {
return static_cast<daTag_Push_c*>(i_this)->create();
}
#pragma pop
/* 8049081C-8049083C 0005DC 0020+00 1/0 0/0 0/0 .text daTag_Push_Delete__FPv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTag_Push_Delete(void* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/daTag_Push_Delete__FPv.s"
static int daTag_Push_Delete(void* i_this) {
return static_cast<daTag_Push_c*>(i_this)->Delete();
}
#pragma pop
/* 8049083C-8049085C 0005FC 0020+00 1/0 0/0 0/0 .text daTag_Push_Execute__FPv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTag_Push_Execute(void* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/daTag_Push_Execute__FPv.s"
static int daTag_Push_Execute(void* i_this) {
return static_cast<daTag_Push_c*>(i_this)->Execute();
}
#pragma pop
/* 8049085C-8049087C 00061C 0020+00 1/0 0/0 0/0 .text daTag_Push_Draw__FPv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTag_Push_Draw(void* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/daTag_Push_Draw__FPv.s"
static int daTag_Push_Draw(void* i_this) {
return static_cast<daTag_Push_c*>(i_this)->Draw();
}
#pragma pop
/* 8049087C-80490884 00063C 0008+00 1/0 0/0 0/0 .text daTag_Push_IsDelete__FPv */
static bool daTag_Push_IsDelete(void* param_0) {
return true;
static int daTag_Push_IsDelete(void* i_this) {
return 1;
}
/* 80490884-804908CC 000644 0048+00 1/0 0/0 0/0 .text __dt__18daNpcT_ActorMngr_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm daNpcT_ActorMngr_c::~daNpcT_ActorMngr_c() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/__dt__18daNpcT_ActorMngr_cFv.s"
}
#pragma pop
/* 804908CC-80490944 00068C 0078+00 1/0 0/0 0/0 .text __dt__12daTag_Push_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm daTag_Push_c::~daTag_Push_c() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/__dt__12daTag_Push_cFv.s"
}
#pragma pop
inline daTag_Push_c::~daTag_Push_c() {}
/* 80490884-804908CC 000644 0048+00 1/0 0/0 0/0 .text __dt__18daNpcT_ActorMngr_cFv */
inline daNpcT_ActorMngr_c::~daNpcT_ActorMngr_c() {}
/* ############################################################################################## */
/* 80490978-80490998 -00001 0020+00 1/0 0/0 0/0 .data daTag_Push_MethodTable */
static actor_method_class daTag_Push_MethodTable = {
(process_method_func)daTag_Push_Create, (process_method_func)daTag_Push_Delete,
(process_method_func)daTag_Push_Execute, (process_method_func)daTag_Push_IsDelete,
(process_method_func)daTag_Push_Draw,
};
/* 80490998-804909C8 -00001 0030+00 0/0 0/0 1/0 .data g_profile_TAG_PUSH */
extern actor_process_profile_definition g_profile_TAG_PUSH = {
fpcLy_CURRENT_e,
8,
fpcLy_CURRENT_e,
PROC_TAG_PUSH,
&g_fpcLf_Method.mBase,
sizeof(daTag_Push_c),
0,
0,
&g_fopAc_Method.base,
0x123,
&daTag_Push_MethodTable,
0x44000,
0,
fopAc_CULLBOX_CUSTOM_e,
};