From 9cb56a70705deb6bd01f4b089fc368d13bd69aee Mon Sep 17 00:00:00 2001 From: Trueffel <106771418+Trueffeloot@users.noreply.github.com> Date: Tue, 4 Apr 2023 07:05:17 +0200 Subject: [PATCH] d_a_obj_bombf OK (#313) --- Progress.md | 8 +- .../d_a_obj_bombf/__dt__12daObjBombf_cFv.s | 28 -- .../createHeap__12daObjBombf_cFv.s | 28 -- .../d_a_obj_bombf/create__12daObjBombf_cFv.s | 76 ---- .../daObjBombf_Create__FP10fopAc_ac_c.s | 9 - .../daObjBombf_Delete__FP12daObjBombf_c.s | 11 - .../daObjBombf_Draw__FP12daObjBombf_c.s | 9 - .../daObjBombf_Execute__FP12daObjBombf_c.s | 9 - .../daObjBombf_createHeap__FP10fopAc_ac_c.s | 9 - .../d_a_obj_bombf/draw__12daObjBombf_cFv.s | 26 -- .../d_a_obj_bombf/execute__12daObjBombf_cFv.s | 77 ---- .../setMatrix__12daObjBombf_cFv.s | 30 -- .../_delete__12daObjSMark_cFv.s | 14 - .../daObjSMark_Create__FP10fopAc_ac_c.s | 9 - .../daObjSMark_Delete__FP12daObjSMark_c.s | 9 - .../daObjSMark_Draw__FP12daObjSMark_c.s | 9 - .../initBaseMtx__12daObjSMark_cFv.s | 9 - .../setBaseMtx__12daObjSMark_cFv.s | 19 - include/d/d_bomb.h | 6 +- {src => include}/d/save/d_save_bit_labels.inc | 0 .../d/save/d_save_temp_bit_labels.inc | 0 .../rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf.h | 23 +- rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf.cpp | 372 ++++++------------ src/d/d_bomb.cpp | 2 +- 24 files changed, 142 insertions(+), 650 deletions(-) delete mode 100644 asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/__dt__12daObjBombf_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/createHeap__12daObjBombf_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/create__12daObjBombf_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/daObjBombf_Create__FP10fopAc_ac_c.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/daObjBombf_Delete__FP12daObjBombf_c.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/daObjBombf_Draw__FP12daObjBombf_c.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/daObjBombf_Execute__FP12daObjBombf_c.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/daObjBombf_createHeap__FP10fopAc_ac_c.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/draw__12daObjBombf_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/execute__12daObjBombf_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/setMatrix__12daObjBombf_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_stonemark/d_a_obj_stoneMark/_delete__12daObjSMark_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_stonemark/d_a_obj_stoneMark/daObjSMark_Create__FP10fopAc_ac_c.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_stonemark/d_a_obj_stoneMark/daObjSMark_Delete__FP12daObjSMark_c.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_stonemark/d_a_obj_stoneMark/daObjSMark_Draw__FP12daObjSMark_c.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_stonemark/d_a_obj_stoneMark/initBaseMtx__12daObjSMark_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_stonemark/d_a_obj_stoneMark/setBaseMtx__12daObjSMark_cFv.s rename {src => include}/d/save/d_save_bit_labels.inc (100%) rename {src => include}/d/save/d_save_temp_bit_labels.inc (100%) diff --git a/Progress.md b/Progress.md index 6978839f3b..1bd88aa498 100644 --- a/Progress.md +++ b/Progress.md @@ -21,8 +21,8 @@ Total | 34.306504% | 1379352 | 4020672 Section | Percentage | Decompiled (bytes) | Total (bytes) ---|---|---|--- main.dol | 34.306504% | 1379352 | 4020672 -RELs | 33.406154% | 3841816 | 11500324 -Total | 33.639388% | 5221168 | 15520996 +RELs | 33.416206% | 3842972 | 11500324 +Total | 33.646836% | 5222324 | 15520996 ## RELs @@ -360,7 +360,7 @@ d_a_obj_bkdoor | 45.847554% | 1612 | 3516 d_a_obj_bky_rock | 35.592460% | 3172 | 8912 d_a_obj_bmWindow | 38.757933% | 3420 | 8824 d_a_obj_bmshutter | 41.338854% | 2396 | 5796 -d_a_obj_bombf | 46.875000% | 1020 | 2176 +d_a_obj_bombf | 100.000000% | 2176 | 2176 d_a_obj_bosswarp | 39.728243% | 4912 | 12364 d_a_obj_boumato | 40.192484% | 3508 | 8728 d_a_obj_brakeeff | 45.417515% | 1784 | 3928 @@ -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.406154% | 3841816 | 11500324 +Total | 33.416206% | 3842972 | 11500324 diff --git a/asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/__dt__12daObjBombf_cFv.s b/asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/__dt__12daObjBombf_cFv.s deleted file mode 100644 index 214d1a818f..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/__dt__12daObjBombf_cFv.s +++ /dev/null @@ -1,28 +0,0 @@ -lbl_80BBABBC: -/* 80BBABBC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80BBABC0 7C 08 02 A6 */ mflr r0 -/* 80BBABC4 90 01 00 14 */ stw r0, 0x14(r1) -/* 80BBABC8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80BBABCC 93 C1 00 08 */ stw r30, 8(r1) -/* 80BBABD0 7C 7E 1B 79 */ or. r30, r3, r3 -/* 80BBABD4 7C 9F 23 78 */ mr r31, r4 -/* 80BBABD8 41 82 00 30 */ beq lbl_80BBAC08 -/* 80BBABDC 38 7E 05 68 */ addi r3, r30, 0x568 -/* 80BBABE0 3C 80 80 BC */ lis r4, l_arcName@ha /* 0x80BBAE84@ha */ -/* 80BBABE4 38 84 AE 84 */ addi r4, r4, l_arcName@l /* 0x80BBAE84@l */ -/* 80BBABE8 4B 47 24 21 */ bl dComIfG_resDelete__FP30request_of_phase_process_classPCc -/* 80BBABEC 7F C3 F3 78 */ mr r3, r30 -/* 80BBABF0 38 80 00 00 */ li r4, 0 -/* 80BBABF4 4B 45 E0 99 */ bl __dt__10fopAc_ac_cFv -/* 80BBABF8 7F E0 07 35 */ extsh. r0, r31 -/* 80BBABFC 40 81 00 0C */ ble lbl_80BBAC08 -/* 80BBAC00 7F C3 F3 78 */ mr r3, r30 -/* 80BBAC04 4B 71 41 39 */ bl __dl__FPv -lbl_80BBAC08: -/* 80BBAC08 7F C3 F3 78 */ mr r3, r30 -/* 80BBAC0C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80BBAC10 83 C1 00 08 */ lwz r30, 8(r1) -/* 80BBAC14 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80BBAC18 7C 08 03 A6 */ mtlr r0 -/* 80BBAC1C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80BBAC20 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/createHeap__12daObjBombf_cFv.s b/asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/createHeap__12daObjBombf_cFv.s deleted file mode 100644 index fed44fe526..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/createHeap__12daObjBombf_cFv.s +++ /dev/null @@ -1,28 +0,0 @@ -lbl_80BBA9F8: -/* 80BBA9F8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80BBA9FC 7C 08 02 A6 */ mflr r0 -/* 80BBAA00 90 01 00 14 */ stw r0, 0x14(r1) -/* 80BBAA04 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80BBAA08 7C 7F 1B 78 */ mr r31, r3 -/* 80BBAA0C 3C 60 80 BC */ lis r3, l_arcName@ha /* 0x80BBAE84@ha */ -/* 80BBAA10 38 63 AE 84 */ addi r3, r3, l_arcName@l /* 0x80BBAE84@l */ -/* 80BBAA14 38 80 00 04 */ li r4, 4 -/* 80BBAA18 3C A0 80 40 */ lis r5, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80BBAA1C 38 A5 61 C0 */ addi r5, r5, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80BBAA20 3C A5 00 02 */ addis r5, r5, 2 -/* 80BBAA24 38 C0 00 80 */ li r6, 0x80 -/* 80BBAA28 38 A5 C2 F8 */ addi r5, r5, -15624 -/* 80BBAA2C 4B 48 18 C1 */ bl getRes__14dRes_control_cFPCclP11dRes_info_ci -/* 80BBAA30 3C 80 00 08 */ lis r4, 8 -/* 80BBAA34 3C A0 11 00 */ lis r5, 0x1100 /* 0x11000084@ha */ -/* 80BBAA38 38 A5 00 84 */ addi r5, r5, 0x0084 /* 0x11000084@l */ -/* 80BBAA3C 4B 45 A2 19 */ bl mDoExt_J3DModel__create__FP12J3DModelDataUlUl -/* 80BBAA40 90 7F 05 70 */ stw r3, 0x570(r31) -/* 80BBAA44 80 7F 05 70 */ lwz r3, 0x570(r31) -/* 80BBAA48 30 03 FF FF */ addic r0, r3, -1 -/* 80BBAA4C 7C 60 19 10 */ subfe r3, r0, r3 -/* 80BBAA50 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80BBAA54 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80BBAA58 7C 08 03 A6 */ mtlr r0 -/* 80BBAA5C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80BBAA60 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/create__12daObjBombf_cFv.s b/asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/create__12daObjBombf_cFv.s deleted file mode 100644 index fdc65b3348..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/create__12daObjBombf_cFv.s +++ /dev/null @@ -1,76 +0,0 @@ -lbl_80BBAA84: -/* 80BBAA84 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80BBAA88 7C 08 02 A6 */ mflr r0 -/* 80BBAA8C 90 01 00 24 */ stw r0, 0x24(r1) -/* 80BBAA90 39 61 00 20 */ addi r11, r1, 0x20 -/* 80BBAA94 4B 7A 77 49 */ bl _savegpr_29 -/* 80BBAA98 7C 7D 1B 78 */ mr r29, r3 -/* 80BBAA9C 3C 80 80 BC */ lis r4, l_arcName@ha /* 0x80BBAE84@ha */ -/* 80BBAAA0 3B E4 AE 84 */ addi r31, r4, l_arcName@l /* 0x80BBAE84@l */ -/* 80BBAAA4 80 03 04 A0 */ lwz r0, 0x4a0(r3) -/* 80BBAAA8 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c -/* 80BBAAAC 40 82 00 1C */ bne lbl_80BBAAC8 -/* 80BBAAB0 28 1D 00 00 */ cmplwi r29, 0 -/* 80BBAAB4 41 82 00 08 */ beq lbl_80BBAABC -/* 80BBAAB8 4B 45 E0 AD */ bl __ct__10fopAc_ac_cFv -lbl_80BBAABC: -/* 80BBAABC 80 1D 04 A0 */ lwz r0, 0x4a0(r29) -/* 80BBAAC0 60 00 00 08 */ ori r0, r0, 8 -/* 80BBAAC4 90 1D 04 A0 */ stw r0, 0x4a0(r29) -lbl_80BBAAC8: -/* 80BBAAC8 38 7D 05 68 */ addi r3, r29, 0x568 -/* 80BBAACC 38 9F 00 00 */ addi r4, r31, 0 -/* 80BBAAD0 4B 47 23 ED */ bl dComIfG_resLoad__FP30request_of_phase_process_classPCc -/* 80BBAAD4 7C 7E 1B 78 */ mr r30, r3 -/* 80BBAAD8 2C 1E 00 04 */ cmpwi r30, 4 -/* 80BBAADC 40 82 00 A4 */ bne lbl_80BBAB80 -/* 80BBAAE0 7F A3 EB 78 */ mr r3, r29 -/* 80BBAAE4 3C 80 80 BC */ lis r4, daObjBombf_createHeap__FP10fopAc_ac_c@ha /* 0x80BBAA64@ha */ -/* 80BBAAE8 38 84 AA 64 */ addi r4, r4, daObjBombf_createHeap__FP10fopAc_ac_c@l /* 0x80BBAA64@l */ -/* 80BBAAEC 38 A0 08 20 */ li r5, 0x820 -/* 80BBAAF0 4B 45 F9 C1 */ bl fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl -/* 80BBAAF4 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 80BBAAF8 40 82 00 0C */ bne lbl_80BBAB04 -/* 80BBAAFC 38 60 00 05 */ li r3, 5 -/* 80BBAB00 48 00 00 84 */ b lbl_80BBAB84 -lbl_80BBAB04: -/* 80BBAB04 80 7D 05 70 */ lwz r3, 0x570(r29) -/* 80BBAB08 38 03 00 24 */ addi r0, r3, 0x24 -/* 80BBAB0C 90 1D 05 04 */ stw r0, 0x504(r29) -/* 80BBAB10 88 1D 04 E2 */ lbz r0, 0x4e2(r29) -/* 80BBAB14 98 1D 04 8C */ stb r0, 0x48c(r29) -/* 80BBAB18 C0 1D 04 D0 */ lfs f0, 0x4d0(r29) -/* 80BBAB1C D0 1D 05 50 */ stfs f0, 0x550(r29) -/* 80BBAB20 C0 1D 04 D4 */ lfs f0, 0x4d4(r29) -/* 80BBAB24 D0 1D 05 54 */ stfs f0, 0x554(r29) -/* 80BBAB28 C0 1D 04 D8 */ lfs f0, 0x4d8(r29) -/* 80BBAB2C D0 1D 05 58 */ stfs f0, 0x558(r29) -/* 80BBAB30 C0 1D 05 50 */ lfs f0, 0x550(r29) -/* 80BBAB34 D0 1D 05 38 */ stfs f0, 0x538(r29) -/* 80BBAB38 C0 1D 05 54 */ lfs f0, 0x554(r29) -/* 80BBAB3C D0 1D 05 3C */ stfs f0, 0x53c(r29) -/* 80BBAB40 C0 1D 05 58 */ lfs f0, 0x558(r29) -/* 80BBAB44 D0 1D 05 40 */ stfs f0, 0x540(r29) -/* 80BBAB48 38 00 FF FF */ li r0, -1 -/* 80BBAB4C 90 1D 05 74 */ stw r0, 0x574(r29) -/* 80BBAB50 7F A3 EB 78 */ mr r3, r29 -/* 80BBAB54 48 00 00 F9 */ bl setMatrix__12daObjBombf_cFv -/* 80BBAB58 7F A3 EB 78 */ mr r3, r29 -/* 80BBAB5C C0 3F 00 08 */ lfs f1, 8(r31) -/* 80BBAB60 C0 5F 00 0C */ lfs f2, 0xc(r31) -/* 80BBAB64 FC 60 08 90 */ fmr f3, f1 -/* 80BBAB68 4B 45 F9 C1 */ bl fopAcM_SetMin__FP10fopAc_ac_cfff -/* 80BBAB6C 7F A3 EB 78 */ mr r3, r29 -/* 80BBAB70 C0 3F 00 10 */ lfs f1, 0x10(r31) -/* 80BBAB74 C0 5F 00 14 */ lfs f2, 0x14(r31) -/* 80BBAB78 FC 60 08 90 */ fmr f3, f1 -/* 80BBAB7C 4B 45 F9 BD */ bl fopAcM_SetMax__FP10fopAc_ac_cfff -lbl_80BBAB80: -/* 80BBAB80 7F C3 F3 78 */ mr r3, r30 -lbl_80BBAB84: -/* 80BBAB84 39 61 00 20 */ addi r11, r1, 0x20 -/* 80BBAB88 4B 7A 76 A1 */ bl _restgpr_29 -/* 80BBAB8C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80BBAB90 7C 08 03 A6 */ mtlr r0 -/* 80BBAB94 38 21 00 20 */ addi r1, r1, 0x20 -/* 80BBAB98 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/daObjBombf_Create__FP10fopAc_ac_c.s b/asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/daObjBombf_Create__FP10fopAc_ac_c.s deleted file mode 100644 index 0f678ca88d..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/daObjBombf_Create__FP10fopAc_ac_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80BBAB9C: -/* 80BBAB9C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80BBABA0 7C 08 02 A6 */ mflr r0 -/* 80BBABA4 90 01 00 14 */ stw r0, 0x14(r1) -/* 80BBABA8 4B FF FE DD */ bl create__12daObjBombf_cFv -/* 80BBABAC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80BBABB0 7C 08 03 A6 */ mtlr r0 -/* 80BBABB4 38 21 00 10 */ addi r1, r1, 0x10 -/* 80BBABB8 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/daObjBombf_Delete__FP12daObjBombf_c.s b/asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/daObjBombf_Delete__FP12daObjBombf_c.s deleted file mode 100644 index 89083c7206..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/daObjBombf_Delete__FP12daObjBombf_c.s +++ /dev/null @@ -1,11 +0,0 @@ -lbl_80BBAC24: -/* 80BBAC24 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80BBAC28 7C 08 02 A6 */ mflr r0 -/* 80BBAC2C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80BBAC30 38 80 FF FF */ li r4, -1 -/* 80BBAC34 4B FF FF 89 */ bl __dt__12daObjBombf_cFv -/* 80BBAC38 38 60 00 01 */ li r3, 1 -/* 80BBAC3C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80BBAC40 7C 08 03 A6 */ mtlr r0 -/* 80BBAC44 38 21 00 10 */ addi r1, r1, 0x10 -/* 80BBAC48 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/daObjBombf_Draw__FP12daObjBombf_c.s b/asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/daObjBombf_Draw__FP12daObjBombf_c.s deleted file mode 100644 index c439a2b25c..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/daObjBombf_Draw__FP12daObjBombf_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80BBAE5C: -/* 80BBAE5C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80BBAE60 7C 08 02 A6 */ mflr r0 -/* 80BBAE64 90 01 00 14 */ stw r0, 0x14(r1) -/* 80BBAE68 4B FF FF 91 */ bl draw__12daObjBombf_cFv -/* 80BBAE6C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80BBAE70 7C 08 03 A6 */ mtlr r0 -/* 80BBAE74 38 21 00 10 */ addi r1, r1, 0x10 -/* 80BBAE78 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/daObjBombf_Execute__FP12daObjBombf_c.s b/asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/daObjBombf_Execute__FP12daObjBombf_c.s deleted file mode 100644 index 51225d7965..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/daObjBombf_Execute__FP12daObjBombf_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80BBADD8: -/* 80BBADD8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80BBADDC 7C 08 02 A6 */ mflr r0 -/* 80BBADE0 90 01 00 14 */ stw r0, 0x14(r1) -/* 80BBADE4 4B FF FE DD */ bl execute__12daObjBombf_cFv -/* 80BBADE8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80BBADEC 7C 08 03 A6 */ mtlr r0 -/* 80BBADF0 38 21 00 10 */ addi r1, r1, 0x10 -/* 80BBADF4 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/daObjBombf_createHeap__FP10fopAc_ac_c.s b/asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/daObjBombf_createHeap__FP10fopAc_ac_c.s deleted file mode 100644 index fc5ffbe652..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/daObjBombf_createHeap__FP10fopAc_ac_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80BBAA64: -/* 80BBAA64 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80BBAA68 7C 08 02 A6 */ mflr r0 -/* 80BBAA6C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80BBAA70 4B FF FF 89 */ bl createHeap__12daObjBombf_cFv -/* 80BBAA74 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80BBAA78 7C 08 03 A6 */ mtlr r0 -/* 80BBAA7C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80BBAA80 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/draw__12daObjBombf_cFv.s b/asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/draw__12daObjBombf_cFv.s deleted file mode 100644 index 6454142b1a..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/draw__12daObjBombf_cFv.s +++ /dev/null @@ -1,26 +0,0 @@ -lbl_80BBADF8: -/* 80BBADF8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80BBADFC 7C 08 02 A6 */ mflr r0 -/* 80BBAE00 90 01 00 14 */ stw r0, 0x14(r1) -/* 80BBAE04 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80BBAE08 7C 7F 1B 78 */ mr r31, r3 -/* 80BBAE0C 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */ -/* 80BBAE10 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */ -/* 80BBAE14 38 80 00 00 */ li r4, 0 -/* 80BBAE18 38 BF 04 D0 */ addi r5, r31, 0x4d0 -/* 80BBAE1C 38 DF 01 0C */ addi r6, r31, 0x10c -/* 80BBAE20 4B 5E 89 A5 */ bl settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c -/* 80BBAE24 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */ -/* 80BBAE28 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */ -/* 80BBAE2C 80 9F 05 70 */ lwz r4, 0x570(r31) -/* 80BBAE30 80 84 00 04 */ lwz r4, 4(r4) -/* 80BBAE34 38 BF 01 0C */ addi r5, r31, 0x10c -/* 80BBAE38 4B 5E 9F 69 */ bl setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c -/* 80BBAE3C 80 7F 05 70 */ lwz r3, 0x570(r31) -/* 80BBAE40 4B 45 2E 85 */ bl mDoExt_modelUpdateDL__FP8J3DModel -/* 80BBAE44 38 60 00 01 */ li r3, 1 -/* 80BBAE48 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80BBAE4C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80BBAE50 7C 08 03 A6 */ mtlr r0 -/* 80BBAE54 38 21 00 10 */ addi r1, r1, 0x10 -/* 80BBAE58 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/execute__12daObjBombf_cFv.s b/asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/execute__12daObjBombf_cFv.s deleted file mode 100644 index 726ed5512c..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/execute__12daObjBombf_cFv.s +++ /dev/null @@ -1,77 +0,0 @@ -lbl_80BBACC0: -/* 80BBACC0 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 80BBACC4 7C 08 02 A6 */ mflr r0 -/* 80BBACC8 90 01 00 34 */ stw r0, 0x34(r1) -/* 80BBACCC 93 E1 00 2C */ stw r31, 0x2c(r1) -/* 80BBACD0 93 C1 00 28 */ stw r30, 0x28(r1) -/* 80BBACD4 7C 7F 1B 78 */ mr r31, r3 -/* 80BBACD8 4B FF FF 75 */ bl setMatrix__12daObjBombf_cFv -/* 80BBACDC 80 7F 05 74 */ lwz r3, 0x574(r31) -/* 80BBACE0 3C 03 00 01 */ addis r0, r3, 1 -/* 80BBACE4 28 00 FF FF */ cmplwi r0, 0xffff -/* 80BBACE8 40 82 00 80 */ bne lbl_80BBAD68 -/* 80BBACEC 88 7F 05 78 */ lbz r3, 0x578(r31) -/* 80BBACF0 28 03 00 00 */ cmplwi r3, 0 -/* 80BBACF4 41 82 00 10 */ beq lbl_80BBAD04 -/* 80BBACF8 38 03 FF FF */ addi r0, r3, -1 -/* 80BBACFC 98 1F 05 78 */ stb r0, 0x578(r31) -/* 80BBAD00 48 00 00 BC */ b lbl_80BBADBC -lbl_80BBAD04: -/* 80BBAD04 80 7F 05 70 */ lwz r3, 0x570(r31) -/* 80BBAD08 38 63 00 24 */ addi r3, r3, 0x24 -/* 80BBAD0C 3C 80 80 BC */ lis r4, bombOffset@ha /* 0x80BBAE9C@ha */ -/* 80BBAD10 38 84 AE 9C */ addi r4, r4, bombOffset@l /* 0x80BBAE9C@l */ -/* 80BBAD14 38 A1 00 14 */ addi r5, r1, 0x14 -/* 80BBAD18 4B 78 C0 55 */ bl PSMTXMultVec -/* 80BBAD1C 38 00 00 00 */ li r0, 0 -/* 80BBAD20 90 01 00 08 */ stw r0, 8(r1) -/* 80BBAD24 38 60 02 21 */ li r3, 0x221 -/* 80BBAD28 38 80 00 04 */ li r4, 4 -/* 80BBAD2C 38 A1 00 14 */ addi r5, r1, 0x14 -/* 80BBAD30 88 1F 04 E2 */ lbz r0, 0x4e2(r31) -/* 80BBAD34 7C 06 07 74 */ extsb r6, r0 -/* 80BBAD38 38 FF 04 E4 */ addi r7, r31, 0x4e4 -/* 80BBAD3C 39 00 00 00 */ li r8, 0 -/* 80BBAD40 39 20 FF FF */ li r9, -1 -/* 80BBAD44 39 40 00 00 */ li r10, 0 -/* 80BBAD48 4B 45 F0 BD */ bl fopAcM_fastCreate__FsUlPC4cXyziPC5csXyzPC4cXyzScPFPv_iPv -/* 80BBAD4C 28 03 00 00 */ cmplwi r3, 0 -/* 80BBAD50 41 82 00 0C */ beq lbl_80BBAD5C -/* 80BBAD54 80 03 00 04 */ lwz r0, 4(r3) -/* 80BBAD58 48 00 00 08 */ b lbl_80BBAD60 -lbl_80BBAD5C: -/* 80BBAD5C 38 00 FF FF */ li r0, -1 -lbl_80BBAD60: -/* 80BBAD60 90 1F 05 74 */ stw r0, 0x574(r31) -/* 80BBAD64 48 00 00 58 */ b lbl_80BBADBC -lbl_80BBAD68: -/* 80BBAD68 90 61 00 10 */ stw r3, 0x10(r1) -/* 80BBAD6C 3C 60 80 02 */ lis r3, fpcSch_JudgeByID__FPvPv@ha /* 0x80023590@ha */ -/* 80BBAD70 38 63 35 90 */ addi r3, r3, fpcSch_JudgeByID__FPvPv@l /* 0x80023590@l */ -/* 80BBAD74 38 81 00 10 */ addi r4, r1, 0x10 -/* 80BBAD78 4B 45 EA 81 */ bl fopAcIt_Judge__FPFPvPv_PvPv -/* 80BBAD7C 7C 7E 1B 79 */ or. r30, r3, r3 -/* 80BBAD80 40 82 00 18 */ bne lbl_80BBAD98 -/* 80BBAD84 38 00 FF FF */ li r0, -1 -/* 80BBAD88 90 1F 05 74 */ stw r0, 0x574(r31) -/* 80BBAD8C 38 00 00 96 */ li r0, 0x96 -/* 80BBAD90 98 1F 05 78 */ stb r0, 0x578(r31) -/* 80BBAD94 48 00 00 28 */ b lbl_80BBADBC -lbl_80BBAD98: -/* 80BBAD98 4B 47 72 35 */ bl checkFlowerBombWait__7dBomb_cFP10fopAc_ac_c -/* 80BBAD9C 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 80BBADA0 41 82 00 1C */ beq lbl_80BBADBC -/* 80BBADA4 80 7F 05 70 */ lwz r3, 0x570(r31) -/* 80BBADA8 38 63 00 24 */ addi r3, r3, 0x24 -/* 80BBADAC 3C 80 80 BC */ lis r4, bombOffset@ha /* 0x80BBAE9C@ha */ -/* 80BBADB0 38 84 AE 9C */ addi r4, r4, bombOffset@l /* 0x80BBAE9C@l */ -/* 80BBADB4 38 BE 04 D0 */ addi r5, r30, 0x4d0 -/* 80BBADB8 4B 78 BF B5 */ bl PSMTXMultVec -lbl_80BBADBC: -/* 80BBADBC 38 60 00 01 */ li r3, 1 -/* 80BBADC0 83 E1 00 2C */ lwz r31, 0x2c(r1) -/* 80BBADC4 83 C1 00 28 */ lwz r30, 0x28(r1) -/* 80BBADC8 80 01 00 34 */ lwz r0, 0x34(r1) -/* 80BBADCC 7C 08 03 A6 */ mtlr r0 -/* 80BBADD0 38 21 00 30 */ addi r1, r1, 0x30 -/* 80BBADD4 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/setMatrix__12daObjBombf_cFv.s b/asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/setMatrix__12daObjBombf_cFv.s deleted file mode 100644 index 838b601e42..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/setMatrix__12daObjBombf_cFv.s +++ /dev/null @@ -1,30 +0,0 @@ -lbl_80BBAC4C: -/* 80BBAC4C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80BBAC50 7C 08 02 A6 */ mflr r0 -/* 80BBAC54 90 01 00 14 */ stw r0, 0x14(r1) -/* 80BBAC58 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80BBAC5C 7C 7F 1B 78 */ mr r31, r3 -/* 80BBAC60 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 80BBAC64 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 80BBAC68 C0 3F 04 D0 */ lfs f1, 0x4d0(r31) -/* 80BBAC6C C0 5F 04 D4 */ lfs f2, 0x4d4(r31) -/* 80BBAC70 C0 1F 05 84 */ lfs f0, 0x584(r31) -/* 80BBAC74 EC 42 00 2A */ fadds f2, f2, f0 -/* 80BBAC78 C0 7F 04 D8 */ lfs f3, 0x4d8(r31) -/* 80BBAC7C 4B 78 BC 6D */ bl PSMTXTrans -/* 80BBAC80 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 80BBAC84 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 80BBAC88 A8 9F 04 E4 */ lha r4, 0x4e4(r31) -/* 80BBAC8C A8 BF 04 E6 */ lha r5, 0x4e6(r31) -/* 80BBAC90 A8 DF 04 E8 */ lha r6, 0x4e8(r31) -/* 80BBAC94 4B 45 16 0D */ bl mDoMtx_ZXYrotM__FPA4_fsss -/* 80BBAC98 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 80BBAC9C 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 80BBACA0 80 9F 05 70 */ lwz r4, 0x570(r31) -/* 80BBACA4 38 84 00 24 */ addi r4, r4, 0x24 -/* 80BBACA8 4B 78 B8 09 */ bl PSMTXCopy -/* 80BBACAC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80BBACB0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80BBACB4 7C 08 03 A6 */ mtlr r0 -/* 80BBACB8 38 21 00 10 */ addi r1, r1, 0x10 -/* 80BBACBC 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_stonemark/d_a_obj_stoneMark/_delete__12daObjSMark_cFv.s b/asm/rel/d/a/obj/d_a_obj_stonemark/d_a_obj_stoneMark/_delete__12daObjSMark_cFv.s deleted file mode 100644 index 5c3a1400bd..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_stonemark/d_a_obj_stoneMark/_delete__12daObjSMark_cFv.s +++ /dev/null @@ -1,14 +0,0 @@ -lbl_8059A33C: -/* 8059A33C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8059A340 7C 08 02 A6 */ mflr r0 -/* 8059A344 90 01 00 14 */ stw r0, 0x14(r1) -/* 8059A348 3C 80 80 5A */ lis r4, l_arcName@ha /* 0x8059A410@ha */ -/* 8059A34C 38 84 A4 10 */ addi r4, r4, l_arcName@l /* 0x8059A410@l */ -/* 8059A350 80 84 00 00 */ lwz r4, 0(r4) -/* 8059A354 38 63 05 68 */ addi r3, r3, 0x568 -/* 8059A358 4B A9 2C B1 */ bl dComIfG_resDelete__FP30request_of_phase_process_classPCc -/* 8059A35C 38 60 00 01 */ li r3, 1 -/* 8059A360 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8059A364 7C 08 03 A6 */ mtlr r0 -/* 8059A368 38 21 00 10 */ addi r1, r1, 0x10 -/* 8059A36C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_stonemark/d_a_obj_stoneMark/daObjSMark_Create__FP10fopAc_ac_c.s b/asm/rel/d/a/obj/d_a_obj_stonemark/d_a_obj_stoneMark/daObjSMark_Create__FP10fopAc_ac_c.s deleted file mode 100644 index 941944da4f..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_stonemark/d_a_obj_stoneMark/daObjSMark_Create__FP10fopAc_ac_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_8059A3B0: -/* 8059A3B0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8059A3B4 7C 08 02 A6 */ mflr r0 -/* 8059A3B8 90 01 00 14 */ stw r0, 0x14(r1) -/* 8059A3BC 4B FF FD AD */ bl create__12daObjSMark_cFv -/* 8059A3C0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8059A3C4 7C 08 03 A6 */ mtlr r0 -/* 8059A3C8 38 21 00 10 */ addi r1, r1, 0x10 -/* 8059A3CC 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_stonemark/d_a_obj_stoneMark/daObjSMark_Delete__FP12daObjSMark_c.s b/asm/rel/d/a/obj/d_a_obj_stonemark/d_a_obj_stoneMark/daObjSMark_Delete__FP12daObjSMark_c.s deleted file mode 100644 index d95003f89c..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_stonemark/d_a_obj_stoneMark/daObjSMark_Delete__FP12daObjSMark_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_8059A390: -/* 8059A390 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8059A394 7C 08 02 A6 */ mflr r0 -/* 8059A398 90 01 00 14 */ stw r0, 0x14(r1) -/* 8059A39C 4B FF FF A1 */ bl _delete__12daObjSMark_cFv -/* 8059A3A0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8059A3A4 7C 08 03 A6 */ mtlr r0 -/* 8059A3A8 38 21 00 10 */ addi r1, r1, 0x10 -/* 8059A3AC 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_stonemark/d_a_obj_stoneMark/daObjSMark_Draw__FP12daObjSMark_c.s b/asm/rel/d/a/obj/d_a_obj_stonemark/d_a_obj_stoneMark/daObjSMark_Draw__FP12daObjSMark_c.s deleted file mode 100644 index ab23993ecc..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_stonemark/d_a_obj_stoneMark/daObjSMark_Draw__FP12daObjSMark_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_8059A370: -/* 8059A370 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8059A374 7C 08 02 A6 */ mflr r0 -/* 8059A378 90 01 00 14 */ stw r0, 0x14(r1) -/* 8059A37C 4B FF FF 51 */ bl draw__12daObjSMark_cFv -/* 8059A380 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8059A384 7C 08 03 A6 */ mtlr r0 -/* 8059A388 38 21 00 10 */ addi r1, r1, 0x10 -/* 8059A38C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_stonemark/d_a_obj_stoneMark/initBaseMtx__12daObjSMark_cFv.s b/asm/rel/d/a/obj/d_a_obj_stonemark/d_a_obj_stoneMark/initBaseMtx__12daObjSMark_cFv.s deleted file mode 100644 index 1d83e0d5f6..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_stonemark/d_a_obj_stoneMark/initBaseMtx__12daObjSMark_cFv.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_8059A018: -/* 8059A018 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8059A01C 7C 08 02 A6 */ mflr r0 -/* 8059A020 90 01 00 14 */ stw r0, 0x14(r1) -/* 8059A024 48 00 00 15 */ bl setBaseMtx__12daObjSMark_cFv -/* 8059A028 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8059A02C 7C 08 03 A6 */ mtlr r0 -/* 8059A030 38 21 00 10 */ addi r1, r1, 0x10 -/* 8059A034 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_stonemark/d_a_obj_stoneMark/setBaseMtx__12daObjSMark_cFv.s b/asm/rel/d/a/obj/d_a_obj_stonemark/d_a_obj_stoneMark/setBaseMtx__12daObjSMark_cFv.s deleted file mode 100644 index b31c49d2f1..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_stonemark/d_a_obj_stoneMark/setBaseMtx__12daObjSMark_cFv.s +++ /dev/null @@ -1,19 +0,0 @@ -lbl_8059A038: -/* 8059A038 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8059A03C 7C 08 02 A6 */ mflr r0 -/* 8059A040 90 01 00 14 */ stw r0, 0x14(r1) -/* 8059A044 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8059A048 7C 7F 1B 78 */ mr r31, r3 -/* 8059A04C 38 7F 04 D0 */ addi r3, r31, 0x4d0 -/* 8059A050 4B A7 2D 15 */ bl transS__14mDoMtx_stack_cFRC4cXyz -/* 8059A054 38 7F 04 E4 */ addi r3, r31, 0x4e4 -/* 8059A058 4B A7 2E ED */ bl ZXYrotM__14mDoMtx_stack_cFRC5csXyz -/* 8059A05C 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 8059A060 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 8059A064 38 9F 07 E4 */ addi r4, r31, 0x7e4 -/* 8059A068 4B DA C4 49 */ bl PSMTXCopy -/* 8059A06C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8059A070 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8059A074 7C 08 03 A6 */ mtlr r0 -/* 8059A078 38 21 00 10 */ addi r1, r1, 0x10 -/* 8059A07C 4E 80 00 20 */ blr diff --git a/include/d/d_bomb.h b/include/d/d_bomb.h index 71ffb5100d..9b1760d693 100644 --- a/include/d/d_bomb.h +++ b/include/d/d_bomb.h @@ -38,7 +38,7 @@ public: class dBomb_c : public daNbomb_c { public: bool checkStateCarry(); - bool checkFlowerBombWait(fopAc_ac_c*); + static bool checkFlowerBombWait(fopAc_ac_c*); bool checkWaterBomb(fopAc_ac_c*); bool checkInsectBombMove(fopAc_ac_c*); @@ -49,6 +49,10 @@ public: static fopAc_ac_c* createWaterBombPlayer(cXyz* p_pos) { return (fopAc_ac_c*)fopAcM_fastCreate(0x221, 9, p_pos, -1, NULL, NULL, -1, NULL, NULL); } + + static fopAc_ac_c* createFlowerBomb(cXyz* i_pos, csXyz* i_angle, int param_2) { + return (fopAc_ac_c*)fopAcM_fastCreate(0x221, 4, i_pos, param_2, i_angle, NULL, -1, NULL, NULL); + } }; #endif /* D_D_BOMB_H */ diff --git a/src/d/save/d_save_bit_labels.inc b/include/d/save/d_save_bit_labels.inc similarity index 100% rename from src/d/save/d_save_bit_labels.inc rename to include/d/save/d_save_bit_labels.inc diff --git a/src/d/save/d_save_temp_bit_labels.inc b/include/d/save/d_save_temp_bit_labels.inc similarity index 100% rename from src/d/save/d_save_temp_bit_labels.inc rename to include/d/save/d_save_temp_bit_labels.inc diff --git a/include/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf.h b/include/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf.h index ef7093cb11..02721a7716 100644 --- a/include/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf.h +++ b/include/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf.h @@ -1,6 +1,27 @@ #ifndef D_A_OBJ_BOMBF_H #define D_A_OBJ_BOMBF_H -#include "dolphin/types.h" +#include "d/com/d_com_inf_game.h" +#include "d/d_bomb.h" +#include "f_op/f_op_actor_mng.h" + +class daObjBombf_c : public fopAc_ac_c { +public: + /* 80BBA9F8 */ bool createHeap(); + /* 80BBAA84 */ int create(); + /* 80BBABBC */ ~daObjBombf_c(); + /* 80BBAC4C */ void setMatrix(); + /* 80BBACC0 */ int execute(); + /* 80BBADF8 */ int draw(); + + /* 0x568 */ request_of_phase_process_class field_0x568; + /* 0x570 */ J3DModel* field_0x570; + /* 0x574 */ u32 field_0x574; + /* 0x578 */ u8 field_0x578; + /* 0x57C */ u32 field_0x57c; + /* 0x580 */ u16 field_0x580; + /* 0x582 */ u8 field_0x582; + /* 0x584 */ f32 field_0x584; +}; // Size: 0x588 #endif /* D_A_OBJ_BOMBF_H */ diff --git a/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf.cpp b/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf.cpp index db85131247..40730ab8cd 100644 --- a/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf.cpp +++ b/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf.cpp @@ -1,303 +1,151 @@ -// -// Generated By: dol2asm -// Translation Unit: d_a_obj_bombf -// +/* + * d_a_obj_bombf.cpp + * Bomb Flower + */ #include "rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf.h" -#include "dol2asm.h" -#include "dolphin/types.h" -// -// Types: -// - -struct request_of_phase_process_class {}; - -struct mDoMtx_stack_c { - static u8 now[48]; -}; - -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); - /* 80018C8C */ ~fopAc_ac_c(); -}; - -struct daObjBombf_c { - /* 80BBA9F8 */ void createHeap(); - /* 80BBAA84 */ void create(); - /* 80BBABBC */ ~daObjBombf_c(); - /* 80BBAC4C */ void setMatrix(); - /* 80BBACC0 */ void execute(); - /* 80BBADF8 */ void draw(); -}; - -struct dKy_tevstr_c {}; - -struct J3DModelData {}; - -struct cXyz {}; - -struct dScnKy_env_light_c { - /* 801A37C4 */ void settingTevStruct(int, cXyz*, dKy_tevstr_c*); - /* 801A4DA0 */ void setLightTevColorType_MAJI(J3DModelData*, dKy_tevstr_c*); -}; - -struct dRes_info_c {}; - -struct dRes_control_c { - /* 8003C2EC */ void getRes(char const*, s32, dRes_info_c*, int); -}; - -struct dBomb_c { - /* 80031FCC */ void checkFlowerBombWait(fopAc_ac_c*); -}; - -struct csXyz {}; - -struct J3DModel {}; - -// -// Forward References: -// - -extern "C" void createHeap__12daObjBombf_cFv(); -extern "C" static void daObjBombf_createHeap__FP10fopAc_ac_c(); -extern "C" void create__12daObjBombf_cFv(); -extern "C" static void daObjBombf_Create__FP10fopAc_ac_c(); -extern "C" void __dt__12daObjBombf_cFv(); -extern "C" static void daObjBombf_Delete__FP12daObjBombf_c(); -extern "C" void setMatrix__12daObjBombf_cFv(); -extern "C" void execute__12daObjBombf_cFv(); -extern "C" static void daObjBombf_Execute__FP12daObjBombf_c(); -extern "C" void draw__12daObjBombf_cFv(); -extern "C" static void daObjBombf_Draw__FP12daObjBombf_c(); -extern "C" extern void* g_profile_Obj_Bombf[12]; - -// -// External References: -// - -extern "C" void mDoMtx_ZXYrotM__FPA4_fsss(); -extern "C" void mDoExt_modelUpdateDL__FP8J3DModel(); -extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl(); -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void __dt__10fopAc_ac_cFv(); -extern "C" void fopAcIt_Judge__FPFPvPv_PvPv(); -extern "C" void fopAcM_fastCreate__FsUlPC4cXyziPC5csXyzPC4cXyzScPFPv_iPv(); -extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl(); -extern "C" void fopAcM_SetMin__FP10fopAc_ac_cfff(); -extern "C" void fopAcM_SetMax__FP10fopAc_ac_cfff(); -extern "C" void fpcSch_JudgeByID__FPvPv(); -extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc(); -extern "C" void checkFlowerBombWait__7dBomb_cFP10fopAc_ac_c(); -extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci(); -extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c(); -extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c(); -extern "C" void __dl__FPv(); -extern "C" void PSMTXCopy(); -extern "C" void PSMTXTrans(); -extern "C" void PSMTXMultVec(); -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" u8 now__14mDoMtx_stack_c[48]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; -extern "C" extern u8 g_env_light[4880]; - -// -// Declarations: -// - -/* ############################################################################################## */ /* 80BBAE84-80BBAE8C 000000 0006+02 3/3 0/0 0/0 .rodata l_arcName */ -SECTION_RODATA static u8 const l_arcName[6 + 2 /* padding */] = { - 0x42, - 0x6F, - 0x6D, - 0x62, - 0x66, - 0x00, - /* padding */ - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80BBAE84, &l_arcName); +static const char l_arcName[] = "Bombf"; /* 80BBA9F8-80BBAA64 000078 006C+00 1/1 0/0 0/0 .text createHeap__12daObjBombf_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjBombf_c::createHeap() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/createHeap__12daObjBombf_cFv.s" +bool daObjBombf_c::createHeap() { + field_0x570 = mDoExt_J3DModel__create((J3DModelData*)dComIfG_getObjectRes(l_arcName, 4), + 0x80000, 0x11000084); + return (field_0x570 != NULL); } -#pragma pop /* 80BBAA64-80BBAA84 0000E4 0020+00 1/1 0/0 0/0 .text daObjBombf_createHeap__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daObjBombf_createHeap(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/daObjBombf_createHeap__FP10fopAc_ac_c.s" +static bool daObjBombf_createHeap(fopAc_ac_c* i_this) { + return static_cast(i_this)->createHeap(); } -#pragma pop - -/* ############################################################################################## */ -/* 80BBAE8C-80BBAE90 000008 0004+00 0/1 0/0 0/0 .rodata @3687 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3687 = -75.0f; -COMPILER_STRIP_GATE(0x80BBAE8C, &lit_3687); -#pragma pop - -/* 80BBAE90-80BBAE94 00000C 0004+00 0/1 0/0 0/0 .rodata @3688 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3688[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80BBAE90, &lit_3688); -#pragma pop - -/* 80BBAE94-80BBAE98 000010 0004+00 0/1 0/0 0/0 .rodata @3689 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3689 = 75.0f; -COMPILER_STRIP_GATE(0x80BBAE94, &lit_3689); -#pragma pop - -/* 80BBAE98-80BBAE9C 000014 0004+00 0/1 0/0 0/0 .rodata @3690 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3690 = 30.0f; -COMPILER_STRIP_GATE(0x80BBAE98, &lit_3690); -#pragma pop /* 80BBAA84-80BBAB9C 000104 0118+00 1/1 0/0 0/0 .text create__12daObjBombf_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjBombf_c::create() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/create__12daObjBombf_cFv.s" -} -#pragma pop +int daObjBombf_c::create() { + if (!fopAcM_CheckCondition(this, 8)) { + new (this) daObjBombf_c(); + fopAcM_OnCondition(this, 8); + } -/* 80BBAB9C-80BBABBC 00021C 0020+00 1/0 0/0 0/0 .text daObjBombf_Create__FP10fopAc_ac_c - */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daObjBombf_Create(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/daObjBombf_Create__FP10fopAc_ac_c.s" + int phase = dComIfG_resLoad(&field_0x568, l_arcName); + if (phase == cPhs_COMPLEATE_e) { + if (!fopAcM_entrySolidHeap(this, (heapCallbackFunc)daObjBombf_createHeap, 0x820)) { + return cPhs_ERROR_e; + } + + fopAcM_SetMtx(this, field_0x570->getBaseTRMtx()); + mTevStr.mRoomNo = fopAcM_GetRoomNo(this); + mAttentionInfo.mPosition = current.pos; + mEyePos = mAttentionInfo.mPosition; + field_0x574 = 0xffffffff; + setMatrix(); + fopAcM_SetMin(this, -75.0f, 0.0f, -75.0f); + fopAcM_SetMax(this, 75.0f, 30.0f, 75.0f); + } + + return phase; +} + +/* 80BBAB9C-80BBABBC 00021C 0020+00 1/0 0/0 0/0 .text daObjBombf_Create__FP10fopAc_ac_c */ +static int daObjBombf_Create(fopAc_ac_c* i_this) { + return static_cast(i_this)->create(); } -#pragma pop /* 80BBABBC-80BBAC24 00023C 0068+00 1/1 0/0 0/0 .text __dt__12daObjBombf_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm daObjBombf_c::~daObjBombf_c() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/__dt__12daObjBombf_cFv.s" +daObjBombf_c::~daObjBombf_c() { + dComIfG_resDelete(&field_0x568, l_arcName); } -#pragma pop -/* 80BBAC24-80BBAC4C 0002A4 0028+00 1/0 0/0 0/0 .text daObjBombf_Delete__FP12daObjBombf_c - */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daObjBombf_Delete(daObjBombf_c* param_0) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/daObjBombf_Delete__FP12daObjBombf_c.s" +/* 80BBAC24-80BBAC4C 0002A4 0028+00 1/0 0/0 0/0 .text daObjBombf_Delete__FP12daObjBombf_c */ +static int daObjBombf_Delete(daObjBombf_c* i_this) { + i_this->~daObjBombf_c(); + return 1; } -#pragma pop /* 80BBAC4C-80BBACC0 0002CC 0074+00 2/2 0/0 0/0 .text setMatrix__12daObjBombf_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjBombf_c::setMatrix() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/setMatrix__12daObjBombf_cFv.s" +void daObjBombf_c::setMatrix() { + mDoMtx_stack_c::transS(current.pos.x, current.pos.y + field_0x584, current.pos.z); + mDoMtx_stack_c::ZXYrotM(shape_angle.x, shape_angle.y, shape_angle.z); + PSMTXCopy(mDoMtx_stack_c::now, field_0x570->mBaseTransformMtx); } -#pragma pop -/* ############################################################################################## */ /* 80BBAE9C-80BBAEA8 000018 000C+00 1/1 0/0 0/0 .rodata bombOffset$3727 */ -SECTION_RODATA static u8 const bombOffset[12] = { - 0x00, 0x00, 0x00, 0x00, 0x40, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80BBAE9C, &bombOffset); +static const Vec bombOffset = {0.0f, 7.0f, 0.0f}; /* 80BBACC0-80BBADD8 000340 0118+00 1/1 0/0 0/0 .text execute__12daObjBombf_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjBombf_c::execute() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/execute__12daObjBombf_cFv.s" +int daObjBombf_c::execute() { + u32 uVar; + cXyz vStack; + + setMatrix(); + + if (field_0x574 == -1) { + if (field_0x578 != 0) { + field_0x578--; + } else { + mDoMtx_multVec(field_0x570->getBaseTRMtx(), &bombOffset, &vStack); + + fopAc_ac_c* bomb_actor = + dBomb_c::createFlowerBomb(&vStack, &shape_angle, fopAcM_GetRoomNo(this)); + field_0x574 = fopAcM_GetID(bomb_actor); + } + } else { + fopAc_ac_c* actor = fopAcM_SearchByID(field_0x574); + + if (actor == NULL) { + field_0x574 = -1; + field_0x578 = 150; + } else if (dBomb_c::checkFlowerBombWait(actor)) { + mDoMtx_multVec(field_0x570->getBaseTRMtx(), &bombOffset, &actor->current.pos); + } + } + return 1; } -#pragma pop /* 80BBADD8-80BBADF8 000458 0020+00 1/0 0/0 0/0 .text daObjBombf_Execute__FP12daObjBombf_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daObjBombf_Execute(daObjBombf_c* param_0) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/daObjBombf_Execute__FP12daObjBombf_c.s" +static int daObjBombf_Execute(daObjBombf_c* i_this) { + return i_this->execute(); } -#pragma pop /* 80BBADF8-80BBAE5C 000478 0064+00 1/1 0/0 0/0 .text draw__12daObjBombf_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjBombf_c::draw() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/draw__12daObjBombf_cFv.s" +int daObjBombf_c::draw() { + g_env_light.settingTevStruct(0, ¤t.pos, &mTevStr); + g_env_light.setLightTevColorType_MAJI(field_0x570->mModelData, &mTevStr); + mDoExt_modelUpdateDL(field_0x570); + return 1; } -#pragma pop -/* 80BBAE5C-80BBAE7C 0004DC 0020+00 1/0 0/0 0/0 .text daObjBombf_Draw__FP12daObjBombf_c - */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daObjBombf_Draw(daObjBombf_c* param_0) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_bombf/d_a_obj_bombf/daObjBombf_Draw__FP12daObjBombf_c.s" +/* 80BBAE5C-80BBAE7C 0004DC 0020+00 1/0 0/0 0/0 .text daObjBombf_Draw__FP12daObjBombf_c */ +static int daObjBombf_Draw(daObjBombf_c* i_this) { + return i_this->draw(); } -#pragma pop -/* ############################################################################################## */ /* 80BBAEA8-80BBAEC8 -00001 0020+00 1/0 0/0 0/0 .data l_daObjBombf_Method */ -SECTION_DATA static void* l_daObjBombf_Method[8] = { - (void*)daObjBombf_Create__FP10fopAc_ac_c, - (void*)daObjBombf_Delete__FP12daObjBombf_c, - (void*)daObjBombf_Execute__FP12daObjBombf_c, - (void*)NULL, - (void*)daObjBombf_Draw__FP12daObjBombf_c, - (void*)NULL, - (void*)NULL, - (void*)NULL, +static actor_method_class l_daObjBombf_Method = { + (process_method_func)daObjBombf_Create, (process_method_func)daObjBombf_Delete, + (process_method_func)daObjBombf_Execute, (process_method_func)NULL, + (process_method_func)daObjBombf_Draw, }; /* 80BBAEC8-80BBAEF8 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Bombf */ -SECTION_DATA extern void* g_profile_Obj_Bombf[12] = { - (void*)0xFFFFFFFD, (void*)0x0007FFFD, - (void*)0x02BF0000, (void*)&g_fpcLf_Method, - (void*)0x00000588, (void*)NULL, - (void*)NULL, (void*)&g_fopAc_Method, - (void*)0x00FB0000, (void*)&l_daObjBombf_Method, - (void*)0x00040100, (void*)0x030E0000, +extern actor_process_profile_definition g_profile_Obj_Bombf = { + -3, + 7, + -3, + PROC_Obj_Bombf, + 0, + &g_fpcLf_Method.mBase, + sizeof(daObjBombf_c), + 0, + 0, + &g_fopAc_Method.base, + 0x00FB, + 0, + 0, + &l_daObjBombf_Method, + 0x00040100, + 3, + 14, + 0, + 0, }; diff --git a/src/d/d_bomb.cpp b/src/d/d_bomb.cpp index 3b34b49444..4eadd75cc8 100644 --- a/src/d/d_bomb.cpp +++ b/src/d/d_bomb.cpp @@ -12,7 +12,7 @@ bool dBomb_c::checkStateCarry() { } bool dBomb_c::checkFlowerBombWait(fopAc_ac_c* param_1) { - return (fopAcM_GetName(&mActor) == PROC_NBOMB && fopAcM_GetParam(&mActor) == 4); + return (fopAcM_GetName(param_1) == PROC_NBOMB && fopAcM_GetParam(param_1) == 4); } bool dBomb_c::checkWaterBomb(fopAc_ac_c* param_1) {