From 95d103b237b2d46722ecd2ee866f12440dcf9da9 Mon Sep 17 00:00:00 2001 From: Jacob Patzer <37888505+jakepatzer@users.noreply.github.com> Date: Tue, 24 Oct 2023 17:10:48 -0700 Subject: [PATCH] d_a_tag_push OK (#1967) --- Progress.md | 8 +- .../d_a_tag_push/Execute__12daTag_Push_cFv.s | 131 ------ .../d_a_tag_push/__dt__12daTag_Push_cFv.s | 33 -- .../__dt__18daNpcT_ActorMngr_cFv.s | 20 - .../chkPointInArea__12daTag_Push_cF4cXyz.s | 59 --- .../d_a_tag_push/create__12daTag_Push_cFv.s | 52 --- .../d_a_tag_push/daTag_Push_Create__FPv.s | 9 - .../d_a_tag_push/daTag_Push_Delete__FPv.s | 9 - .../d_a_tag_push/daTag_Push_Draw__FPv.s | 9 - .../d_a_tag_push/daTag_Push_Execute__FPv.s | 9 - .../d_a_tag_push/isDelete__12daTag_Push_cFv.s | 26 -- .../srchActor__12daTag_Push_cFPvPv.s | 103 ----- include/d/a/d_a_npc.h | 134 +++--- .../rel/d/a/tag/d_a_tag_push/d_a_tag_push.h | 38 ++ rel/d/a/tag/d_a_tag_push/d_a_tag_push.cpp | 382 +++++++----------- 15 files changed, 266 insertions(+), 756 deletions(-) delete mode 100644 asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/Execute__12daTag_Push_cFv.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/__dt__12daTag_Push_cFv.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/__dt__18daNpcT_ActorMngr_cFv.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/chkPointInArea__12daTag_Push_cF4cXyz.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/create__12daTag_Push_cFv.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/daTag_Push_Create__FPv.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/daTag_Push_Delete__FPv.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/daTag_Push_Draw__FPv.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/daTag_Push_Execute__FPv.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/isDelete__12daTag_Push_cFv.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/srchActor__12daTag_Push_cFPvPv.s diff --git a/Progress.md b/Progress.md index 44b26948f3d..42afb06beb1 100644 --- a/Progress.md +++ b/Progress.md @@ -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 diff --git a/asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/Execute__12daTag_Push_cFv.s b/asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/Execute__12daTag_Push_cFv.s deleted file mode 100644 index 58d377419aa..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/Execute__12daTag_Push_cFv.s +++ /dev/null @@ -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 diff --git a/asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/__dt__12daTag_Push_cFv.s b/asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/__dt__12daTag_Push_cFv.s deleted file mode 100644 index a2dd714f037..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/__dt__12daTag_Push_cFv.s +++ /dev/null @@ -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 diff --git a/asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/__dt__18daNpcT_ActorMngr_cFv.s b/asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/__dt__18daNpcT_ActorMngr_cFv.s deleted file mode 100644 index f8ea350fbdb..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/__dt__18daNpcT_ActorMngr_cFv.s +++ /dev/null @@ -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 diff --git a/asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/chkPointInArea__12daTag_Push_cF4cXyz.s b/asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/chkPointInArea__12daTag_Push_cF4cXyz.s deleted file mode 100644 index a28bb9429b5..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/chkPointInArea__12daTag_Push_cF4cXyz.s +++ /dev/null @@ -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 diff --git a/asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/create__12daTag_Push_cFv.s b/asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/create__12daTag_Push_cFv.s deleted file mode 100644 index ac2f290f3f6..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/create__12daTag_Push_cFv.s +++ /dev/null @@ -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 diff --git a/asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/daTag_Push_Create__FPv.s b/asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/daTag_Push_Create__FPv.s deleted file mode 100644 index 41405eebee1..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/daTag_Push_Create__FPv.s +++ /dev/null @@ -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 diff --git a/asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/daTag_Push_Delete__FPv.s b/asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/daTag_Push_Delete__FPv.s deleted file mode 100644 index b29ee4d23f0..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/daTag_Push_Delete__FPv.s +++ /dev/null @@ -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 diff --git a/asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/daTag_Push_Draw__FPv.s b/asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/daTag_Push_Draw__FPv.s deleted file mode 100644 index 45a9654958b..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/daTag_Push_Draw__FPv.s +++ /dev/null @@ -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 diff --git a/asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/daTag_Push_Execute__FPv.s b/asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/daTag_Push_Execute__FPv.s deleted file mode 100644 index f1dbcd631fa..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/daTag_Push_Execute__FPv.s +++ /dev/null @@ -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 diff --git a/asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/isDelete__12daTag_Push_cFv.s b/asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/isDelete__12daTag_Push_cFv.s deleted file mode 100644 index 3e1a5855903..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/isDelete__12daTag_Push_cFv.s +++ /dev/null @@ -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 diff --git a/asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/srchActor__12daTag_Push_cFPvPv.s b/asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/srchActor__12daTag_Push_cFPvPv.s deleted file mode 100644 index ad02550651b..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_push/d_a_tag_push/srchActor__12daTag_Push_cFPvPv.s +++ /dev/null @@ -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 diff --git a/include/d/a/d_a_npc.h b/include/d/a/d_a_npc.h index 4cda66ba8b2..1001fc4ee36 100644 --- a/include/d/a/d_a_npc.h +++ b/include/d/a/d_a_npc.h @@ -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(); diff --git a/include/rel/d/a/tag/d_a_tag_push/d_a_tag_push.h b/include/rel/d/a/tag/d_a_tag_push/d_a_tag_push.h index 1f3aaaffe93..4f4f7e945a4 100644 --- a/include/rel/d/a/tag/d_a_tag_push/d_a_tag_push.h +++ b/include/rel/d/a/tag/d_a_tag_push/d_a_tag_push.h @@ -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 */ diff --git a/rel/d/a/tag/d_a_tag_push/d_a_tag_push.cpp b/rel/d/a/tag/d_a_tag_push/d_a_tag_push.cpp index f9686ad3d54..a39fc495964 100644 --- a/rel/d/a/tag/d_a_tag_push/d_a_tag_push.cpp +++ b/rel/d/a/tag/d_a_tag_push/d_a_tag_push.cpp @@ -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(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(actor)->setIntDemander(this); + static_cast(actor)->setIntFlowNodeNo(getFlowNodeNo()); + static_cast(actor)->onInterrupt(getId()); + } else { + static_cast(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(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(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(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(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, +};