diff --git a/Progress.md b/Progress.md index 072e996a460..4f013dbc798 100644 --- a/Progress.md +++ b/Progress.md @@ -355,7 +355,7 @@ d_a_obj_bed | 100.000000% | 4812 | 4812 d_a_obj_bemos | 32.943081% | 10580 | 32116 d_a_obj_bhashi | 31.443815% | 3772 | 11996 d_a_obj_bhbridge | 39.936609% | 2016 | 5048 -d_a_obj_bk_leaf | 41.935484% | 1144 | 2728 +d_a_obj_bk_leaf | 100.000000% | 2728 | 2728 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 diff --git a/asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/CheckCreateHeap__FP10fopAc_ac_c.s b/asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/CheckCreateHeap__FP10fopAc_ac_c.s deleted file mode 100644 index b0ad504d3e2..00000000000 --- a/asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/CheckCreateHeap__FP10fopAc_ac_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80BB60D8: -/* 80BB60D8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80BB60DC 7C 08 02 A6 */ mflr r0 -/* 80BB60E0 90 01 00 14 */ stw r0, 0x14(r1) -/* 80BB60E4 48 00 01 B9 */ bl CreateHeap__10daBkLeaf_cFv -/* 80BB60E8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80BB60EC 7C 08 03 A6 */ mtlr r0 -/* 80BB60F0 38 21 00 10 */ addi r1, r1, 0x10 -/* 80BB60F4 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/CreateHeap__10daBkLeaf_cFv.s b/asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/CreateHeap__10daBkLeaf_cFv.s deleted file mode 100644 index 89417ebda1d..00000000000 --- a/asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/CreateHeap__10daBkLeaf_cFv.s +++ /dev/null @@ -1,74 +0,0 @@ -lbl_80BB629C: -/* 80BB629C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80BB62A0 7C 08 02 A6 */ mflr r0 -/* 80BB62A4 90 01 00 24 */ stw r0, 0x24(r1) -/* 80BB62A8 39 61 00 20 */ addi r11, r1, 0x20 -/* 80BB62AC 4B 7A BF 31 */ bl _savegpr_29 -/* 80BB62B0 7C 7D 1B 78 */ mr r29, r3 -/* 80BB62B4 3C 60 80 BB */ lis r3, cNullVec__6Z2Calc@ha /* 0x80BB6738@ha */ -/* 80BB62B8 3B E3 67 38 */ addi r31, r3, cNullVec__6Z2Calc@l /* 0x80BB6738@l */ -/* 80BB62BC 80 7F 00 20 */ lwz r3, 0x20(r31) -/* 80BB62C0 80 9F 00 24 */ lwz r4, 0x24(r31) -/* 80BB62C4 3C A0 80 40 */ lis r5, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80BB62C8 38 A5 61 C0 */ addi r5, r5, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80BB62CC 3F C5 00 02 */ addis r30, r5, 2 -/* 80BB62D0 3B DE C2 F8 */ addi r30, r30, -15624 -/* 80BB62D4 7F C5 F3 78 */ mr r5, r30 -/* 80BB62D8 38 C0 00 80 */ li r6, 0x80 -/* 80BB62DC 4B 48 60 A1 */ bl getRes__14dRes_control_cFPCcPCcP11dRes_info_ci -/* 80BB62E0 3C 80 00 08 */ lis r4, 8 -/* 80BB62E4 3C A0 11 00 */ lis r5, 0x1100 /* 0x11000084@ha */ -/* 80BB62E8 38 A5 00 84 */ addi r5, r5, 0x0084 /* 0x11000084@l */ -/* 80BB62EC 4B 45 E9 69 */ bl mDoExt_J3DModel__create__FP12J3DModelDataUlUl -/* 80BB62F0 90 7D 05 70 */ stw r3, 0x570(r29) -/* 80BB62F4 80 1D 05 70 */ lwz r0, 0x570(r29) -/* 80BB62F8 28 00 00 00 */ cmplwi r0, 0 -/* 80BB62FC 40 82 00 0C */ bne lbl_80BB6308 -/* 80BB6300 38 60 00 00 */ li r3, 0 -/* 80BB6304 48 00 00 90 */ b lbl_80BB6394 -lbl_80BB6308: -/* 80BB6308 80 7F 00 20 */ lwz r3, 0x20(r31) -/* 80BB630C 80 9F 00 28 */ lwz r4, 0x28(r31) -/* 80BB6310 7F C5 F3 78 */ mr r5, r30 -/* 80BB6314 38 C0 00 80 */ li r6, 0x80 -/* 80BB6318 4B 48 60 65 */ bl getRes__14dRes_control_cFPCcPCcP11dRes_info_ci -/* 80BB631C 7C 7E 1B 78 */ mr r30, r3 -/* 80BB6320 38 60 00 1C */ li r3, 0x1c -/* 80BB6324 4B 71 89 29 */ bl __nw__FUl -/* 80BB6328 7C 7F 1B 79 */ or. r31, r3, r3 -/* 80BB632C 41 82 00 20 */ beq lbl_80BB634C -/* 80BB6330 3C 80 80 BB */ lis r4, __vt__12J3DFrameCtrl@ha /* 0x80BB67B4@ha */ -/* 80BB6334 38 04 67 B4 */ addi r0, r4, __vt__12J3DFrameCtrl@l /* 0x80BB67B4@l */ -/* 80BB6338 90 1F 00 00 */ stw r0, 0(r31) -/* 80BB633C 38 80 00 00 */ li r4, 0 -/* 80BB6340 4B 77 20 BD */ bl init__12J3DFrameCtrlFs -/* 80BB6344 38 00 00 00 */ li r0, 0 -/* 80BB6348 90 1F 00 18 */ stw r0, 0x18(r31) -lbl_80BB634C: -/* 80BB634C 93 FD 05 74 */ stw r31, 0x574(r29) -/* 80BB6350 80 7D 05 74 */ lwz r3, 0x574(r29) -/* 80BB6354 28 03 00 00 */ cmplwi r3, 0 -/* 80BB6358 41 82 00 30 */ beq lbl_80BB6388 -/* 80BB635C 7F C4 F3 78 */ mr r4, r30 -/* 80BB6360 38 A0 00 01 */ li r5, 1 -/* 80BB6364 38 C0 00 00 */ li r6, 0 -/* 80BB6368 3C E0 80 BB */ lis r7, lit_3742@ha /* 0x80BB6710@ha */ -/* 80BB636C C0 27 67 10 */ lfs f1, lit_3742@l(r7) /* 0x80BB6710@l */ -/* 80BB6370 38 E0 00 00 */ li r7, 0 -/* 80BB6374 39 00 FF FF */ li r8, -1 -/* 80BB6378 39 20 00 00 */ li r9, 0 -/* 80BB637C 4B 45 74 61 */ bl init__13mDoExt_bckAnmFP15J3DAnmTransformiifssb -/* 80BB6380 2C 03 00 00 */ cmpwi r3, 0 -/* 80BB6384 40 82 00 0C */ bne lbl_80BB6390 -lbl_80BB6388: -/* 80BB6388 38 60 00 00 */ li r3, 0 -/* 80BB638C 48 00 00 08 */ b lbl_80BB6394 -lbl_80BB6390: -/* 80BB6390 38 60 00 01 */ li r3, 1 -lbl_80BB6394: -/* 80BB6394 39 61 00 20 */ addi r11, r1, 0x20 -/* 80BB6398 4B 7A BE 91 */ bl _restgpr_29 -/* 80BB639C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80BB63A0 7C 08 03 A6 */ mtlr r0 -/* 80BB63A4 38 21 00 20 */ addi r1, r1, 0x20 -/* 80BB63A8 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/Create__10daBkLeaf_cFv.s b/asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/Create__10daBkLeaf_cFv.s deleted file mode 100644 index b455cc5e3d5..00000000000 --- a/asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/Create__10daBkLeaf_cFv.s +++ /dev/null @@ -1,35 +0,0 @@ -lbl_80BB621C: -/* 80BB621C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80BB6220 7C 08 02 A6 */ mflr r0 -/* 80BB6224 90 01 00 14 */ stw r0, 0x14(r1) -/* 80BB6228 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80BB622C 7C 7F 1B 78 */ mr r31, r3 -/* 80BB6230 4B FF FF 5D */ bl initBaseMtx__10daBkLeaf_cFv -/* 80BB6234 80 7F 05 70 */ lwz r3, 0x570(r31) -/* 80BB6238 38 03 00 24 */ addi r0, r3, 0x24 -/* 80BB623C 90 1F 05 04 */ stw r0, 0x504(r31) -/* 80BB6240 80 7F 05 70 */ lwz r3, 0x570(r31) -/* 80BB6244 80 83 00 04 */ lwz r4, 4(r3) -/* 80BB6248 7F E3 FB 78 */ mr r3, r31 -/* 80BB624C 4B 46 43 2D */ bl fopAcM_setCullSizeBox2__FP10fopAc_ac_cP12J3DModelData -/* 80BB6250 38 00 FF FF */ li r0, -1 -/* 80BB6254 90 1F 05 78 */ stw r0, 0x578(r31) -/* 80BB6258 38 60 00 00 */ li r3, 0 -/* 80BB625C 98 7F 05 7D */ stb r3, 0x57d(r31) -/* 80BB6260 80 1F 00 B0 */ lwz r0, 0xb0(r31) -/* 80BB6264 54 00 0F FF */ rlwinm. r0, r0, 1, 0x1f, 0x1f -/* 80BB6268 41 82 00 14 */ beq lbl_80BB627C -/* 80BB626C 98 7F 05 7C */ stb r3, 0x57c(r31) -/* 80BB6270 7F E3 FB 78 */ mr r3, r31 -/* 80BB6274 4B FF FE 85 */ bl setBokkuri__10daBkLeaf_cFv -/* 80BB6278 48 00 00 0C */ b lbl_80BB6284 -lbl_80BB627C: -/* 80BB627C 38 00 00 02 */ li r0, 2 -/* 80BB6280 98 1F 05 7C */ stb r0, 0x57c(r31) -lbl_80BB6284: -/* 80BB6284 38 60 00 01 */ li r3, 1 -/* 80BB6288 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80BB628C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80BB6290 7C 08 03 A6 */ mtlr r0 -/* 80BB6294 38 21 00 10 */ addi r1, r1, 0x10 -/* 80BB6298 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/__dt__12J3DFrameCtrlFv.s b/asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/__dt__12J3DFrameCtrlFv.s deleted file mode 100644 index 95bb565ac5d..00000000000 --- a/asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/__dt__12J3DFrameCtrlFv.s +++ /dev/null @@ -1,20 +0,0 @@ -lbl_80BB63AC: -/* 80BB63AC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80BB63B0 7C 08 02 A6 */ mflr r0 -/* 80BB63B4 90 01 00 14 */ stw r0, 0x14(r1) -/* 80BB63B8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80BB63BC 7C 7F 1B 79 */ or. r31, r3, r3 -/* 80BB63C0 41 82 00 1C */ beq lbl_80BB63DC -/* 80BB63C4 3C A0 80 BB */ lis r5, __vt__12J3DFrameCtrl@ha /* 0x80BB67B4@ha */ -/* 80BB63C8 38 05 67 B4 */ addi r0, r5, __vt__12J3DFrameCtrl@l /* 0x80BB67B4@l */ -/* 80BB63CC 90 1F 00 00 */ stw r0, 0(r31) -/* 80BB63D0 7C 80 07 35 */ extsh. r0, r4 -/* 80BB63D4 40 81 00 08 */ ble lbl_80BB63DC -/* 80BB63D8 4B 71 89 65 */ bl __dl__FPv -lbl_80BB63DC: -/* 80BB63DC 7F E3 FB 78 */ mr r3, r31 -/* 80BB63E0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80BB63E4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80BB63E8 7C 08 03 A6 */ mtlr r0 -/* 80BB63EC 38 21 00 10 */ addi r1, r1, 0x10 -/* 80BB63F0 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/_delete__10daBkLeaf_cFv.s b/asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/_delete__10daBkLeaf_cFv.s deleted file mode 100644 index df8bc5f7789..00000000000 --- a/asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/_delete__10daBkLeaf_cFv.s +++ /dev/null @@ -1,14 +0,0 @@ -lbl_80BB6654: -/* 80BB6654 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80BB6658 7C 08 02 A6 */ mflr r0 -/* 80BB665C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80BB6660 3C 80 80 BB */ lis r4, l_arcName@ha /* 0x80BB6758@ha */ -/* 80BB6664 38 84 67 58 */ addi r4, r4, l_arcName@l /* 0x80BB6758@l */ -/* 80BB6668 80 84 00 00 */ lwz r4, 0(r4) -/* 80BB666C 38 63 05 68 */ addi r3, r3, 0x568 -/* 80BB6670 4B 47 69 99 */ bl dComIfG_resDelete__FP30request_of_phase_process_classPCc -/* 80BB6674 38 60 00 01 */ li r3, 1 -/* 80BB6678 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80BB667C 7C 08 03 A6 */ mtlr r0 -/* 80BB6680 38 21 00 10 */ addi r1, r1, 0x10 -/* 80BB6684 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/daBkLeaf_Create__FP10fopAc_ac_c.s b/asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/daBkLeaf_Create__FP10fopAc_ac_c.s deleted file mode 100644 index 3418a3fff3a..00000000000 --- a/asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/daBkLeaf_Create__FP10fopAc_ac_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80BB66E8: -/* 80BB66E8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80BB66EC 7C 08 02 A6 */ mflr r0 -/* 80BB66F0 90 01 00 14 */ stw r0, 0x14(r1) -/* 80BB66F4 4B FF FD 01 */ bl create__10daBkLeaf_cFv -/* 80BB66F8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80BB66FC 7C 08 03 A6 */ mtlr r0 -/* 80BB6700 38 21 00 10 */ addi r1, r1, 0x10 -/* 80BB6704 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/daBkLeaf_Delete__FP10daBkLeaf_c.s b/asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/daBkLeaf_Delete__FP10daBkLeaf_c.s deleted file mode 100644 index 16d33c1da4d..00000000000 --- a/asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/daBkLeaf_Delete__FP10daBkLeaf_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80BB66C8: -/* 80BB66C8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80BB66CC 7C 08 02 A6 */ mflr r0 -/* 80BB66D0 90 01 00 14 */ stw r0, 0x14(r1) -/* 80BB66D4 4B FF FF 81 */ bl _delete__10daBkLeaf_cFv -/* 80BB66D8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80BB66DC 7C 08 03 A6 */ mtlr r0 -/* 80BB66E0 38 21 00 10 */ addi r1, r1, 0x10 -/* 80BB66E4 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/daBkLeaf_Draw__FP10daBkLeaf_c.s b/asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/daBkLeaf_Draw__FP10daBkLeaf_c.s deleted file mode 100644 index 53174219362..00000000000 --- a/asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/daBkLeaf_Draw__FP10daBkLeaf_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80BB6688: -/* 80BB6688 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80BB668C 7C 08 02 A6 */ mflr r0 -/* 80BB6690 90 01 00 14 */ stw r0, 0x14(r1) -/* 80BB6694 4B FF FF 31 */ bl draw__10daBkLeaf_cFv -/* 80BB6698 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80BB669C 7C 08 03 A6 */ mtlr r0 -/* 80BB66A0 38 21 00 10 */ addi r1, r1, 0x10 -/* 80BB66A4 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/daBkLeaf_Execute__FP10daBkLeaf_c.s b/asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/daBkLeaf_Execute__FP10daBkLeaf_c.s deleted file mode 100644 index 1e8f5d0f5be..00000000000 --- a/asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/daBkLeaf_Execute__FP10daBkLeaf_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80BB66A8: -/* 80BB66A8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80BB66AC 7C 08 02 A6 */ mflr r0 -/* 80BB66B0 90 01 00 14 */ stw r0, 0x14(r1) -/* 80BB66B4 4B FF FD F5 */ bl execute__10daBkLeaf_cFv -/* 80BB66B8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80BB66BC 7C 08 03 A6 */ mtlr r0 -/* 80BB66C0 38 21 00 10 */ addi r1, r1, 0x10 -/* 80BB66C4 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/draw__10daBkLeaf_cFv.s b/asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/draw__10daBkLeaf_cFv.s deleted file mode 100644 index 8cced8290f4..00000000000 --- a/asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/draw__10daBkLeaf_cFv.s +++ /dev/null @@ -1,37 +0,0 @@ -lbl_80BB65C4: -/* 80BB65C4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80BB65C8 7C 08 02 A6 */ mflr r0 -/* 80BB65CC 90 01 00 14 */ stw r0, 0x14(r1) -/* 80BB65D0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80BB65D4 7C 7F 1B 78 */ mr r31, r3 -/* 80BB65D8 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */ -/* 80BB65DC 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */ -/* 80BB65E0 38 80 00 00 */ li r4, 0 -/* 80BB65E4 38 BF 04 D0 */ addi r5, r31, 0x4d0 -/* 80BB65E8 38 DF 01 0C */ addi r6, r31, 0x10c -/* 80BB65EC 4B 5E D1 D9 */ bl settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c -/* 80BB65F0 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */ -/* 80BB65F4 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */ -/* 80BB65F8 80 9F 05 70 */ lwz r4, 0x570(r31) -/* 80BB65FC 80 84 00 04 */ lwz r4, 4(r4) -/* 80BB6600 38 BF 01 0C */ addi r5, r31, 0x10c -/* 80BB6604 4B 5E E7 9D */ bl setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c -/* 80BB6608 80 7F 05 70 */ lwz r3, 0x570(r31) -/* 80BB660C 80 83 00 04 */ lwz r4, 4(r3) -/* 80BB6610 80 7F 05 74 */ lwz r3, 0x574(r31) -/* 80BB6614 C0 23 00 10 */ lfs f1, 0x10(r3) -/* 80BB6618 4B 45 73 B5 */ bl entry__13mDoExt_bckAnmFP12J3DModelDataf -/* 80BB661C 80 7F 05 70 */ lwz r3, 0x570(r31) -/* 80BB6620 4B 45 76 A5 */ bl mDoExt_modelUpdateDL__FP8J3DModel -/* 80BB6624 80 7F 05 70 */ lwz r3, 0x570(r31) -/* 80BB6628 80 63 00 04 */ lwz r3, 4(r3) -/* 80BB662C 80 63 00 28 */ lwz r3, 0x28(r3) -/* 80BB6630 80 63 00 00 */ lwz r3, 0(r3) -/* 80BB6634 38 00 00 00 */ li r0, 0 -/* 80BB6638 90 03 00 54 */ stw r0, 0x54(r3) -/* 80BB663C 38 60 00 01 */ li r3, 1 -/* 80BB6640 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80BB6644 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80BB6648 7C 08 03 A6 */ mtlr r0 -/* 80BB664C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80BB6650 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/execute__10daBkLeaf_cFv.s b/asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/execute__10daBkLeaf_cFv.s deleted file mode 100644 index b655e938cc4..00000000000 --- a/asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/execute__10daBkLeaf_cFv.s +++ /dev/null @@ -1,78 +0,0 @@ -lbl_80BB64A8: -/* 80BB64A8 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80BB64AC 7C 08 02 A6 */ mflr r0 -/* 80BB64B0 90 01 00 24 */ stw r0, 0x24(r1) -/* 80BB64B4 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 80BB64B8 7C 7F 1B 78 */ mr r31, r3 -/* 80BB64BC 88 03 05 7C */ lbz r0, 0x57c(r3) -/* 80BB64C0 2C 00 00 01 */ cmpwi r0, 1 -/* 80BB64C4 41 82 00 78 */ beq lbl_80BB653C -/* 80BB64C8 40 80 00 DC */ bge lbl_80BB65A4 -/* 80BB64CC 2C 00 00 00 */ cmpwi r0, 0 -/* 80BB64D0 40 80 00 0C */ bge lbl_80BB64DC -/* 80BB64D4 48 00 00 D0 */ b lbl_80BB65A4 -/* 80BB64D8 48 00 00 CC */ b lbl_80BB65A4 -lbl_80BB64DC: -/* 80BB64DC 88 1F 05 7D */ lbz r0, 0x57d(r31) -/* 80BB64E0 28 00 00 00 */ cmplwi r0, 0 -/* 80BB64E4 41 82 00 C0 */ beq lbl_80BB65A4 -/* 80BB64E8 80 1F 05 78 */ lwz r0, 0x578(r31) -/* 80BB64EC 90 01 00 08 */ stw r0, 8(r1) -/* 80BB64F0 3C 60 80 02 */ lis r3, fpcSch_JudgeByID__FPvPv@ha /* 0x80023590@ha */ -/* 80BB64F4 38 63 35 90 */ addi r3, r3, fpcSch_JudgeByID__FPvPv@l /* 0x80023590@l */ -/* 80BB64F8 38 81 00 08 */ addi r4, r1, 8 -/* 80BB64FC 4B 46 32 FD */ bl fopAcIt_Judge__FPFPvPv_PvPv -/* 80BB6500 28 03 00 00 */ cmplwi r3, 0 -/* 80BB6504 40 82 00 A0 */ bne lbl_80BB65A4 -/* 80BB6508 38 00 00 3C */ li r0, 0x3c -/* 80BB650C B0 1F 05 7E */ sth r0, 0x57e(r31) -/* 80BB6510 3C 60 80 BB */ lis r3, lit_3811@ha /* 0x80BB6714@ha */ -/* 80BB6514 C0 03 67 14 */ lfs f0, lit_3811@l(r3) /* 0x80BB6714@l */ -/* 80BB6518 80 7F 05 74 */ lwz r3, 0x574(r31) -/* 80BB651C D0 03 00 10 */ stfs f0, 0x10(r3) -/* 80BB6520 3C 60 80 BB */ lis r3, lit_3742@ha /* 0x80BB6710@ha */ -/* 80BB6524 C0 03 67 10 */ lfs f0, lit_3742@l(r3) /* 0x80BB6710@l */ -/* 80BB6528 80 7F 05 74 */ lwz r3, 0x574(r31) -/* 80BB652C D0 03 00 0C */ stfs f0, 0xc(r3) -/* 80BB6530 38 00 00 01 */ li r0, 1 -/* 80BB6534 98 1F 05 7C */ stb r0, 0x57c(r31) -/* 80BB6538 48 00 00 6C */ b lbl_80BB65A4 -lbl_80BB653C: -/* 80BB653C A8 7F 05 7E */ lha r3, 0x57e(r31) -/* 80BB6540 2C 03 00 00 */ cmpwi r3, 0 -/* 80BB6544 40 81 00 0C */ ble lbl_80BB6550 -/* 80BB6548 38 03 FF FF */ addi r0, r3, -1 -/* 80BB654C B0 1F 05 7E */ sth r0, 0x57e(r31) -lbl_80BB6550: -/* 80BB6550 A8 1F 05 7E */ lha r0, 0x57e(r31) -/* 80BB6554 2C 00 00 00 */ cmpwi r0, 0 -/* 80BB6558 40 82 00 4C */ bne lbl_80BB65A4 -/* 80BB655C 7F E3 FB 78 */ mr r3, r31 -/* 80BB6560 4B FF FB 99 */ bl setBokkuri__10daBkLeaf_cFv -/* 80BB6564 88 7F 05 7D */ lbz r3, 0x57d(r31) -/* 80BB6568 28 03 00 FF */ cmplwi r3, 0xff -/* 80BB656C 40 82 00 10 */ bne lbl_80BB657C -/* 80BB6570 38 00 00 00 */ li r0, 0 -/* 80BB6574 98 1F 05 7C */ stb r0, 0x57c(r31) -/* 80BB6578 48 00 00 2C */ b lbl_80BB65A4 -lbl_80BB657C: -/* 80BB657C 38 03 FF FF */ addi r0, r3, -1 -/* 80BB6580 98 1F 05 7D */ stb r0, 0x57d(r31) -/* 80BB6584 88 1F 05 7D */ lbz r0, 0x57d(r31) -/* 80BB6588 28 00 00 00 */ cmplwi r0, 0 -/* 80BB658C 40 82 00 10 */ bne lbl_80BB659C -/* 80BB6590 38 00 00 02 */ li r0, 2 -/* 80BB6594 98 1F 05 7C */ stb r0, 0x57c(r31) -/* 80BB6598 48 00 00 0C */ b lbl_80BB65A4 -lbl_80BB659C: -/* 80BB659C 38 00 00 00 */ li r0, 0 -/* 80BB65A0 98 1F 05 7C */ stb r0, 0x57c(r31) -lbl_80BB65A4: -/* 80BB65A4 7F E3 FB 78 */ mr r3, r31 -/* 80BB65A8 4B FF FC 21 */ bl setBaseMtx__10daBkLeaf_cFv -/* 80BB65AC 38 60 00 01 */ li r3, 1 -/* 80BB65B0 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 80BB65B4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80BB65B8 7C 08 03 A6 */ mtlr r0 -/* 80BB65BC 38 21 00 20 */ addi r1, r1, 0x20 -/* 80BB65C0 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/func_80BB63F4.s b/asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/func_80BB63F4.s deleted file mode 100644 index cd3eac32108..00000000000 --- a/asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/func_80BB63F4.s +++ /dev/null @@ -1,51 +0,0 @@ -lbl_80BB63F4: -/* 80BB63F4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80BB63F8 7C 08 02 A6 */ mflr r0 -/* 80BB63FC 90 01 00 14 */ stw r0, 0x14(r1) -/* 80BB6400 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80BB6404 93 C1 00 08 */ stw r30, 8(r1) -/* 80BB6408 7C 7E 1B 78 */ mr r30, r3 -/* 80BB640C 80 03 04 A0 */ lwz r0, 0x4a0(r3) -/* 80BB6410 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c -/* 80BB6414 40 82 00 1C */ bne lbl_80BB6430 -/* 80BB6418 28 1E 00 00 */ cmplwi r30, 0 -/* 80BB641C 41 82 00 08 */ beq lbl_80BB6424 -/* 80BB6420 4B 46 27 45 */ bl __ct__10fopAc_ac_cFv -lbl_80BB6424: -/* 80BB6424 80 1E 04 A0 */ lwz r0, 0x4a0(r30) -/* 80BB6428 60 00 00 08 */ ori r0, r0, 8 -/* 80BB642C 90 1E 04 A0 */ stw r0, 0x4a0(r30) -lbl_80BB6430: -/* 80BB6430 38 7E 05 68 */ addi r3, r30, 0x568 -/* 80BB6434 3C 80 80 BB */ lis r4, l_arcName@ha /* 0x80BB6758@ha */ -/* 80BB6438 38 84 67 58 */ addi r4, r4, l_arcName@l /* 0x80BB6758@l */ -/* 80BB643C 80 84 00 00 */ lwz r4, 0(r4) -/* 80BB6440 4B 47 6A 7D */ bl dComIfG_resLoad__FP30request_of_phase_process_classPCc -/* 80BB6444 7C 7F 1B 78 */ mr r31, r3 -/* 80BB6448 2C 1F 00 04 */ cmpwi r31, 4 -/* 80BB644C 40 82 00 40 */ bne lbl_80BB648C -/* 80BB6450 7F C3 F3 78 */ mr r3, r30 -/* 80BB6454 3C 80 80 BB */ lis r4, CheckCreateHeap__FP10fopAc_ac_c@ha /* 0x80BB60D8@ha */ -/* 80BB6458 38 84 60 D8 */ addi r4, r4, CheckCreateHeap__FP10fopAc_ac_c@l /* 0x80BB60D8@l */ -/* 80BB645C 38 A0 09 80 */ li r5, 0x980 -/* 80BB6460 4B 46 40 51 */ bl fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl -/* 80BB6464 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 80BB6468 40 82 00 0C */ bne lbl_80BB6474 -/* 80BB646C 38 60 00 05 */ li r3, 5 -/* 80BB6470 48 00 00 20 */ b lbl_80BB6490 -lbl_80BB6474: -/* 80BB6474 7F C3 F3 78 */ mr r3, r30 -/* 80BB6478 4B FF FD A5 */ bl Create__10daBkLeaf_cFv -/* 80BB647C 2C 03 00 00 */ cmpwi r3, 0 -/* 80BB6480 40 82 00 0C */ bne lbl_80BB648C -/* 80BB6484 38 60 00 05 */ li r3, 5 -/* 80BB6488 48 00 00 08 */ b lbl_80BB6490 -lbl_80BB648C: -/* 80BB648C 7F E3 FB 78 */ mr r3, r31 -lbl_80BB6490: -/* 80BB6490 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80BB6494 83 C1 00 08 */ lwz r30, 8(r1) -/* 80BB6498 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80BB649C 7C 08 03 A6 */ mtlr r0 -/* 80BB64A0 38 21 00 10 */ addi r1, r1, 0x10 -/* 80BB64A4 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/initBaseMtx__10daBkLeaf_cFv.s b/asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/initBaseMtx__10daBkLeaf_cFv.s deleted file mode 100644 index 2042f3553d2..00000000000 --- a/asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/initBaseMtx__10daBkLeaf_cFv.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_80BB618C: -/* 80BB618C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80BB6190 7C 08 02 A6 */ mflr r0 -/* 80BB6194 90 01 00 14 */ stw r0, 0x14(r1) -/* 80BB6198 80 83 05 70 */ lwz r4, 0x570(r3) -/* 80BB619C C0 03 04 EC */ lfs f0, 0x4ec(r3) -/* 80BB61A0 D0 04 00 18 */ stfs f0, 0x18(r4) -/* 80BB61A4 C0 03 04 F0 */ lfs f0, 0x4f0(r3) -/* 80BB61A8 D0 04 00 1C */ stfs f0, 0x1c(r4) -/* 80BB61AC C0 03 04 F4 */ lfs f0, 0x4f4(r3) -/* 80BB61B0 D0 04 00 20 */ stfs f0, 0x20(r4) -/* 80BB61B4 48 00 00 15 */ bl setBaseMtx__10daBkLeaf_cFv -/* 80BB61B8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80BB61BC 7C 08 03 A6 */ mtlr r0 -/* 80BB61C0 38 21 00 10 */ addi r1, r1, 0x10 -/* 80BB61C4 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/setBaseMtx__10daBkLeaf_cFv.s b/asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/setBaseMtx__10daBkLeaf_cFv.s deleted file mode 100644 index ea39c895d8d..00000000000 --- a/asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/setBaseMtx__10daBkLeaf_cFv.s +++ /dev/null @@ -1,22 +0,0 @@ -lbl_80BB61C8: -/* 80BB61C8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80BB61CC 7C 08 02 A6 */ mflr r0 -/* 80BB61D0 90 01 00 14 */ stw r0, 0x14(r1) -/* 80BB61D4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80BB61D8 7C 7F 1B 78 */ mr r31, r3 -/* 80BB61DC 38 7F 04 D0 */ addi r3, r31, 0x4d0 -/* 80BB61E0 4B 45 6B 85 */ bl transS__14mDoMtx_stack_cFRC4cXyz -/* 80BB61E4 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 80BB61E8 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 80BB61EC A8 9F 04 E6 */ lha r4, 0x4e6(r31) -/* 80BB61F0 4B 45 62 45 */ bl mDoMtx_YrotM__FPA4_fs -/* 80BB61F4 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 80BB61F8 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 80BB61FC 80 9F 05 70 */ lwz r4, 0x570(r31) -/* 80BB6200 38 84 00 24 */ addi r4, r4, 0x24 -/* 80BB6204 4B 79 02 AD */ bl PSMTXCopy -/* 80BB6208 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80BB620C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80BB6210 7C 08 03 A6 */ mtlr r0 -/* 80BB6214 38 21 00 10 */ addi r1, r1, 0x10 -/* 80BB6218 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/setBokkuri__10daBkLeaf_cFv.s b/asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/setBokkuri__10daBkLeaf_cFv.s deleted file mode 100644 index e6f321b8279..00000000000 --- a/asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/setBokkuri__10daBkLeaf_cFv.s +++ /dev/null @@ -1,40 +0,0 @@ -lbl_80BB60F8: -/* 80BB60F8 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80BB60FC 7C 08 02 A6 */ mflr r0 -/* 80BB6100 90 01 00 24 */ stw r0, 0x24(r1) -/* 80BB6104 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 80BB6108 7C 7F 1B 79 */ or. r31, r3, r3 -/* 80BB610C 80 03 04 DC */ lwz r0, 0x4dc(r3) -/* 80BB6110 90 01 00 10 */ stw r0, 0x10(r1) -/* 80BB6114 A0 03 04 E0 */ lhz r0, 0x4e0(r3) -/* 80BB6118 B0 01 00 14 */ sth r0, 0x14(r1) -/* 80BB611C 80 03 00 B0 */ lwz r0, 0xb0(r3) -/* 80BB6120 54 03 C6 3E */ rlwinm r3, r0, 0x18, 0x18, 0x1f -/* 80BB6124 54 00 06 3E */ clrlwi r0, r0, 0x18 -/* 80BB6128 50 60 44 2E */ rlwimi r0, r3, 8, 0x10, 0x17 -/* 80BB612C B0 01 00 10 */ sth r0, 0x10(r1) -/* 80BB6130 38 00 40 0D */ li r0, 0x400d -/* 80BB6134 B0 01 00 14 */ sth r0, 0x14(r1) -/* 80BB6138 88 1F 04 E2 */ lbz r0, 0x4e2(r31) -/* 80BB613C 7C 07 07 74 */ extsb r7, r0 -/* 80BB6140 38 00 00 00 */ li r0, 0 -/* 80BB6144 90 01 00 08 */ stw r0, 8(r1) -/* 80BB6148 38 60 02 FC */ li r3, 0x2fc -/* 80BB614C 41 82 00 0C */ beq lbl_80BB6158 -/* 80BB6150 80 9F 00 04 */ lwz r4, 4(r31) -/* 80BB6154 48 00 00 08 */ b lbl_80BB615C -lbl_80BB6158: -/* 80BB6158 38 80 FF FF */ li r4, -1 -lbl_80BB615C: -/* 80BB615C 38 A0 00 00 */ li r5, 0 -/* 80BB6160 38 DF 04 D0 */ addi r6, r31, 0x4d0 -/* 80BB6164 39 01 00 10 */ addi r8, r1, 0x10 -/* 80BB6168 39 3F 04 EC */ addi r9, r31, 0x4ec -/* 80BB616C 39 40 FF FF */ li r10, -1 -/* 80BB6170 4B 46 3D 81 */ bl fopAcM_createChild__FsUiUlPC4cXyziPC5csXyzPC4cXyzScPFPv_i -/* 80BB6174 90 7F 05 78 */ stw r3, 0x578(r31) -/* 80BB6178 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 80BB617C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80BB6180 7C 08 03 A6 */ mtlr r0 -/* 80BB6184 38 21 00 20 */ addi r1, r1, 0x20 -/* 80BB6188 4E 80 00 20 */ blr diff --git a/include/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf.h b/include/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf.h index d2faaf43746..f947d65e23b 100644 --- a/include/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf.h +++ b/include/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf.h @@ -1,6 +1,34 @@ #ifndef D_A_OBJ_BK_LEAF_H #define D_A_OBJ_BK_LEAF_H +#include "SSystem/SComponent/c_phase.h" #include "dolphin/types.h" +#include "f_op/f_op_actor_mng.h" + +class daBkLeaf_c : public fopAc_ac_c { +public: + /* 80BB60F8 */ void setBokkuri(); + /* 80BB618C */ void initBaseMtx(); + /* 80BB61C8 */ void setBaseMtx(); + /* 80BB621C */ int Create(); + /* 80BB629C */ int CreateHeap(); + /* 80BB63F4 */ int create(); + /* 80BB64A8 */ int execute(); + /* 80BB65C4 */ int draw(); + /* 80BB6654 */ int _delete(); + + u8 getItem() { return fopAcM_GetParamBit(this, 0, 8); }; + u8 getItemBit() { return fopAcM_GetParamBit(this, 8, 8); }; + u8 checkSetDeku() { return fopAcM_GetParamBit(this, 31, 1); } + + /* 0x568 */ request_of_phase_process_class mPhase; + /* 0x570 */ J3DModel* mpModel; + /* 0x574 */ mDoExt_bckAnm* mpBckAnm; + /* 0x578 */ s32 field_0x578; + /* 0x57C */ u8 field_0x57C; + /* 0x57D */ u8 field_0x57D; + /* 0x57E */ s16 field_0x57E; +}; +STATIC_ASSERT(sizeof(daBkLeaf_c) == 0x580); #endif /* D_A_OBJ_BK_LEAF_H */ diff --git a/include/rel/d/a/obj/d_a_obj_carry/d_a_obj_carry.h b/include/rel/d/a/obj/d_a_obj_carry/d_a_obj_carry.h index b7afde3bae7..ca6be2cdf00 100644 --- a/include/rel/d/a/obj/d_a_obj_carry/d_a_obj_carry.h +++ b/include/rel/d/a/obj/d_a_obj_carry/d_a_obj_carry.h @@ -203,6 +203,11 @@ public: u32 getSetType() { return (u32)(field_0xd18 << 16) >> 29;} // fake match? s8 prm_chk_type_ironball() { return (s8)(getType() == TYPE_IRON_BALL); } + static void make_prm(csXyz* param_1, u8 param_2, u8 param_3, u8 param_4, u8 param_5, u8 param_6=0) { + param_1->x = (param_4 << 8) | param_3; + param_1->z = param_5 | (param_6 << 13) | ((u32(param_2) & 0xFF) << 1); + } + static u8 const mData[2072]; static Vec mPos[5]; static u8 mSttsFlag[5]; diff --git a/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf.cpp b/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf.cpp index 510aa76b8a9..2e79ac5d66c 100644 --- a/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf.cpp +++ b/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf.cpp @@ -1,202 +1,62 @@ -// -// Generated By: dol2asm -// Translation Unit: d_a_obj_bk_leaf -// +/** + * d_a_obj_bk_leaf.cpp + * + */ #include "rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf.h" -#include "dol2asm.h" - -// -// Types: -// - -struct request_of_phase_process_class {}; - -struct cXyz {}; - -struct mDoMtx_stack_c { - /* 8000CD64 */ void transS(cXyz const&); - - static u8 now[48]; -}; - -struct J3DModelData {}; - -struct J3DAnmTransform {}; - -struct mDoExt_bckAnm { - /* 8000D7DC */ void init(J3DAnmTransform*, int, int, f32, s16, s16, bool); - /* 8000D9CC */ void entry(J3DModelData*, f32); -}; - -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); -}; - -struct daBkLeaf_c { - /* 80BB60F8 */ void setBokkuri(); - /* 80BB618C */ void initBaseMtx(); - /* 80BB61C8 */ void setBaseMtx(); - /* 80BB621C */ void Create(); - /* 80BB629C */ void CreateHeap(); - /* 80BB63F4 */ void create(); - /* 80BB64A8 */ void execute(); - /* 80BB65C4 */ void draw(); - /* 80BB6654 */ void _delete(); -}; - -struct dKy_tevstr_c {}; - -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 { - /* 8003C37C */ void getRes(char const*, char const*, dRes_info_c*, int); -}; - -struct csXyz {}; - -struct J3DModel {}; - -struct J3DFrameCtrl { - /* 803283FC */ void init(s16); - /* 80BB63AC */ ~J3DFrameCtrl(); -}; - -// -// Forward References: -// - -extern "C" static void CheckCreateHeap__FP10fopAc_ac_c(); -extern "C" void setBokkuri__10daBkLeaf_cFv(); -extern "C" void initBaseMtx__10daBkLeaf_cFv(); -extern "C" void setBaseMtx__10daBkLeaf_cFv(); -extern "C" void Create__10daBkLeaf_cFv(); -extern "C" void CreateHeap__10daBkLeaf_cFv(); -extern "C" void __dt__12J3DFrameCtrlFv(); -extern "C" void create__10daBkLeaf_cFv(); -extern "C" void execute__10daBkLeaf_cFv(); -extern "C" void draw__10daBkLeaf_cFv(); -extern "C" void _delete__10daBkLeaf_cFv(); -extern "C" static void daBkLeaf_Draw__FP10daBkLeaf_c(); -extern "C" static void daBkLeaf_Execute__FP10daBkLeaf_c(); -extern "C" static void daBkLeaf_Delete__FP10daBkLeaf_c(); -extern "C" static void daBkLeaf_Create__FP10fopAc_ac_c(); -extern "C" extern char const* const d_a_obj_bk_leaf__stringBase0; - -// -// External References: -// - -extern "C" void mDoMtx_YrotM__FPA4_fs(); -extern "C" void transS__14mDoMtx_stack_cFRC4cXyz(); -extern "C" void init__13mDoExt_bckAnmFP15J3DAnmTransformiifssb(); -extern "C" void entry__13mDoExt_bckAnmFP12J3DModelDataf(); -extern "C" void mDoExt_modelUpdateDL__FP8J3DModel(); -extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl(); -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void fopAcIt_Judge__FPFPvPv_PvPv(); -extern "C" void fopAcM_createChild__FsUiUlPC4cXyziPC5csXyzPC4cXyzScPFPv_i(); -extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl(); -extern "C" void fopAcM_setCullSizeBox2__FP10fopAc_ac_cP12J3DModelData(); -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 getRes__14dRes_control_cFPCcPCcP11dRes_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* __nw__FUl(); -extern "C" void __dl__FPv(); -extern "C" void init__12J3DFrameCtrlFs(); -extern "C" void PSMTXCopy(); -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: -// +#include "JSystem/JKernel/JKRHeap.h" +#include "d/d_procname.h" +#include "rel/d/a/obj/d_a_obj_carry/d_a_obj_carry.h" /* 80BB60D8-80BB60F8 000078 0020+00 1/1 0/0 0/0 .text CheckCreateHeap__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void CheckCreateHeap(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/CheckCreateHeap__FP10fopAc_ac_c.s" +static int CheckCreateHeap(fopAc_ac_c* i_this) { + return static_cast(i_this)->CreateHeap(); } -#pragma pop /* 80BB60F8-80BB618C 000098 0094+00 2/2 0/0 0/0 .text setBokkuri__10daBkLeaf_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBkLeaf_c::setBokkuri() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/setBokkuri__10daBkLeaf_cFv.s" +// fake match? +void daBkLeaf_c::setBokkuri() { + csXyz currentAngle = current.angle; + daObjCarry_c::make_prm(¤tAngle, 6, getItem(), getItemBit(), 1, 2); + field_0x578 = fopAcM_createChild(PROC_Obj_Carry, fopAcM_GetID(this), 0, ¤t.pos, + fopAcM_GetRoomNo(this), ¤tAngle, &mScale, -1, 0); } -#pragma pop /* 80BB618C-80BB61C8 00012C 003C+00 1/1 0/0 0/0 .text initBaseMtx__10daBkLeaf_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBkLeaf_c::initBaseMtx() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/initBaseMtx__10daBkLeaf_cFv.s" +void daBkLeaf_c::initBaseMtx() { + mpModel->setBaseScale(mScale); + setBaseMtx(); } -#pragma pop /* 80BB61C8-80BB621C 000168 0054+00 2/2 0/0 0/0 .text setBaseMtx__10daBkLeaf_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBkLeaf_c::setBaseMtx() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/setBaseMtx__10daBkLeaf_cFv.s" +void daBkLeaf_c::setBaseMtx() { + mDoMtx_stack_c::transS(current.pos); + mDoMtx_stack_c::YrotM(shape_angle.y); + mpModel->i_setBaseTRMtx(mDoMtx_stack_c::get()); } -#pragma pop /* 80BB621C-80BB629C 0001BC 0080+00 1/1 0/0 0/0 .text Create__10daBkLeaf_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBkLeaf_c::Create() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/Create__10daBkLeaf_cFv.s" +int daBkLeaf_c::Create() { + initBaseMtx(); + fopAcM_SetMtx(this, mpModel->getBaseTRMtx()); + fopAcM_setCullSizeBox2(this, mpModel->getModelData()); + field_0x578 = -1; + field_0x57D = 0; + if (checkSetDeku()) { + field_0x57C = 0; + setBokkuri(); + } else { + field_0x57C = 2; + } + return 1; } -#pragma pop - -/* ############################################################################################## */ -/* 80BB6710-80BB6714 000000 0004+00 2/2 0/0 0/0 .rodata @3742 */ -SECTION_RODATA static f32 const lit_3742 = 1.0f; -COMPILER_STRIP_GATE(0x80BB6710, &lit_3742); - -/* 80BB6718-80BB6718 000008 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80BB6718 = "Obj_bkl"; -SECTION_DEAD static char const* const stringBase_80BB6720 = "hl.bmd"; -SECTION_DEAD static char const* const stringBase_80BB6727 = "hl_shake1.bck"; -#pragma pop /* 80BB6738-80BB6744 000000 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */ -SECTION_DATA static u8 cNullVec__6Z2Calc[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; +static Vec cNullVec__6Z2Calc = {0.0f, 0.0f, 0.0f}; /* 80BB6744-80BB6758 00000C 0004+10 0/0 0/0 0/0 .data @1787 */ -#pragma push -#pragma force_active on -SECTION_DATA static u32 lit_1787[1 + 4 /* padding */] = { +// Unused +static u32 lit_1787[1 + 4 /* padding */] = { 0x02000201, /* padding */ 0x40080000, @@ -204,160 +64,144 @@ SECTION_DATA static u32 lit_1787[1 + 4 /* padding */] = { 0x3FE00000, 0x00000000, }; -#pragma pop /* 80BB6758-80BB675C -00001 0004+00 2/3 0/0 0/0 .data l_arcName */ -SECTION_DATA static void* l_arcName = (void*)&d_a_obj_bk_leaf__stringBase0; +static const char* l_arcName = "Obj_bkl"; /* 80BB675C-80BB6760 -00001 0004+00 0/1 0/0 0/0 .data l_bmdName */ -#pragma push -#pragma force_active on -SECTION_DATA static void* l_bmdName = (void*)(((char*)&d_a_obj_bk_leaf__stringBase0) + 0x8); -#pragma pop +static const char* l_bmdName = "hl.bmd"; /* 80BB6760-80BB6764 -00001 0004+00 0/1 0/0 0/0 .data l_bckName */ -#pragma push -#pragma force_active on -SECTION_DATA static void* l_bckName = (void*)(((char*)&d_a_obj_bk_leaf__stringBase0) + 0xF); -#pragma pop +static const char* l_bckName = "hl_shake1.bck"; + +/* 80BB629C-80BB63AC 00023C 0110+00 1/1 0/0 0/0 .text CreateHeap__10daBkLeaf_cFv */ +int daBkLeaf_c::CreateHeap() { + int retVal; + mpModel = mDoExt_J3DModel__create( + static_cast(dComIfG_getObjectRes(l_arcName, l_bmdName)), 0x80000, + 0x11000084); + if (mpModel == NULL) { + retVal = 0; + } else { + J3DAnmTransform* transform = + static_cast(dComIfG_getObjectRes(l_arcName, l_bckName)); + mpBckAnm = new mDoExt_bckAnm; + if (mpBckAnm == NULL || mpBckAnm->init(transform, 1, 0, 1.0f, 0, -1, false) == 0) { + retVal = 0; + } else { + retVal = 1; + } + } + return retVal; +} + +/* 80BB63F4-80BB64A8 000394 00B4+00 1/1 0/0 0/0 .text create__10daBkLeaf_cFv */ +int daBkLeaf_c::create() { + fopAcM_SetupActor(this, daBkLeaf_c); + int retVal = dComIfG_resLoad(&mPhase, l_arcName); + if (retVal == cPhs_COMPLEATE_e) { + if (!fopAcM_entrySolidHeap(this, CheckCreateHeap, 0x980)) { + return cPhs_ERROR_e; + } else { + if (Create() == 0) { + return cPhs_ERROR_e; + } + } + } + return retVal; +} + +/* 80BB64A8-80BB65C4 000448 011C+00 1/1 0/0 0/0 .text execute__10daBkLeaf_cFv */ +int daBkLeaf_c::execute() { + switch (field_0x57C) { + case 0: + if (field_0x57D != 0 && fopAcM_SearchByID(field_0x578) == NULL) { + field_0x57E = 0x3C; + mpBckAnm->setFrame(0.0f); + mpBckAnm->setPlaySpeed(1.0f); + field_0x57C = 1; + } + break; + case 1: + if (field_0x57E > 0) { + field_0x57E--; + } + if (field_0x57E == 0) { + setBokkuri(); + if (field_0x57D == 0xFF) { + field_0x57C = 0; + } else { + field_0x57D--; + if (field_0x57D == 0) { + field_0x57C = 2; + } else { + field_0x57C = 0; + } + } + } + break; + case 2: + break; + } + setBaseMtx(); + return 1; +} + +/* 80BB65C4-80BB6654 000564 0090+00 1/1 0/0 0/0 .text draw__10daBkLeaf_cFv */ +int daBkLeaf_c::draw() { + g_env_light.settingTevStruct(0, ¤t.pos, &mTevStr); + g_env_light.setLightTevColorType_MAJI(mpModel, &mTevStr); + mpBckAnm->entry(mpModel->getModelData()); + mDoExt_modelUpdateDL(mpModel); + mpBckAnm->remove(mpModel->getModelData()); + return 1; +} + +/* 80BB6654-80BB6688 0005F4 0034+00 1/1 0/0 0/0 .text _delete__10daBkLeaf_cFv */ +int daBkLeaf_c::_delete() { + dComIfG_resDelete(&mPhase, l_arcName); + return 1; +} + +/* 80BB6688-80BB66A8 000628 0020+00 1/0 0/0 0/0 .text daBkLeaf_Draw__FP10daBkLeaf_c */ +static int daBkLeaf_Draw(daBkLeaf_c* i_this) { + return i_this->draw(); +} + +/* 80BB66A8-80BB66C8 000648 0020+00 1/0 0/0 0/0 .text daBkLeaf_Execute__FP10daBkLeaf_c */ +static int daBkLeaf_Execute(daBkLeaf_c* i_this) { + return i_this->execute(); +} + +/* 80BB66C8-80BB66E8 000668 0020+00 1/0 0/0 0/0 .text daBkLeaf_Delete__FP10daBkLeaf_c */ +static int daBkLeaf_Delete(daBkLeaf_c* i_this) { + return i_this->_delete(); +} + +/* 80BB66E8-80BB6708 000688 0020+00 1/0 0/0 0/0 .text daBkLeaf_Create__FP10fopAc_ac_c */ +static int daBkLeaf_Create(fopAc_ac_c* i_this) { + return static_cast(i_this)->create(); +} /* 80BB6764-80BB6784 -00001 0020+00 1/0 0/0 0/0 .data l_daBkLeaf_Method */ -SECTION_DATA static void* l_daBkLeaf_Method[8] = { - (void*)daBkLeaf_Create__FP10fopAc_ac_c, - (void*)daBkLeaf_Delete__FP10daBkLeaf_c, - (void*)daBkLeaf_Execute__FP10daBkLeaf_c, - (void*)NULL, - (void*)daBkLeaf_Draw__FP10daBkLeaf_c, - (void*)NULL, - (void*)NULL, - (void*)NULL, +static actor_method_class l_daBkLeaf_Method = { + (process_method_func)daBkLeaf_Create, (process_method_func)daBkLeaf_Delete, + (process_method_func)daBkLeaf_Execute, NULL, + (process_method_func)daBkLeaf_Draw, }; /* 80BB6784-80BB67B4 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_BkLeaf */ -SECTION_DATA extern void* g_profile_Obj_BkLeaf[12] = { - (void*)0xFFFFFFFD, (void*)0x0007FFFD, - (void*)0x02C00000, (void*)&g_fpcLf_Method, - (void*)0x00000580, (void*)NULL, - (void*)NULL, (void*)&g_fopAc_Method, - (void*)0x00FC0000, (void*)&l_daBkLeaf_Method, - (void*)0x00040100, (void*)0x000E0000, -}; - -/* 80BB67B4-80BB67C0 00007C 000C+00 2/2 0/0 0/0 .data __vt__12J3DFrameCtrl */ -SECTION_DATA extern void* __vt__12J3DFrameCtrl[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__12J3DFrameCtrlFv, -}; - -/* 80BB629C-80BB63AC 00023C 0110+00 1/1 0/0 0/0 .text CreateHeap__10daBkLeaf_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBkLeaf_c::CreateHeap() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/CreateHeap__10daBkLeaf_cFv.s" -} -#pragma pop - -/* 80BB63AC-80BB63F4 00034C 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm J3DFrameCtrl::~J3DFrameCtrl() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/__dt__12J3DFrameCtrlFv.s" -} -#pragma pop - -/* 80BB63F4-80BB64A8 000394 00B4+00 1/1 0/0 0/0 .text create__10daBkLeaf_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBkLeaf_c::create() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/func_80BB63F4.s" -} -#pragma pop - -/* ############################################################################################## */ -/* 80BB6714-80BB6718 000004 0004+00 1/1 0/0 0/0 .rodata @3811 */ -SECTION_RODATA static u8 const lit_3811[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80BB6714, &lit_3811); - -/* 80BB64A8-80BB65C4 000448 011C+00 1/1 0/0 0/0 .text execute__10daBkLeaf_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBkLeaf_c::execute() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/execute__10daBkLeaf_cFv.s" -} -#pragma pop - -/* 80BB65C4-80BB6654 000564 0090+00 1/1 0/0 0/0 .text draw__10daBkLeaf_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBkLeaf_c::draw() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/draw__10daBkLeaf_cFv.s" -} -#pragma pop - -/* 80BB6654-80BB6688 0005F4 0034+00 1/1 0/0 0/0 .text _delete__10daBkLeaf_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBkLeaf_c::_delete() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/_delete__10daBkLeaf_cFv.s" -} -#pragma pop - -/* 80BB6688-80BB66A8 000628 0020+00 1/0 0/0 0/0 .text daBkLeaf_Draw__FP10daBkLeaf_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daBkLeaf_Draw(daBkLeaf_c* param_0) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/daBkLeaf_Draw__FP10daBkLeaf_c.s" -} -#pragma pop - -/* 80BB66A8-80BB66C8 000648 0020+00 1/0 0/0 0/0 .text daBkLeaf_Execute__FP10daBkLeaf_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daBkLeaf_Execute(daBkLeaf_c* param_0) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/daBkLeaf_Execute__FP10daBkLeaf_c.s" -} -#pragma pop - -/* 80BB66C8-80BB66E8 000668 0020+00 1/0 0/0 0/0 .text daBkLeaf_Delete__FP10daBkLeaf_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daBkLeaf_Delete(daBkLeaf_c* param_0) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/daBkLeaf_Delete__FP10daBkLeaf_c.s" -} -#pragma pop - -/* 80BB66E8-80BB6708 000688 0020+00 1/0 0/0 0/0 .text daBkLeaf_Create__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daBkLeaf_Create(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_bk_leaf/d_a_obj_bk_leaf/daBkLeaf_Create__FP10fopAc_ac_c.s" -} -#pragma pop - -/* 80BB6718-80BB6718 000008 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ +extern actor_process_profile_definition g_profile_Obj_BkLeaf = {fpcLy_CURRENT_e, + 7, + fpcLy_CURRENT_e, + PROC_Obj_BkLeaf, + &g_fpcLf_Method.mBase, + sizeof(daBkLeaf_c), + 0, + 0, + &g_fopAc_Method.base, + 0xFC, + &l_daBkLeaf_Method, + 0x40100, + 0, + fopAc_CULLBOX_CUSTOM_e};