From 658cb52118ae9e1b4a9d50e2fa87a57ddd855c7a Mon Sep 17 00:00:00 2001 From: Caroline Madsen <69010899+randomsalience@users.noreply.github.com> Date: Sun, 4 Feb 2024 17:38:58 -0500 Subject: [PATCH] work on d_a_door_boss (#2061) --- Progress.md | 16 +- .../CheckCreateHeap__FP10fopAc_ac_c.s | 9 - .../d_a_door_boss/CreateInit__9daBdoor_cFv.s | 65 - .../d_a_door_boss/Delete__9daBdoor_cFv.s | 30 - .../actionCloseWait__9daBdoor_cFv.s | 41 - .../d_a_door_boss/actionOpen__9daBdoor_cFv.s | 10 - .../d_a_door_boss/calcMtx__9daBdoor_cFv.s | 46 - .../d_a_door_boss/checkArea__9daBdoor_cFv.s | 80 -- .../d_a_door_boss/checkDraw__9daBdoor_cFv.s | 17 - .../d_a_door_boss/checkFront__9daBdoor_cFv.s | 41 - .../daBdoor_Create__FP10fopAc_ac_c.s | 9 - .../daBdoor_Delete__FP9daBdoor_c.s | 10 - .../daBdoor_Draw__FP9daBdoor_c.s | 9 - .../daBdoor_Execute__FP9daBdoor_c.s | 10 - .../d_a_door_boss/draw__9daBdoor_cFv.s | 95 -- .../d_a_door_boss/execute__9daBdoor_cFv.s | 76 -- .../d_a_door_boss/getArcName__9daBdoor_cFv.s | 4 - .../d_a_door_boss/getBmd2__9daBdoor_cFv.s | 5 - .../d_a_door_boss/getBmd__9daBdoor_cFv.s | 5 - .../getDemoAction__9daBdoor_cFv.s | 19 - .../getDoorModelData__9daBdoor_cFv.s | 30 - .../d_a_door_boss/getDzb__9daBdoor_cFv.s | 5 - include/SSystem/SComponent/c_xyz.h | 1 + .../d/a/door/d_a_door_boss/d_a_door_boss.h | 61 +- rel/d/a/door/d_a_door_boss/Makefile | 2 - rel/d/a/door/d_a_door_boss/d_a_door_boss.cpp | 1199 +++++++---------- .../unknown_translation_unit_bss.cpp | 26 - 27 files changed, 593 insertions(+), 1328 deletions(-) delete mode 100644 asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/CheckCreateHeap__FP10fopAc_ac_c.s delete mode 100644 asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/CreateInit__9daBdoor_cFv.s delete mode 100644 asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/Delete__9daBdoor_cFv.s delete mode 100644 asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/actionCloseWait__9daBdoor_cFv.s delete mode 100644 asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/actionOpen__9daBdoor_cFv.s delete mode 100644 asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/calcMtx__9daBdoor_cFv.s delete mode 100644 asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/checkArea__9daBdoor_cFv.s delete mode 100644 asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/checkDraw__9daBdoor_cFv.s delete mode 100644 asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/checkFront__9daBdoor_cFv.s delete mode 100644 asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/daBdoor_Create__FP10fopAc_ac_c.s delete mode 100644 asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/daBdoor_Delete__FP9daBdoor_c.s delete mode 100644 asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/daBdoor_Draw__FP9daBdoor_c.s delete mode 100644 asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/daBdoor_Execute__FP9daBdoor_c.s delete mode 100644 asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/draw__9daBdoor_cFv.s delete mode 100644 asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/execute__9daBdoor_cFv.s delete mode 100644 asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/getArcName__9daBdoor_cFv.s delete mode 100644 asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/getBmd2__9daBdoor_cFv.s delete mode 100644 asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/getBmd__9daBdoor_cFv.s delete mode 100644 asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/getDemoAction__9daBdoor_cFv.s delete mode 100644 asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/getDoorModelData__9daBdoor_cFv.s delete mode 100644 asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/getDzb__9daBdoor_cFv.s delete mode 100644 rel/d/a/door/d_a_door_boss/unknown_translation_unit_bss.cpp diff --git a/Progress.md b/Progress.md index bb4f9c6064b..9bcb5581c9d 100644 --- a/Progress.md +++ b/Progress.md @@ -7,22 +7,22 @@ Section | Percentage | Decompiled (bytes) | Total (bytes) .init | 97.972973% | 9280 | 9472 .extab | 100.000000% | 96 | 96 .extabindex | 100.000000% | 96 | 96 -.text | 45.279246% | 1628488 | 3596544 +.text | 45.347534% | 1630944 | 3596544 .ctors | 100.000000% | 448 | 448 .dtors | 100.000000% | 32 | 32 .rodata | 100.000000% | 193856 | 193856 .data | 100.000000% | 197632 | 197632 .sdata | 100.000000% | 1408 | 1408 .sdata2 | 100.000000% | 20832 | 20832 -Total | 51.046790% | 2052424 | 4020672 +Total | 51.107875% | 2054880 | 4020672 ## Total Section | Percentage | Decompiled (bytes) | Total (bytes) ---|---|---|--- -main.dol | 51.046790% | 2052424 | 4020672 -RELs | 35.674369% | 4102668 | 11500324 -Total | 39.656553% | 6155092 | 15520996 +main.dol | 51.107875% | 2054880 | 4020672 +RELs | 35.714159% | 4107244 | 11500324 +Total | 39.701859% | 6162124 | 15520996 ## RELs @@ -74,7 +74,7 @@ d_a_demo_item | 33.863165% | 3920 | 11576 d_a_disappear | 100.000000% | 2404 | 2404 d_a_dmidna | 100.000000% | 1888 | 1888 d_a_do | 37.666220% | 14616 | 38804 -d_a_door_boss | 40.856890% | 3700 | 9056 +d_a_door_boss | 66.342756% | 6008 | 9056 d_a_door_bossL1 | 39.355114% | 7372 | 18732 d_a_door_bossL5 | 39.221790% | 4032 | 10280 d_a_door_dbdoor00 | 100.000000% | 7620 | 7620 @@ -677,7 +677,7 @@ d_a_obj_wsword | 100.000000% | 2820 | 2820 d_a_obj_yel_bag | 33.773087% | 3584 | 10612 d_a_obj_yobikusa | 39.095993% | 3356 | 8584 d_a_obj_yousei | 27.926623% | 4628 | 16572 -d_a_obj_ystone | 57.400451% | 3056 | 5324 +d_a_obj_ystone | 100.000000% | 5324 | 5324 d_a_obj_zcloth | 100.000000% | 2528 | 2528 d_a_obj_zdoor | 45.037688% | 2868 | 6368 d_a_obj_zrTurara | 65.733114% | 4788 | 7284 @@ -785,4 +785,4 @@ d_a_vrbox2 | 44.907111% | 2804 | 6244 d_a_warp_bug | 100.000000% | 2024 | 2024 d_a_ykgr | 44.400631% | 2252 | 5072 f_pc_profile_lst | 100.000000% | 28156 | 28156 -Total | 35.674369% | 4102668 | 11500324 +Total | 35.714159% | 4107244 | 11500324 diff --git a/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/CheckCreateHeap__FP10fopAc_ac_c.s b/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/CheckCreateHeap__FP10fopAc_ac_c.s deleted file mode 100644 index 0fdfef0f05b..00000000000 --- a/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/CheckCreateHeap__FP10fopAc_ac_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_8066F4C4: -/* 8066F4C4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8066F4C8 7C 08 02 A6 */ mflr r0 -/* 8066F4CC 90 01 00 14 */ stw r0, 0x14(r1) -/* 8066F4D0 48 00 00 15 */ bl CreateHeap__9daBdoor_cFv -/* 8066F4D4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8066F4D8 7C 08 03 A6 */ mtlr r0 -/* 8066F4DC 38 21 00 10 */ addi r1, r1, 0x10 -/* 8066F4E0 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/CreateInit__9daBdoor_cFv.s b/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/CreateInit__9daBdoor_cFv.s deleted file mode 100644 index 42c3900ade5..00000000000 --- a/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/CreateInit__9daBdoor_cFv.s +++ /dev/null @@ -1,65 +0,0 @@ -lbl_8066F7EC: -/* 8066F7EC 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8066F7F0 7C 08 02 A6 */ mflr r0 -/* 8066F7F4 90 01 00 24 */ stw r0, 0x24(r1) -/* 8066F7F8 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 8066F7FC 7C 7F 1B 78 */ mr r31, r3 -/* 8066F800 38 00 00 00 */ li r0, 0 -/* 8066F804 90 01 00 08 */ stw r0, 8(r1) -/* 8066F808 38 7F 05 AC */ addi r3, r31, 0x5ac -/* 8066F80C 38 9F 04 D0 */ addi r4, r31, 0x4d0 -/* 8066F810 38 BF 04 BC */ addi r5, r31, 0x4bc -/* 8066F814 7F E6 FB 78 */ mr r6, r31 -/* 8066F818 38 E0 00 01 */ li r7, 1 -/* 8066F81C 39 1F 07 84 */ addi r8, r31, 0x784 -/* 8066F820 39 3F 04 F8 */ addi r9, r31, 0x4f8 -/* 8066F824 39 40 00 00 */ li r10, 0 -/* 8066F828 4B A0 6A 21 */ bl Set__9dBgS_AcchFP4cXyzP4cXyzP10fopAc_ac_ciP12dBgS_AcchCirP4cXyzP5csXyzP5csXyz -/* 8066F82C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8066F830 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8066F834 38 63 0F 38 */ addi r3, r3, 0xf38 -/* 8066F838 80 9F 05 7C */ lwz r4, 0x57c(r31) -/* 8066F83C 7F E5 FB 78 */ mr r5, r31 -/* 8066F840 4B A0 51 C9 */ bl Regist__4dBgSFP9dBgW_BaseP10fopAc_ac_c -/* 8066F844 38 00 00 01 */ li r0, 1 -/* 8066F848 98 1F 05 81 */ stb r0, 0x581(r31) -/* 8066F84C C0 1F 05 54 */ lfs f0, 0x554(r31) -/* 8066F850 3C 60 80 67 */ lis r3, lit_3769@ha /* 0x8067091C@ha */ -/* 8066F854 C0 23 09 1C */ lfs f1, lit_3769@l(r3) /* 0x8067091C@l */ -/* 8066F858 EC 00 08 2A */ fadds f0, f0, f1 -/* 8066F85C D0 1F 05 54 */ stfs f0, 0x554(r31) -/* 8066F860 C0 1F 05 3C */ lfs f0, 0x53c(r31) -/* 8066F864 EC 00 08 2A */ fadds f0, f0, f1 -/* 8066F868 D0 1F 05 3C */ stfs f0, 0x53c(r31) -/* 8066F86C 38 00 00 20 */ li r0, 0x20 -/* 8066F870 90 1F 05 5C */ stw r0, 0x55c(r31) -/* 8066F874 7F E3 FB 78 */ mr r3, r31 -/* 8066F878 4B FF FE C1 */ bl calcMtx__9daBdoor_cFv -/* 8066F87C 80 7F 05 7C */ lwz r3, 0x57c(r31) -/* 8066F880 4B A0 C1 41 */ bl Move__4dBgWFv -/* 8066F884 7F E3 FB 78 */ mr r3, r31 -/* 8066F888 4B 9C A9 49 */ bl getSwbit__13door_param2_cFP10fopAc_ac_c -/* 8066F88C 54 64 06 3E */ clrlwi r4, r3, 0x18 -/* 8066F890 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8066F894 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8066F898 88 1F 04 E2 */ lbz r0, 0x4e2(r31) -/* 8066F89C 7C 05 07 74 */ extsb r5, r0 -/* 8066F8A0 4B 9C 5A C1 */ bl isSwitch__10dSv_info_cCFii -/* 8066F8A4 2C 03 00 00 */ cmpwi r3, 0 -/* 8066F8A8 40 82 00 10 */ bne lbl_8066F8B8 -/* 8066F8AC 38 00 00 01 */ li r0, 1 -/* 8066F8B0 98 1F 05 94 */ stb r0, 0x594(r31) -/* 8066F8B4 48 00 00 0C */ b lbl_8066F8C0 -lbl_8066F8B8: -/* 8066F8B8 38 00 00 00 */ li r0, 0 -/* 8066F8BC 98 1F 05 94 */ stb r0, 0x594(r31) -lbl_8066F8C0: -/* 8066F8C0 3C 60 80 67 */ lis r3, lit_3770@ha /* 0x80670920@ha */ -/* 8066F8C4 C0 03 09 20 */ lfs f0, lit_3770@l(r3) /* 0x80670920@l */ -/* 8066F8C8 D0 1F 05 90 */ stfs f0, 0x590(r31) -/* 8066F8CC 38 60 00 01 */ li r3, 1 -/* 8066F8D0 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 8066F8D4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8066F8D8 7C 08 03 A6 */ mtlr r0 -/* 8066F8DC 38 21 00 20 */ addi r1, r1, 0x20 -/* 8066F8E0 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/Delete__9daBdoor_cFv.s b/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/Delete__9daBdoor_cFv.s deleted file mode 100644 index dc24fc8244e..00000000000 --- a/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/Delete__9daBdoor_cFv.s +++ /dev/null @@ -1,30 +0,0 @@ -lbl_80670804: -/* 80670804 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80670808 7C 08 02 A6 */ mflr r0 -/* 8067080C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80670810 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80670814 7C 7F 1B 78 */ mr r31, r3 -/* 80670818 80 03 00 F0 */ lwz r0, 0xf0(r3) -/* 8067081C 28 00 00 00 */ cmplwi r0, 0 -/* 80670820 41 82 00 28 */ beq lbl_80670848 -/* 80670824 80 7F 05 7C */ lwz r3, 0x57c(r31) -/* 80670828 4B BF 79 AD */ bl ChkUsed__9cBgW_BgIdCFv -/* 8067082C 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 80670830 41 82 00 18 */ beq lbl_80670848 -/* 80670834 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80670838 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8067083C 38 63 0F 38 */ addi r3, r3, 0xf38 -/* 80670840 80 9F 05 7C */ lwz r4, 0x57c(r31) -/* 80670844 4B A0 3A 0D */ bl Release__4cBgSFP9dBgW_Base -lbl_80670848: -/* 80670848 7F E3 FB 78 */ mr r3, r31 -/* 8067084C 4B FF EB CD */ bl getArcName__9daBdoor_cFv -/* 80670850 7C 64 1B 78 */ mr r4, r3 -/* 80670854 38 7F 05 68 */ addi r3, r31, 0x568 -/* 80670858 4B 9B C7 B1 */ bl dComIfG_resDelete__FP30request_of_phase_process_classPCc -/* 8067085C 38 60 00 01 */ li r3, 1 -/* 80670860 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80670864 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80670868 7C 08 03 A6 */ mtlr r0 -/* 8067086C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80670870 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/actionCloseWait__9daBdoor_cFv.s b/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/actionCloseWait__9daBdoor_cFv.s deleted file mode 100644 index c4ce06b4548..00000000000 --- a/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/actionCloseWait__9daBdoor_cFv.s +++ /dev/null @@ -1,41 +0,0 @@ -lbl_80670328: -/* 80670328 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8067032C 7C 08 02 A6 */ mflr r0 -/* 80670330 90 01 00 14 */ stw r0, 0x14(r1) -/* 80670334 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80670338 7C 7F 1B 78 */ mr r31, r3 -/* 8067033C A0 03 00 F8 */ lhz r0, 0xf8(r3) -/* 80670340 28 00 00 03 */ cmplwi r0, 3 -/* 80670344 40 82 00 3C */ bne lbl_80670380 -/* 80670348 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8067034C 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80670350 38 63 4F F8 */ addi r3, r3, 0x4ff8 -/* 80670354 3C 80 80 67 */ lis r4, l_staff_name@ha /* 0x8067096C@ha */ -/* 80670358 38 84 09 6C */ addi r4, r4, l_staff_name@l /* 0x8067096C@l */ -/* 8067035C 38 A0 00 00 */ li r5, 0 -/* 80670360 38 C0 00 00 */ li r6, 0 -/* 80670364 4B 9D 77 B9 */ bl getMyStaffId__16dEvent_manager_cFPCcP10fopAc_ac_ci -/* 80670368 90 7F 05 88 */ stw r3, 0x588(r31) -/* 8067036C 7F E3 FB 78 */ mr r3, r31 -/* 80670370 4B FF F7 91 */ bl demoProc__9daBdoor_cFv -/* 80670374 38 00 00 02 */ li r0, 2 -/* 80670378 98 1F 05 81 */ stb r0, 0x581(r31) -/* 8067037C 48 00 00 2C */ b lbl_806703A8 -lbl_80670380: -/* 80670380 4B FF FF 15 */ bl checkOpen__9daBdoor_cFv -/* 80670384 2C 03 00 00 */ cmpwi r3, 0 -/* 80670388 41 82 00 20 */ beq lbl_806703A8 -/* 8067038C 38 7F 00 F4 */ addi r3, r31, 0xf4 -/* 80670390 3C 80 80 67 */ lis r4, l_door_open_demo@ha /* 0x80670954@ha */ -/* 80670394 38 84 09 54 */ addi r4, r4, l_door_open_demo@l /* 0x80670954@l */ -/* 80670398 4B 9D 30 91 */ bl setEventName__11dEvt_info_cFPc -/* 8067039C A0 1F 00 FA */ lhz r0, 0xfa(r31) -/* 806703A0 60 00 00 04 */ ori r0, r0, 4 -/* 806703A4 B0 1F 00 FA */ sth r0, 0xfa(r31) -lbl_806703A8: -/* 806703A8 38 60 00 01 */ li r3, 1 -/* 806703AC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 806703B0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 806703B4 7C 08 03 A6 */ mtlr r0 -/* 806703B8 38 21 00 10 */ addi r1, r1, 0x10 -/* 806703BC 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/actionOpen__9daBdoor_cFv.s b/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/actionOpen__9daBdoor_cFv.s deleted file mode 100644 index aa919b553c6..00000000000 --- a/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/actionOpen__9daBdoor_cFv.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_806703C0: -/* 806703C0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 806703C4 7C 08 02 A6 */ mflr r0 -/* 806703C8 90 01 00 14 */ stw r0, 0x14(r1) -/* 806703CC 4B FF F7 35 */ bl demoProc__9daBdoor_cFv -/* 806703D0 38 60 00 01 */ li r3, 1 -/* 806703D4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 806703D8 7C 08 03 A6 */ mtlr r0 -/* 806703DC 38 21 00 10 */ addi r1, r1, 0x10 -/* 806703E0 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/calcMtx__9daBdoor_cFv.s b/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/calcMtx__9daBdoor_cFv.s deleted file mode 100644 index b9e2225923d..00000000000 --- a/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/calcMtx__9daBdoor_cFv.s +++ /dev/null @@ -1,46 +0,0 @@ -lbl_8066F738: -/* 8066F738 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8066F73C 7C 08 02 A6 */ mflr r0 -/* 8066F740 90 01 00 14 */ stw r0, 0x14(r1) -/* 8066F744 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8066F748 7C 7F 1B 78 */ mr r31, r3 -/* 8066F74C 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 8066F750 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 8066F754 C0 3F 04 D0 */ lfs f1, 0x4d0(r31) -/* 8066F758 C0 5F 04 D4 */ lfs f2, 0x4d4(r31) -/* 8066F75C C0 1F 05 90 */ lfs f0, 0x590(r31) -/* 8066F760 EC 42 00 2A */ fadds f2, f2, f0 -/* 8066F764 C0 7F 04 D8 */ lfs f3, 0x4d8(r31) -/* 8066F768 4B CD 71 81 */ bl PSMTXTrans -/* 8066F76C 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 8066F770 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 8066F774 A8 9F 04 B6 */ lha r4, 0x4b6(r31) -/* 8066F778 4B 99 CC BD */ bl mDoMtx_YrotM__FPA4_fs -/* 8066F77C 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 8066F780 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 8066F784 80 9F 05 70 */ lwz r4, 0x570(r31) -/* 8066F788 38 84 00 24 */ addi r4, r4, 0x24 -/* 8066F78C 4B CD 6D 25 */ bl PSMTXCopy -/* 8066F790 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 8066F794 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 8066F798 C0 3F 04 D0 */ lfs f1, 0x4d0(r31) -/* 8066F79C 3C 80 80 67 */ lis r4, lit_3755@ha /* 0x80670918@ha */ -/* 8066F7A0 C0 44 09 18 */ lfs f2, lit_3755@l(r4) /* 0x80670918@l */ -/* 8066F7A4 C0 1F 04 D4 */ lfs f0, 0x4d4(r31) -/* 8066F7A8 EC 42 00 2A */ fadds f2, f2, f0 -/* 8066F7AC C0 7F 04 D8 */ lfs f3, 0x4d8(r31) -/* 8066F7B0 4B CD 71 39 */ bl PSMTXTrans -/* 8066F7B4 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 8066F7B8 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 8066F7BC A8 9F 04 B6 */ lha r4, 0x4b6(r31) -/* 8066F7C0 4B 99 CC 75 */ bl mDoMtx_YrotM__FPA4_fs -/* 8066F7C4 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 8066F7C8 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 8066F7CC 80 9F 05 74 */ lwz r4, 0x574(r31) -/* 8066F7D0 38 84 00 24 */ addi r4, r4, 0x24 -/* 8066F7D4 4B CD 6C DD */ bl PSMTXCopy -/* 8066F7D8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8066F7DC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8066F7E0 7C 08 03 A6 */ mtlr r0 -/* 8066F7E4 38 21 00 10 */ addi r1, r1, 0x10 -/* 8066F7E8 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/checkArea__9daBdoor_cFv.s b/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/checkArea__9daBdoor_cFv.s deleted file mode 100644 index 862c6289c7d..00000000000 --- a/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/checkArea__9daBdoor_cFv.s +++ /dev/null @@ -1,80 +0,0 @@ -lbl_806700C4: -/* 806700C4 94 21 FF C0 */ stwu r1, -0x40(r1) -/* 806700C8 7C 08 02 A6 */ mflr r0 -/* 806700CC 90 01 00 44 */ stw r0, 0x44(r1) -/* 806700D0 93 E1 00 3C */ stw r31, 0x3c(r1) -/* 806700D4 93 C1 00 38 */ stw r30, 0x38(r1) -/* 806700D8 7C 7E 1B 78 */ mr r30, r3 -/* 806700DC 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 806700E0 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 806700E4 83 E3 5D AC */ lwz r31, 0x5dac(r3) -/* 806700E8 38 61 00 08 */ addi r3, r1, 8 -/* 806700EC 38 9F 04 D0 */ addi r4, r31, 0x4d0 -/* 806700F0 38 BE 04 D0 */ addi r5, r30, 0x4d0 -/* 806700F4 4B BF 6A 41 */ bl __mi__4cXyzCFRC3Vec -/* 806700F8 C0 01 00 08 */ lfs f0, 8(r1) -/* 806700FC D0 01 00 14 */ stfs f0, 0x14(r1) -/* 80670100 C0 01 00 0C */ lfs f0, 0xc(r1) -/* 80670104 D0 01 00 18 */ stfs f0, 0x18(r1) -/* 80670108 C0 01 00 10 */ lfs f0, 0x10(r1) -/* 8067010C D0 01 00 1C */ stfs f0, 0x1c(r1) -/* 80670110 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 80670114 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 80670118 A8 1E 04 DE */ lha r0, 0x4de(r30) -/* 8067011C 7C 00 00 D0 */ neg r0, r0 -/* 80670120 7C 04 07 34 */ extsh r4, r0 -/* 80670124 4B 99 C2 B9 */ bl mDoMtx_YrotS__FPA4_fs -/* 80670128 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 8067012C 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 80670130 38 81 00 14 */ addi r4, r1, 0x14 -/* 80670134 7C 85 23 78 */ mr r5, r4 -/* 80670138 4B CD 6C 35 */ bl PSMTXMultVec -/* 8067013C C0 01 00 14 */ lfs f0, 0x14(r1) -/* 80670140 FC 00 02 10 */ fabs f0, f0 -/* 80670144 FC 20 00 18 */ frsp f1, f0 -/* 80670148 3C 60 80 67 */ lis r3, lit_4028@ha /* 0x80670940@ha */ -/* 8067014C C0 03 09 40 */ lfs f0, lit_4028@l(r3) /* 0x80670940@l */ -/* 80670150 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 80670154 40 81 00 0C */ ble lbl_80670160 -/* 80670158 38 60 00 00 */ li r3, 0 -/* 8067015C 48 00 00 80 */ b lbl_806701DC -lbl_80670160: -/* 80670160 C0 01 00 1C */ lfs f0, 0x1c(r1) -/* 80670164 FC 00 02 10 */ fabs f0, f0 -/* 80670168 FC 20 00 18 */ frsp f1, f0 -/* 8067016C 3C 60 80 67 */ lis r3, lit_4029@ha /* 0x80670944@ha */ -/* 80670170 C0 03 09 44 */ lfs f0, lit_4029@l(r3) /* 0x80670944@l */ -/* 80670174 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 80670178 40 81 00 0C */ ble lbl_80670184 -/* 8067017C 38 60 00 00 */ li r3, 0 -/* 80670180 48 00 00 5C */ b lbl_806701DC -lbl_80670184: -/* 80670184 A8 9F 04 DE */ lha r4, 0x4de(r31) -/* 80670188 A8 7E 04 DE */ lha r3, 0x4de(r30) -/* 8067018C 38 03 80 01 */ addi r0, r3, -32767 -/* 80670190 7C 04 00 50 */ subf r0, r4, r0 -/* 80670194 3C 60 80 67 */ lis r3, lit_4031@ha /* 0x8067094C@ha */ -/* 80670198 C8 23 09 4C */ lfd f1, lit_4031@l(r3) /* 0x8067094C@l */ -/* 8067019C 6C 00 80 00 */ xoris r0, r0, 0x8000 -/* 806701A0 90 01 00 24 */ stw r0, 0x24(r1) -/* 806701A4 3C 00 43 30 */ lis r0, 0x4330 -/* 806701A8 90 01 00 20 */ stw r0, 0x20(r1) -/* 806701AC C8 01 00 20 */ lfd f0, 0x20(r1) -/* 806701B0 FC 00 08 28 */ fsub f0, f0, f1 -/* 806701B4 FC 00 02 10 */ fabs f0, f0 -/* 806701B8 FC 00 00 1E */ fctiwz f0, f0 -/* 806701BC D8 01 00 28 */ stfd f0, 0x28(r1) -/* 806701C0 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 806701C4 7C 05 07 34 */ extsh r5, r0 -/* 806701C8 38 00 40 00 */ li r0, 0x4000 -/* 806701CC 7C 04 FE 70 */ srawi r4, r0, 0x1f -/* 806701D0 54 A3 0F FE */ srwi r3, r5, 0x1f -/* 806701D4 7C 05 00 10 */ subfc r0, r5, r0 -/* 806701D8 7C 64 19 14 */ adde r3, r4, r3 -lbl_806701DC: -/* 806701DC 83 E1 00 3C */ lwz r31, 0x3c(r1) -/* 806701E0 83 C1 00 38 */ lwz r30, 0x38(r1) -/* 806701E4 80 01 00 44 */ lwz r0, 0x44(r1) -/* 806701E8 7C 08 03 A6 */ mtlr r0 -/* 806701EC 38 21 00 40 */ addi r1, r1, 0x40 -/* 806701F0 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/checkDraw__9daBdoor_cFv.s b/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/checkDraw__9daBdoor_cFv.s deleted file mode 100644 index 1466fb7778b..00000000000 --- a/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/checkDraw__9daBdoor_cFv.s +++ /dev/null @@ -1,17 +0,0 @@ -lbl_80670664: -/* 80670664 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80670668 7C 08 02 A6 */ mflr r0 -/* 8067066C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80670670 7C 64 1B 78 */ mr r4, r3 -/* 80670674 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80670678 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8067067C 38 63 4E C4 */ addi r3, r3, 0x4ec4 -/* 80670680 88 04 04 E2 */ lbz r0, 0x4e2(r4) -/* 80670684 7C 04 07 74 */ extsb r4, r0 -/* 80670688 4B 9B 3E 61 */ bl checkRoomDisp__20dStage_roomControl_cCFi -/* 8067068C 30 03 FF FF */ addic r0, r3, -1 -/* 80670690 7C 60 19 10 */ subfe r3, r0, r3 -/* 80670694 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80670698 7C 08 03 A6 */ mtlr r0 -/* 8067069C 38 21 00 10 */ addi r1, r1, 0x10 -/* 806706A0 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/checkFront__9daBdoor_cFv.s b/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/checkFront__9daBdoor_cFv.s deleted file mode 100644 index 830144f0aff..00000000000 --- a/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/checkFront__9daBdoor_cFv.s +++ /dev/null @@ -1,41 +0,0 @@ -lbl_806701F4: -/* 806701F4 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 806701F8 7C 08 02 A6 */ mflr r0 -/* 806701FC 90 01 00 34 */ stw r0, 0x34(r1) -/* 80670200 93 E1 00 2C */ stw r31, 0x2c(r1) -/* 80670204 7C 7F 1B 78 */ mr r31, r3 -/* 80670208 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8067020C 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80670210 80 83 5D AC */ lwz r4, 0x5dac(r3) -/* 80670214 38 61 00 08 */ addi r3, r1, 8 -/* 80670218 38 84 04 D0 */ addi r4, r4, 0x4d0 -/* 8067021C 38 BF 04 D0 */ addi r5, r31, 0x4d0 -/* 80670220 4B BF 69 15 */ bl __mi__4cXyzCFRC3Vec -/* 80670224 C0 01 00 08 */ lfs f0, 8(r1) -/* 80670228 D0 01 00 14 */ stfs f0, 0x14(r1) -/* 8067022C C0 01 00 0C */ lfs f0, 0xc(r1) -/* 80670230 D0 01 00 18 */ stfs f0, 0x18(r1) -/* 80670234 C0 01 00 10 */ lfs f0, 0x10(r1) -/* 80670238 D0 01 00 1C */ stfs f0, 0x1c(r1) -/* 8067023C 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 80670240 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 80670244 A8 1F 04 DE */ lha r0, 0x4de(r31) -/* 80670248 7C 00 00 D0 */ neg r0, r0 -/* 8067024C 7C 04 07 34 */ extsh r4, r0 -/* 80670250 4B 99 C1 8D */ bl mDoMtx_YrotS__FPA4_fs -/* 80670254 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 80670258 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 8067025C 38 81 00 14 */ addi r4, r1, 0x14 -/* 80670260 7C 85 23 78 */ mr r5, r4 -/* 80670264 4B CD 6B 09 */ bl PSMTXMultVec -/* 80670268 C0 21 00 1C */ lfs f1, 0x1c(r1) -/* 8067026C 3C 60 80 67 */ lis r3, lit_3770@ha /* 0x80670920@ha */ -/* 80670270 C0 03 09 20 */ lfs f0, lit_3770@l(r3) /* 0x80670920@l */ -/* 80670274 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 80670278 7C 00 00 26 */ mfcr r0 -/* 8067027C 54 03 17 FE */ rlwinm r3, r0, 2, 0x1f, 0x1f -/* 80670280 83 E1 00 2C */ lwz r31, 0x2c(r1) -/* 80670284 80 01 00 34 */ lwz r0, 0x34(r1) -/* 80670288 7C 08 03 A6 */ mtlr r0 -/* 8067028C 38 21 00 30 */ addi r1, r1, 0x30 -/* 80670290 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/daBdoor_Create__FP10fopAc_ac_c.s b/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/daBdoor_Create__FP10fopAc_ac_c.s deleted file mode 100644 index 2bdf03760e2..00000000000 --- a/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/daBdoor_Create__FP10fopAc_ac_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_806708DC: -/* 806708DC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 806708E0 7C 08 02 A6 */ mflr r0 -/* 806708E4 90 01 00 14 */ stw r0, 0x14(r1) -/* 806708E8 4B FF EF FD */ bl create__9daBdoor_cFv -/* 806708EC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 806708F0 7C 08 03 A6 */ mtlr r0 -/* 806708F4 38 21 00 10 */ addi r1, r1, 0x10 -/* 806708F8 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/daBdoor_Delete__FP9daBdoor_c.s b/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/daBdoor_Delete__FP9daBdoor_c.s deleted file mode 100644 index 5e2bb1c7b45..00000000000 --- a/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/daBdoor_Delete__FP9daBdoor_c.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_806708B8: -/* 806708B8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 806708BC 7C 08 02 A6 */ mflr r0 -/* 806708C0 90 01 00 14 */ stw r0, 0x14(r1) -/* 806708C4 4B FF FF 41 */ bl Delete__9daBdoor_cFv -/* 806708C8 38 60 00 01 */ li r3, 1 -/* 806708CC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 806708D0 7C 08 03 A6 */ mtlr r0 -/* 806708D4 38 21 00 10 */ addi r1, r1, 0x10 -/* 806708D8 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/daBdoor_Draw__FP9daBdoor_c.s b/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/daBdoor_Draw__FP9daBdoor_c.s deleted file mode 100644 index 57e95522a04..00000000000 --- a/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/daBdoor_Draw__FP9daBdoor_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80670874: -/* 80670874 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80670878 7C 08 02 A6 */ mflr r0 -/* 8067087C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80670880 4B FF FE 25 */ bl draw__9daBdoor_cFv -/* 80670884 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80670888 7C 08 03 A6 */ mtlr r0 -/* 8067088C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80670890 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/daBdoor_Execute__FP9daBdoor_c.s b/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/daBdoor_Execute__FP9daBdoor_c.s deleted file mode 100644 index 73743ecb9c7..00000000000 --- a/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/daBdoor_Execute__FP9daBdoor_c.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_80670894: -/* 80670894 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80670898 7C 08 02 A6 */ mflr r0 -/* 8067089C 90 01 00 14 */ stw r0, 0x14(r1) -/* 806708A0 4B FF FC A5 */ bl execute__9daBdoor_cFv -/* 806708A4 38 60 00 01 */ li r3, 1 -/* 806708A8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 806708AC 7C 08 03 A6 */ mtlr r0 -/* 806708B0 38 21 00 10 */ addi r1, r1, 0x10 -/* 806708B4 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/draw__9daBdoor_cFv.s b/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/draw__9daBdoor_cFv.s deleted file mode 100644 index b146714084a..00000000000 --- a/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/draw__9daBdoor_cFv.s +++ /dev/null @@ -1,95 +0,0 @@ -lbl_806706A4: -/* 806706A4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 806706A8 7C 08 02 A6 */ mflr r0 -/* 806706AC 90 01 00 14 */ stw r0, 0x14(r1) -/* 806706B0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 806706B4 93 C1 00 08 */ stw r30, 8(r1) -/* 806706B8 7C 7F 1B 78 */ mr r31, r3 -/* 806706BC 4B FF FF A9 */ bl checkDraw__9daBdoor_cFv -/* 806706C0 7C 7E 1B 79 */ or. r30, r3, r3 -/* 806706C4 40 82 00 34 */ bne lbl_806706F8 -/* 806706C8 88 1F 05 80 */ lbz r0, 0x580(r31) -/* 806706CC 28 00 00 00 */ cmplwi r0, 0 -/* 806706D0 40 82 00 20 */ bne lbl_806706F0 -/* 806706D4 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 806706D8 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 806706DC 38 63 0F 38 */ addi r3, r3, 0xf38 -/* 806706E0 80 9F 05 7C */ lwz r4, 0x57c(r31) -/* 806706E4 4B A0 3B 6D */ bl Release__4cBgSFP9dBgW_Base -/* 806706E8 38 00 00 01 */ li r0, 1 -/* 806706EC 98 1F 05 80 */ stb r0, 0x580(r31) -lbl_806706F0: -/* 806706F0 38 60 00 01 */ li r3, 1 -/* 806706F4 48 00 00 F8 */ b lbl_806707EC -lbl_806706F8: -/* 806706F8 88 1F 05 80 */ lbz r0, 0x580(r31) -/* 806706FC 28 00 00 00 */ cmplwi r0, 0 -/* 80670700 41 82 00 24 */ beq lbl_80670724 -/* 80670704 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80670708 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8067070C 38 63 0F 38 */ addi r3, r3, 0xf38 -/* 80670710 80 9F 05 7C */ lwz r4, 0x57c(r31) -/* 80670714 7F E5 FB 78 */ mr r5, r31 -/* 80670718 4B A0 42 F1 */ bl Regist__4dBgSFP9dBgW_BaseP10fopAc_ac_c -/* 8067071C 38 00 00 00 */ li r0, 0 -/* 80670720 98 1F 05 80 */ stb r0, 0x580(r31) -lbl_80670724: -/* 80670724 2C 1E 00 00 */ cmpwi r30, 0 -/* 80670728 40 82 00 10 */ bne lbl_80670738 -/* 8067072C 80 1F 04 9C */ lwz r0, 0x49c(r31) -/* 80670730 54 00 00 3E */ slwi r0, r0, 0 -/* 80670734 90 1F 04 9C */ stw r0, 0x49c(r31) -lbl_80670738: -/* 80670738 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */ -/* 8067073C 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */ -/* 80670740 38 80 00 10 */ li r4, 0x10 -/* 80670744 38 BF 04 D0 */ addi r5, r31, 0x4d0 -/* 80670748 38 DF 01 0C */ addi r6, r31, 0x10c -/* 8067074C 4B B3 30 79 */ bl settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c -/* 80670750 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */ -/* 80670754 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */ -/* 80670758 80 9F 05 70 */ lwz r4, 0x570(r31) -/* 8067075C 80 84 00 04 */ lwz r4, 4(r4) -/* 80670760 38 BF 01 0C */ addi r5, r31, 0x10c -/* 80670764 4B B3 46 3D */ bl setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c -/* 80670768 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8067076C 38 83 61 C0 */ addi r4, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80670770 80 04 5F 70 */ lwz r0, 0x5f70(r4) -/* 80670774 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 80670778 3B C3 4A C8 */ addi r30, r3, j3dSys@l /* 0x80434AC8@l */ -/* 8067077C 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80670780 80 04 5F 74 */ lwz r0, 0x5f74(r4) -/* 80670784 90 1E 00 4C */ stw r0, 0x4c(r30) -/* 80670788 80 7F 05 70 */ lwz r3, 0x570(r31) -/* 8067078C 4B 99 D5 39 */ bl mDoExt_modelUpdateDL__FP8J3DModel -/* 80670790 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80670794 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80670798 80 03 5F 80 */ lwz r0, 0x5f80(r3) -/* 8067079C 90 1E 00 48 */ stw r0, 0x48(r30) -/* 806707A0 80 03 5F 84 */ lwz r0, 0x5f84(r3) -/* 806707A4 90 1E 00 4C */ stw r0, 0x4c(r30) -/* 806707A8 88 1F 05 94 */ lbz r0, 0x594(r31) -/* 806707AC 28 00 00 00 */ cmplwi r0, 0 -/* 806707B0 41 82 00 38 */ beq lbl_806707E8 -/* 806707B4 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */ -/* 806707B8 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */ -/* 806707BC 80 9F 05 74 */ lwz r4, 0x574(r31) -/* 806707C0 80 84 00 04 */ lwz r4, 4(r4) -/* 806707C4 38 BF 01 0C */ addi r5, r31, 0x10c -/* 806707C8 4B B3 45 D9 */ bl setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c -/* 806707CC 80 7F 05 74 */ lwz r3, 0x574(r31) -/* 806707D0 80 83 00 04 */ lwz r4, 4(r3) -/* 806707D4 80 7F 05 78 */ lwz r3, 0x578(r31) -/* 806707D8 C0 23 00 10 */ lfs f1, 0x10(r3) -/* 806707DC 4B 99 D1 F1 */ bl entry__13mDoExt_bckAnmFP12J3DModelDataf -/* 806707E0 80 7F 05 74 */ lwz r3, 0x574(r31) -/* 806707E4 4B 99 D4 E1 */ bl mDoExt_modelUpdateDL__FP8J3DModel -lbl_806707E8: -/* 806707E8 38 60 00 01 */ li r3, 1 -lbl_806707EC: -/* 806707EC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 806707F0 83 C1 00 08 */ lwz r30, 8(r1) -/* 806707F4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 806707F8 7C 08 03 A6 */ mtlr r0 -/* 806707FC 38 21 00 10 */ addi r1, r1, 0x10 -/* 80670800 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/execute__9daBdoor_cFv.s b/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/execute__9daBdoor_cFv.s deleted file mode 100644 index bf87ba5a7fc..00000000000 --- a/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/execute__9daBdoor_cFv.s +++ /dev/null @@ -1,76 +0,0 @@ -lbl_80670544: -/* 80670544 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80670548 7C 08 02 A6 */ mflr r0 -/* 8067054C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80670550 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80670554 7C 7F 1B 78 */ mr r31, r3 -/* 80670558 3C 60 80 67 */ lis r3, cNullVec__6Z2Calc@ha /* 0x80670A20@ha */ -/* 8067055C 38 C3 0A 20 */ addi r6, r3, cNullVec__6Z2Calc@l /* 0x80670A20@l */ -/* 80670560 3C 60 80 67 */ lis r3, data_80670BB0@ha /* 0x80670BB0@ha */ -/* 80670564 38 A3 0B B0 */ addi r5, r3, data_80670BB0@l /* 0x80670BB0@l */ -/* 80670568 88 05 00 00 */ lbz r0, 0(r5) -/* 8067056C 7C 00 07 75 */ extsb. r0, r0 -/* 80670570 40 82 00 70 */ bne lbl_806705E0 -/* 80670574 80 66 00 A4 */ lwz r3, 0xa4(r6) -/* 80670578 80 06 00 A8 */ lwz r0, 0xa8(r6) -/* 8067057C 90 66 00 D4 */ stw r3, 0xd4(r6) -/* 80670580 90 06 00 D8 */ stw r0, 0xd8(r6) -/* 80670584 80 06 00 AC */ lwz r0, 0xac(r6) -/* 80670588 90 06 00 DC */ stw r0, 0xdc(r6) -/* 8067058C 38 86 00 D4 */ addi r4, r6, 0xd4 -/* 80670590 80 66 00 B0 */ lwz r3, 0xb0(r6) -/* 80670594 80 06 00 B4 */ lwz r0, 0xb4(r6) -/* 80670598 90 64 00 0C */ stw r3, 0xc(r4) -/* 8067059C 90 04 00 10 */ stw r0, 0x10(r4) -/* 806705A0 80 06 00 B8 */ lwz r0, 0xb8(r6) -/* 806705A4 90 04 00 14 */ stw r0, 0x14(r4) -/* 806705A8 80 66 00 BC */ lwz r3, 0xbc(r6) -/* 806705AC 80 06 00 C0 */ lwz r0, 0xc0(r6) -/* 806705B0 90 64 00 18 */ stw r3, 0x18(r4) -/* 806705B4 90 04 00 1C */ stw r0, 0x1c(r4) -/* 806705B8 80 06 00 C4 */ lwz r0, 0xc4(r6) -/* 806705BC 90 04 00 20 */ stw r0, 0x20(r4) -/* 806705C0 80 66 00 C8 */ lwz r3, 0xc8(r6) -/* 806705C4 80 06 00 CC */ lwz r0, 0xcc(r6) -/* 806705C8 90 64 00 24 */ stw r3, 0x24(r4) -/* 806705CC 90 04 00 28 */ stw r0, 0x28(r4) -/* 806705D0 80 06 00 D0 */ lwz r0, 0xd0(r6) -/* 806705D4 90 04 00 2C */ stw r0, 0x2c(r4) -/* 806705D8 38 00 00 01 */ li r0, 1 -/* 806705DC 98 05 00 00 */ stb r0, 0(r5) -lbl_806705E0: -/* 806705E0 80 1F 04 9C */ lwz r0, 0x49c(r31) -/* 806705E4 54 00 04 E7 */ rlwinm. r0, r0, 0, 0x13, 0x13 -/* 806705E8 41 82 00 34 */ beq lbl_8067061C -/* 806705EC 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 806705F0 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 806705F4 38 63 4F F8 */ addi r3, r3, 0x4ff8 -/* 806705F8 3C 80 80 67 */ lis r4, l_staff_name@ha /* 0x8067096C@ha */ -/* 806705FC 38 84 09 6C */ addi r4, r4, l_staff_name@l /* 0x8067096C@l */ -/* 80670600 38 A0 00 00 */ li r5, 0 -/* 80670604 38 C0 00 00 */ li r6, 0 -/* 80670608 4B 9D 75 15 */ bl getMyStaffId__16dEvent_manager_cFPCcP10fopAc_ac_ci -/* 8067060C 90 7F 05 88 */ stw r3, 0x588(r31) -/* 80670610 7F E3 FB 78 */ mr r3, r31 -/* 80670614 4B FF F4 ED */ bl demoProc__9daBdoor_cFv -/* 80670618 48 00 00 20 */ b lbl_80670638 -lbl_8067061C: -/* 8067061C 7F E3 FB 78 */ mr r3, r31 -/* 80670620 88 1F 05 81 */ lbz r0, 0x581(r31) -/* 80670624 1C 00 00 0C */ mulli r0, r0, 0xc -/* 80670628 39 86 00 D4 */ addi r12, r6, 0xd4 -/* 8067062C 7D 8C 02 14 */ add r12, r12, r0 -/* 80670630 4B CF 1A 55 */ bl __ptmf_scall -/* 80670634 60 00 00 00 */ nop -lbl_80670638: -/* 80670638 38 7F 05 AC */ addi r3, r31, 0x5ac -/* 8067063C 3C 80 80 40 */ lis r4, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80670640 38 84 61 C0 */ addi r4, r4, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80670644 38 84 0F 38 */ addi r4, r4, 0xf38 -/* 80670648 4B A0 64 65 */ bl CrrPos__9dBgS_AcchFR4dBgS -/* 8067064C 38 60 00 01 */ li r3, 1 -/* 80670650 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80670654 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80670658 7C 08 03 A6 */ mtlr r0 -/* 8067065C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80670660 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/getArcName__9daBdoor_cFv.s b/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/getArcName__9daBdoor_cFv.s deleted file mode 100644 index 200d5f5cf4f..00000000000 --- a/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/getArcName__9daBdoor_cFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_8066F418: -/* 8066F418 3C 60 80 67 */ lis r3, d_a_door_boss__stringBase0@ha /* 0x80670984@ha */ -/* 8066F41C 38 63 09 84 */ addi r3, r3, d_a_door_boss__stringBase0@l /* 0x80670984@l */ -/* 8066F420 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/getBmd2__9daBdoor_cFv.s b/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/getBmd2__9daBdoor_cFv.s deleted file mode 100644 index c2c7b69e425..00000000000 --- a/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/getBmd2__9daBdoor_cFv.s +++ /dev/null @@ -1,5 +0,0 @@ -lbl_8066F444: -/* 8066F444 3C 60 80 67 */ lis r3, d_a_door_boss__stringBase0@ha /* 0x80670984@ha */ -/* 8066F448 38 63 09 84 */ addi r3, r3, d_a_door_boss__stringBase0@l /* 0x80670984@l */ -/* 8066F44C 38 63 00 21 */ addi r3, r3, 0x21 -/* 8066F450 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/getBmd__9daBdoor_cFv.s b/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/getBmd__9daBdoor_cFv.s deleted file mode 100644 index 07596e844d6..00000000000 --- a/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/getBmd__9daBdoor_cFv.s +++ /dev/null @@ -1,5 +0,0 @@ -lbl_8066F424: -/* 8066F424 3C 60 80 67 */ lis r3, d_a_door_boss__stringBase0@ha /* 0x80670984@ha */ -/* 8066F428 38 63 09 84 */ addi r3, r3, d_a_door_boss__stringBase0@l /* 0x80670984@l */ -/* 8066F42C 38 63 00 09 */ addi r3, r3, 9 -/* 8066F430 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/getDemoAction__9daBdoor_cFv.s b/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/getDemoAction__9daBdoor_cFv.s deleted file mode 100644 index 779d474cb11..00000000000 --- a/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/getDemoAction__9daBdoor_cFv.s +++ /dev/null @@ -1,19 +0,0 @@ -lbl_8066FAB8: -/* 8066FAB8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8066FABC 7C 08 02 A6 */ mflr r0 -/* 8066FAC0 90 01 00 14 */ stw r0, 0x14(r1) -/* 8066FAC4 7C 64 1B 78 */ mr r4, r3 -/* 8066FAC8 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8066FACC 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8066FAD0 38 63 4F F8 */ addi r3, r3, 0x4ff8 -/* 8066FAD4 80 84 05 88 */ lwz r4, 0x588(r4) -/* 8066FAD8 3C A0 80 67 */ lis r5, action_table@ha /* 0x80670A40@ha */ -/* 8066FADC 38 A5 0A 40 */ addi r5, r5, action_table@l /* 0x80670A40@l */ -/* 8066FAE0 38 C0 00 0B */ li r6, 0xb -/* 8066FAE4 38 E0 00 00 */ li r7, 0 -/* 8066FAE8 39 00 00 00 */ li r8, 0 -/* 8066FAEC 4B 9D 83 25 */ bl getMyActIdx__16dEvent_manager_cFiPCPCciii -/* 8066FAF0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8066FAF4 7C 08 03 A6 */ mtlr r0 -/* 8066FAF8 38 21 00 10 */ addi r1, r1, 0x10 -/* 8066FAFC 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/getDoorModelData__9daBdoor_cFv.s b/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/getDoorModelData__9daBdoor_cFv.s deleted file mode 100644 index 8408d0eecd1..00000000000 --- a/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/getDoorModelData__9daBdoor_cFv.s +++ /dev/null @@ -1,30 +0,0 @@ -lbl_8066F454: -/* 8066F454 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8066F458 7C 08 02 A6 */ mflr r0 -/* 8066F45C 90 01 00 14 */ stw r0, 0x14(r1) -/* 8066F460 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8066F464 93 C1 00 08 */ stw r30, 8(r1) -/* 8066F468 7C 7E 1B 78 */ mr r30, r3 -/* 8066F46C 4B FF FF D9 */ bl getBmd2__9daBdoor_cFv -/* 8066F470 4B 9B FF C5 */ bl dComIfG_getStageRes__FPCc -/* 8066F474 28 03 00 00 */ cmplwi r3, 0 -/* 8066F478 40 82 00 34 */ bne lbl_8066F4AC -/* 8066F47C 7F C3 F3 78 */ mr r3, r30 -/* 8066F480 4B FF FF A5 */ bl getBmd__9daBdoor_cFv -/* 8066F484 7C 7F 1B 78 */ mr r31, r3 -/* 8066F488 7F C3 F3 78 */ mr r3, r30 -/* 8066F48C 4B FF FF 8D */ bl getArcName__9daBdoor_cFv -/* 8066F490 7F E4 FB 78 */ mr r4, r31 -/* 8066F494 3C A0 80 40 */ lis r5, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8066F498 38 A5 61 C0 */ addi r5, r5, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8066F49C 3C A5 00 02 */ addis r5, r5, 2 -/* 8066F4A0 38 C0 00 80 */ li r6, 0x80 -/* 8066F4A4 38 A5 C2 F8 */ addi r5, r5, -15624 -/* 8066F4A8 4B 9C CE D5 */ bl getRes__14dRes_control_cFPCcPCcP11dRes_info_ci -lbl_8066F4AC: -/* 8066F4AC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8066F4B0 83 C1 00 08 */ lwz r30, 8(r1) -/* 8066F4B4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8066F4B8 7C 08 03 A6 */ mtlr r0 -/* 8066F4BC 38 21 00 10 */ addi r1, r1, 0x10 -/* 8066F4C0 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/getDzb__9daBdoor_cFv.s b/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/getDzb__9daBdoor_cFv.s deleted file mode 100644 index 48f06de539a..00000000000 --- a/asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/getDzb__9daBdoor_cFv.s +++ /dev/null @@ -1,5 +0,0 @@ -lbl_8066F434: -/* 8066F434 3C 60 80 67 */ lis r3, d_a_door_boss__stringBase0@ha /* 0x80670984@ha */ -/* 8066F438 38 63 09 84 */ addi r3, r3, d_a_door_boss__stringBase0@l /* 0x80670984@l */ -/* 8066F43C 38 63 00 16 */ addi r3, r3, 0x16 -/* 8066F440 4E 80 00 20 */ blr diff --git a/include/SSystem/SComponent/c_xyz.h b/include/SSystem/SComponent/c_xyz.h index 0cf07d2a43b..4ebe1f93588 100644 --- a/include/SSystem/SComponent/c_xyz.h +++ b/include/SSystem/SComponent/c_xyz.h @@ -137,6 +137,7 @@ struct cXyz : Vec { f32 getDotProduct(const Vec& other) const { return VECDotProduct(this, &other); } f32 inprod(const Vec& other) const { return getDotProduct(other); } + f32 inprodXZ(const Vec& other) const { return x * other.x + z * other.z; } }; #endif /* C_XYZ_H */ diff --git a/include/rel/d/a/door/d_a_door_boss/d_a_door_boss.h b/include/rel/d/a/door/d_a_door_boss/d_a_door_boss.h index 3f7c7fd8751..d24b27fe4d1 100644 --- a/include/rel/d/a/door/d_a_door_boss/d_a_door_boss.h +++ b/include/rel/d/a/door/d_a_door_boss/d_a_door_boss.h @@ -1,6 +1,65 @@ #ifndef D_A_DOOR_BOSS_H #define D_A_DOOR_BOSS_H -#include "dolphin/types.h" +#include "SSystem/SComponent/c_phase.h" +#include "f_op/f_op_actor.h" +#include "d/bg/d_bg_s_acch.h" +#include "d/bg/d_bg_w.h" + +class daBdoor_c : public fopAc_ac_c { +public: + enum Action { + /* 0 */ ACT_WAIT, + /* 1 */ ACT_CLOSE_WAIT, + /* 2 */ ACT_OPEN, + /* 3 */ ACT_END, + }; + + /* 8066F418 */ char* getArcName(); + /* 8066F424 */ char* getBmd(); + /* 8066F434 */ char* getDzb(); + /* 8066F444 */ char* getBmd2(); + /* 8066F454 */ J3DModelData* getDoorModelData(); + /* 8066F4E4 */ int CreateHeap(); + /* 8066F738 */ void calcMtx(); + /* 8066F7EC */ int CreateInit(); + /* 8066F8E4 */ cPhs__Step create(); + /* 8066FAB8 */ int getDemoAction(); + /* 8066FB00 */ void demoProc(); + /* 8066FF04 */ void calcGoal(cXyz*, int); + /* 8067002C */ void smokeInit(); + /* 806700C4 */ BOOL checkArea(); + /* 806701F4 */ BOOL checkFront(); + /* 80670294 */ BOOL checkOpen(); + /* 80670320 */ BOOL actionWait(); + /* 80670328 */ BOOL actionCloseWait(); + /* 806703C0 */ BOOL actionOpen(); + /* 806703E4 */ BOOL actionEnd(); + /* 80670544 */ int execute(); + /* 80670664 */ BOOL checkDraw(); + /* 806706A4 */ int draw(); + /* 80670804 */ int Delete(); + + void setAction(u8 i_action) { mAction = i_action; } + + /* 0x568 */ request_of_phase_process_class mPhaseReq; + /* 0x570 */ J3DModel* mpDoorModel; + /* 0x574 */ J3DModel* mpLockModel; + /* 0x578 */ mDoExt_bckAnm* mpLockAnm; + /* 0x57C */ dBgW* mpBgW; + /* 0x580 */ bool mBgInactive; + /* 0x581 */ u8 mAction; + /* 0x582 */ u8 field_0x582[6]; + /* 0x588 */ u32 mStaffID; + /* 0x58C */ s16 field_0x58c; + /* 0x590 */ f32 mOffsetY; + /* 0x594 */ bool mLocked; + /* 0x598 */ cXyz mParticlePos; + /* 0x5A4 */ csXyz mParticleAngle; + /* 0x5AC */ dBgS_ObjAcch mAcch; + /* 0x784 */ dBgS_AcchCir mAcchCir; +}; + +STATIC_ASSERT(sizeof(daBdoor_c) == 0x7C4); #endif /* D_A_DOOR_BOSS_H */ diff --git a/rel/d/a/door/d_a_door_boss/Makefile b/rel/d/a/door/d_a_door_boss/Makefile index 7fd27f1168d..1f1c1ac381d 100644 --- a/rel/d/a/door/d_a_door_boss/Makefile +++ b/rel/d/a/door/d_a_door_boss/Makefile @@ -8,12 +8,10 @@ M166_MAP := $(BUILD_DIR)/rel/d/a/door/d_a_door_boss.map M166_CPP_FILES := \ rel/executor.cpp \ - rel/d/a/door/d_a_door_boss/unknown_translation_unit_bss.cpp \ rel/d/a/door/d_a_door_boss/d_a_door_boss.cpp \ M166_O_FILES := \ $(BUILD_DIR)/rel/executor.o \ - $(BUILD_DIR)/rel/d/a/door/d_a_door_boss/unknown_translation_unit_bss.o \ $(BUILD_DIR)/rel/d/a/door/d_a_door_boss/d_a_door_boss.o \ M166_LIBS := \ diff --git a/rel/d/a/door/d_a_door_boss/d_a_door_boss.cpp b/rel/d/a/door/d_a_door_boss/d_a_door_boss.cpp index adbcb63b208..9558de7f906 100644 --- a/rel/d/a/door/d_a_door_boss/d_a_door_boss.cpp +++ b/rel/d/a/door/d_a_door_boss/d_a_door_boss.cpp @@ -1,211 +1,18 @@ -// -// Generated By: dol2asm -// Translation Unit: d_a_door_boss -// +/** + * d_a_door_boss.cpp + * Boss Door + */ #include "rel/d/a/door/d_a_door_boss/d_a_door_boss.h" +#include "SSystem/SComponent/c_math.h" +#include "JSystem/JKernel/JKRHeap.h" +#include "f_op/f_op_actor_mng.h" +#include "d/com/d_com_inf_game.h" +#include "d/a/d_a_player.h" +#include "d/d_procname.h" +#include "d/d_door_param2.h" #include "dol2asm.h" -// -// Types: -// - -struct request_of_phase_process_class {}; - -struct mDoMtx_stack_c { - 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 mDoExt_baseAnm { - /* 8000D428 */ void play(); -}; - -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); -}; - -struct door_param2_c { - /* 8003A1D0 */ void getSwbit(fopAc_ac_c*); - /* 8003A224 */ void getExitNo(fopAc_ac_c*); -}; - -struct Vec {}; - -struct cXyz { - /* 80266B34 */ void operator-(Vec const&) const; -}; - -struct daBdoor_c { - /* 8066F418 */ void getArcName(); - /* 8066F424 */ void getBmd(); - /* 8066F434 */ void getDzb(); - /* 8066F444 */ void getBmd2(); - /* 8066F454 */ void getDoorModelData(); - /* 8066F4E4 */ void CreateHeap(); - /* 8066F738 */ void calcMtx(); - /* 8066F7EC */ void CreateInit(); - /* 8066F8E4 */ void create(); - /* 8066FAB8 */ void getDemoAction(); - /* 8066FB00 */ void demoProc(); - /* 8066FF04 */ void calcGoal(cXyz*, int); - /* 8067002C */ void smokeInit(); - /* 806700C4 */ void checkArea(); - /* 806701F4 */ void checkFront(); - /* 80670294 */ void checkOpen(); - /* 80670320 */ bool actionWait(); - /* 80670328 */ void actionCloseWait(); - /* 806703C0 */ void actionOpen(); - /* 806703E4 */ void actionEnd(); - /* 80670544 */ void execute(); - /* 80670664 */ void checkDraw(); - /* 806706A4 */ void draw(); - /* 80670804 */ void Delete(); -}; - -struct dVibration_c { - /* 8006FA24 */ void StartShock(int, int, cXyz); -}; - -struct dSv_restart_c { - /* 80034F80 */ void setRoom(cXyz const&, s16, s8); -}; - -struct dSv_memBit_c { - /* 80034934 */ void isDungeonItem(int) const; -}; - -struct dSv_info_c { - /* 80035200 */ void onSwitch(int, int); - /* 80035360 */ void isSwitch(int, int) const; -}; - -struct dStage_roomControl_c { - /* 800244E8 */ void checkRoomDisp(int) const; -}; - -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 dPa_levelEcallBack {}; - -struct cBgS_PolyInfo { - /* 802680B0 */ ~cBgS_PolyInfo(); -}; - -struct csXyz {}; - -struct dPa_control_c { - /* 8004D068 */ void setPoly(u16, cBgS_PolyInfo&, cXyz const*, dKy_tevstr_c const*, csXyz const*, - cXyz const*, int, dPa_levelEcallBack*, s8, cXyz const*); -}; - -struct dEvt_info_c { - /* 80043428 */ void setEventName(char*); -}; - -struct dEvent_manager_c { - /* 80047B1C */ void getMyStaffId(char const*, fopAc_ac_c*, int); - /* 80047D4C */ void getIsAddvance(int); - /* 80047E10 */ void getMyActIdx(int, char const* const*, int, int, int); - /* 8004817C */ void cutEnd(int); - /* 800483C4 */ void setGoal(cXyz*); -}; - -struct dBgW_Base {}; - -struct dBgW { - /* 8007B970 */ dBgW(); - /* 8007B9C0 */ void Move(); -}; - -struct dBgS_PolyPassChk { - /* 80078E68 */ void SetObj(); -}; - -struct dBgS_ObjAcch { - /* 8066FA48 */ ~dBgS_ObjAcch(); -}; - -struct dBgS_AcchCir { - /* 80075EAC */ dBgS_AcchCir(); - /* 8066F9D8 */ ~dBgS_AcchCir(); -}; - -struct dBgS { - /* 80074A08 */ void Regist(dBgW_Base*, fopAc_ac_c*); -}; - -struct dBgS_Acch { - /* 80075F94 */ ~dBgS_Acch(); - /* 800760A0 */ dBgS_Acch(); - /* 80076248 */ void Set(cXyz*, cXyz*, fopAc_ac_c*, int, dBgS_AcchCir*, cXyz*, csXyz*, csXyz*); - /* 80076AAC */ void CrrPos(dBgS&); -}; - -struct cM3dGCir { - /* 8026EF18 */ ~cM3dGCir(); -}; - -struct cBgW_BgId { - /* 802681D4 */ void ChkUsed() const; -}; - -struct cBgD_t {}; - -struct cBgW { - /* 80079F38 */ void Set(cBgD_t*, u32, f32 (*)[3][4]); -}; - -struct cBgS { - /* 80074250 */ void Release(dBgW_Base*); -}; - -struct JAISoundID {}; - -struct Z2SeMgr { - /* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8); -}; - -struct Z2AudioMgr { - static u8 mAudioMgrPtr[4 + 4 /* padding */]; -}; - -struct JMath { - static u8 sincosTable_[65536]; -}; - -struct J3DSkinDeform { - /* 8032C96C */ J3DSkinDeform(); -}; - -struct J3DModel { - /* 80327AA0 */ void setSkinDeform(J3DSkinDeform*, u32); -}; - -struct J3DFrameCtrl { - /* 803283FC */ void init(s16); - /* 8066F6F0 */ ~J3DFrameCtrl(); -}; - // // Forward References: // @@ -304,9 +111,6 @@ extern "C" void __dl__FPv(); extern "C" void setSkinDeform__8J3DModelFP13J3DSkinDeformUl(); extern "C" void init__12J3DFrameCtrlFs(); extern "C" void __ct__13J3DSkinDeformFv(); -extern "C" void PSMTXCopy(); -extern "C" void PSMTXTrans(); -extern "C" void PSMTXMultVec(); extern "C" void __ptmf_scall(); extern "C" void _savegpr_26(); extern "C" void _savegpr_28(); @@ -314,12 +118,7 @@ extern "C" void _savegpr_29(); extern "C" void _restgpr_26(); extern "C" void _restgpr_28(); 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]; -extern "C" extern u8 j3dSys[284]; extern "C" u8 sincosTable___5JMath[65536]; extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; extern "C" extern u8 data_80670BB0[4]; @@ -328,95 +127,55 @@ extern "C" extern u8 data_80670BB0[4]; // Declarations: // -/* ############################################################################################## */ -/* 80670984-80670984 000070 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80670984 = "Z_bdor00"; -#pragma pop +/* 80670A20-80670A2C 000000 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */ +static u8 cNullVec__6Z2Calc[12] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; + +/* 80670A2C-80670A40 00000C 0004+10 0/0 0/0 0/0 .data @1787 */ +static u32 lit_1787[1 + 4 /* padding */] = { + 0x02000201, + /* padding */ + 0x40080000, + 0x00000000, + 0x3FE00000, + 0x00000000, +}; /* 8066F418-8066F424 000078 000C+00 4/4 0/0 0/0 .text getArcName__9daBdoor_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBdoor_c::getArcName() { - nofralloc -#include "asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/getArcName__9daBdoor_cFv.s" +char* daBdoor_c::getArcName() { + return "Z_bdor00"; } -#pragma pop - -/* ############################################################################################## */ -/* 80670984-80670984 000070 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8067098D = "Z_bdor00.bmd"; -#pragma pop /* 8066F424-8066F434 000084 0010+00 1/1 0/0 0/0 .text getBmd__9daBdoor_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBdoor_c::getBmd() { - nofralloc -#include "asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/getBmd__9daBdoor_cFv.s" +char* daBdoor_c::getBmd() { + return "Z_bdor00.bmd"; } -#pragma pop - -/* ############################################################################################## */ -/* 80670984-80670984 000070 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8067099A = "door30.dzb"; -#pragma pop /* 8066F434-8066F444 000094 0010+00 1/1 0/0 0/0 .text getDzb__9daBdoor_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBdoor_c::getDzb() { - nofralloc -#include "asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/getDzb__9daBdoor_cFv.s" +char* daBdoor_c::getDzb() { + return "door30.dzb"; } -#pragma pop - -/* ############################################################################################## */ -/* 80670984-80670984 000070 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_806709A5 = "door_shutterBoss.bmd"; -#pragma pop /* 8066F444-8066F454 0000A4 0010+00 1/1 0/0 0/0 .text getBmd2__9daBdoor_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBdoor_c::getBmd2() { - nofralloc -#include "asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/getBmd2__9daBdoor_cFv.s" +char* daBdoor_c::getBmd2() { + return "door_shutterBoss.bmd"; } -#pragma pop /* 8066F454-8066F4C4 0000B4 0070+00 1/1 0/0 0/0 .text getDoorModelData__9daBdoor_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBdoor_c::getDoorModelData() { - nofralloc -#include "asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/getDoorModelData__9daBdoor_cFv.s" +J3DModelData* daBdoor_c::getDoorModelData() { + J3DModelData* model_data = (J3DModelData*)dComIfG_getStageRes(getBmd2()); + if (model_data == NULL) { + model_data = (J3DModelData*)dComIfG_getObjectRes(getArcName(), getBmd()); + } + return model_data; } -#pragma pop /* 8066F4C4-8066F4E4 000124 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/door/d_a_door_boss/d_a_door_boss/CheckCreateHeap__FP10fopAc_ac_c.s" +static int CheckCreateHeap(fopAc_ac_c* i_this) { + return static_cast(i_this)->CreateHeap(); } -#pragma pop -/* ############################################################################################## */ /* 80670914-80670918 000000 0004+00 4/4 0/0 0/0 .rodata @3726 */ SECTION_RODATA static f32 const lit_3726 = 1.0f; COMPILER_STRIP_GATE(0x80670914, &lit_3726); @@ -426,51 +185,173 @@ COMPILER_STRIP_GATE(0x80670914, &lit_3726); #pragma force_active on SECTION_DEAD static char const* const stringBase_806709BA = "VlockB.bmd"; SECTION_DEAD static char const* const stringBase_806709C5 = "VlockB.bck"; -SECTION_DEAD static char const* const stringBase_806709D0 = "WAIT"; -SECTION_DEAD static char const* const stringBase_806709D5 = "UNLOCK"; -SECTION_DEAD static char const* const stringBase_806709DC = "OPEN"; -SECTION_DEAD static char const* const stringBase_806709E1 = "SETGOAL"; -SECTION_DEAD static char const* const stringBase_806709E9 = "SETGOAL2"; -SECTION_DEAD static char const* const stringBase_806709F2 = "CLOSE"; -SECTION_DEAD static char const* const stringBase_806709F8 = "SMOKE"; -SECTION_DEAD static char const* const stringBase_806709FE = "SMOKE_END"; -SECTION_DEAD static char const* const stringBase_80670A08 = "END"; -SECTION_DEAD static char const* const stringBase_80670A0C = "END_CHECK"; -SECTION_DEAD static char const* const stringBase_80670A16 = "CHG_SCENE"; #pragma pop -/* 80670A20-80670A2C 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, -}; +/* 80670B74-80670B80 000154 000C+00 1/1 0/0 0/0 .data __vt__12dBgS_AcchCir */ +extern void* __vt__12dBgS_AcchCir[3]; -/* 80670A2C-80670A40 00000C 0004+10 0/0 0/0 0/0 .data @1787 */ +/* 80670B80-80670BA4 000160 0024+00 2/2 0/0 0/0 .data __vt__12dBgS_ObjAcch */ +extern void* __vt__12dBgS_ObjAcch[9]; + +/* 80670BA4-80670BB0 000184 000C+00 2/2 0/0 0/0 .data __vt__12J3DFrameCtrl */ +extern void* __vt__12J3DFrameCtrl[3]; + +/* 8066F4E4-8066F6F0 000144 020C+00 1/1 0/0 0/0 .text CreateHeap__9daBdoor_cFv */ +#ifdef NONMATCHING +// matches with literals +int daBdoor_c::CreateHeap() { + J3DModelData* door_model_data = getDoorModelData(); + mpDoorModel = mDoExt_J3DModel__create(door_model_data, 0x80000, 0x11000084); + if (mpDoorModel == NULL) { + return 0; + } + + J3DModelData* lock_model_data = (J3DModelData*)dComIfG_getObjectRes(getArcName(), "VlockB.bmd"); + mpLockModel = mDoExt_J3DModel__create(lock_model_data, 0x80000, 0x11000084); + if (mpLockModel == NULL) { + return 0; + } + + J3DAnmTransform* lock_bck = (J3DAnmTransform*)dComIfG_getObjectRes(getArcName(), "VlockB.bck"); + mpLockAnm = new mDoExt_bckAnm(); + if (mpLockAnm == NULL || !mpLockAnm->init(lock_bck, 1, 0, 1.0f, 0, -1, false)) { + return 0; + } + + J3DSkinDeform* deform = new J3DSkinDeform(); + if (deform == NULL) { + return 0; + } + if (mpLockModel->setSkinDeform(deform, 1) == 4) { + return 0; + } + + mpBgW = new dBgW(); + cBgD_t* dzb = (cBgD_t*)dComIfG_getObjectRes(getArcName(), getDzb()); + if (dzb == NULL) { + return 0; + } + calcMtx(); + return mpBgW->Set(dzb, 1, &mpDoorModel->getBaseTRMtx()) == 1 ? 0 : 1; +} +#else #pragma push -#pragma force_active on -SECTION_DATA static u32 lit_1787[1 + 4 /* padding */] = { - 0x02000201, - /* padding */ - 0x40080000, - 0x00000000, - 0x3FE00000, - 0x00000000, -}; +#pragma optimization_level 0 +#pragma optimizewithasm off +asm int daBdoor_c::CreateHeap() { + nofralloc +#include "asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/CreateHeap__9daBdoor_cFv.s" +} +#pragma pop +#endif + +/* 8066F6F0-8066F738 000350 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +// asm J3DFrameCtrl::~J3DFrameCtrl() { +extern "C" asm void __dt__12J3DFrameCtrlFv() { + nofralloc +#include "asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/__dt__12J3DFrameCtrlFv.s" +} #pragma pop -/* 80670A40-80670A6C -00001 002C+00 1/1 0/0 0/0 .data action_table$3817 */ -SECTION_DATA static void* action_table[11] = { - (void*)(((char*)&d_a_door_boss__stringBase0) + 0x4C), - (void*)(((char*)&d_a_door_boss__stringBase0) + 0x51), - (void*)(((char*)&d_a_door_boss__stringBase0) + 0x58), - (void*)(((char*)&d_a_door_boss__stringBase0) + 0x5D), - (void*)(((char*)&d_a_door_boss__stringBase0) + 0x65), - (void*)(((char*)&d_a_door_boss__stringBase0) + 0x6E), - (void*)(((char*)&d_a_door_boss__stringBase0) + 0x74), - (void*)(((char*)&d_a_door_boss__stringBase0) + 0x7A), - (void*)(((char*)&d_a_door_boss__stringBase0) + 0x84), - (void*)(((char*)&d_a_door_boss__stringBase0) + 0x88), - (void*)(((char*)&d_a_door_boss__stringBase0) + 0x92), -}; +/* 8066F738-8066F7EC 000398 00B4+00 3/3 0/0 0/0 .text calcMtx__9daBdoor_cFv */ +void daBdoor_c::calcMtx() { + mDoMtx_stack_c::transS(current.pos.x, current.pos.y + mOffsetY, current.pos.z); + mDoMtx_stack_c::YrotM(orig.angle.y); + mpDoorModel->i_setBaseTRMtx(mDoMtx_stack_c::get()); + mDoMtx_stack_c::transS(current.pos.x, current.pos.y + 300.0f, current.pos.z); + mDoMtx_stack_c::YrotM(orig.angle.y); + mpLockModel->i_setBaseTRMtx(mDoMtx_stack_c::get()); +} + +/* 8066F7EC-8066F8E4 00044C 00F8+00 1/1 0/0 0/0 .text CreateInit__9daBdoor_cFv */ +int daBdoor_c::CreateInit() { + mAcch.Set(¤t.pos, &next.pos, this, 1, &mAcchCir, &speed, NULL, NULL); + dComIfG_Bgsp().Regist(mpBgW, this); + setAction(ACT_CLOSE_WAIT); + mAttentionInfo.mPosition.y += 250.0f; + mEyePos.y += 250.0f; + mAttentionInfo.mFlags = 0x20; + calcMtx(); + mpBgW->Move(); + u8 swbit = door_param2_c::getSwbit(this); + if (!dComIfGs_isSwitch(swbit, fopAcM_GetRoomNo(this))) { + mLocked = true; + } else { + mLocked = false; + } + mOffsetY = 0.0f; + return 1; +} + +/* 8066F8E4-8066F9D8 000544 00F4+00 1/1 0/0 0/0 .text create__9daBdoor_cFv */ +#ifdef NONMATCHING +// matches with vtables +cPhs__Step daBdoor_c::create() { + fopAcM_SetupActor(this, daBdoor_c); + cPhs__Step step = (cPhs__Step)dComIfG_resLoad(&mPhaseReq, getArcName()); + if (step == cPhs_COMPLEATE_e) { + if (!fopAcM_entrySolidHeap(this, CheckCreateHeap, 0xa000)) { + return cPhs_ERROR_e; + } + if (!CreateInit()) { + return cPhs_ERROR_e; + } + } + return step; +} +#else +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm cPhs__Step daBdoor_c::create() { + nofralloc +#include "asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/create__9daBdoor_cFv.s" +} +#pragma pop +#endif + +/* 8066F9D8-8066FA48 000638 0070+00 1/0 0/0 0/0 .text __dt__12dBgS_AcchCirFv */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +// asm dBgS_AcchCir::~dBgS_AcchCir() { +extern "C" asm void __dt__12dBgS_AcchCirFv() { + nofralloc +#include "asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/__dt__12dBgS_AcchCirFv.s" +} +#pragma pop + +/* 8066FA48-8066FAB8 0006A8 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +// asm dBgS_ObjAcch::~dBgS_ObjAcch() { +extern "C" asm void __dt__12dBgS_ObjAcchFv() { + nofralloc +#include "asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/__dt__12dBgS_ObjAcchFv.s" +} +#pragma pop + +/* 8066FAB8-8066FB00 000718 0048+00 1/1 0/0 0/0 .text getDemoAction__9daBdoor_cFv */ +int daBdoor_c::getDemoAction() { + static char* action_table[11] = { + "WAIT", + "UNLOCK", + "OPEN", + "SETGOAL", + "SETGOAL2", + "CLOSE", + "SMOKE", + "SMOKE_END", + "END", + "END_CHECK", + "CHG_SCENE", + }; + return dComIfGp_evmng_getMyActIdx(mStaffID, action_table, 11, 0, 0); +} /* 80670A6C-80670A98 -00001 002C+00 1/1 0/0 0/0 .data @3939 */ SECTION_DATA static void* lit_3939[11] = { @@ -502,205 +383,95 @@ SECTION_DATA static void* lit_3938[11] = { (void*)(((char*)demoProc__9daBdoor_cFv) + 0x1AC), }; -/* 80670AC4-80670AD0 -00001 000C+00 0/1 0/0 0/0 .data @4149 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4149[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)actionWait__9daBdoor_cFv, -}; -#pragma pop - -/* 80670AD0-80670ADC -00001 000C+00 0/1 0/0 0/0 .data @4150 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4150[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)actionCloseWait__9daBdoor_cFv, -}; -#pragma pop - -/* 80670ADC-80670AE8 -00001 000C+00 0/1 0/0 0/0 .data @4151 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4151[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)actionOpen__9daBdoor_cFv, -}; -#pragma pop - -/* 80670AE8-80670AF4 -00001 000C+00 0/1 0/0 0/0 .data @4152 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4152[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)actionEnd__9daBdoor_cFv, -}; -#pragma pop - -/* 80670AF4-80670B24 0000D4 0030+00 0/1 0/0 0/0 .data l_action$4148 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 l_action[48] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -#pragma pop - -/* 80670B24-80670B44 -00001 0020+00 1/0 0/0 0/0 .data l_daBdoor_Method */ -SECTION_DATA static void* l_daBdoor_Method[8] = { - (void*)daBdoor_Create__FP10fopAc_ac_c, - (void*)daBdoor_Delete__FP9daBdoor_c, - (void*)daBdoor_Execute__FP9daBdoor_c, - (void*)NULL, - (void*)daBdoor_Draw__FP9daBdoor_c, - (void*)NULL, - (void*)NULL, - (void*)NULL, -}; - -/* 80670B44-80670B74 -00001 0030+00 0/0 0/0 1/0 .data g_profile_BOSS_DOOR */ -SECTION_DATA extern void* g_profile_BOSS_DOOR[12] = { - (void*)0xFFFFFFFD, (void*)0x0007FFFD, - (void*)0x02280000, (void*)&g_fpcLf_Method, - (void*)0x000007C4, (void*)NULL, - (void*)NULL, (void*)&g_fopAc_Method, - (void*)0x01290000, (void*)&l_daBdoor_Method, - (void*)0x00044000, (void*)0x00060000, -}; - -/* 80670B74-80670B80 000154 000C+00 1/1 0/0 0/0 .data __vt__12dBgS_AcchCir */ -SECTION_DATA extern void* __vt__12dBgS_AcchCir[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__12dBgS_AcchCirFv, -}; - -/* 80670B80-80670BA4 000160 0024+00 2/2 0/0 0/0 .data __vt__12dBgS_ObjAcch */ -SECTION_DATA extern void* __vt__12dBgS_ObjAcch[9] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__12dBgS_ObjAcchFv, - (void*)NULL, - (void*)NULL, - (void*)func_80670904, - (void*)NULL, - (void*)NULL, - (void*)func_806708FC, -}; - -/* 80670BA4-80670BB0 000184 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, -}; - -/* 8066F4E4-8066F6F0 000144 020C+00 1/1 0/0 0/0 .text CreateHeap__9daBdoor_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBdoor_c::CreateHeap() { - nofralloc -#include "asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/CreateHeap__9daBdoor_cFv.s" -} -#pragma pop - -/* 8066F6F0-8066F738 000350 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/door/d_a_door_boss/d_a_door_boss/__dt__12J3DFrameCtrlFv.s" -} -#pragma pop - -/* ############################################################################################## */ -/* 80670918-8067091C 000004 0004+00 1/1 0/0 0/0 .rodata @3755 */ -SECTION_RODATA static f32 const lit_3755 = 300.0f; -COMPILER_STRIP_GATE(0x80670918, &lit_3755); - -/* 8066F738-8066F7EC 000398 00B4+00 3/3 0/0 0/0 .text calcMtx__9daBdoor_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBdoor_c::calcMtx() { - nofralloc -#include "asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/calcMtx__9daBdoor_cFv.s" -} -#pragma pop - -/* ############################################################################################## */ -/* 8067091C-80670920 000008 0004+00 1/1 0/0 0/0 .rodata @3769 */ -SECTION_RODATA static f32 const lit_3769 = 250.0f; -COMPILER_STRIP_GATE(0x8067091C, &lit_3769); - -/* 80670920-80670924 00000C 0004+00 2/4 0/0 0/0 .rodata @3770 */ -SECTION_RODATA static u8 const lit_3770[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80670920, &lit_3770); - -/* 8066F7EC-8066F8E4 00044C 00F8+00 1/1 0/0 0/0 .text CreateInit__9daBdoor_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBdoor_c::CreateInit() { - nofralloc -#include "asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/CreateInit__9daBdoor_cFv.s" -} -#pragma pop - -/* 8066F8E4-8066F9D8 000544 00F4+00 1/1 0/0 0/0 .text create__9daBdoor_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBdoor_c::create() { - nofralloc -#include "asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/create__9daBdoor_cFv.s" -} -#pragma pop - -/* 8066F9D8-8066FA48 000638 0070+00 1/0 0/0 0/0 .text __dt__12dBgS_AcchCirFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dBgS_AcchCir::~dBgS_AcchCir() { - nofralloc -#include "asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/__dt__12dBgS_AcchCirFv.s" -} -#pragma pop - -/* 8066FA48-8066FAB8 0006A8 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dBgS_ObjAcch::~dBgS_ObjAcch() { - nofralloc -#include "asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/__dt__12dBgS_ObjAcchFv.s" -} -#pragma pop - -/* 8066FAB8-8066FB00 000718 0048+00 1/1 0/0 0/0 .text getDemoAction__9daBdoor_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBdoor_c::getDemoAction() { - nofralloc -#include "asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/getDemoAction__9daBdoor_cFv.s" -} -#pragma pop - /* 8066FB00-8066FF04 000760 0404+00 5/3 0/0 0/0 .text demoProc__9daBdoor_cFv */ +#ifdef NONMATCHING +// isStop regalloc +void daBdoor_c::demoProc() { + cXyz goal; + int done; + int action = getDemoAction(); + + if (dComIfGp_evmng_getIsAddvance(mStaffID)) { + switch (action) { + case 1: // UNLOCK + if (mLocked) { + dComIfGs_onSwitch((u8)door_param2_c::getSwbit(this), fopAcM_GetRoomNo(this)); + mpLockAnm->setPlaySpeed(1.0f); + } + break; + case 2: // OPEN + mLocked = false; + fopAcM_seStart(this, JA_SE_OBJ_STN_DOOR_MOVE_U, 0); + dComIfG_Bgsp().Release(mpBgW); + break; + case 3: // SETGOAL + calcGoal(&goal, 0); + dComIfGp_evmng_setGoal(&goal); + break; + case 4: // SETGOAL2 + calcGoal(&goal, 1); + dComIfGp_evmng_setGoal(&goal); + break; + case 5: // CLOSE + fopAcM_seStart(this, JA_SE_OBJ_STN_DOOR_MOVE_D, 0); + break; + case 6: // SMOKE + smokeInit(); + break; + case 10: // CHG_SCENE + field_0x58c = 0; + } +} +} +#pragma pop + } +#pragma pop + + switch (action) { + case 1: // UNLOCK + mpLockAnm->play(); + if (!mLocked || mpLockAnm->isStop()) { + mLocked = false; + dComIfGp_evmng_cutEnd(mStaffID); + } + break; + case 2: // OPEN + cLib_chaseF(&speedF, 60.0f, 6.0f); + done = cLib_chaseF(&mOffsetY, 600.0f, speedF); + calcMtx(); + if (done) { + fopAcM_seStart(this, JA_SE_OBJ_STN_DOOR_STOP_U, 0); + dComIfGp_evmng_cutEnd(mStaffID); + } + break; + case 5: // CLOSE + cLib_chaseF(&speedF, 60.0f, 6.0f); + done = cLib_chaseF(&mOffsetY, 0.0f, speedF); + calcMtx(); + if (done) { + dComIfGp_getVibration().StartShock(4, 0x1f, cXyz(0.0f, 1.0f, 0.0f)); + fopAcM_seStart(this, JA_SE_OBJ_STN_DOOR_STOP_D, 0); + dComIfGp_evmng_cutEnd(mStaffID); + } + break; + case 10: // CHG_SCENE + if (field_0x58c == 0) { + daPy_getPlayerActorClass()->onSceneChangeArea(door_param2_c::getExitNo(this), 0xff, 0); + } + field_0x58c--; + break; + case 8: // END + break; + case 9: // END_CHECK + setAction(ACT_END); + dComIfGp_evmng_cutEnd(mStaffID); + break; + default: + dComIfGp_evmng_cutEnd(mStaffID); + break; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -709,6 +480,7 @@ asm void daBdoor_c::demoProc() { #include "asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/demoProc__9daBdoor_cFv.s" } #pragma pop +#endif /* ############################################################################################## */ /* 80670924-80670928 000010 0004+00 0/0 0/0 0/0 .rodata @3934 */ @@ -761,6 +533,27 @@ COMPILER_STRIP_GATE(0x8067093C, &lit_3970); #pragma pop /* 8066FF04-8067002C 000B64 0128+00 1/1 0/0 0/0 .text calcGoal__9daBdoor_cFP4cXyzi */ +#ifdef NONMATCHING +// matches with literals +void daBdoor_c::calcGoal(cXyz* i_goalP, int param_1) { + cXyz vec = daPy_getPlayerActorClass()->current.pos - current.pos; + mDoMtx_stack_c::YrotS(-current.angle.y); + mDoMtx_stack_c::multVec(&vec, &vec); + vec.x = 0.5f * vec.x; + vec.y = 0.0f; + if (param_1 == 0) { + vec.z = -1000.0f; + } else { + vec.z = -240.0f; + } + mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z); + mDoMtx_stack_c::YrotM(current.angle.y); + mDoMtx_stack_c::multVec(&vec, &vec); + i_goalP->x = vec.x; + i_goalP->y = 0.0f; + i_goalP->z = vec.z; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -769,8 +562,17 @@ asm void daBdoor_c::calcGoal(cXyz* param_0, int param_1) { #include "asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/calcGoal__9daBdoor_cFP4cXyzi.s" } #pragma pop +#endif /* 8067002C-806700C4 000C8C 0098+00 1/1 0/0 0/0 .text smokeInit__9daBdoor_cFv */ +#ifdef NONMATCHING +void daBdoor_c::smokeInit() { + mParticlePos = current.pos; + mParticleAngle = shape_angle; + dComIfGp_particle_setPolyColor(0x8156, mAcch.m_gnd, &mParticlePos, &mTevStr, &mParticleAngle, + NULL, 0, NULL, fopAcM_GetRoomNo(this), NULL); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -779,133 +581,92 @@ asm void daBdoor_c::smokeInit() { #include "asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/smokeInit__9daBdoor_cFv.s" } #pragma pop - -/* ############################################################################################## */ -/* 80670940-80670944 00002C 0004+00 1/1 0/0 0/0 .rodata @4028 */ -SECTION_RODATA static f32 const lit_4028 = 200.0f; -COMPILER_STRIP_GATE(0x80670940, &lit_4028); - -/* 80670944-8067094C 000030 0004+04 1/1 0/0 0/0 .rodata @4029 */ -SECTION_RODATA static f32 const lit_4029[1 + 1 /* padding */] = { - 100.0f, - /* padding */ - 0.0f, -}; -COMPILER_STRIP_GATE(0x80670944, &lit_4029); - -/* 8067094C-80670954 000038 0008+00 1/1 0/0 0/0 .rodata @4031 */ -SECTION_RODATA static u8 const lit_4031[8] = { - 0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x8067094C, &lit_4031); +#endif /* 806700C4-806701F4 000D24 0130+00 1/1 0/0 0/0 .text checkArea__9daBdoor_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBdoor_c::checkArea() { - nofralloc -#include "asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/checkArea__9daBdoor_cFv.s" +BOOL daBdoor_c::checkArea() { + daPy_py_c* player = daPy_getPlayerActorClass(); + cXyz vec = player->current.pos - current.pos; + mDoMtx_stack_c::YrotS(-current.angle.y); + mDoMtx_stack_c::multVec(&vec, &vec); + if (fabsf(vec.x) > 200.0f) { + return false; + } + if (fabsf(vec.z) > 100.0f) { + return false; + } + return (s16)fabs(current.angle.y - 0x7fff - player->current.angle.y) <= 0x4000 ? 1 : 0; } -#pragma pop /* 806701F4-80670294 000E54 00A0+00 1/1 0/0 0/0 .text checkFront__9daBdoor_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBdoor_c::checkFront() { - nofralloc -#include "asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/checkFront__9daBdoor_cFv.s" +BOOL daBdoor_c::checkFront() { + daPy_py_c* player = daPy_getPlayerActorClass(); + cXyz vec = player->current.pos - current.pos; + mDoMtx_stack_c::YrotS(-current.angle.y); + mDoMtx_stack_c::multVec(&vec, &vec); + return vec.z > 0.0f; } -#pragma pop /* 80670294-80670320 000EF4 008C+00 1/1 0/0 0/0 .text checkOpen__9daBdoor_cFv */ +#ifdef NONMATCHING +// regalloc +BOOL daBdoor_c::checkOpen() { + if (daPy_py_c::i_checkNowWolf()) { + return false; + } + if (!dComIfGs_isDungeonItemBossKey()) { + return false; + } + if (!checkFront()) { + return false; + } + if (!checkArea()) { + return false; + } + return true; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daBdoor_c::checkOpen() { +asm BOOL daBdoor_c::checkOpen() { nofralloc #include "asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/checkOpen__9daBdoor_cFv.s" } #pragma pop +#endif /* 80670320-80670328 000F80 0008+00 1/0 0/0 0/0 .text actionWait__9daBdoor_cFv */ -bool daBdoor_c::actionWait() { +BOOL daBdoor_c::actionWait() { return true; } -/* ############################################################################################## */ /* 80670954-8067096C 000040 0015+03 1/1 0/0 0/0 .rodata l_door_open_demo */ -SECTION_RODATA static u8 const l_door_open_demo[21 + 3 /* padding */] = { - 0x44, - 0x45, - 0x46, - 0x41, - 0x55, - 0x4C, - 0x54, - 0x5F, - 0x42, - 0x53, - 0x5F, - 0x53, - 0x48, - 0x55, - 0x54, - 0x54, - 0x45, - 0x52, - 0x5F, - 0x46, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80670954, &l_door_open_demo); +static char const l_door_open_demo[21] = "DEFAULT_BS_SHUTTER_F"; /* 8067096C-8067097C 000058 000D+03 2/2 0/0 0/0 .rodata l_staff_name */ -SECTION_RODATA static u8 const l_staff_name[13 + 3 /* padding */] = { - 0x53, - 0x48, - 0x55, - 0x54, - 0x54, - 0x45, - 0x52, - 0x5F, - 0x44, - 0x4F, - 0x4F, - 0x52, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x8067096C, &l_staff_name); +static char const l_staff_name[13] = "SHUTTER_DOOR"; /* 80670328-806703C0 000F88 0098+00 1/0 0/0 0/0 .text actionCloseWait__9daBdoor_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBdoor_c::actionCloseWait() { - nofralloc -#include "asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/actionCloseWait__9daBdoor_cFv.s" +BOOL daBdoor_c::actionCloseWait() { + if (mEvtInfo.i_checkCommandDoor()) { + mStaffID = i_dComIfGp_evmng_getMyStaffId(l_staff_name, NULL, 0); + demoProc(); + setAction(ACT_OPEN); + } else { + if (checkOpen()) { + mEvtInfo.setEventName((char*)l_door_open_demo); + mEvtInfo.i_onCondition(dEvtCnd_CANDOOR_e); + } + } + return 1; } -#pragma pop /* 806703C0-806703E4 001020 0024+00 1/0 0/0 0/0 .text actionOpen__9daBdoor_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBdoor_c::actionOpen() { - nofralloc -#include "asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/actionOpen__9daBdoor_cFv.s" +BOOL daBdoor_c::actionOpen() { + demoProc(); + return true; } -#pragma pop /* ############################################################################################## */ /* 8067097C-80670980 000068 0004+00 0/1 0/0 0/0 .rodata @4143 */ @@ -923,94 +684,130 @@ COMPILER_STRIP_GATE(0x80670980, &lit_4144); #pragma pop /* 806703E4-80670544 001044 0160+00 1/0 0/0 0/0 .text actionEnd__9daBdoor_cFv */ +#ifdef NONMATCHING +// regalloc and extra mr +BOOL daBdoor_c::actionEnd() { + if (!mpBgW->ChkUsed()) { + dComIfG_Bgsp().Regist(mpBgW, this); + } + setAction(ACT_WAIT); + cXyz normal(cM_ssin(orig.angle.y), 0.0f, cM_scos(orig.angle.y)); + daPy_py_c* player = daPy_getPlayerActorClass(); + cXyz delta = player->current.pos - current.pos; + f32 prod = delta.inprodXZ(normal); + f32 offset; + if (prod < 0.0f) { + offset = 180.0f; + } else { + offset = -180.0f; + } + cXyz pos(current.pos.x - offset * normal.x, current.pos.y, current.pos.z - offset * normal.z); + s8 room_no = fopAcM_GetRoomNo(player); + s16 angle; + if (prod > 0.0f) { + angle = current.angle.y; + } else { + angle = current.angle.y + 0x8000; + } + dComIfGs_setRestartRoom(pos, angle, room_no); + return true; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daBdoor_c::actionEnd() { +asm BOOL daBdoor_c::actionEnd() { nofralloc #include "asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/actionEnd__9daBdoor_cFv.s" } #pragma pop +#endif /* 80670544-80670664 0011A4 0120+00 1/1 0/0 0/0 .text execute__9daBdoor_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBdoor_c::execute() { - nofralloc -#include "asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/execute__9daBdoor_cFv.s" +int daBdoor_c::execute() { + typedef BOOL (daBdoor_c::*daBdoor_action)(); + static daBdoor_action l_action[4] = { + &actionWait, + &actionCloseWait, + &actionOpen, + &actionEnd, + }; + if (fopAcM_checkStatus(this, 0x1000)) { + mStaffID = i_dComIfGp_evmng_getMyStaffId(l_staff_name, NULL, 0); + demoProc(); + } else { + (this->*l_action[mAction])(); + } + mAcch.CrrPos(dComIfG_Bgsp()); + return 1; } -#pragma pop /* 80670664-806706A4 0012C4 0040+00 1/1 0/0 0/0 .text checkDraw__9daBdoor_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBdoor_c::checkDraw() { - nofralloc -#include "asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/checkDraw__9daBdoor_cFv.s" +BOOL daBdoor_c::checkDraw() { + return dComIfGp_roomControl_checkRoomDisp(fopAcM_GetRoomNo(this)) ? 1 : 0; } -#pragma pop /* 806706A4-80670804 001304 0160+00 1/1 0/0 0/0 .text draw__9daBdoor_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBdoor_c::draw() { - nofralloc -#include "asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/draw__9daBdoor_cFv.s" +int daBdoor_c::draw() { + BOOL draw = checkDraw(); + if (!draw) { + if (!mBgInactive) { + dComIfG_Bgsp().Release(mpBgW); + mBgInactive = true; + } + return 1; + } else { + if (mBgInactive) { + dComIfG_Bgsp().Regist(mpBgW, this); + mBgInactive = false; + } + if (!draw) { + fopAcM_OffStatus(this, 0); + } + g_env_light.settingTevStruct(0x10, ¤t.pos, &mTevStr); + g_env_light.setLightTevColorType_MAJI(mpDoorModel->mModelData, &mTevStr); + dComIfGd_setListBG(); + mDoExt_modelUpdateDL(mpDoorModel); + dComIfGd_setList(); + if (mLocked) { + g_env_light.setLightTevColorType_MAJI(mpLockModel->mModelData, &mTevStr); + mpLockAnm->entry(mpLockModel->getModelData()); + mDoExt_modelUpdateDL(mpLockModel); + } + return 1; + } } -#pragma pop /* 80670804-80670874 001464 0070+00 1/1 0/0 0/0 .text Delete__9daBdoor_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBdoor_c::Delete() { - nofralloc -#include "asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/Delete__9daBdoor_cFv.s" +int daBdoor_c::Delete() { + if (mHeap != NULL && mpBgW->ChkUsed()) { + dComIfG_Bgsp().Release(mpBgW); + } + dComIfG_resDelete(&mPhaseReq, getArcName()); + return 1; } -#pragma pop /* 80670874-80670894 0014D4 0020+00 1/0 0/0 0/0 .text daBdoor_Draw__FP9daBdoor_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daBdoor_Draw(daBdoor_c* param_0) { - nofralloc -#include "asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/daBdoor_Draw__FP9daBdoor_c.s" +static int daBdoor_Draw(daBdoor_c* i_this) { + return i_this->draw(); } -#pragma pop /* 80670894-806708B8 0014F4 0024+00 1/0 0/0 0/0 .text daBdoor_Execute__FP9daBdoor_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daBdoor_Execute(daBdoor_c* param_0) { - nofralloc -#include "asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/daBdoor_Execute__FP9daBdoor_c.s" +static int daBdoor_Execute(daBdoor_c* i_this) { + i_this->execute(); + return 1; } -#pragma pop /* 806708B8-806708DC 001518 0024+00 1/0 0/0 0/0 .text daBdoor_Delete__FP9daBdoor_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daBdoor_Delete(daBdoor_c* param_0) { - nofralloc -#include "asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/daBdoor_Delete__FP9daBdoor_c.s" +static int daBdoor_Delete(daBdoor_c* i_this) { + i_this->Delete(); + return 1; } -#pragma pop /* 806708DC-806708FC 00153C 0020+00 1/0 0/0 0/0 .text daBdoor_Create__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daBdoor_Create(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/daBdoor_Create__FP10fopAc_ac_c.s" +static cPhs__Step daBdoor_Create(fopAc_ac_c* i_this) { + return static_cast(i_this)->create(); } -#pragma pop /* 806708FC-80670904 00155C 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */ #pragma push @@ -1032,4 +829,56 @@ static asm void func_80670904() { } #pragma pop -/* 80670984-80670984 000070 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ +/* 80670B24-80670B44 -00001 0020+00 1/0 0/0 0/0 .data l_daBdoor_Method */ +static actor_method_class l_daBdoor_Method = { + (process_method_func)daBdoor_Create, + (process_method_func)daBdoor_Delete, + (process_method_func)daBdoor_Execute, + (process_method_func)NULL, + (process_method_func)daBdoor_Draw, +}; + +/* 80670B44-80670B74 -00001 0030+00 0/0 0/0 1/0 .data g_profile_BOSS_DOOR */ +extern actor_process_profile_definition g_profile_BOSS_DOOR = { + fpcLy_CURRENT_e, + 7, + fpcPi_CURRENT_e, + PROC_BOSS_DOOR, + &g_fpcLf_Method.mBase, + sizeof(daBdoor_c), + 0, + 0, + &g_fopAc_Method.base, + 0x129, + &l_daBdoor_Method, + 0x44000, + fopAc_ACTOR_e, + fopAc_CULLBOX_6_e, +}; + +/* 80670B74-80670B80 000154 000C+00 1/1 0/0 0/0 .data __vt__12dBgS_AcchCir */ +SECTION_DATA extern void* __vt__12dBgS_AcchCir[3] = { + (void*)NULL /* RTTI */, + (void*)NULL, + (void*)__dt__12dBgS_AcchCirFv, +}; + +/* 80670B80-80670BA4 000160 0024+00 2/2 0/0 0/0 .data __vt__12dBgS_ObjAcch */ +SECTION_DATA extern void* __vt__12dBgS_ObjAcch[9] = { + (void*)NULL /* RTTI */, + (void*)NULL, + (void*)__dt__12dBgS_ObjAcchFv, + (void*)NULL, + (void*)NULL, + (void*)func_80670904, + (void*)NULL, + (void*)NULL, + (void*)func_806708FC, +}; + +/* 80670BA4-80670BB0 000184 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, +}; diff --git a/rel/d/a/door/d_a_door_boss/unknown_translation_unit_bss.cpp b/rel/d/a/door/d_a_door_boss/unknown_translation_unit_bss.cpp deleted file mode 100644 index 8085511e4f5..00000000000 --- a/rel/d/a/door/d_a_door_boss/unknown_translation_unit_bss.cpp +++ /dev/null @@ -1,26 +0,0 @@ -// -// Generated By: dol2asm -// Translation Unit: unknown_translation_unit_bss -// - -#include "rel/d/a/door/d_a_door_boss/unknown_translation_unit_bss.h" -#include "dolphin/types.h" - -// -// Forward References: -// - -extern "C" extern u8 data_80670BB0[4]; - -// -// External References: -// - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 80670BB0-80670BB4 000000 0004+00 0/0 1/1 0/0 .bss None */ -extern u8 data_80670BB0[4]; -u8 data_80670BB0[4];