From a1bcd353c48d143bed54efbf31b07a1bc4d7fd05 Mon Sep 17 00:00:00 2001 From: Trueffel <106771418+Trueffeloot@users.noreply.github.com> Date: Thu, 2 Mar 2023 03:22:36 +0100 Subject: [PATCH] d_a_tag_rmbit_sw: OK (#303) * d_a_tag_rmbit_sw fully matching * d_a_tag_rmbit_sw OK --- Progress.md | 8 +- .../__ct__14daTagRmbitSw_cFv.s | 16 - .../__dt__14daTagRmbitSw_cFv.s | 26 -- .../chkPlyrInTag__14daTagRmbitSw_cFv.s | 67 ---- .../create__14daTagRmbitSw_cFv.s | 25 -- .../daTagRmbitSw_Delete__FP14daTagRmbitSw_c.s | 9 - .../daTagRmbitSw_create__FP14daTagRmbitSw_c.s | 24 -- .../daTagRmbitSw_draw__FP14daTagRmbitSw_c.s | 9 - ...daTagRmbitSw_execute__FP14daTagRmbitSw_c.s | 9 - .../execute__14daTagRmbitSw_cFv.s | 122 ------- .../init__14daTagRmbitSw_cFv.s | 15 - include/d/com/d_com_inf_game.h | 1 + .../a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw.h | 26 +- .../tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw.cpp | 342 +++++++----------- 14 files changed, 156 insertions(+), 543 deletions(-) delete mode 100644 asm/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw/__ct__14daTagRmbitSw_cFv.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw/__dt__14daTagRmbitSw_cFv.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw/chkPlyrInTag__14daTagRmbitSw_cFv.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw/create__14daTagRmbitSw_cFv.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw/daTagRmbitSw_Delete__FP14daTagRmbitSw_c.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw/daTagRmbitSw_create__FP14daTagRmbitSw_c.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw/daTagRmbitSw_draw__FP14daTagRmbitSw_c.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw/daTagRmbitSw_execute__FP14daTagRmbitSw_c.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw/execute__14daTagRmbitSw_cFv.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw/init__14daTagRmbitSw_cFv.s diff --git a/Progress.md b/Progress.md index aa03ae95bef..fb779e8bd8a 100644 --- a/Progress.md +++ b/Progress.md @@ -21,8 +21,8 @@ Total | 32.747461% | 1316668 | 4020672 Section | Percentage | Decompiled (bytes) | Total (bytes) ---|---|---|--- main.dol | 32.747461% | 1316668 | 4020672 -RELs | 33.375199% | 3838256 | 11500324 -Total | 33.212585% | 5154924 | 15520996 +RELs | 33.385425% | 3839432 | 11500324 +Total | 33.220162% | 5156100 | 15520996 ## RELs @@ -755,7 +755,7 @@ d_a_tag_push | 41.000000% | 1148 | 2800 d_a_tag_qs | 34.804270% | 1956 | 5620 d_a_tag_ret_room | 100.000000% | 1684 | 1684 d_a_tag_river_back | 45.725916% | 1348 | 2948 -d_a_tag_rmbit_sw | 46.642468% | 1028 | 2204 +d_a_tag_rmbit_sw | 100.000000% | 2204 | 2204 d_a_tag_schedule | 100.000000% | 712 | 712 d_a_tag_setBall | 100.000000% | 880 | 880 d_a_tag_setrestart | 100.000000% | 1840 | 1840 @@ -785,4 +785,4 @@ d_a_vrbox2 | 34.977578% | 2184 | 6244 d_a_warp_bug | 54.940711% | 1112 | 2024 d_a_ykgr | 44.400631% | 2252 | 5072 f_pc_profile_lst | 100.000000% | 28156 | 28156 -Total | 33.375199% | 3838256 | 11500324 +Total | 33.385425% | 3839432 | 11500324 diff --git a/asm/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw/__ct__14daTagRmbitSw_cFv.s b/asm/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw/__ct__14daTagRmbitSw_cFv.s deleted file mode 100644 index dc976b85482..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw/__ct__14daTagRmbitSw_cFv.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_80D5FAF8: -/* 80D5FAF8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D5FAFC 7C 08 02 A6 */ mflr r0 -/* 80D5FB00 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D5FB04 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80D5FB08 7C 7F 1B 78 */ mr r31, r3 -/* 80D5FB0C 4B 2B 90 59 */ bl __ct__10fopAc_ac_cFv -/* 80D5FB10 3C 60 80 D6 */ lis r3, __vt__14daTagRmbitSw_c@ha /* 0x80D60004@ha */ -/* 80D5FB14 38 03 00 04 */ addi r0, r3, __vt__14daTagRmbitSw_c@l /* 0x80D60004@l */ -/* 80D5FB18 90 1F 05 68 */ stw r0, 0x568(r31) -/* 80D5FB1C 7F E3 FB 78 */ mr r3, r31 -/* 80D5FB20 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80D5FB24 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D5FB28 7C 08 03 A6 */ mtlr r0 -/* 80D5FB2C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D5FB30 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw/__dt__14daTagRmbitSw_cFv.s b/asm/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw/__dt__14daTagRmbitSw_cFv.s deleted file mode 100644 index c1ec999a0a3..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw/__dt__14daTagRmbitSw_cFv.s +++ /dev/null @@ -1,26 +0,0 @@ -lbl_80D5FB34: -/* 80D5FB34 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D5FB38 7C 08 02 A6 */ mflr r0 -/* 80D5FB3C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D5FB40 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80D5FB44 93 C1 00 08 */ stw r30, 8(r1) -/* 80D5FB48 7C 7E 1B 79 */ or. r30, r3, r3 -/* 80D5FB4C 7C 9F 23 78 */ mr r31, r4 -/* 80D5FB50 41 82 00 28 */ beq lbl_80D5FB78 -/* 80D5FB54 3C 80 80 D6 */ lis r4, __vt__14daTagRmbitSw_c@ha /* 0x80D60004@ha */ -/* 80D5FB58 38 04 00 04 */ addi r0, r4, __vt__14daTagRmbitSw_c@l /* 0x80D60004@l */ -/* 80D5FB5C 90 1E 05 68 */ stw r0, 0x568(r30) -/* 80D5FB60 38 80 00 00 */ li r4, 0 -/* 80D5FB64 4B 2B 91 29 */ bl __dt__10fopAc_ac_cFv -/* 80D5FB68 7F E0 07 35 */ extsh. r0, r31 -/* 80D5FB6C 40 81 00 0C */ ble lbl_80D5FB78 -/* 80D5FB70 7F C3 F3 78 */ mr r3, r30 -/* 80D5FB74 4B 56 F1 C9 */ bl __dl__FPv -lbl_80D5FB78: -/* 80D5FB78 7F C3 F3 78 */ mr r3, r30 -/* 80D5FB7C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80D5FB80 83 C1 00 08 */ lwz r30, 8(r1) -/* 80D5FB84 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D5FB88 7C 08 03 A6 */ mtlr r0 -/* 80D5FB8C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D5FB90 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw/chkPlyrInTag__14daTagRmbitSw_cFv.s b/asm/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw/chkPlyrInTag__14daTagRmbitSw_cFv.s deleted file mode 100644 index 2ac21581f58..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw/chkPlyrInTag__14daTagRmbitSw_cFv.s +++ /dev/null @@ -1,67 +0,0 @@ -lbl_80D5FDF0: -/* 80D5FDF0 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 80D5FDF4 7C 08 02 A6 */ mflr r0 -/* 80D5FDF8 90 01 00 34 */ stw r0, 0x34(r1) -/* 80D5FDFC 93 E1 00 2C */ stw r31, 0x2c(r1) -/* 80D5FE00 7C 7F 1B 78 */ mr r31, r3 -/* 80D5FE04 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80D5FE08 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80D5FE0C 80 83 5D AC */ lwz r4, 0x5dac(r3) -/* 80D5FE10 28 04 00 00 */ cmplwi r4, 0 -/* 80D5FE14 40 82 00 0C */ bne lbl_80D5FE20 -/* 80D5FE18 38 60 00 00 */ li r3, 0 -/* 80D5FE1C 48 00 00 BC */ b lbl_80D5FED8 -lbl_80D5FE20: -/* 80D5FE20 38 61 00 08 */ addi r3, r1, 8 -/* 80D5FE24 38 84 04 D0 */ addi r4, r4, 0x4d0 -/* 80D5FE28 38 BF 04 D0 */ addi r5, r31, 0x4d0 -/* 80D5FE2C 4B 50 6D 09 */ bl __mi__4cXyzCFRC3Vec -/* 80D5FE30 C0 01 00 08 */ lfs f0, 8(r1) -/* 80D5FE34 D0 01 00 14 */ stfs f0, 0x14(r1) -/* 80D5FE38 C0 01 00 0C */ lfs f0, 0xc(r1) -/* 80D5FE3C D0 01 00 18 */ stfs f0, 0x18(r1) -/* 80D5FE40 C0 01 00 10 */ lfs f0, 0x10(r1) -/* 80D5FE44 D0 01 00 1C */ stfs f0, 0x1c(r1) -/* 80D5FE48 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 80D5FE4C 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 80D5FE50 A8 1F 04 DE */ lha r0, 0x4de(r31) -/* 80D5FE54 7C 00 00 D0 */ neg r0, r0 -/* 80D5FE58 7C 04 07 34 */ extsh r4, r0 -/* 80D5FE5C 4B 2A C5 81 */ bl mDoMtx_YrotS__FPA4_fs -/* 80D5FE60 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 80D5FE64 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 80D5FE68 38 81 00 14 */ addi r4, r1, 0x14 -/* 80D5FE6C 7C 85 23 78 */ mr r5, r4 -/* 80D5FE70 4B 5E 6E FD */ bl PSMTXMultVec -/* 80D5FE74 3C 60 80 D6 */ lis r3, lit_3853@ha /* 0x80D5FFB0@ha */ -/* 80D5FE78 C0 03 FF B0 */ lfs f0, lit_3853@l(r3) /* 0x80D5FFB0@l */ -/* 80D5FE7C C0 21 00 18 */ lfs f1, 0x18(r1) -/* 80D5FE80 FC 00 08 40 */ fcmpo cr0, f0, f1 -/* 80D5FE84 40 80 00 50 */ bge lbl_80D5FED4 -/* 80D5FE88 C0 1F 05 70 */ lfs f0, 0x570(r31) -/* 80D5FE8C FC 00 08 40 */ fcmpo cr0, f0, f1 -/* 80D5FE90 40 81 00 44 */ ble lbl_80D5FED4 -/* 80D5FE94 C0 1F 05 6C */ lfs f0, 0x56c(r31) -/* 80D5FE98 C0 21 00 14 */ lfs f1, 0x14(r1) -/* 80D5FE9C FC 00 08 40 */ fcmpo cr0, f0, f1 -/* 80D5FEA0 40 81 00 34 */ ble lbl_80D5FED4 -/* 80D5FEA4 C0 7F 05 74 */ lfs f3, 0x574(r31) -/* 80D5FEA8 C0 41 00 1C */ lfs f2, 0x1c(r1) -/* 80D5FEAC FC 03 10 40 */ fcmpo cr0, f3, f2 -/* 80D5FEB0 40 81 00 24 */ ble lbl_80D5FED4 -/* 80D5FEB4 FC 00 00 50 */ fneg f0, f0 -/* 80D5FEB8 FC 00 08 40 */ fcmpo cr0, f0, f1 -/* 80D5FEBC 40 80 00 18 */ bge lbl_80D5FED4 -/* 80D5FEC0 FC 00 18 50 */ fneg f0, f3 -/* 80D5FEC4 FC 00 10 40 */ fcmpo cr0, f0, f2 -/* 80D5FEC8 40 80 00 0C */ bge lbl_80D5FED4 -/* 80D5FECC 38 60 00 01 */ li r3, 1 -/* 80D5FED0 48 00 00 08 */ b lbl_80D5FED8 -lbl_80D5FED4: -/* 80D5FED4 38 60 00 00 */ li r3, 0 -lbl_80D5FED8: -/* 80D5FED8 83 E1 00 2C */ lwz r31, 0x2c(r1) -/* 80D5FEDC 80 01 00 34 */ lwz r0, 0x34(r1) -/* 80D5FEE0 7C 08 03 A6 */ mtlr r0 -/* 80D5FEE4 38 21 00 30 */ addi r1, r1, 0x30 -/* 80D5FEE8 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw/create__14daTagRmbitSw_cFv.s b/asm/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw/create__14daTagRmbitSw_cFv.s deleted file mode 100644 index a226be7d1e6..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw/create__14daTagRmbitSw_cFv.s +++ /dev/null @@ -1,25 +0,0 @@ -lbl_80D5FB94: -/* 80D5FB94 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D5FB98 7C 08 02 A6 */ mflr r0 -/* 80D5FB9C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D5FBA0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80D5FBA4 7C 7F 1B 78 */ mr r31, r3 -/* 80D5FBA8 80 03 04 A0 */ lwz r0, 0x4a0(r3) -/* 80D5FBAC 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c -/* 80D5FBB0 40 82 00 1C */ bne lbl_80D5FBCC -/* 80D5FBB4 28 1F 00 00 */ cmplwi r31, 0 -/* 80D5FBB8 41 82 00 08 */ beq lbl_80D5FBC0 -/* 80D5FBBC 4B FF FF 3D */ bl __ct__14daTagRmbitSw_cFv -lbl_80D5FBC0: -/* 80D5FBC0 80 1F 04 A0 */ lwz r0, 0x4a0(r31) -/* 80D5FBC4 60 00 00 08 */ ori r0, r0, 8 -/* 80D5FBC8 90 1F 04 A0 */ stw r0, 0x4a0(r31) -lbl_80D5FBCC: -/* 80D5FBCC 7F E3 FB 78 */ mr r3, r31 -/* 80D5FBD0 48 00 01 E9 */ bl init__14daTagRmbitSw_cFv -/* 80D5FBD4 38 60 00 04 */ li r3, 4 -/* 80D5FBD8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80D5FBDC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D5FBE0 7C 08 03 A6 */ mtlr r0 -/* 80D5FBE4 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D5FBE8 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw/daTagRmbitSw_Delete__FP14daTagRmbitSw_c.s b/asm/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw/daTagRmbitSw_Delete__FP14daTagRmbitSw_c.s deleted file mode 100644 index f48a6564ccd..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw/daTagRmbitSw_Delete__FP14daTagRmbitSw_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80D5FF40: -/* 80D5FF40 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D5FF44 7C 08 02 A6 */ mflr r0 -/* 80D5FF48 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D5FF4C 4B FF FC A1 */ bl Delete__14daTagRmbitSw_cFv -/* 80D5FF50 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D5FF54 7C 08 03 A6 */ mtlr r0 -/* 80D5FF58 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D5FF5C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw/daTagRmbitSw_create__FP14daTagRmbitSw_c.s b/asm/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw/daTagRmbitSw_create__FP14daTagRmbitSw_c.s deleted file mode 100644 index 1de70eac8c0..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw/daTagRmbitSw_create__FP14daTagRmbitSw_c.s +++ /dev/null @@ -1,24 +0,0 @@ -lbl_80D5FEEC: -/* 80D5FEEC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D5FEF0 7C 08 02 A6 */ mflr r0 -/* 80D5FEF4 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D5FEF8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80D5FEFC 7C 7F 1B 78 */ mr r31, r3 -/* 80D5FF00 80 03 04 A0 */ lwz r0, 0x4a0(r3) -/* 80D5FF04 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c -/* 80D5FF08 40 82 00 1C */ bne lbl_80D5FF24 -/* 80D5FF0C 28 1F 00 00 */ cmplwi r31, 0 -/* 80D5FF10 41 82 00 08 */ beq lbl_80D5FF18 -/* 80D5FF14 4B FF FB E5 */ bl __ct__14daTagRmbitSw_cFv -lbl_80D5FF18: -/* 80D5FF18 80 1F 04 A0 */ lwz r0, 0x4a0(r31) -/* 80D5FF1C 60 00 00 08 */ ori r0, r0, 8 -/* 80D5FF20 90 1F 04 A0 */ stw r0, 0x4a0(r31) -lbl_80D5FF24: -/* 80D5FF24 7F E3 FB 78 */ mr r3, r31 -/* 80D5FF28 4B FF FC 6D */ bl create__14daTagRmbitSw_cFv -/* 80D5FF2C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80D5FF30 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D5FF34 7C 08 03 A6 */ mtlr r0 -/* 80D5FF38 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D5FF3C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw/daTagRmbitSw_draw__FP14daTagRmbitSw_c.s b/asm/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw/daTagRmbitSw_draw__FP14daTagRmbitSw_c.s deleted file mode 100644 index 4140c2277cd..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw/daTagRmbitSw_draw__FP14daTagRmbitSw_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80D5FF80: -/* 80D5FF80 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D5FF84 7C 08 02 A6 */ mflr r0 -/* 80D5FF88 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D5FF8C 4B FF FC 69 */ bl draw__14daTagRmbitSw_cFv -/* 80D5FF90 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D5FF94 7C 08 03 A6 */ mtlr r0 -/* 80D5FF98 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D5FF9C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw/daTagRmbitSw_execute__FP14daTagRmbitSw_c.s b/asm/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw/daTagRmbitSw_execute__FP14daTagRmbitSw_c.s deleted file mode 100644 index 65d3722e8c6..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw/daTagRmbitSw_execute__FP14daTagRmbitSw_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80D5FF60: -/* 80D5FF60 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D5FF64 7C 08 02 A6 */ mflr r0 -/* 80D5FF68 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D5FF6C 4B FF FC 91 */ bl execute__14daTagRmbitSw_cFv -/* 80D5FF70 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D5FF74 7C 08 03 A6 */ mtlr r0 -/* 80D5FF78 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D5FF7C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw/execute__14daTagRmbitSw_cFv.s b/asm/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw/execute__14daTagRmbitSw_cFv.s deleted file mode 100644 index 2abc9ebcdd5..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw/execute__14daTagRmbitSw_cFv.s +++ /dev/null @@ -1,122 +0,0 @@ -lbl_80D5FBFC: -/* 80D5FBFC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D5FC00 7C 08 02 A6 */ mflr r0 -/* 80D5FC04 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D5FC08 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80D5FC0C 7C 7F 1B 78 */ mr r31, r3 -/* 80D5FC10 48 00 01 E1 */ bl chkPlyrInTag__14daTagRmbitSw_cFv -/* 80D5FC14 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 80D5FC18 41 82 01 88 */ beq lbl_80D5FDA0 -/* 80D5FC1C 80 1F 00 B0 */ lwz r0, 0xb0(r31) -/* 80D5FC20 54 03 7F FE */ rlwinm r3, r0, 0xf, 0x1f, 0x1f -/* 80D5FC24 28 03 00 01 */ cmplwi r3, 1 -/* 80D5FC28 40 82 00 BC */ bne lbl_80D5FCE4 -/* 80D5FC2C 54 04 46 3E */ srwi r4, r0, 0x18 -/* 80D5FC30 2C 04 00 FF */ cmpwi r4, 0xff -/* 80D5FC34 41 82 00 20 */ beq lbl_80D5FC54 -/* 80D5FC38 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80D5FC3C 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80D5FC40 88 1F 04 BA */ lbz r0, 0x4ba(r31) -/* 80D5FC44 7C 05 07 74 */ extsb r5, r0 -/* 80D5FC48 4B 2D 57 19 */ bl isSwitch__10dSv_info_cCFii -/* 80D5FC4C 2C 03 00 00 */ cmpwi r3, 0 -/* 80D5FC50 41 82 01 50 */ beq lbl_80D5FDA0 -lbl_80D5FC54: -/* 80D5FC54 83 FF 00 B0 */ lwz r31, 0xb0(r31) -/* 80D5FC58 57 E0 87 FE */ rlwinm r0, r31, 0x10, 0x1f, 0x1f -/* 80D5FC5C 28 00 00 01 */ cmplwi r0, 1 -/* 80D5FC60 40 82 00 40 */ bne lbl_80D5FCA0 -/* 80D5FC64 57 E0 06 3E */ clrlwi r0, r31, 0x18 -/* 80D5FC68 7C 04 07 74 */ extsb r4, r0 -/* 80D5FC6C 2C 04 FF FF */ cmpwi r4, -1 -/* 80D5FC70 40 82 00 14 */ bne lbl_80D5FC84 -/* 80D5FC74 57 E0 C6 3E */ rlwinm r0, r31, 0x18, 0x18, 0x1f -/* 80D5FC78 7C 03 07 74 */ extsb r3, r0 -/* 80D5FC7C 4B 2C FF 05 */ bl dComIfGs_onVisitedRoom__Fi -/* 80D5FC80 48 00 01 20 */ b lbl_80D5FDA0 -lbl_80D5FC84: -/* 80D5FC84 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80D5FC88 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80D5FC8C 4B 2D 54 1D */ bl getSave2__10dSv_save_cFi -/* 80D5FC90 57 E0 C6 3E */ rlwinm r0, r31, 0x18, 0x18, 0x1f -/* 80D5FC94 7C 04 07 74 */ extsb r4, r0 -/* 80D5FC98 4B 2D 4E 0D */ bl onVisitedRoom__13dSv_memory2_cFi -/* 80D5FC9C 48 00 01 04 */ b lbl_80D5FDA0 -lbl_80D5FCA0: -/* 80D5FCA0 28 00 00 00 */ cmplwi r0, 0 -/* 80D5FCA4 40 82 00 FC */ bne lbl_80D5FDA0 -/* 80D5FCA8 57 E0 06 3E */ clrlwi r0, r31, 0x18 -/* 80D5FCAC 7C 04 07 74 */ extsb r4, r0 -/* 80D5FCB0 2C 04 FF FF */ cmpwi r4, -1 -/* 80D5FCB4 40 82 00 14 */ bne lbl_80D5FCC8 -/* 80D5FCB8 57 E0 C6 3E */ rlwinm r0, r31, 0x18, 0x18, 0x1f -/* 80D5FCBC 7C 03 07 74 */ extsb r3, r0 -/* 80D5FCC0 4B 2C FF 7D */ bl dComIfGs_offVisitedRoom__Fi -/* 80D5FCC4 48 00 00 DC */ b lbl_80D5FDA0 -lbl_80D5FCC8: -/* 80D5FCC8 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80D5FCCC 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80D5FCD0 4B 2D 53 D9 */ bl getSave2__10dSv_save_cFi -/* 80D5FCD4 57 E0 C6 3E */ rlwinm r0, r31, 0x18, 0x18, 0x1f -/* 80D5FCD8 7C 04 07 74 */ extsb r4, r0 -/* 80D5FCDC 4B 2D 4D ED */ bl offVisitedRoom__13dSv_memory2_cFi -/* 80D5FCE0 48 00 00 C0 */ b lbl_80D5FDA0 -lbl_80D5FCE4: -/* 80D5FCE4 28 03 00 00 */ cmplwi r3, 0 -/* 80D5FCE8 40 82 00 B8 */ bne lbl_80D5FDA0 -/* 80D5FCEC 54 04 46 3E */ srwi r4, r0, 0x18 -/* 80D5FCF0 2C 04 00 FF */ cmpwi r4, 0xff -/* 80D5FCF4 41 82 00 20 */ beq lbl_80D5FD14 -/* 80D5FCF8 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80D5FCFC 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80D5FD00 88 1F 04 BA */ lbz r0, 0x4ba(r31) -/* 80D5FD04 7C 05 07 74 */ extsb r5, r0 -/* 80D5FD08 4B 2D 56 59 */ bl isSwitch__10dSv_info_cCFii -/* 80D5FD0C 2C 03 00 00 */ cmpwi r3, 0 -/* 80D5FD10 40 82 00 90 */ bne lbl_80D5FDA0 -lbl_80D5FD14: -/* 80D5FD14 83 FF 00 B0 */ lwz r31, 0xb0(r31) -/* 80D5FD18 57 E0 87 FE */ rlwinm r0, r31, 0x10, 0x1f, 0x1f -/* 80D5FD1C 28 00 00 01 */ cmplwi r0, 1 -/* 80D5FD20 40 82 00 40 */ bne lbl_80D5FD60 -/* 80D5FD24 57 E0 06 3E */ clrlwi r0, r31, 0x18 -/* 80D5FD28 7C 04 07 74 */ extsb r4, r0 -/* 80D5FD2C 2C 04 FF FF */ cmpwi r4, -1 -/* 80D5FD30 40 82 00 14 */ bne lbl_80D5FD44 -/* 80D5FD34 57 E0 C6 3E */ rlwinm r0, r31, 0x18, 0x18, 0x1f -/* 80D5FD38 7C 03 07 74 */ extsb r3, r0 -/* 80D5FD3C 4B 2C FE 45 */ bl dComIfGs_onVisitedRoom__Fi -/* 80D5FD40 48 00 00 60 */ b lbl_80D5FDA0 -lbl_80D5FD44: -/* 80D5FD44 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80D5FD48 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80D5FD4C 4B 2D 53 5D */ bl getSave2__10dSv_save_cFi -/* 80D5FD50 57 E0 C6 3E */ rlwinm r0, r31, 0x18, 0x18, 0x1f -/* 80D5FD54 7C 04 07 74 */ extsb r4, r0 -/* 80D5FD58 4B 2D 4D 4D */ bl onVisitedRoom__13dSv_memory2_cFi -/* 80D5FD5C 48 00 00 44 */ b lbl_80D5FDA0 -lbl_80D5FD60: -/* 80D5FD60 28 00 00 00 */ cmplwi r0, 0 -/* 80D5FD64 40 82 00 3C */ bne lbl_80D5FDA0 -/* 80D5FD68 57 E0 06 3E */ clrlwi r0, r31, 0x18 -/* 80D5FD6C 7C 04 07 74 */ extsb r4, r0 -/* 80D5FD70 2C 04 FF FF */ cmpwi r4, -1 -/* 80D5FD74 40 82 00 14 */ bne lbl_80D5FD88 -/* 80D5FD78 57 E0 C6 3E */ rlwinm r0, r31, 0x18, 0x18, 0x1f -/* 80D5FD7C 7C 03 07 74 */ extsb r3, r0 -/* 80D5FD80 4B 2C FE BD */ bl dComIfGs_offVisitedRoom__Fi -/* 80D5FD84 48 00 00 1C */ b lbl_80D5FDA0 -lbl_80D5FD88: -/* 80D5FD88 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80D5FD8C 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80D5FD90 4B 2D 53 19 */ bl getSave2__10dSv_save_cFi -/* 80D5FD94 57 E0 C6 3E */ rlwinm r0, r31, 0x18, 0x18, 0x1f -/* 80D5FD98 7C 04 07 74 */ extsb r4, r0 -/* 80D5FD9C 4B 2D 4D 2D */ bl offVisitedRoom__13dSv_memory2_cFi -lbl_80D5FDA0: -/* 80D5FDA0 38 60 00 01 */ li r3, 1 -/* 80D5FDA4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80D5FDA8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D5FDAC 7C 08 03 A6 */ mtlr r0 -/* 80D5FDB0 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D5FDB4 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw/init__14daTagRmbitSw_cFv.s b/asm/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw/init__14daTagRmbitSw_cFv.s deleted file mode 100644 index 7322e5c57f2..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw/init__14daTagRmbitSw_cFv.s +++ /dev/null @@ -1,15 +0,0 @@ -lbl_80D5FDB8: -/* 80D5FDB8 3C 80 80 D6 */ lis r4, lit_3817@ha /* 0x80D5FFA8@ha */ -/* 80D5FDBC C0 44 FF A8 */ lfs f2, lit_3817@l(r4) /* 0x80D5FFA8@l */ -/* 80D5FDC0 C0 03 04 EC */ lfs f0, 0x4ec(r3) -/* 80D5FDC4 EC 02 00 32 */ fmuls f0, f2, f0 -/* 80D5FDC8 D0 03 05 6C */ stfs f0, 0x56c(r3) -/* 80D5FDCC 3C 80 80 D6 */ lis r4, lit_3818@ha /* 0x80D5FFAC@ha */ -/* 80D5FDD0 C0 24 FF AC */ lfs f1, lit_3818@l(r4) /* 0x80D5FFAC@l */ -/* 80D5FDD4 C0 03 04 F0 */ lfs f0, 0x4f0(r3) -/* 80D5FDD8 EC 01 00 32 */ fmuls f0, f1, f0 -/* 80D5FDDC D0 03 05 70 */ stfs f0, 0x570(r3) -/* 80D5FDE0 C0 03 04 F4 */ lfs f0, 0x4f4(r3) -/* 80D5FDE4 EC 02 00 32 */ fmuls f0, f2, f0 -/* 80D5FDE8 D0 03 05 74 */ stfs f0, 0x574(r3) -/* 80D5FDEC 4E 80 00 20 */ blr diff --git a/include/d/com/d_com_inf_game.h b/include/d/com/d_com_inf_game.h index 9d6c0083a04..a15ae3fc4ac 100644 --- a/include/d/com/d_com_inf_game.h +++ b/include/d/com/d_com_inf_game.h @@ -830,6 +830,7 @@ void dComIfGs_gameStart(); bool dComIfGs_wolfeye_effect_check(); BOOL dComIfGs_Wolf_Change_Check(); void dComIfGs_onVisitedRoom(int param_0); +void dComIfGs_offVisitedRoom(int param_0); void dComIfGs_setWarpItemData(char const* stage, cXyz pos, s16 angle, s8 roomNo, u8 param_4, u8 param_5); BOOL dComIfGs_isStageSwitch(int i_stageNo, int i_no); diff --git a/include/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw.h b/include/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw.h index 6e1a00f0f93..e1adbd51b2c 100644 --- a/include/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw.h +++ b/include/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw.h @@ -1,6 +1,30 @@ #ifndef D_A_TAG_RMBIT_SW_H #define D_A_TAG_RMBIT_SW_H -#include "dolphin/types.h" +#include "d/com/d_com_inf_game.h" +#include "f_op/f_op_actor_mng.h" + +class daTagRmbitSw_c : public fopAc_ac_c { +public: + /* 80D5FAF8 */ daTagRmbitSw_c(); + /* 80D5FB34 */ virtual ~daTagRmbitSw_c(); + /* 80D5FB94 */ int create(); + /* 80D5FBEC */ int Delete(); + /* 80D5FBF4 */ int draw(); + /* 80D5FBFC */ int execute(); + /* 80D5FDB8 */ void init(); + /* 80D5FDF0 */ u8 chkPlyrInTag(); + + s8 getArg0_RoomSaveTableNo() { return fopAcM_GetParamBit(this, 0, 8); } + s8 getArg1_RoomNo() { return fopAcM_GetParamBit(this, 8, 8); } + u8 getArg2_CngBitVal() { return fopAcM_GetParamBit(this, 16, 1); } + u8 getArg3_CngBitFlg() { return fopAcM_GetParamBit(this, 17, 1); } + u8 getSwBit() { return fopAcM_GetParamBit(this, 24, 8); } + + /* 0x56C */ f32 field_0x56c; + /* 0x570 */ f32 field_0x570; + /* 0x574 */ f32 field_0x574; + +}; // Size: 0x578 #endif /* D_A_TAG_RMBIT_SW_H */ diff --git a/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw.cpp b/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw.cpp index 680f2147acc..01db99db180 100644 --- a/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw.cpp +++ b/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw.cpp @@ -1,252 +1,162 @@ -// -// Generated By: dol2asm -// Translation Unit: d_a_tag_rmbit_sw -// +/** + * d_a_tag_rmbit_sw.cpp + * + */ #include "rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Types: -// - -struct mDoMtx_stack_c { - static u8 now[48]; -}; - -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); - /* 80018C8C */ ~fopAc_ac_c(); -}; - -struct daTagRmbitSw_c { - /* 80D5FAF8 */ daTagRmbitSw_c(); - /* 80D5FB34 */ ~daTagRmbitSw_c(); - /* 80D5FB94 */ void create(); - /* 80D5FBEC */ bool Delete(); - /* 80D5FBF4 */ bool draw(); - /* 80D5FBFC */ void execute(); - /* 80D5FDB8 */ void init(); - /* 80D5FDF0 */ void chkPlyrInTag(); -}; - -struct dSv_save_c { - /* 800350A8 */ void getSave2(int); -}; - -struct dSv_memory2_c { - /* 80034AA4 */ void onVisitedRoom(int); - /* 80034AC8 */ void offVisitedRoom(int); -}; - -struct dSv_info_c { - /* 80035360 */ void isSwitch(int, int) const; -}; - -struct Vec {}; - -struct cXyz { - /* 80266B34 */ void operator-(Vec const&) const; -}; - -// -// Forward References: -// - -extern "C" void __ct__14daTagRmbitSw_cFv(); -extern "C" void __dt__14daTagRmbitSw_cFv(); -extern "C" void create__14daTagRmbitSw_cFv(); -extern "C" bool Delete__14daTagRmbitSw_cFv(); -extern "C" bool draw__14daTagRmbitSw_cFv(); -extern "C" void execute__14daTagRmbitSw_cFv(); -extern "C" void init__14daTagRmbitSw_cFv(); -extern "C" void chkPlyrInTag__14daTagRmbitSw_cFv(); -extern "C" static void daTagRmbitSw_create__FP14daTagRmbitSw_c(); -extern "C" static void daTagRmbitSw_Delete__FP14daTagRmbitSw_c(); -extern "C" static void daTagRmbitSw_execute__FP14daTagRmbitSw_c(); -extern "C" static void daTagRmbitSw_draw__FP14daTagRmbitSw_c(); - -// -// External References: -// - -extern "C" void mDoMtx_YrotS__FPA4_fs(); -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void __dt__10fopAc_ac_cFv(); -extern "C" void dComIfGs_onVisitedRoom__Fi(); -extern "C" void dComIfGs_offVisitedRoom__Fi(); -extern "C" void onVisitedRoom__13dSv_memory2_cFi(); -extern "C" void offVisitedRoom__13dSv_memory2_cFi(); -extern "C" void getSave2__10dSv_save_cFi(); -extern "C" void isSwitch__10dSv_info_cCFii(); -extern "C" void __mi__4cXyzCFRC3Vec(); -extern "C" void __dl__FPv(); -extern "C" void PSMTXMultVec(); -extern "C" extern void* g_fopAc_Method[8]; -extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */]; -extern "C" u8 now__14mDoMtx_stack_c[48]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 80D5FFB4-80D5FFD4 -00001 0020+00 1/0 0/0 0/0 .data daTagRmbitSw_METHODS */ -SECTION_DATA static void* daTagRmbitSw_METHODS[8] = { - (void*)daTagRmbitSw_create__FP14daTagRmbitSw_c, - (void*)daTagRmbitSw_Delete__FP14daTagRmbitSw_c, - (void*)daTagRmbitSw_execute__FP14daTagRmbitSw_c, - (void*)NULL, - (void*)daTagRmbitSw_draw__FP14daTagRmbitSw_c, - (void*)NULL, - (void*)NULL, - (void*)NULL, -}; - -/* 80D5FFD4-80D60004 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Tag_RmbitSw */ -SECTION_DATA extern void* g_profile_Tag_RmbitSw[12] = { - (void*)0xFFFFFFFD, (void*)0x0007FFFD, - (void*)0x01AB0000, (void*)&g_fpcLf_Method, - (void*)0x00000578, (void*)NULL, - (void*)NULL, (void*)&g_fopAc_Method, - (void*)0x02EC0000, (void*)&daTagRmbitSw_METHODS, - (void*)0x00040000, (void*)0x000E0000, -}; - -/* 80D60004-80D60010 000050 000C+00 2/2 0/0 0/0 .data __vt__14daTagRmbitSw_c */ -SECTION_DATA extern void* __vt__14daTagRmbitSw_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__14daTagRmbitSw_cFv, -}; /* 80D5FAF8-80D5FB34 000078 003C+00 2/2 0/0 0/0 .text __ct__14daTagRmbitSw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm daTagRmbitSw_c::daTagRmbitSw_c() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw/__ct__14daTagRmbitSw_cFv.s" -} -#pragma pop +daTagRmbitSw_c::daTagRmbitSw_c() {} /* 80D5FB34-80D5FB94 0000B4 0060+00 1/0 0/0 0/0 .text __dt__14daTagRmbitSw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm daTagRmbitSw_c::~daTagRmbitSw_c() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw/__dt__14daTagRmbitSw_cFv.s" -} -#pragma pop +daTagRmbitSw_c::~daTagRmbitSw_c() {} /* 80D5FB94-80D5FBEC 000114 0058+00 1/1 0/0 0/0 .text create__14daTagRmbitSw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTagRmbitSw_c::create() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw/create__14daTagRmbitSw_cFv.s" +int daTagRmbitSw_c::create() { + if (!fopAcM_CheckCondition(this, 8)) { + new (this) daTagRmbitSw_c(); + fopAcM_OnCondition(this, 8); + } + init(); + return cPhs_COMPLEATE_e; } -#pragma pop /* 80D5FBEC-80D5FBF4 00016C 0008+00 1/1 0/0 0/0 .text Delete__14daTagRmbitSw_cFv */ -bool daTagRmbitSw_c::Delete() { - return true; +int daTagRmbitSw_c::Delete() { + return 1; } /* 80D5FBF4-80D5FBFC 000174 0008+00 1/1 0/0 0/0 .text draw__14daTagRmbitSw_cFv */ -bool daTagRmbitSw_c::draw() { - return true; +int daTagRmbitSw_c::draw() { + return 1; } /* 80D5FBFC-80D5FDB8 00017C 01BC+00 1/1 0/0 0/0 .text execute__14daTagRmbitSw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTagRmbitSw_c::execute() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw/execute__14daTagRmbitSw_cFv.s" +int daTagRmbitSw_c::execute() { + if (chkPlyrInTag()) { + if (getArg3_CngBitFlg() == 1) { + if ((s32)getSwBit() == 0xff || i_fopAcM_isSwitch(this, getSwBit())) { + if (getArg2_CngBitVal() == 1) { + if (getArg0_RoomSaveTableNo() == -1) { + dComIfGs_onVisitedRoom(getArg1_RoomNo()); + } else { + dComIfGs_onSaveVisitedRoom(getArg0_RoomSaveTableNo(), getArg1_RoomNo()); + } + } else { + if (!getArg2_CngBitVal()) { + if (getArg0_RoomSaveTableNo() == -1) { + dComIfGs_offVisitedRoom(getArg1_RoomNo()); + } else { + dComIfGs_offSaveVisitedRoom(getArg0_RoomSaveTableNo(), + getArg1_RoomNo()); + } + } + } + } + } else { + if (!getArg3_CngBitFlg()) { + if ((s32)getSwBit() == 0xff || !i_fopAcM_isSwitch(this, getSwBit())) { + if (getArg2_CngBitVal() == 1) { + if (getArg0_RoomSaveTableNo() == -1) { + dComIfGs_onVisitedRoom(getArg1_RoomNo()); + } else { + dComIfGs_onSaveVisitedRoom(getArg0_RoomSaveTableNo(), getArg1_RoomNo()); + } + } else { + if (!getArg2_CngBitVal()) { + if (getArg0_RoomSaveTableNo() == -1) { + dComIfGs_offVisitedRoom(getArg1_RoomNo()); + } else { + dComIfGs_offSaveVisitedRoom(getArg0_RoomSaveTableNo(), + getArg1_RoomNo()); + } + } + } + } + } + } + } + return 1; } -#pragma pop - -/* ############################################################################################## */ -/* 80D5FFA8-80D5FFAC 000000 0004+00 1/1 0/0 0/0 .rodata @3817 */ -SECTION_RODATA static f32 const lit_3817 = 50.0f; -COMPILER_STRIP_GATE(0x80D5FFA8, &lit_3817); - -/* 80D5FFAC-80D5FFB0 000004 0004+00 1/1 0/0 0/0 .rodata @3818 */ -SECTION_RODATA static f32 const lit_3818 = 100.0f; -COMPILER_STRIP_GATE(0x80D5FFAC, &lit_3818); /* 80D5FDB8-80D5FDF0 000338 0038+00 1/1 0/0 0/0 .text init__14daTagRmbitSw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTagRmbitSw_c::init() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw/init__14daTagRmbitSw_cFv.s" +void daTagRmbitSw_c::init() { + field_0x56c = mScale.x * 50.0f; + field_0x570 = mScale.y * 100.0f; + field_0x574 = mScale.z * 50.0f; } -#pragma pop - -/* ############################################################################################## */ -/* 80D5FFB0-80D5FFB4 000008 0004+00 1/1 0/0 0/0 .rodata @3853 */ -SECTION_RODATA static u8 const lit_3853[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80D5FFB0, &lit_3853); /* 80D5FDF0-80D5FEEC 000370 00FC+00 1/1 0/0 0/0 .text chkPlyrInTag__14daTagRmbitSw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTagRmbitSw_c::chkPlyrInTag() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw/chkPlyrInTag__14daTagRmbitSw_cFv.s" +u8 daTagRmbitSw_c::chkPlyrInTag() { + fopAc_ac_c* fopPos = dComIfGp_getPlayer(0); + + if (!fopPos) { + return 0; + } else { + cXyz cPos = fopPos->current.pos - current.pos; + mDoMtx_stack_c::YrotS(-current.angle.y); + mDoMtx_stack_c::multVec(&cPos, &cPos); + if ((0.0f < cPos.y) && (field_0x570 > cPos.y) && (field_0x56c > cPos.x) && + (field_0x574 > cPos.z) && (-field_0x56c < cPos.x) && (-field_0x574 < cPos.z)) + { + return 1; + } + } + return 0; } -#pragma pop /* 80D5FEEC-80D5FF40 00046C 0054+00 1/0 0/0 0/0 .text daTagRmbitSw_create__FP14daTagRmbitSw_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagRmbitSw_create(daTagRmbitSw_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw/daTagRmbitSw_create__FP14daTagRmbitSw_c.s" +int daTagRmbitSw_create(daTagRmbitSw_c* i_this) { + if (!fopAcM_CheckCondition(i_this, 8)) { + new (i_this) daTagRmbitSw_c(); + fopAcM_OnCondition(i_this, 8); + } + return i_this->create(); } -#pragma pop /* 80D5FF40-80D5FF60 0004C0 0020+00 1/0 0/0 0/0 .text daTagRmbitSw_Delete__FP14daTagRmbitSw_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagRmbitSw_Delete(daTagRmbitSw_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw/daTagRmbitSw_Delete__FP14daTagRmbitSw_c.s" +static int daTagRmbitSw_Delete(daTagRmbitSw_c* i_this) { + return i_this->Delete(); } -#pragma pop /* 80D5FF60-80D5FF80 0004E0 0020+00 1/0 0/0 0/0 .text daTagRmbitSw_execute__FP14daTagRmbitSw_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagRmbitSw_execute(daTagRmbitSw_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw/daTagRmbitSw_execute__FP14daTagRmbitSw_c.s" +static int daTagRmbitSw_execute(daTagRmbitSw_c* i_this) { + return i_this->execute(); } -#pragma pop /* 80D5FF80-80D5FFA0 000500 0020+00 1/0 0/0 0/0 .text daTagRmbitSw_draw__FP14daTagRmbitSw_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagRmbitSw_draw(daTagRmbitSw_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw/daTagRmbitSw_draw__FP14daTagRmbitSw_c.s" +static int daTagRmbitSw_draw(daTagRmbitSw_c* i_this) { + return i_this->draw(); } -#pragma pop + +/* ############################################################################################## */ +/* 80D5FFB4-80D5FFD4 -00001 0020+00 1/0 0/0 0/0 .data daTagRmbitSw_METHODS */ +static actor_method_class daTagRmbitSw_METHODS = { + (process_method_func)daTagRmbitSw_create, (process_method_func)daTagRmbitSw_Delete, + (process_method_func)daTagRmbitSw_execute, (process_method_func)NULL, + (process_method_func)daTagRmbitSw_draw, + +}; + +/* 80D5FFD4-80D60004 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Tag_RmbitSw */ +extern actor_process_profile_definition g_profile_Tag_RmbitSw = { + -3, + 7, + -3, + PROC_Tag_RmbitSw, + 0, + &g_fpcLf_Method.mBase, + sizeof(daTagRmbitSw_c), + 0, + 0, + &g_fopAc_Method.base, + 0x02EC, + 0, + 0, + &daTagRmbitSw_METHODS, + 0x00040000, + 0, + 0x0E, + 0, + 0, +};