summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaroline Madsen <69010899+randomsalience@users.noreply.github.com>2024-02-04 17:38:58 -0500
committerGitHub <noreply@github.com>2024-02-04 14:38:58 -0800
commit658cb52118ae9e1b4a9d50e2fa87a57ddd855c7a (patch)
treedc209c37b47e14e7877a9e9cc08c244a820830e3
parent0bde0ac354f75422e420dd84fce23be71882889b (diff)
work on d_a_door_boss (#2061)
-rw-r--r--Progress.md16
-rw-r--r--asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/CheckCreateHeap__FP10fopAc_ac_c.s9
-rw-r--r--asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/CreateInit__9daBdoor_cFv.s65
-rw-r--r--asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/Delete__9daBdoor_cFv.s30
-rw-r--r--asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/actionCloseWait__9daBdoor_cFv.s41
-rw-r--r--asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/actionOpen__9daBdoor_cFv.s10
-rw-r--r--asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/calcMtx__9daBdoor_cFv.s46
-rw-r--r--asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/checkArea__9daBdoor_cFv.s80
-rw-r--r--asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/checkDraw__9daBdoor_cFv.s17
-rw-r--r--asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/checkFront__9daBdoor_cFv.s41
-rw-r--r--asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/daBdoor_Create__FP10fopAc_ac_c.s9
-rw-r--r--asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/daBdoor_Delete__FP9daBdoor_c.s10
-rw-r--r--asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/daBdoor_Draw__FP9daBdoor_c.s9
-rw-r--r--asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/daBdoor_Execute__FP9daBdoor_c.s10
-rw-r--r--asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/draw__9daBdoor_cFv.s95
-rw-r--r--asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/execute__9daBdoor_cFv.s76
-rw-r--r--asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/getArcName__9daBdoor_cFv.s4
-rw-r--r--asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/getBmd2__9daBdoor_cFv.s5
-rw-r--r--asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/getBmd__9daBdoor_cFv.s5
-rw-r--r--asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/getDemoAction__9daBdoor_cFv.s19
-rw-r--r--asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/getDoorModelData__9daBdoor_cFv.s30
-rw-r--r--asm/rel/d/a/door/d_a_door_boss/d_a_door_boss/getDzb__9daBdoor_cFv.s5
-rw-r--r--include/SSystem/SComponent/c_xyz.h1
-rw-r--r--include/rel/d/a/door/d_a_door_boss/d_a_door_boss.h61
-rw-r--r--rel/d/a/door/d_a_door_boss/Makefile2
-rw-r--r--rel/d/a/door/d_a_door_boss/d_a_door_boss.cpp1155
-rw-r--r--rel/d/a/door/d_a_door_boss/unknown_translation_unit_bss.cpp26
27 files changed, 571 insertions, 1306 deletions
diff --git a/Progress.md b/Progress.md
index bb4f9c6064..9bcb5581c9 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 0fdfef0f05..0000000000
--- 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 42c3900ade..0000000000
--- 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 dc24fc8244..0000000000
--- 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 c4ce06b454..0000000000
--- 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 aa919b553c..0000000000
--- 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 b9e2225923..0000000000
--- 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 862c6289c7..0000000000
--- 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 1466fb7778..0000000000
--- 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 830144f0af..0000000000
--- 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 2bdf03760e..0000000000
--- 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 5e2bb1c7b4..0000000000
--- 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 57e95522a0..0000000000
--- 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 73743ecb9c..0000000000
--- 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 b146714084..0000000000
--- 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 bf87ba5a7f..0000000000
--- 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 200d5f5cf4..0000000000
--- 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 c2c7b69e42..0000000000
--- 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 07596e844d..0000000000
--- 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 779d474cb1..0000000000
--- 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 8408d0eecd..0000000000
--- 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 48f06de539..0000000000
--- 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 0cf07d2a43..4ebe1f9358 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 3f7c7fd875..d24b27fe4d 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 7fd27f1168..1f1c1ac381 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 adbcb63b20..9558de7f90 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,212 +1,19 @@
-//
-// 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<daBdoor_c*>(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,255 +185,140 @@ 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,
-};
-
-/* 80670A2C-80670A40 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 */] = {
- 0x02000201,
- /* padding */
- 0x40080000,
- 0x00000000,
- 0x3FE00000,
- 0x00000000,
-};
#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),
-};
-
-/* 80670A6C-80670A98 -00001 002C+00 1/1 0/0 0/0 .data @3939 */
-SECTION_DATA static void* lit_3939[11] = {
- (void*)(((char*)demoProc__9daBdoor_cFv) + 0x3E0),
- (void*)(((char*)demoProc__9daBdoor_cFv) + 0x1D4),
- (void*)(((char*)demoProc__9daBdoor_cFv) + 0x230),
- (void*)(((char*)demoProc__9daBdoor_cFv) + 0x3E0),
- (void*)(((char*)demoProc__9daBdoor_cFv) + 0x3E0),
- (void*)(((char*)demoProc__9daBdoor_cFv) + 0x2C0),
- (void*)(((char*)demoProc__9daBdoor_cFv) + 0x3E0),
- (void*)(((char*)demoProc__9daBdoor_cFv) + 0x3E0),
- (void*)(((char*)demoProc__9daBdoor_cFv) + 0x3EC),
- (void*)(((char*)demoProc__9daBdoor_cFv) + 0x3C8),
- (void*)(((char*)demoProc__9daBdoor_cFv) + 0x378),
-};
-
-/* 80670A98-80670AC4 -00001 002C+00 1/1 0/0 0/0 .data @3938 */
-SECTION_DATA static void* lit_3938[11] = {
- (void*)(((char*)demoProc__9daBdoor_cFv) + 0x1B4),
- (void*)(((char*)demoProc__9daBdoor_cFv) + 0x6C),
- (void*)(((char*)demoProc__9daBdoor_cFv) + 0xAC),
- (void*)(((char*)demoProc__9daBdoor_cFv) + 0x110),
- (void*)(((char*)demoProc__9daBdoor_cFv) + 0x130),
- (void*)(((char*)demoProc__9daBdoor_cFv) + 0x150),
- (void*)(((char*)demoProc__9daBdoor_cFv) + 0x1A0),
- (void*)(((char*)demoProc__9daBdoor_cFv) + 0x1B4),
- (void*)(((char*)demoProc__9daBdoor_cFv) + 0x1B4),
- (void*)(((char*)demoProc__9daBdoor_cFv) + 0x1B4),
- (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,
-};
+extern void* __vt__12dBgS_AcchCir[3];
/* 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,
-};
+extern void* __vt__12dBgS_ObjAcch[9];
/* 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,
-};
+extern void* __vt__12J3DFrameCtrl[3];
/* 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() {
+#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 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() {
+// 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
-/* ############################################################################################## */
-/* 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"
+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());
}
-#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"
+int daBdoor_c::CreateInit() {
+ mAcch.Set(&current.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;
}
-#pragma pop
/* 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 void daBdoor_c::create() {
+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() {
+// 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"
}
@@ -684,23 +328,150 @@ asm dBgS_AcchCir::~dBgS_AcchCir() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm dBgS_ObjAcch::~dBgS_ObjAcch() {
+// 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 */
-#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"
+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);
}
-#pragma pop
+
+/* 80670A6C-80670A98 -00001 002C+00 1/1 0/0 0/0 .data @3939 */
+SECTION_DATA static void* lit_3939[11] = {
+ (void*)(((char*)demoProc__9daBdoor_cFv) + 0x3E0),
+ (void*)(((char*)demoProc__9daBdoor_cFv) + 0x1D4),
+ (void*)(((char*)demoProc__9daBdoor_cFv) + 0x230),
+ (void*)(((char*)demoProc__9daBdoor_cFv) + 0x3E0),
+ (void*)(((char*)demoProc__9daBdoor_cFv) + 0x3E0),
+ (void*)(((char*)demoProc__9daBdoor_cFv) + 0x2C0),
+ (void*)(((char*)demoProc__9daBdoor_cFv) + 0x3E0),
+ (void*)(((char*)demoProc__9daBdoor_cFv) + 0x3E0),
+ (void*)(((char*)demoProc__9daBdoor_cFv) + 0x3EC),
+ (void*)(((char*)demoProc__9daBdoor_cFv) + 0x3C8),
+ (void*)(((char*)demoProc__9daBdoor_cFv) + 0x378),
+};
+
+/* 80670A98-80670AC4 -00001 002C+00 1/1 0/0 0/0 .data @3938 */
+SECTION_DATA static void* lit_3938[11] = {
+ (void*)(((char*)demoProc__9daBdoor_cFv) + 0x1B4),
+ (void*)(((char*)demoProc__9daBdoor_cFv) + 0x6C),
+ (void*)(((char*)demoProc__9daBdoor_cFv) + 0xAC),
+ (void*)(((char*)demoProc__9daBdoor_cFv) + 0x110),
+ (void*)(((char*)demoProc__9daBdoor_cFv) + 0x130),
+ (void*)(((char*)demoProc__9daBdoor_cFv) + 0x150),
+ (void*)(((char*)demoProc__9daBdoor_cFv) + 0x1A0),
+ (void*)(((char*)demoProc__9daBdoor_cFv) + 0x1B4),
+ (void*)(((char*)demoProc__9daBdoor_cFv) + 0x1B4),
+ (void*)(((char*)demoProc__9daBdoor_cFv) + 0x1B4),
+ (void*)(((char*)demoProc__9daBdoor_cFv) + 0x1AC),
+};
/* 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, &current.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<daBdoor_c*>(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 8085511e4f..0000000000
--- 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];